1cpp_quote("/**") 2cpp_quote(" * This file is part of the mingw-w64 runtime package.") 3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") 4cpp_quote(" */") 5cpp_quote("") 6 7#ifndef DO_NO_IMPORTS 8import "unknwn.idl"; 9#endif 10 11cpp_quote("#include <winapifamily.h>") 12cpp_quote("") 13cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 14interface IEnumGUID; 15cpp_quote("#endif") 16 17cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 18interface IEnumCATEGORYINFO; 19interface ICatRegister; 20interface ICatInformation; 21cpp_quote("") 22cpp_quote("EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;") 23cpp_quote("#endif") 24cpp_quote("") 25cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 26typedef GUID CATID; 27typedef REFGUID REFCATID; 28cpp_quote("#endif") 29cpp_quote("") 30cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 31cpp_quote("#define IID_IEnumCLSID IID_IEnumGUID") 32cpp_quote("#define IEnumCLSID IEnumGUID") 33cpp_quote("#define LPENUMCLSID LPENUMGUID") 34cpp_quote("") 35 36#define IEnumCLSID IEnumGUID 37 38cpp_quote("#define CATID_NULL GUID_NULL") 39cpp_quote("#define IsEqualCATID(rcatid1, rcatid2) IsEqualGUID(rcatid1, rcatid2)") 40cpp_quote("#define IID_IEnumCATID IID_IEnumGUID") 41cpp_quote("#define IEnumCATID IEnumGUID") 42cpp_quote("") 43 44#define IEnumCATID IEnumGUID 45 46cpp_quote("") 47cpp_quote("EXTERN_C const CATID CATID_Insertable;") 48cpp_quote("EXTERN_C const CATID CATID_Control;") 49cpp_quote("EXTERN_C const CATID CATID_Programmable;") 50cpp_quote("EXTERN_C const CATID CATID_IsShortcut;") 51cpp_quote("EXTERN_C const CATID CATID_NeverShowExt;") 52cpp_quote("EXTERN_C const CATID CATID_DocObject;") 53cpp_quote("EXTERN_C const CATID CATID_Printable;") 54cpp_quote("EXTERN_C const CATID CATID_RequiresDataPathHost;") 55cpp_quote("EXTERN_C const CATID CATID_PersistsToMoniker;") 56cpp_quote("EXTERN_C const CATID CATID_PersistsToStorage;") 57cpp_quote("EXTERN_C const CATID CATID_PersistsToStreamInit;") 58cpp_quote("EXTERN_C const CATID CATID_PersistsToStream;") 59cpp_quote("EXTERN_C const CATID CATID_PersistsToMemory;") 60cpp_quote("EXTERN_C const CATID CATID_PersistsToFile;") 61cpp_quote("EXTERN_C const CATID CATID_PersistsToPropertyBag;") 62cpp_quote("EXTERN_C const CATID CATID_InternetAware;") 63cpp_quote("EXTERN_C const CATID CATID_DesignTimeUIActivatableControl;") 64cpp_quote("#endif") 65cpp_quote("") 66cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 67cpp_quote("#ifndef _LPENUMGUID_DEFINED") 68cpp_quote("#define _LPENUMGUID_DEFINED") 69[object, uuid (0002e000-0000-0000-C000-000000000046), pointer_default (unique)] 70interface IEnumGUID : IUnknown { 71 typedef [unique] IEnumGUID *LPENUMGUID; 72 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] GUID *rgelt,[out] ULONG *pceltFetched); 73 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] GUID *rgelt,[out] ULONG *pceltFetched); 74 HRESULT Skip ([in] ULONG celt); 75 HRESULT Reset (); 76 HRESULT Clone ([out] IEnumGUID **ppenum); 77} 78cpp_quote("#endif") 79cpp_quote("#endif") 80cpp_quote("") 81cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 82cpp_quote("#ifndef _LPENUMCATEGORYINFO_DEFINED") 83cpp_quote("#define _LPENUMCATEGORYINFO_DEFINED") 84[object, uuid (0002e011-0000-0000-C000-000000000046), pointer_default (unique)] 85interface IEnumCATEGORYINFO : IUnknown { 86 typedef [unique] IEnumCATEGORYINFO *LPENUMCATEGORYINFO; 87 88#define CATDESC_MAX 128 89 90cpp_quote("") 91 typedef struct tagCATEGORYINFO { 92 CATID catid; 93 LCID lcid; 94 OLECHAR szDescription[CATDESC_MAX]; 95 } CATEGORYINFO,*LPCATEGORYINFO; 96cpp_quote("") 97 HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] CATEGORYINFO *rgelt,[out] ULONG *pceltFetched); 98 HRESULT Skip ([in] ULONG celt); 99 HRESULT Reset (); 100 HRESULT Clone ([out] IEnumCATEGORYINFO **ppenum); 101} 102cpp_quote("#endif") 103cpp_quote("") 104cpp_quote("#ifndef _LPCATREGISTER_DEFINED") 105cpp_quote("#define _LPCATREGISTER_DEFINED") 106[object, uuid (0002e012-0000-0000-C000-000000000046), pointer_default (unique)] 107interface ICatRegister : IUnknown { 108 typedef [unique] ICatRegister *LPCATREGISTER; 109cpp_quote("") 110 HRESULT RegisterCategories ([in] ULONG cCategories,[in, size_is (cCategories)] CATEGORYINFO rgCategoryInfo[]); 111 HRESULT UnRegisterCategories ([in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); 112 HRESULT RegisterClassImplCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); 113 HRESULT UnRegisterClassImplCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); 114 HRESULT RegisterClassReqCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); 115 HRESULT UnRegisterClassReqCategories ([in] REFCLSID rclsid,[in] ULONG cCategories,[in, size_is (cCategories)] CATID rgcatid[]); 116} 117cpp_quote("#endif") 118cpp_quote("") 119cpp_quote("#ifndef _LPCATINFORMATION_DEFINED") 120cpp_quote("#define _LPCATINFORMATION_DEFINED") 121[object, uuid (0002e013-0000-0000-C000-000000000046), pointer_default (unique)] 122interface ICatInformation : IUnknown { 123 typedef [unique] ICatInformation *LPCATINFORMATION; 124cpp_quote("") 125 HRESULT EnumCategories ([in] LCID lcid,[out] IEnumCATEGORYINFO **ppenumCategoryInfo); 126 HRESULT GetCategoryDesc ([in] REFCATID rcatid,[in] LCID lcid,[out] LPWSTR *pszDesc); 127 [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); 128 [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); 129 [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[]); 130 [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[]); 131 HRESULT EnumImplCategoriesOfClass ([in] REFCLSID rclsid,[out] IEnumCATID **ppenumCatid); 132 HRESULT EnumReqCategoriesOfClass ([in] REFCLSID rclsid,[out] IEnumCATID **ppenumCatid); 133} 134cpp_quote("#endif") 135cpp_quote("#endif") 136