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();
	}