From b89a2aac33badf2aa6e69bb7c35558cb70c5f338 Mon Sep 17 00:00:00 2001 From: Danny Smith Date: Thu, 13 Jun 2002 00:13:34 +0000 Subject: [PATCH] 2002-06-13 John K. Hohm * include/comcat.h: New file. --- winsup/w32api/ChangeLog | 8 ++ winsup/w32api/include/comcat.h | 171 +++++++++++++++++++++++++++++++++ winsup/w32api/lib/test.c | 1 + 3 files changed, 180 insertions(+) create mode 100644 winsup/w32api/include/comcat.h diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index d9e8495d9..ff87c2eef 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,11 @@ +2002-06-13 Danny Smith + + * lib/test.c: #include comcat.h. + +2002-06-13 John K. Hohm + + * include/comcat.h: New file. + 2002-06-09 Gunnar Degnbol * include/richedit.h (EM_*, TM_*, GT_*): Add new defines. diff --git a/winsup/w32api/include/comcat.h b/winsup/w32api/include/comcat.h new file mode 100644 index 000000000..31b2a8c65 --- /dev/null +++ b/winsup/w32api/include/comcat.h @@ -0,0 +1,171 @@ +#ifndef _COMCAT_H +#define _COMCAT_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#include +#include + +#ifndef _RC_INVOKED + +#ifdef __cplusplus +extern "C"{ +#endif + +EXTERN_C const IID IID_IEnumGUID; +typedef interface IEnumGUID *LPENUMGUID; + +#undef INTERFACE +#define INTERFACE IEnumGUID +DECLARE_INTERFACE_(IEnumGUID,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(Next)(THIS_ ULONG,GUID*,ULONG*) PURE; + STDMETHOD(Skip)(THIS_ ULONG) PURE; + STDMETHOD(Reset)(THIS) PURE; + STDMETHOD(Clone)(THIS_ LPENUMGUID*) PURE; +}; +#undef INTERFACE +#ifdef COBJMACROS +#define IEnumGUID_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IEnumGUID_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IEnumGUID_Release(p) (p)->lpVtbl->Release(p) +#define IEnumGUID_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) +#define IEnumGUID_Skip(p,a) (p)->lpVtbl->Skip(p,a) +#define IEnumGUID_Reset(p) (p)->lpVtbl->Reset(p) +#define IEnumGUID_Clone(p,a) (p)->lpVtbl->Clone(p,a) +#endif + +typedef GUID CATID; +typedef REFGUID REFCATID; +#define CATID_NULL GUID_NULL +#define IsEqualCATID(a, b) IsEqualGUID(a, b) + +typedef struct tagCATEGORYINFO { + CATID catid; /* category identifier for component */ + LCID lcid; /* locale identifier */ + OLECHAR szDescription[128]; /* description of the category */ +} CATEGORYINFO, *LPCATEGORYINFO; + +EXTERN_C const CATID CATID_Insertable; +EXTERN_C const CATID CATID_Control; +EXTERN_C const CATID CATID_Programmable; +EXTERN_C const CATID CATID_IsShortcut; +EXTERN_C const CATID CATID_NeverShowExt; +EXTERN_C const CATID CATID_DocObject; +EXTERN_C const CATID CATID_Printable; +EXTERN_C const CATID CATID_RequiresDataPathHost; +EXTERN_C const CATID CATID_PersistsToMoniker; +EXTERN_C const CATID CATID_PersistsToStorage; +EXTERN_C const CATID CATID_PersistsToStreamInit; +EXTERN_C const CATID CATID_PersistsToStream; +EXTERN_C const CATID CATID_PersistsToMemory; +EXTERN_C const CATID CATID_PersistsToFile; +EXTERN_C const CATID CATID_PersistsToPropertyBag; +EXTERN_C const CATID CATID_InternetAware; +EXTERN_C const CATID CATID_DesignTimeUIActivatableControl; + +#define IEnumCATID IEnumGUID +#define LPENUMCATID LPENUMGUID +#define IID_IEnumCATID IID_IEnumGUID + +#define IEnumCLSID IEnumGUID +#define LPENUMCLSID LPENUMGUID +#define IID_IEnumCLSID IID_IEnumGUID + +EXTERN_C const IID IID_ICatInformation; +typedef interface ICatInformation *LPCATINFORMATION; + +EXTERN_C const IID IID_ICatRegister; +typedef interface ICatRegister *LPCATREGISTER; + +EXTERN_C const IID IID_IEnumCATEGORYINFO; +typedef interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO; + +EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr; + +#define INTERFACE ICatInformation +DECLARE_INTERFACE_(ICatInformation,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(EnumCategories)(THIS_ LCID,LPENUMCATEGORYINFO*) PURE; + STDMETHOD(GetCategoryDesc)(THIS_ REFCATID,LCID,PWCHAR*) PURE; + STDMETHOD(EnumClassesOfCategories)(THIS_ ULONG,CATID*,ULONG,CATID*,LPENUMCLSID*) PURE; + STDMETHOD(IsClassOfCategories)(THIS_ REFCLSID,ULONG,CATID*,ULONG,CATID*) PURE; + STDMETHOD(EnumImplCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE; + STDMETHOD(EnumReqCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE; +}; +#undef INTERFACE +#ifdef COBJMACROS +#define ICatInformation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICatInformation_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICatInformation_Release(p) (p)->lpVtbl->Release(p) +#define ICatInformation_EnumCategories(p,a,b) (p)->lpVtbl->EnumCategories(p,a,b) +#define ICatInformation_GetCategoryDesc(p,a,b,c) (p)->lpVtbl->GetCategoryDesc(p,a,b,c) +#define ICatInformation_EnumClassesOfCategories(p,a,b,c,d,e) (p)->lpVtbl->EnumClassesOfCategories(p,a,b,c,d,e) +#define ICatInformation_IsClassOfCategories(p,a,b,c,d,e) (p)->lpVtbl->IsClassOfCategories(p,a,b,c,d,e) +#define ICatInformation_EnumImplCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumImplCategoriesOfClass(p,a,b) +#define ICatInformation_EnumReqCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumReqCategoriesOfClass(p,a,b) +#endif + +#define INTERFACE ICatRegister +DECLARE_INTERFACE_(ICatRegister,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(RegisterCategories)(THIS_ ULONG,CATEGORYINFO*) PURE; + STDMETHOD(UnRegisterCategories)(THIS_ ULONG,CATID*) PURE; + STDMETHOD(RegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE; + STDMETHOD(UnRegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE; + STDMETHOD(RegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE; + STDMETHOD(UnRegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE; +}; +#undef INTERFACE +#ifdef COBJMACROS +#define ICatRegister_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICatRegister_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICatRegister_Release(p) (p)->lpVtbl->Release(p) +#define ICatRegister_RegisterCategories(p,a,b) (p)->lpVtbl->RegisterCategories(p,a,b) +#define ICatRegister_UnRegisterCategories(p,a,b) (p)->lpVtbl->UnRegisterCategories(p,a,b) +#define ICatRegister_RegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->RegisterClassImplCategories(p,a,b,c) +#define ICatRegister_UnRegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassImplCategories(p,a,b,c) +#define ICatRegister_RegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->RegisterClassReqCategories(p,a,b,c) +#define ICatRegister_UnRegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassReqCategories(p,a,b,c) +#endif + +EXTERN_C const IID IID_IEnumCATEGORYINFO; +#undef INTERFACE +#define INTERFACE IEnumCATEGORYINFO +DECLARE_INTERFACE_(IEnumCATEGORYINFO,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(Next)(THIS_ ULONG,CATEGORYINFO*,ULONG*) PURE; + STDMETHOD(Skip)(THIS_ ULONG) PURE; + STDMETHOD(Reset)(THIS) PURE; + STDMETHOD(Clone)(THIS_ LPENUMCATEGORYINFO*) PURE; +}; +#undef INTERFACE +#ifdef COBJMACROS +#define IEnumCATEGORYINFO_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IEnumCATEGORYINFO_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IEnumCATEGORYINFO_Release(p) (p)->lpVtbl->Release(p) +#define IEnumCATEGORYINFO_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) +#define IEnumCATEGORYINFO_Skip(p,a) (p)->lpVtbl->Skip(p,a) +#define IEnumCATEGORYINFO_Reset(p) (p)->lpVtbl->Reset(p) +#define IEnumCATEGORYINFO_Clone(p,a) (p)->lpVtbl->Clone(p,a) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _RC_INVOKED */ +#endif diff --git a/winsup/w32api/lib/test.c b/winsup/w32api/lib/test.c index c7eadc937..9b2bafde7 100644 --- a/winsup/w32api/lib/test.c +++ b/winsup/w32api/lib/test.c @@ -66,6 +66,7 @@ #ifndef __OBJC__ /* problems with BOOL */ #include +#include #include #include #include