# ICatRegister

The ICatRegister interface provides methods for registering and unregistering component category information in the Registry. This includes both the human-readable names of categories and the categories implemented/required by a given component or class.

##### When to Implement

There is no need to implement this interface. The Component Category Manager, a system-provided COM object that can be instantiated by using CoCreateInstance, implements ICatRegister.

##### When to Use

The owner of a category uses this interface to register or unregister the human-readable names. The owner of a component uses this interface to add or remove categories implemented or required by this component.

Methods in Vtable Order

IUnknown Methods | Description
QueryInterface | Returns pointers to supported interfaces.
AddRef | Increments reference count.
Release | Decrements reference count.

ICatRegister Methods | Description
RegisterCategories | Registers one or more component categories.
UnRegisterCategories | Removes the registration of one or more component categories.
RegisterClassImplCategories | Registers the class as implementing one or more component categories.
UnRegisterClassImplCategories | Removes one or more implemented category identifiers from a class.
RegisterClassReqCategories | Registers the class as requiring one or more component categories.
UnRegisterClassReqCategories | Removes one or more required category identifiers from a class.