Converted comcat.h to IDL.
diff --git a/include/Makefile.in b/include/Makefile.in
index e4514fb..b5566ed 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -5,6 +5,7 @@
MODULE = none
IDL_SRCS = \
+ comcat.idl \
oaidl.idl \
objidl.idl \
strmif.idl \
@@ -23,7 +24,6 @@
basetsd.h \
cderr.h \
cguid.h \
- comcat.h \
commctrl.h \
commdlg.h \
compobj.h \
@@ -242,7 +242,6 @@
exception.h \
library.h \
obj_cache.h \
- obj_comcat.h \
obj_commdlgbrowser.h \
obj_connection.h \
obj_contextmenu.h \
@@ -250,7 +249,6 @@
obj_dockingwindowframe.h \
obj_dragdrop.h \
obj_dragdrophelper.h \
- obj_enumguid.h \
obj_enumidlist.h \
obj_extracticon.h \
obj_inplace.h \
diff --git a/include/comcat.h b/include/comcat.h
index f7d1627..4e0d435 100644
--- a/include/comcat.h
+++ b/include/comcat.h
@@ -1,33 +1,735 @@
-/*
- * Copyright (C) 2000 Francois Gouget
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
+/*** Autogenerated by WIDL 0.1 from comcat.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
-#ifndef COM_NO_WINDOWS_H
-#include <windows.h>
-#include <ole2.h>
+
+#ifndef __WIDL_COMCAT_H
+#define __WIDL_COMCAT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <unknwn.h>
+typedef GUID CATID;
+
+typedef REFGUID REFCATID;
+
+#define CATID_NULL GUID_NULL
+#define IsEqualCATID(rcatid1, rcatid2) IsEqualGUID(rcatid1, rcatid2)
+#define IEnumCATID IEnumGUID
+#define IID_IEnumCATID IID_IEnumGUID
+#define LPENUMCATID LPENUMGUID
+#define IEnumCLSID IEnumGUID
+#define IID_IEnumCLSID IID_IEnumGUID
+#define LPENUMCLSID LPENUMGUID
+#ifndef __IEnumGUID_FWD_DEFINED__
+#define __IEnumGUID_FWD_DEFINED__
+typedef struct IEnumGUID IEnumGUID;
#endif
-#ifndef __WINE_COMCAT_H
-#define __WINE_COMCAT_H
+typedef IEnumGUID *LPENUMGUID;
-#include <unknwn.h>
-#include <wine/obj_enumguid.h>
-#include <wine/obj_comcat.h>
+/*****************************************************************************
+ * IEnumGUID interface
+ */
+#ifndef __IEnumGUID_INTERFACE_DEFINED__
+#define __IEnumGUID_INTERFACE_DEFINED__
-#endif /*__WINE_COMCAT_H */
+DEFINE_GUID(IID_IEnumGUID, 0x0002e000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumGUID : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Next(
+ ULONG celt,
+ GUID* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ IEnumGUID** ppenum) = 0;
+
+};
+#else
+typedef struct IEnumGUIDVtbl IEnumGUIDVtbl;
+struct IEnumGUID {
+ const IEnumGUIDVtbl* lpVtbl;
+};
+struct IEnumGUIDVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IEnumGUID* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IEnumGUID* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IEnumGUID* This);
+
+ /*** IEnumGUID methods ***/
+ HRESULT (STDMETHODCALLTYPE *Next)(
+ IEnumGUID* This,
+ ULONG celt,
+ GUID* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (STDMETHODCALLTYPE *Skip)(
+ IEnumGUID* This,
+ ULONG celt);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ IEnumGUID* This);
+
+ HRESULT (STDMETHODCALLTYPE *Clone)(
+ IEnumGUID* This,
+ IEnumGUID** ppenum);
+
+};
+
+/*** IUnknown methods ***/
+#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)
+/*** IEnumGUID methods ***/
+#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
+
+#define IEnumGUID_METHODS \
+ ICOM_MSVTABLE_COMPAT_FIELDS \
+ /*** IUnknown methods ***/ \
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+ STDMETHOD_(ULONG,Release)(THIS) PURE; \
+ /*** IEnumGUID methods ***/ \
+ STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, GUID* rgelt, ULONG* pceltFetched) PURE; \
+ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
+ STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
+ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumGUID** ppenum) PURE;
+
+HRESULT CALLBACK IEnumGUID_Next_Proxy(
+ IEnumGUID* This,
+ ULONG celt,
+ GUID* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumGUID_Next_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumGUID_Skip_Proxy(
+ IEnumGUID* This,
+ ULONG celt);
+void __RPC_STUB IEnumGUID_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumGUID_Reset_Proxy(
+ IEnumGUID* This);
+void __RPC_STUB IEnumGUID_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumGUID_Clone_Proxy(
+ IEnumGUID* This,
+ IEnumGUID** ppenum);
+void __RPC_STUB IEnumGUID_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IEnumGUID_INTERFACE_DEFINED__ */
+
+#ifndef __IEnumCATEGORYINFO_FWD_DEFINED__
+#define __IEnumCATEGORYINFO_FWD_DEFINED__
+typedef struct IEnumCATEGORYINFO IEnumCATEGORYINFO;
+#endif
+
+typedef IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
+
+typedef struct tagCATEGORYINFO {
+ CATID catid;
+ LCID lcid;
+ OLECHAR szDescription[128];
+} CATEGORYINFO, *LPCATEGORYINFO;
+
+/*****************************************************************************
+ * IEnumCATEGORYINFO interface
+ */
+#ifndef __IEnumCATEGORYINFO_INTERFACE_DEFINED__
+#define __IEnumCATEGORYINFO_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumCATEGORYINFO, 0x0002e011, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumCATEGORYINFO : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Next(
+ ULONG celt,
+ CATEGORYINFO* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ IEnumCATEGORYINFO** ppenum) = 0;
+
+};
+#else
+typedef struct IEnumCATEGORYINFOVtbl IEnumCATEGORYINFOVtbl;
+struct IEnumCATEGORYINFO {
+ const IEnumCATEGORYINFOVtbl* lpVtbl;
+};
+struct IEnumCATEGORYINFOVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IEnumCATEGORYINFO* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IEnumCATEGORYINFO* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IEnumCATEGORYINFO* This);
+
+ /*** IEnumCATEGORYINFO methods ***/
+ HRESULT (STDMETHODCALLTYPE *Next)(
+ IEnumCATEGORYINFO* This,
+ ULONG celt,
+ CATEGORYINFO* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (STDMETHODCALLTYPE *Skip)(
+ IEnumCATEGORYINFO* This,
+ ULONG celt);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ IEnumCATEGORYINFO* This);
+
+ HRESULT (STDMETHODCALLTYPE *Clone)(
+ IEnumCATEGORYINFO* This,
+ IEnumCATEGORYINFO** ppenum);
+
+};
+
+/*** IUnknown methods ***/
+#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)
+/*** IEnumCATEGORYINFO methods ***/
+#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
+
+#define IEnumCATEGORYINFO_METHODS \
+ ICOM_MSVTABLE_COMPAT_FIELDS \
+ /*** IUnknown methods ***/ \
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+ STDMETHOD_(ULONG,Release)(THIS) PURE; \
+ /*** IEnumCATEGORYINFO methods ***/ \
+ STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, CATEGORYINFO* rgelt, ULONG* pceltFetched) PURE; \
+ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
+ STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
+ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumCATEGORYINFO** ppenum) PURE;
+
+HRESULT CALLBACK IEnumCATEGORYINFO_Next_Proxy(
+ IEnumCATEGORYINFO* This,
+ ULONG celt,
+ CATEGORYINFO* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumCATEGORYINFO_Next_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumCATEGORYINFO_Skip_Proxy(
+ IEnumCATEGORYINFO* This,
+ ULONG celt);
+void __RPC_STUB IEnumCATEGORYINFO_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumCATEGORYINFO_Reset_Proxy(
+ IEnumCATEGORYINFO* This);
+void __RPC_STUB IEnumCATEGORYINFO_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumCATEGORYINFO_Clone_Proxy(
+ IEnumCATEGORYINFO* This,
+ IEnumCATEGORYINFO** ppenum);
+void __RPC_STUB IEnumCATEGORYINFO_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IEnumCATEGORYINFO_INTERFACE_DEFINED__ */
+
+#ifndef __ICatInformation_FWD_DEFINED__
+#define __ICatInformation_FWD_DEFINED__
+typedef struct ICatInformation ICatInformation;
+#endif
+
+typedef ICatInformation *LPCATINFORMATION;
+
+/*****************************************************************************
+ * ICatInformation interface
+ */
+#ifndef __ICatInformation_INTERFACE_DEFINED__
+#define __ICatInformation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ICatInformation, 0x0002e013, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct ICatInformation : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE EnumCategories(
+ LCID lcid,
+ IEnumCATEGORYINFO** ppenumCategoryInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCategoryDesc(
+ REFCATID rcatid,
+ LCID lcid,
+ LPWSTR* pszDesc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumClassesOfCategories(
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[],
+ IEnumGUID** ppenumClsid) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsClassOfCategories(
+ REFCLSID rclsid,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumImplCategoriesOfClass(
+ REFCLSID rclsid,
+ IEnumGUID** ppenumCatid) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumReqCategoriesOfClass(
+ REFCLSID rclsid,
+ IEnumGUID** ppenumCatid) = 0;
+
+};
+#else
+typedef struct ICatInformationVtbl ICatInformationVtbl;
+struct ICatInformation {
+ const ICatInformationVtbl* lpVtbl;
+};
+struct ICatInformationVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ICatInformation* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ICatInformation* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ICatInformation* This);
+
+ /*** ICatInformation methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumCategories)(
+ ICatInformation* This,
+ LCID lcid,
+ IEnumCATEGORYINFO** ppenumCategoryInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetCategoryDesc)(
+ ICatInformation* This,
+ REFCATID rcatid,
+ LCID lcid,
+ LPWSTR* pszDesc);
+
+ HRESULT (STDMETHODCALLTYPE *EnumClassesOfCategories)(
+ ICatInformation* This,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[],
+ IEnumGUID** ppenumClsid);
+
+ HRESULT (STDMETHODCALLTYPE *IsClassOfCategories)(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[]);
+
+ HRESULT (STDMETHODCALLTYPE *EnumImplCategoriesOfClass)(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ IEnumGUID** ppenumCatid);
+
+ HRESULT (STDMETHODCALLTYPE *EnumReqCategoriesOfClass)(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ IEnumGUID** ppenumCatid);
+
+};
+
+/*** IUnknown methods ***/
+#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)
+/*** ICatInformation methods ***/
+#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 ICatInformation_METHODS \
+ ICOM_MSVTABLE_COMPAT_FIELDS \
+ /*** IUnknown methods ***/ \
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+ STDMETHOD_(ULONG,Release)(THIS) PURE; \
+ /*** ICatInformation methods ***/ \
+ STDMETHOD_(HRESULT,EnumCategories)(THIS_ LCID lcid, IEnumCATEGORYINFO** ppenumCategoryInfo) PURE; \
+ STDMETHOD_(HRESULT,GetCategoryDesc)(THIS_ REFCATID rcatid, LCID lcid, LPWSTR* pszDesc) PURE; \
+ STDMETHOD_(HRESULT,EnumClassesOfCategories)(THIS_ ULONG cImplemented, CATID rgcatidImpl[], ULONG cRequired, CATID rgcatidReq[], IEnumGUID** ppenumClsid) PURE; \
+ STDMETHOD_(HRESULT,IsClassOfCategories)(THIS_ REFCLSID rclsid, ULONG cImplemented, CATID rgcatidImpl[], ULONG cRequired, CATID rgcatidReq[]) PURE; \
+ STDMETHOD_(HRESULT,EnumImplCategoriesOfClass)(THIS_ REFCLSID rclsid, IEnumGUID** ppenumCatid) PURE; \
+ STDMETHOD_(HRESULT,EnumReqCategoriesOfClass)(THIS_ REFCLSID rclsid, IEnumGUID** ppenumCatid) PURE;
+
+HRESULT CALLBACK ICatInformation_EnumCategories_Proxy(
+ ICatInformation* This,
+ LCID lcid,
+ IEnumCATEGORYINFO** ppenumCategoryInfo);
+void __RPC_STUB ICatInformation_EnumCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatInformation_GetCategoryDesc_Proxy(
+ ICatInformation* This,
+ REFCATID rcatid,
+ LCID lcid,
+ LPWSTR* pszDesc);
+void __RPC_STUB ICatInformation_GetCategoryDesc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatInformation_RemoteEnumClassesOfCategories_Proxy(
+ ICatInformation* This,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[],
+ IEnumGUID** ppenumClsid);
+void __RPC_STUB ICatInformation_RemoteEnumClassesOfCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatInformation_EnumClassesOfCategories_Proxy(
+ ICatInformation* This,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[],
+ IEnumGUID** ppenumClsid);
+HRESULT __RPC_STUB ICatInformation_EnumClassesOfCategories_Stub(
+ ICatInformation* This,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[],
+ IEnumGUID** ppenumClsid);
+HRESULT CALLBACK ICatInformation_RemoteIsClassOfCategories_Proxy(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[]);
+void __RPC_STUB ICatInformation_RemoteIsClassOfCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatInformation_IsClassOfCategories_Proxy(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[]);
+HRESULT __RPC_STUB ICatInformation_IsClassOfCategories_Stub(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ ULONG cImplemented,
+ CATID rgcatidImpl[],
+ ULONG cRequired,
+ CATID rgcatidReq[]);
+HRESULT CALLBACK ICatInformation_EnumImplCategoriesOfClass_Proxy(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ IEnumGUID** ppenumCatid);
+void __RPC_STUB ICatInformation_EnumImplCategoriesOfClass_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatInformation_EnumReqCategoriesOfClass_Proxy(
+ ICatInformation* This,
+ REFCLSID rclsid,
+ IEnumGUID** ppenumCatid);
+void __RPC_STUB ICatInformation_EnumReqCategoriesOfClass_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __ICatInformation_INTERFACE_DEFINED__ */
+
+#ifndef __ICatRegister_FWD_DEFINED__
+#define __ICatRegister_FWD_DEFINED__
+typedef struct ICatRegister ICatRegister;
+#endif
+
+typedef ICatRegister *LPCATREGISTER;
+
+/*****************************************************************************
+ * ICatRegister interface
+ */
+#ifndef __ICatRegister_INTERFACE_DEFINED__
+#define __ICatRegister_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ICatRegister, 0x0002e012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct ICatRegister : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE RegisterCategories(
+ ULONG cCategories,
+ CATEGORYINFO rgCategoryInfo[]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnRegisterCategories(
+ ULONG cCategories,
+ CATID rgcatid[]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterClassImplCategories(
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnRegisterClassImplCategories(
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterClassReqCategories(
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnRegisterClassReqCategories(
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]) = 0;
+
+};
+#else
+typedef struct ICatRegisterVtbl ICatRegisterVtbl;
+struct ICatRegister {
+ const ICatRegisterVtbl* lpVtbl;
+};
+struct ICatRegisterVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ICatRegister* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ICatRegister* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ICatRegister* This);
+
+ /*** ICatRegister methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterCategories)(
+ ICatRegister* This,
+ ULONG cCategories,
+ CATEGORYINFO rgCategoryInfo[]);
+
+ HRESULT (STDMETHODCALLTYPE *UnRegisterCategories)(
+ ICatRegister* This,
+ ULONG cCategories,
+ CATID rgcatid[]);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterClassImplCategories)(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+
+ HRESULT (STDMETHODCALLTYPE *UnRegisterClassImplCategories)(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterClassReqCategories)(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+
+ HRESULT (STDMETHODCALLTYPE *UnRegisterClassReqCategories)(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+
+};
+
+/*** IUnknown methods ***/
+#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)
+/*** ICatRegister methods ***/
+#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
+
+#define ICatRegister_METHODS \
+ ICOM_MSVTABLE_COMPAT_FIELDS \
+ /*** IUnknown methods ***/ \
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+ STDMETHOD_(ULONG,Release)(THIS) PURE; \
+ /*** ICatRegister methods ***/ \
+ STDMETHOD_(HRESULT,RegisterCategories)(THIS_ ULONG cCategories, CATEGORYINFO rgCategoryInfo[]) PURE; \
+ STDMETHOD_(HRESULT,UnRegisterCategories)(THIS_ ULONG cCategories, CATID rgcatid[]) PURE; \
+ STDMETHOD_(HRESULT,RegisterClassImplCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE; \
+ STDMETHOD_(HRESULT,UnRegisterClassImplCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE; \
+ STDMETHOD_(HRESULT,RegisterClassReqCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE; \
+ STDMETHOD_(HRESULT,UnRegisterClassReqCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE;
+
+HRESULT CALLBACK ICatRegister_RegisterCategories_Proxy(
+ ICatRegister* This,
+ ULONG cCategories,
+ CATEGORYINFO rgCategoryInfo[]);
+void __RPC_STUB ICatRegister_RegisterCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatRegister_UnRegisterCategories_Proxy(
+ ICatRegister* This,
+ ULONG cCategories,
+ CATID rgcatid[]);
+void __RPC_STUB ICatRegister_UnRegisterCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatRegister_RegisterClassImplCategories_Proxy(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+void __RPC_STUB ICatRegister_RegisterClassImplCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatRegister_UnRegisterClassImplCategories_Proxy(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+void __RPC_STUB ICatRegister_UnRegisterClassImplCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatRegister_RegisterClassReqCategories_Proxy(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+void __RPC_STUB ICatRegister_RegisterClassReqCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ICatRegister_UnRegisterClassReqCategories_Proxy(
+ ICatRegister* This,
+ REFCLSID rclsid,
+ ULONG cCategories,
+ CATID rgcatid[]);
+void __RPC_STUB ICatRegister_UnRegisterClassReqCategories_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __ICatRegister_INTERFACE_DEFINED__ */
+
+DEFINE_GUID( CATID_Insertable, 0x40fc6ed3, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
+DEFINE_GUID( CATID_Control, 0x40fc6ed4, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
+DEFINE_GUID( CATID_Programmable, 0x40fc6ed5, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
+DEFINE_GUID( CATID_IsShortcut, 0x40fc6ed6, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
+DEFINE_GUID( CATID_NeverShowExt, 0x40fc6ed7, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
+DEFINE_GUID( CATID_DocObject, 0x40fc6ed8, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
+DEFINE_GUID( CATID_Printable, 0x40fc6ed9, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
+DEFINE_GUID( CATID_RequiresDataPathHost, 0x0de86a50, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_PersistsToMoniker, 0x0de86a51, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_PersistsToStorage, 0x0de86a52, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_PersistsToStreamInit, 0x0de86a53, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_PersistsToStream, 0x0de86a54, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_PersistsToMemory, 0x0de86a55, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_PersistsToFile, 0x0de86a56, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_PersistsToPropertyBag, 0x0de86a57, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_InternetAware, 0x0de86a58, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
+DEFINE_GUID( CATID_DesignTimeUIActivatableControl, 0xf2bb56d1, 0xdb07, 0x11d1, 0xaa, 0x6b, 0x00, 0x60, 0x97, 0xdb, 0x95, 0x39);
+DEFINE_GUID(CLSID_StdComponentCategoriesMgr, 0x0002e005, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
+#ifdef __cplusplus
+}
+#endif
+#endif /* __WIDL_COMCAT_H */
diff --git a/include/comcat.idl b/include/comcat.idl
new file mode 100644
index 0000000..3f75b2a
--- /dev/null
+++ b/include/comcat.idl
@@ -0,0 +1,230 @@
+/*
+ * Copyright 2002 John K. Hohm
+ * Copyright 2003 Alexandre Julliard
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+import "unknwn.idl";
+
+/*****************************************************************************
+ * Types
+ */
+typedef GUID CATID;
+typedef REFGUID REFCATID;
+cpp_quote("#define CATID_NULL GUID_NULL")
+cpp_quote("#define IsEqualCATID(rcatid1, rcatid2) IsEqualGUID(rcatid1, rcatid2)")
+
+/*****************************************************************************
+ * Aliases for EnumGUID
+ */
+#define IEnumCATID IEnumGUID
+cpp_quote("#define IEnumCATID IEnumGUID")
+cpp_quote("#define IID_IEnumCATID IID_IEnumGUID")
+cpp_quote("#define LPENUMCATID LPENUMGUID")
+#define IEnumCLSID IEnumGUID
+cpp_quote("#define IEnumCLSID IEnumGUID")
+cpp_quote("#define IID_IEnumCLSID IID_IEnumGUID")
+cpp_quote("#define LPENUMCLSID LPENUMGUID")
+
+
+/*****************************************************************************
+ * IEnumGUID
+ */
+[
+ object,
+ uuid(0002e000-0000-0000-c000-000000000046),
+ pointer_default(unique)
+]
+interface IEnumGUID : IUnknown
+{
+ typedef [unique] IEnumGUID *LPENUMGUID;
+
+ HRESULT Next(
+ [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);
+}
+
+
+/*****************************************************************************
+ * IEnumCATEGORYINFO
+ */
+[
+ object,
+ uuid(0002e011-0000-0000-c000-000000000046),
+ pointer_default(unique)
+]
+interface IEnumCATEGORYINFO : IUnknown
+{
+ typedef [unique] IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
+
+ typedef struct tagCATEGORYINFO
+ {
+ CATID catid; /* category identifier for component */
+ LCID lcid; /* locale identifier */
+ OLECHAR szDescription[128]; /* description of the category */
+ } CATEGORYINFO, *LPCATEGORYINFO;
+
+ 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);
+}
+
+
+/*****************************************************************************
+ * ICatInformation
+ */
+[
+ object,
+ uuid(0002e013-0000-0000-c000-000000000046),
+ pointer_default(unique)
+]
+interface ICatInformation : IUnknown
+{
+ typedef [unique] ICatInformation* LPCATINFORMATION;
+
+ 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)] CATID rgcatidImpl[],
+ [in] ULONG cRequired,
+ [in,size_is(cRequired)] CATID rgcatidReq[],
+ [out] IEnumCLSID** ppenumClsid);
+
+ [call_as(EnumClassesOfCategories)]
+ HRESULT RemoteEnumClassesOfCategories(
+ [in] ULONG cImplemented,
+ [in,unique,size_is(cImplemented)] CATID rgcatidImpl[],
+ [in] ULONG cRequired,
+ [in,unique,size_is(cRequired)] CATID rgcatidReq[],
+ [out] IEnumCLSID** ppenumClsid);
+
+ [local]
+ HRESULT IsClassOfCategories(
+ [in] REFCLSID rclsid,
+ [in] ULONG cImplemented,
+ [in,size_is(cImplemented)] CATID rgcatidImpl[],
+ [in] ULONG cRequired,
+ [in,size_is(cRequired)] CATID rgcatidReq[]);
+
+ [call_as(IsClassOfCategories)]
+ HRESULT RemoteIsClassOfCategories(
+ [in] REFCLSID rclsid,
+ [in] ULONG cImplemented,
+ [in,unique,size_is(cImplemented)] CATID rgcatidImpl[],
+ [in] ULONG cRequired,
+ [in,unique,size_is(cRequired)] CATID rgcatidReq[] );
+
+ HRESULT EnumImplCategoriesOfClass(
+ [in] REFCLSID rclsid,
+ [out] IEnumCATID** ppenumCatid);
+
+ HRESULT EnumReqCategoriesOfClass(
+ [in] REFCLSID rclsid,
+ [out] IEnumCATID** ppenumCatid);
+}
+
+
+/*****************************************************************************
+ * ICatRegister
+ */
+[
+ object,
+ uuid(0002e012-0000-0000-c000-000000000046),
+ pointer_default(unique)
+]
+interface ICatRegister : IUnknown
+{
+ typedef [unique] ICatRegister* LPCATREGISTER;
+
+ 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[]);
+}
+
+
+/*****************************************************************************
+ * Category IDs
+ */
+cpp_quote("DEFINE_GUID( CATID_Insertable, 0x40fc6ed3, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
+cpp_quote("DEFINE_GUID( CATID_Control, 0x40fc6ed4, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
+cpp_quote("DEFINE_GUID( CATID_Programmable, 0x40fc6ed5, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
+cpp_quote("DEFINE_GUID( CATID_IsShortcut, 0x40fc6ed6, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
+cpp_quote("DEFINE_GUID( CATID_NeverShowExt, 0x40fc6ed7, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
+cpp_quote("DEFINE_GUID( CATID_DocObject, 0x40fc6ed8, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
+cpp_quote("DEFINE_GUID( CATID_Printable, 0x40fc6ed9, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
+cpp_quote("DEFINE_GUID( CATID_RequiresDataPathHost, 0x0de86a50, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_PersistsToMoniker, 0x0de86a51, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_PersistsToStorage, 0x0de86a52, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_PersistsToStreamInit, 0x0de86a53, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_PersistsToStream, 0x0de86a54, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_PersistsToMemory, 0x0de86a55, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_PersistsToFile, 0x0de86a56, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_PersistsToPropertyBag, 0x0de86a57, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_InternetAware, 0x0de86a58, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
+cpp_quote("DEFINE_GUID( CATID_DesignTimeUIActivatableControl, 0xf2bb56d1, 0xdb07, 0x11d1, 0xaa, 0x6b, 0x00, 0x60, 0x97, 0xdb, 0x95, 0x39);")
+/* The Component Category Manager */
+cpp_quote("DEFINE_GUID(CLSID_StdComponentCategoriesMgr, 0x0002e005, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);")
diff --git a/include/wine/obj_comcat.h b/include/wine/obj_comcat.h
deleted file mode 100644
index 9b6c99c..0000000
--- a/include/wine/obj_comcat.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Defines the COM interfaces and APIs related to Component Category Manager
- *
- * Depends on 'obj_enumguid.h'.
- *
- * Copyright (C) 2002 John K. Hohm
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __WINE_WINE_OBJ_COMCAT_H
-#define __WINE_WINE_OBJ_COMCAT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-/*****************************************************************************
- * Types
- */
-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;
-
-/*****************************************************************************
- * Category IDs
- */
-DEFINE_GUID(CATID_Insertable, 0x40FC6ED3, 0x2438, 0x11CF, 0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02);
-DEFINE_GUID(CATID_Control, 0x40FC6ED4, 0x2438, 0x11CF, 0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02);
-DEFINE_GUID(CATID_Programmable, 0x40FC6ED5, 0x2438, 0x11CF, 0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02);
-DEFINE_GUID(CATID_IsShortcut, 0x40FC6ED6, 0x2438, 0x11CF, 0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02);
-DEFINE_GUID(CATID_NeverShowExt, 0x40FC6ED7, 0x2438, 0x11CF, 0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02);
-DEFINE_GUID(CATID_DocObject, 0x40FC6ED8, 0x2438, 0x11CF, 0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02);
-DEFINE_GUID(CATID_Printable, 0x40FC6ED9, 0x2438, 0x11CF, 0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02);
-DEFINE_GUID(CATID_RequiresDataPathHost, 0x0DE86A50, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_PersistsToMoniker, 0x0DE86A51, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_PersistsToStorage, 0x0DE86A52, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_PersistsToStreamInit, 0x0DE86A53, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_PersistsToStream, 0x0DE86A54, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_PersistsToMemory, 0x0DE86A55, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_PersistsToFile, 0x0DE86A56, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_PersistsToPropertyBag, 0x0DE86A57, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_InternetAware, 0x0DE86A58, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52);
-DEFINE_GUID(CATID_DesignTimeUIActivatableControl, 0xF2BB56D1, 0xDB07, 0x11D1, 0xAA, 0x6B, 0x00, 0x60, 0x97, 0xDB, 0x95, 0x39);
-
-/*****************************************************************************
- * Aliases for EnumGUID
- */
-#define IEnumCATID IEnumGUID
-#define LPENUMCATID LPENUMGUID
-#define IID_IEnumCATID IID_IEnumGUID
-
-#define IEnumCLSID IEnumGUID
-#define LPENUMCLSID LPENUMGUID
-#define IID_IEnumCLSID IID_IEnumGUID
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_OLEGUID(IID_ICatInformation, 0x0002E013L, 0, 0);
-typedef struct ICatInformation ICatInformation, *LPCATINFORMATION;
-
-DEFINE_OLEGUID(IID_ICatRegister, 0x0002E012L, 0, 0);
-typedef struct ICatRegister ICatRegister, *LPCATREGISTER;
-
-DEFINE_OLEGUID(IID_IEnumCATEGORYINFO, 0x0002E011L, 0, 0);
-typedef struct IEnumCATEGORYINFO IEnumCATEGORYINFO, *LPENUMCATEGORYINFO;
-
-/* The Component Category Manager */
-DEFINE_OLEGUID(CLSID_StdComponentCategoriesMgr, 0x0002E005L, 0, 0);
-
-/*****************************************************************************
- * ICatInformation
- */
-#define INTERFACE ICatInformation
-#define ICatInformation_METHODS \
- IUnknown_METHODS \
- STDMETHOD(EnumCategories)(THIS_ LCID lcid, IEnumCATEGORYINFO ** ppenumCatInfo) PURE; \
- STDMETHOD(GetCategoryDesc)(THIS_ REFCATID rcatid, LCID lcid, PWCHAR * ppszDesc) PURE; \
- STDMETHOD(EnumClassesOfCategories)(THIS_ ULONG cImplemented, CATID * rgcatidImpl, ULONG cRequired, CATID * rgcatidReq, IEnumCLSID ** ppenumCLSID) PURE; \
- STDMETHOD(IsClassOfCategories)(THIS_ REFCLSID rclsid, ULONG cImplemented, CATID * rgcatidImpl, ULONG cRequired, CATID * rgcatidReq) PURE; \
- STDMETHOD(EnumImplCategoriesOfClass)(THIS_ REFCLSID rclsid, IEnumCATID ** ppenumCATID) PURE; \
- STDMETHOD(EnumReqCategoriesOfClass)(THIS_ REFCLSID rclsid, IEnumCATID ** ppenumCATID) PURE;
-ICOM_DEFINE(ICatInformation,IUnknown)
-#undef INTERFACE
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#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)
-/*** ICatInformation methods ***/
-#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
-
-/*****************************************************************************
- * ICatRegister
- */
-#define INTERFACE ICatRegister
-#define ICatRegister_METHODS \
- IUnknown_METHODS \
- STDMETHOD(RegisterCategories)(THIS_ ULONG cCategories, CATEGORYINFO * rgCategoryInfo) PURE; \
- STDMETHOD(UnRegisterCategories)(THIS_ ULONG cCategories, CATID * rgcatid) PURE; \
- STDMETHOD(RegisterClassImplCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID * rgcatid) PURE; \
- STDMETHOD(UnRegisterClassImplCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID * rgcatid) PURE; \
- STDMETHOD(RegisterClassReqCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID * rgcatid) PURE; \
- STDMETHOD(UnRegisterClassReqCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID * rgcatid) PURE;
-ICOM_DEFINE(ICatRegister,IUnknown)
-#undef INTERFACE
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#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)
-/*** ICatRegister methods ***/
-#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
-
-/*****************************************************************************
- * IEnumCATEGORYINFO
- */
-#define INTERFACE IEnumCATEGORYINFO
-#define IEnumCATEGORYINFO_METHODS \
- IUnknown_METHODS \
- STDMETHOD(Next)(THIS_ ULONG celt, CATEGORYINFO * rgelt, ULONG * pceltFetched) PURE; \
- STDMETHOD(Skip)(THIS_ ULONG celt) PURE; \
- STDMETHOD(Reset)(THIS) PURE; \
- STDMETHOD(Clone)(THIS_ IEnumCATEGORYINFO ** ppenum) PURE;
-ICOM_DEFINE(IEnumCATEGORYINFO,IUnknown)
-#undef INTERFACE
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#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)
-/*** IEnumCATEGORYINFO methods ***/
-#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
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __WINE_WINE_OBJ_COMCAT_H */
diff --git a/include/wine/obj_enumguid.h b/include/wine/obj_enumguid.h
deleted file mode 100644
index 779a668..0000000
--- a/include/wine/obj_enumguid.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Defines the COM interfaces and APIs related to EnumGUID
- *
- * Depends on 'obj_base.h'.
- *
- * Copyright (C) 2002 John K. Hohm
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __WINE_WINE_OBJ_ENUMGUID_H
-#define __WINE_WINE_OBJ_ENUMGUID_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_OLEGUID(IID_IEnumGUID, 0x0002E000L, 0, 0);
-typedef struct IEnumGUID IEnumGUID, *LPENUMGUID;
-
-/*****************************************************************************
- * IEnumGUID
- */
-#define INTERFACE IEnumGUID
-#define IEnumGUID_METHODS \
- IUnknown_METHODS \
- STDMETHOD(Next)(THIS_ ULONG celt, GUID * rgelt, ULONG * pceltFetched) PURE; \
- STDMETHOD(Skip)(THIS_ ULONG celt) PURE; \
- STDMETHOD(Reset)(THIS) PURE; \
- STDMETHOD(Clone)(THIS_ IEnumGUID ** ppenum) PURE;
-ICOM_DEFINE(IEnumGUID,IUnknown)
-#undef INTERFACE
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#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)
-/*** IEnumGUID methods ***/
-#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
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __WINE_WINE_OBJ_ENUMGUID_H */