271 lines
8.4 KiB
Plaintext
271 lines
8.4 KiB
Plaintext
//+---------------------------------------------------------------------------
|
|
//
|
|
// 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")
|
|
|