windows-nt/Source/XPSP1/NT/public/internal/com/inc/partitions.idl
2020-09-26 16:20:57 +08:00

212 lines
5.6 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000.
//
// File:
// partitions.idl
//
// Contents:
// Definition of interfaces for partitions.
//
// History:
// SteveJam 01-22-2000 Created
//
//--------------------------------------------------------------------------
#ifndef DO_NO_IMPORTS
import "objidl.idl";
#endif
// some existing interfaces consolidated here from CLBCatQ.idl (COM+) and cat_int.idl (ole32)
// IUserToken: interface on user token object
[
object,
local,
pointer_default(unique),
uuid(000001FC-0000-0000-C000-000000000046)
]
interface IUserToken : IUnknown
{
HRESULT GetUserClassesRootKey ([out] HKEY *phKey);
HRESULT ReleaseUserClassesRootKey (void);
HRESULT GetUserSid ([out] BYTE **ppSid, [out] USHORT *pcbSid);
};
// IPartitionProperty: interface on partition object and partition context property
[
object,
local,
pointer_default(unique),
uuid(000001F2-0000-0000-C000-000000000046)
]
interface IPartitionProperty : IUnknown
{
HRESULT GetPartitionID([out] GUID* pGuid);
HRESULT SetPartitionID([in] GUID* pGuid);
}
// IPartitionLookup: interface on catalog object for local partition lookup and validation
[
object,
local,
pointer_default(unique),
uuid(000001F8-0000-0000-C000-000000000046)
]
interface IPartitionLookup : IUnknown
{
HRESULT GetDefaultPartitionForUser ([out] IPartitionProperty** ppPartitionProperty);
HRESULT IsPartitionValidForUser ([in] GUID* pguidPartitionId, [out] BOOL* pfIsPartitionValid);
HRESULT GetDefaultPartitionForUserByToken ([in] IUserToken *pUserToken, [out] IPartitionProperty** ppPartitionProperty);
HRESULT IsPartitionValidForUserByToken ([in] IUserToken *pUserToken, [in] GUID* pguidPartitionId, [out] BOOL* pfIsPartitionValid);
HRESULT IsLocalStoreEnabled([out] BOOL *pfEnabled);
HRESULT IsDSLookupEnabled([out] BOOL *pfEnabled);
}
// IReplaceClassInfo: interface on activators to get replacement class info
[
object,
local,
pointer_default(unique),
uuid(000001FB-0000-0000-C000-000000000046)
]
interface IReplaceClassInfo : IUnknown
{
HRESULT GetClassInfo ([in] REFGUID guidConfiguredClsid, [in] REFIID riid, [out] void** ppv);
}
// IGetCatalogObject: interface on act props to get the catalog
[
object,
local,
pointer_default(unique),
uuid(000001FE-0000-0000-C000-000000000046)
]
interface IGetCatalogObject : IUnknown
{
HRESULT GetCatalogObject ([in] REFIID riid, [out] void** ppv);
}
// IComCatalogInternal: Required interface on catalog object.
[
object,
local,
pointer_default(unique),
uuid(a6304910-4115-11d2-8133-0060089f5fed)
]
interface IComCatalogInternal : IUnknown
{
HRESULT GetClassInfo ([in] IUserToken *pUserToken,
[in] REFGUID guidConfiguredClsid,
[in] REFIID riid,
[out] void** ppv,
[in] void* pvReserved);
HRESULT GetApplicationInfo ([in] IUserToken *pUserToken,
[in] REFGUID guidApplId,
[in] REFIID riid,
[out] void** ppv,
[in] void* pvReserved);
HRESULT GetProcessInfo ([in] IUserToken *pUserToken,
[in] REFGUID guidProcess,
[in] REFIID riid,
[out] void** ppv,
[in] void* pvReserved);
HRESULT GetServerGroupInfo ([in] IUserToken *pUserToken,
[in] REFGUID guidServerGroup,
[in] REFIID riid,
[out] void** ppv,
[in] void* pvReserved);
HRESULT GetRetQueueInfo ([in] IUserToken *pUserToken,
[in,string] WCHAR* wszFormatName,
[in] REFIID riid,
[out] void** ppv,
[in] void* pvReserved);
HRESULT GetApplicationInfoForExe ([in] IUserToken *pUserToken,
[in,string] WCHAR* pwszExeName,
[in] REFIID riid,
[out] void** ppv,
[in] void* pvReserved);
HRESULT GetTypeLibrary ([in] IUserToken *pUserToken,
[in] REFGUID guidTypeLib,
[in] REFIID riid,
[out] void** ppv,
[in] void* pvReserved);
HRESULT GetInterfaceInfo ([in] IUserToken *pUserToken,
[in] REFIID iidInterface,
[in] REFIID riid,
[out] void** ppv,
[in] void* pComCatalog);
HRESULT FlushCache();
HRESULT GetClassInfoFromProgId ([in] IUserToken *pUserToken,
[in] WCHAR *pwszProgID,
[in] REFIID riid,
[out] void **ppv,
[in] void* pComCatalog);
};
// IComCatalog2Internal: interface on catalog object for partition and application queries
[
object,
local,
pointer_default(unique),
uuid(3310dab4-edc0-4ce9-8a9c-8fea2980fd89)
]
interface IComCatalog2Internal : IUnknown
{
HRESULT GetClassInfoByPartition ([in] IUserToken *pUserToken, [in] REFGUID guidConfiguredClsid,
[in] REFGUID guidPartitionId, [in] REFIID riid, [out] void** ppv, [in] void* pComCatalog);
HRESULT GetClassInfoByApplication ([in] IUserToken *pUserToken, [in] REFGUID guidConfiguredClsid,
[in] REFGUID guidPartitionId, [in] REFGUID guidApplId, [in] REFIID riid, [out] void** ppv, [in] void* pComCatalog);
}
// IComCatalogLocation: interface for notifying catalogs of their location (i.e., in SCM or not)
[
object,
local,
pointer_default(unique),
uuid(fae51051-9887-47f2-af44-7392bf90039b)
]
interface IComCatalogLocation : IUnknown
{
HRESULT SetCatalogLocation ([in] BOOL bInSCM);
HRESULT GetCatalogLocation ([out] BOOL* pbInSCM);
}
// ICacheControl: debugging interface on some cachable objects
[
object,
local,
pointer_default(unique),
uuid(59a47420-0094-11d2-bbf7-0060089f5fed)
]
interface ICacheControl : IUnknown
{
ULONG CacheAddRef(void);
ULONG CacheRelease(void);
}