mingw-5.1.4/win32/include/comcat.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     1 #ifndef _COMCAT_H
       
     2 #define _COMCAT_H
       
     3 #if __GNUC__ >=3
       
     4 #pragma GCC system_header
       
     5 #endif
       
     6 
       
     7 #ifndef COM_NO_WINDOWS_H
       
     8 #include <windows.h>
       
     9 #include <ole2.h>
       
    10 #endif
       
    11 
       
    12 #ifndef _RC_INVOKED
       
    13 
       
    14 #ifdef __cplusplus
       
    15 extern "C"{
       
    16 #endif
       
    17 
       
    18 EXTERN_C const IID IID_IEnumGUID;
       
    19 typedef _COM_interface IEnumGUID *LPENUMGUID;
       
    20 
       
    21 #define INTERFACE IEnumGUID
       
    22 DECLARE_INTERFACE_(IEnumGUID,IUnknown)
       
    23 {
       
    24 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
    25 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
    26 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
    27 	STDMETHOD(Next)(THIS_ ULONG,GUID*,ULONG*) PURE;
       
    28 	STDMETHOD(Skip)(THIS_ ULONG) PURE;
       
    29 	STDMETHOD(Reset)(THIS) PURE;
       
    30 	STDMETHOD(Clone)(THIS_ LPENUMGUID*) PURE;
       
    31 };
       
    32 #undef INTERFACE
       
    33 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
       
    34     && defined (COBJMACROS)
       
    35 #define IEnumGUID_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
       
    36 #define IEnumGUID_AddRef(p)             (p)->lpVtbl->AddRef(p)
       
    37 #define IEnumGUID_Release(p)            (p)->lpVtbl->Release(p)
       
    38 #define IEnumGUID_Next(p,a,b,c)         (p)->lpVtbl->Next(p,a,b,c)
       
    39 #define IEnumGUID_Skip(p,a)             (p)->lpVtbl->Skip(p,a)
       
    40 #define IEnumGUID_Reset(p)              (p)->lpVtbl->Reset(p)
       
    41 #define IEnumGUID_Clone(p,a)            (p)->lpVtbl->Clone(p,a)
       
    42 #endif
       
    43 
       
    44 typedef GUID CATID;
       
    45 typedef REFGUID REFCATID;
       
    46 #define CATID_NULL GUID_NULL
       
    47 #define IsEqualCATID(a, b) IsEqualGUID(a, b)
       
    48 
       
    49 typedef struct tagCATEGORYINFO {
       
    50     CATID   catid;		/* category identifier for component */
       
    51     LCID    lcid;		/* locale identifier */
       
    52     OLECHAR szDescription[128];	/* description of the category */
       
    53 } CATEGORYINFO, *LPCATEGORYINFO;
       
    54 
       
    55 EXTERN_C const CATID CATID_Insertable;
       
    56 EXTERN_C const CATID CATID_Control;
       
    57 EXTERN_C const CATID CATID_Programmable;
       
    58 EXTERN_C const CATID CATID_IsShortcut;
       
    59 EXTERN_C const CATID CATID_NeverShowExt;
       
    60 EXTERN_C const CATID CATID_DocObject;
       
    61 EXTERN_C const CATID CATID_Printable;
       
    62 EXTERN_C const CATID CATID_RequiresDataPathHost;
       
    63 EXTERN_C const CATID CATID_PersistsToMoniker;
       
    64 EXTERN_C const CATID CATID_PersistsToStorage;
       
    65 EXTERN_C const CATID CATID_PersistsToStreamInit;
       
    66 EXTERN_C const CATID CATID_PersistsToStream;
       
    67 EXTERN_C const CATID CATID_PersistsToMemory;
       
    68 EXTERN_C const CATID CATID_PersistsToFile;
       
    69 EXTERN_C const CATID CATID_PersistsToPropertyBag;
       
    70 EXTERN_C const CATID CATID_InternetAware;
       
    71 EXTERN_C const CATID CATID_DesignTimeUIActivatableControl;
       
    72 
       
    73 #define IEnumCATID IEnumGUID
       
    74 #define LPENUMCATID LPENUMGUID
       
    75 #define IID_IEnumCATID IID_IEnumGUID
       
    76 
       
    77 #define IEnumCLSID IEnumGUID
       
    78 #define LPENUMCLSID LPENUMGUID
       
    79 #define IID_IEnumCLSID IID_IEnumGUID
       
    80 
       
    81 EXTERN_C const IID IID_ICatInformation;
       
    82 typedef _COM_interface ICatInformation *LPCATINFORMATION;
       
    83 
       
    84 EXTERN_C const IID IID_ICatRegister;
       
    85 typedef _COM_interface ICatRegister *LPCATREGISTER;
       
    86 
       
    87 EXTERN_C const IID IID_IEnumCATEGORYINFO;
       
    88 typedef _COM_interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
       
    89 
       
    90 EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;
       
    91 
       
    92 #define INTERFACE ICatInformation
       
    93 DECLARE_INTERFACE_(ICatInformation,IUnknown)
       
    94 {
       
    95 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
    96 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
    97 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
    98 	STDMETHOD(EnumCategories)(THIS_ LCID,LPENUMCATEGORYINFO*) PURE;
       
    99 	STDMETHOD(GetCategoryDesc)(THIS_ REFCATID,LCID,PWCHAR*) PURE;
       
   100 	STDMETHOD(EnumClassesOfCategories)(THIS_ ULONG,CATID*,ULONG,CATID*,LPENUMCLSID*) PURE;
       
   101 	STDMETHOD(IsClassOfCategories)(THIS_ REFCLSID,ULONG,CATID*,ULONG,CATID*) PURE;
       
   102 	STDMETHOD(EnumImplCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
       
   103 	STDMETHOD(EnumReqCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
       
   104 };
       
   105 #undef INTERFACE
       
   106 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
       
   107     && defined (COBJMACROS)
       
   108 #define ICatInformation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
       
   109 #define ICatInformation_AddRef(p)             (p)->lpVtbl->AddRef(p)
       
   110 #define ICatInformation_Release(p)            (p)->lpVtbl->Release(p)
       
   111 #define ICatInformation_EnumCategories(p,a,b) (p)->lpVtbl->EnumCategories(p,a,b)
       
   112 #define ICatInformation_GetCategoryDesc(p,a,b,c) (p)->lpVtbl->GetCategoryDesc(p,a,b,c)
       
   113 #define ICatInformation_EnumClassesOfCategories(p,a,b,c,d,e) (p)->lpVtbl->EnumClassesOfCategories(p,a,b,c,d,e)
       
   114 #define ICatInformation_IsClassOfCategories(p,a,b,c,d,e) (p)->lpVtbl->IsClassOfCategories(p,a,b,c,d,e)
       
   115 #define ICatInformation_EnumImplCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumImplCategoriesOfClass(p,a,b)
       
   116 #define ICatInformation_EnumReqCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumReqCategoriesOfClass(p,a,b)
       
   117 #endif
       
   118 
       
   119 #define INTERFACE ICatRegister
       
   120 DECLARE_INTERFACE_(ICatRegister,IUnknown)
       
   121 {
       
   122 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   123 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   124 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   125 	STDMETHOD(RegisterCategories)(THIS_ ULONG,CATEGORYINFO*) PURE;
       
   126 	STDMETHOD(UnRegisterCategories)(THIS_ ULONG,CATID*) PURE;
       
   127 	STDMETHOD(RegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
       
   128 	STDMETHOD(UnRegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
       
   129 	STDMETHOD(RegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
       
   130 	STDMETHOD(UnRegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
       
   131 };
       
   132 #undef INTERFACE
       
   133 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
       
   134     && defined (COBJMACROS)
       
   135 #define ICatRegister_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
       
   136 #define ICatRegister_AddRef(p)             (p)->lpVtbl->AddRef(p)
       
   137 #define ICatRegister_Release(p)            (p)->lpVtbl->Release(p)
       
   138 #define ICatRegister_RegisterCategories(p,a,b) (p)->lpVtbl->RegisterCategories(p,a,b)
       
   139 #define ICatRegister_UnRegisterCategories(p,a,b) (p)->lpVtbl->UnRegisterCategories(p,a,b)
       
   140 #define ICatRegister_RegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->RegisterClassImplCategories(p,a,b,c)
       
   141 #define ICatRegister_UnRegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassImplCategories(p,a,b,c)
       
   142 #define ICatRegister_RegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->RegisterClassReqCategories(p,a,b,c)
       
   143 #define ICatRegister_UnRegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassReqCategories(p,a,b,c)
       
   144 #endif
       
   145 
       
   146 EXTERN_C const IID IID_IEnumCATEGORYINFO;
       
   147 #define INTERFACE IEnumCATEGORYINFO
       
   148 DECLARE_INTERFACE_(IEnumCATEGORYINFO,IUnknown)
       
   149 {
       
   150 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   151 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   152 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   153 	STDMETHOD(Next)(THIS_ ULONG,CATEGORYINFO*,ULONG*) PURE;
       
   154 	STDMETHOD(Skip)(THIS_ ULONG) PURE;
       
   155 	STDMETHOD(Reset)(THIS) PURE;
       
   156 	STDMETHOD(Clone)(THIS_ LPENUMCATEGORYINFO*) PURE;
       
   157 };
       
   158 #undef INTERFACE
       
   159 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
       
   160     && defined (COBJMACROS)
       
   161 #define IEnumCATEGORYINFO_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
       
   162 #define IEnumCATEGORYINFO_AddRef(p)             (p)->lpVtbl->AddRef(p)
       
   163 #define IEnumCATEGORYINFO_Release(p)            (p)->lpVtbl->Release(p)
       
   164 #define IEnumCATEGORYINFO_Next(p,a,b,c)         (p)->lpVtbl->Next(p,a,b,c)
       
   165 #define IEnumCATEGORYINFO_Skip(p,a)             (p)->lpVtbl->Skip(p,a)
       
   166 #define IEnumCATEGORYINFO_Reset(p)              (p)->lpVtbl->Reset(p)
       
   167 #define IEnumCATEGORYINFO_Clone(p,a)            (p)->lpVtbl->Clone(p,a)
       
   168 #endif
       
   169 
       
   170 #ifdef __cplusplus
       
   171 }
       
   172 #endif
       
   173 
       
   174 #endif /* _RC_INVOKED */
       
   175 #endif