|  | cpp_quote("/**") | 
|  | cpp_quote(" * This file is part of the mingw-w64 runtime package.") | 
|  | cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") | 
|  | cpp_quote(" */") | 
|  | cpp_quote("") | 
|  |  | 
|  | #ifndef DO_NO_IMPORTS | 
|  | import "unknwn.idl"; | 
|  | #endif | 
|  |  | 
|  | cpp_quote("#include <winapifamily.h>") | 
|  | cpp_quote("") | 
|  | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") | 
|  | interface IEnumGUID; | 
|  | cpp_quote("#endif") | 
|  |  | 
|  | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | 
|  | interface IEnumCATEGORYINFO; | 
|  | interface ICatRegister; | 
|  | interface ICatInformation; | 
|  | cpp_quote("") | 
|  | cpp_quote("EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;") | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("") | 
|  | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") | 
|  | typedef GUID CATID; | 
|  | typedef REFGUID REFCATID; | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("") | 
|  | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | 
|  | cpp_quote("#define IID_IEnumCLSID IID_IEnumGUID") | 
|  | cpp_quote("#define IEnumCLSID IEnumGUID") | 
|  | cpp_quote("#define LPENUMCLSID LPENUMGUID") | 
|  | cpp_quote("") | 
|  |  | 
|  | #define IEnumCLSID IEnumGUID | 
|  |  | 
|  | cpp_quote("#define CATID_NULL GUID_NULL") | 
|  | cpp_quote("#define IsEqualCATID(rcatid1, rcatid2) IsEqualGUID(rcatid1, rcatid2)") | 
|  | cpp_quote("#define IID_IEnumCATID IID_IEnumGUID") | 
|  | cpp_quote("#define IEnumCATID IEnumGUID") | 
|  | cpp_quote("") | 
|  |  | 
|  | #define IEnumCATID IEnumGUID | 
|  |  | 
|  | cpp_quote("") | 
|  | cpp_quote("EXTERN_C const CATID CATID_Insertable;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_Control;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_Programmable;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_IsShortcut;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_NeverShowExt;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_DocObject;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_Printable;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_RequiresDataPathHost;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_PersistsToMoniker;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_PersistsToStorage;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_PersistsToStreamInit;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_PersistsToStream;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_PersistsToMemory;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_PersistsToFile;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_PersistsToPropertyBag;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_InternetAware;") | 
|  | cpp_quote("EXTERN_C const CATID CATID_DesignTimeUIActivatableControl;") | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("") | 
|  | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") | 
|  | cpp_quote("#ifndef _LPENUMGUID_DEFINED") | 
|  | cpp_quote("#define _LPENUMGUID_DEFINED") | 
|  | [object, uuid (0002e000-0000-0000-C000-000000000046), pointer_default (unique)] | 
|  | interface IEnumGUID : IUnknown { | 
|  | typedef [unique] IEnumGUID *LPENUMGUID; | 
|  | [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] GUID *rgelt,[out] ULONG *pceltFetched); | 
|  | [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] GUID *rgelt,[out] ULONG *pceltFetched); | 
|  | HRESULT Skip ([in] ULONG celt); | 
|  | HRESULT Reset (); | 
|  | HRESULT Clone ([out] IEnumGUID **ppenum); | 
|  | } | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("") | 
|  | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | 
|  | cpp_quote("#ifndef _LPENUMCATEGORYINFO_DEFINED") | 
|  | cpp_quote("#define _LPENUMCATEGORYINFO_DEFINED") | 
|  | [object, uuid (0002e011-0000-0000-C000-000000000046), pointer_default (unique)] | 
|  | interface IEnumCATEGORYINFO : IUnknown { | 
|  | typedef [unique] IEnumCATEGORYINFO *LPENUMCATEGORYINFO; | 
|  |  | 
|  | #define CATDESC_MAX 128 | 
|  |  | 
|  | cpp_quote("") | 
|  | typedef struct tagCATEGORYINFO { | 
|  | CATID catid; | 
|  | LCID lcid; | 
|  | OLECHAR szDescription[CATDESC_MAX]; | 
|  | } CATEGORYINFO,*LPCATEGORYINFO; | 
|  | cpp_quote("") | 
|  | HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] CATEGORYINFO *rgelt,[out] ULONG *pceltFetched); | 
|  | HRESULT Skip ([in] ULONG celt); | 
|  | HRESULT Reset (); | 
|  | HRESULT Clone ([out] IEnumCATEGORYINFO **ppenum); | 
|  | } | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("") | 
|  | cpp_quote("#ifndef _LPCATREGISTER_DEFINED") | 
|  | cpp_quote("#define _LPCATREGISTER_DEFINED") | 
|  | [object, uuid (0002e012-0000-0000-C000-000000000046), pointer_default (unique)] | 
|  | interface ICatRegister : IUnknown { | 
|  | typedef [unique] ICatRegister *LPCATREGISTER; | 
|  | cpp_quote("") | 
|  | HRESULT RegisterCategories ([in] ULONG cCategories,[in, size_is (cCategories)] CATEGORYINFO rgCategoryInfo[]); | 
|  | HRESULT UnRegisterCategories ([in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); | 
|  | HRESULT RegisterClassImplCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); | 
|  | HRESULT UnRegisterClassImplCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); | 
|  | HRESULT RegisterClassReqCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); | 
|  | HRESULT UnRegisterClassReqCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); | 
|  | } | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("") | 
|  | cpp_quote("#ifndef _LPCATINFORMATION_DEFINED") | 
|  | cpp_quote("#define _LPCATINFORMATION_DEFINED") | 
|  | [object, uuid (0002e013-0000-0000-C000-000000000046), pointer_default (unique)] | 
|  | interface ICatInformation : IUnknown { | 
|  | typedef [unique] ICatInformation *LPCATINFORMATION; | 
|  | cpp_quote("") | 
|  | HRESULT EnumCategories ([in] LCID lcid,[out] IEnumCATEGORYINFO **ppenumCategoryInfo); | 
|  | HRESULT GetCategoryDesc ([in] REFCATID rcatid,[in] LCID lcid,[out] LPWSTR *pszDesc); | 
|  | [local] HRESULT EnumClassesOfCategories ([in] ULONG cImplemented,[in, size_is (cImplemented)] const CATID rgcatidImpl[],[in] ULONG cRequired,[in, size_is (cRequired)] const CATID rgcatidReq[],[out] IEnumCLSID **ppenumClsid); | 
|  | [call_as (EnumClassesOfCategories)] HRESULT RemoteEnumClassesOfCategories ([in] ULONG cImplemented,[in, unique, size_is (cImplemented)] const CATID rgcatidImpl[],[in] ULONG cRequired,[in, unique, size_is (cRequired)] const CATID rgcatidReq[],[out] IEnumCLSID **ppenumClsid); | 
|  | [local] HRESULT IsClassOfCategories ([in] REFCLSID rclsid,[in] ULONG cImplemented,[in, size_is (cImplemented)] const CATID rgcatidImpl[],[in] ULONG cRequired,[in, size_is (cRequired)] const CATID rgcatidReq[]); | 
|  | [call_as (IsClassOfCategories)] HRESULT RemoteIsClassOfCategories ([in] REFCLSID rclsid,[in] ULONG cImplemented,[in, unique, size_is (cImplemented)] const CATID rgcatidImpl[],[in] ULONG cRequired,[in, unique, size_is (cRequired)] const CATID rgcatidReq[]); | 
|  | HRESULT EnumImplCategoriesOfClass ([in] REFCLSID rclsid,[out] IEnumCATID **ppenumCatid); | 
|  | HRESULT EnumReqCategoriesOfClass ([in] REFCLSID rclsid,[out] IEnumCATID **ppenumCatid); | 
|  | } | 
|  | cpp_quote("#endif") | 
|  | cpp_quote("#endif") |