windows-nt/Source/XPSP1/NT/com/published/idlole/comcat/comcat.idl
2020-09-26 16:20:57 +08:00

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")