# ICatInformation::EnumClassesOfCategories

Returns an enumerator over the classes that implement one or more of rgcatidImpl. If a class requires a category not listed in rgcatidReq, it is not included in the enumeration.

HRESULT EnumClassesOfCategories(

ULONG cImplemented, | //Number of category IDs in the rgcatidImpl array
CATID rgcatidImpl, | //Array of category identifiers
ULONG cRequired, | //Number of category IDs in the rgcatidReq array
CATID rgcatidReq, | //Array of category identifiers
IEnumCLSID** ppenumCLSID | //Location in which to return an IEnumCLSID interface
); |

Parameters

cImplemented
  [in] The number of category IDs in the rgcatidImpl array. This value cannot be zero. If this value is ((ULONG) -1), classes are included in the enumeration, regardless of the categories they implement.
rgcatidImpl
  [in] An array of category identifiers.
cRequired
  [in] The number of category IDs in the rgcatidReq array. This value can be zero. If this value is ((ULONG) -1), classes are included in the enumeration, regardless of the categories they require.
rgcatidReq
  [in] An array of category identifiers.
ppenumCLSID
  [out] The location in which to return an IEnumCLSID interface that can be used to enumerate the CLSIDs of the classes that implement category rcatid.

Return Values

S_OK
  The function was successful.
E_INVALIDARG
  One or more arguments are incorrect.
E_OUTOFMEMORY
  Insufficient memory to create and return an enumerator object.

See Also

ICatInformation::EnumCategories, ICatInformation::EnumImplCategoriesOfClass, ICatInformation::EnumReqCategoriesOfClass, ICatInformation::GetCategoryDesc, ICatInformation::IsClassOfCategories