//+--------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Contents: Component Categories Interfaces // //---------------------------------------------------------------------------- cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// ComCat.h") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") cpp_quote("// PARTICULAR PURPOSE.") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("") cpp_quote("#pragma comment(lib,\"uuid.lib\")") cpp_quote("") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// OLE Componet Categories Interfaces.") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("//") #ifndef DO_NO_IMPORTS import "unknwn.idl"; #endif interface IEnumGUID; interface IEnumCATEGORYINFO; interface ICatRegister; interface ICatInformation; cpp_quote("EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;") cpp_quote("") cpp_quote("////////////////////////////////////////////////////////////////////////////") cpp_quote("// Types") typedef GUID CATID; typedef REFGUID REFCATID; cpp_quote("#define IID_IEnumCLSID IID_IEnumGUID") cpp_quote("#define IEnumCLSID IEnumGUID") cpp_quote("#define LPENUMCLSID LPENUMGUID") #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") #define IEnumCATID IEnumGUID cpp_quote("") cpp_quote("////////////////////////////////////////////////////////////////////////////") cpp_quote("// Category IDs (link to uuid3.lib)") 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("") cpp_quote("////////////////////////////////////////////////////////////////////////////") cpp_quote("// Interface Definitions") //+--------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Contents: IEnumGUID interface definition // //---------------------------------------------------------------------------- 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; 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); } cpp_quote("#endif") //+--------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Contents: IEnumCATEGORYINFO definition // //---------------------------------------------------------------------------- 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 typedef struct tagCATEGORYINFO { CATID catid; LCID lcid; OLECHAR szDescription[CATDESC_MAX]; } 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); } cpp_quote("#endif") //+--------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Contents: ICatRegister definition // //---------------------------------------------------------------------------- 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; 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") //+--------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Contents: ICatInformation definition // //---------------------------------------------------------------------------- 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; 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); } cpp_quote("#endif")