//+------------------------------------------------------------------------- // // 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); }