int EnumerableObject_IndexExtension::FindMulti(TCHAR* pszVariableName, void* lpValuePointer, CPtrArray& arrResult){ if( !m_pIndexes ) return 0; VariableInfo* pInfo = m_pIndexContainerObject->GetVariableInfo(pszVariableName); if( !pInfo ) return 0; // Variable with that name not exists !!!. int nIndex = m_pIndexes->IndexOf((void*)pInfo); if( nIndex == -1 ) return 0; // Variable is not indexed. AutoSortedArray* pArrIndex = (AutoSortedArray*)m_pIndexes->GetData(nIndex); if( !pArrIndex ) return 0; nIndex = pArrIndex->FindFirst((void*)lpValuePointer); while( nIndex != -1 ){ arrResult.push_back(pArrIndex->GetData(nIndex)); nIndex = pArrIndex->FindNext(); } return arrResult.size(); }