The IMSAdminBase::EnumData method enumerates the data entries of a key in the metabase. One entry is enumerated per call. Set dwMDEnumDataIndex to 0 on the first call and increment by 1 on each subsequent call until the method returns HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS).
HRESULT EnumData( METADATA_HANDLE hMDHandle, LPCWSTR pszMDPath, PMETADATA_RECORD pmdrMDData, DWORD dwMDEnumDataIndex, DWORD* pdwMDRequiredDataLen );
Returns an HRESULT that contains one of the following values:
Access is denied. Either the open handle does not have read or write permission as needed, or the user does not have sufficient permissions to perform the operation.
The buffer passed into the method call is too small to receive the data.
The parameter is incorrect.
There are no more entries to enumerate.
The specified path is not found in the metabase.
The method succeeded.
The handle, METADATA_MASTER_ROOT_HANDLE, provides no guarantee against multiple thread access. If your application requires a constant data state, use a handle returned by IMSAdminBase::OpenKey.