/// <summary> /// 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 or required by a /// given component or class. /// </summary> [ComImport,Guid("0002E012-0000-0000-C000-000000000046"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown),ComVisible(false)]publicinterfaceICatRegister { /// <summary> /// Registers one or more component categories. Each component category /// consists of a CATID and a list of locale-dependent description strings. /// </summary> /// <paramname="cCategories">The number of component categories to register.</param> /// <paramname="rgCategoryInfo"> /// The array of cCategories CATEGORYINFO structures. By providing the same /// CATID for multiple CATEGORYINFO structures, multiple locales can be /// registered for the same component category. /// </param>voidRegisterCategories(uint cCategories, [In,MarshalAs(UnmanagedType.LPArray)] CATEGORYINFO[] rgCategoryInfo);
/// <summary>
/// Removes the registration of one or more component categories. Each component
/// category consists of a CATID and a list of locale-dependent description strings.
/// </summary>
/// <param name="cCategories">The number of cCategories CATIDs to be removed.</param>
/// <param name="rgcatid">Identifies the categories to be removed.</param>
void UnRegisterCategories(uint cCategories, [In, MarshalAs(UnmanagedType.LPArray)] Guid[] rgcatid);
/// <summary>
/// Registers the class as implementing one or more component categories.
/// </summary>
/// <param name="rclsid">The class ID of the relevent class for which category information will be set.</param>
/// <param name="cCategories">The number of categories to associate as category identifiers for the class.</param>
/// <param name="rgcatid">The array of cCategories CATIDs to associate as category identifiers for the class.</param>
void RegisterClassImplCategories([In] ref Guid rclsid, uint cCategories, [In, MarshalAs(UnmanagedType.LPArray)] Guid[] rgcatid);
/// <summary>
/// Removes one or more implemented category identifiers from a class.
/// </summary>
/// <param name="rclsid">The class ID of the relevant class to be manipulated.</param>
/// <param name="cCategories">The number of category CATIDs to remove.</param>
/// <param name="rgcatid">The array of cCategories CATID that are to be removed. Only the category IDs specified in this array are removed.</param>
void UnRegisterClassImplCategories([In] ref Guid rclsid, uint cCategories, [In, MarshalAs(UnmanagedType.LPArray)] Guid[] rgcatid);
/// <summary>
/// Registers the class as requiring one or more component categories.
/// </summary>
/// <param name="rclsid">The class ID of the relevent class for which category information will be set.</param>
/// <param name="cCategories">The number of category CATIDs to associate as category identifiers for the class.</param>
/// <param name="rgcatid">The array of cCategories CATID to associate as category identifiers for the class.</param>
void RegisterClassReqCategories([In] ref Guid rclsid, uint cCategories, [In, MarshalAs(UnmanagedType.LPArray)] Guid[] rgcatid);
/// <summary>
/// Removes one or more required category identifiers from a class.
/// </summary>
/// <param name="rclsid">The class ID of the relevent class to be manipulated.</param>
/// <param name="cCategories">The number of category CATIDs to remove.</param>
/// <param name="rgcatid">The array of cCategories CATID that are to be removed. Only the category IDs specified in this array are removed.</param>
void UnRegisterClassReqCategories([In] ref Guid rclsid, uint cCategories, [In, MarshalAs(UnmanagedType.LPArray)] Guid[] rgcatid);
}
<ComImport> _
<Guid("TODO")> _
'TODO: Insert <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _ if this doesn't derive from IDispatch
Interface ICatRegister
TODO
End Interface