146 lines
4.4 KiB
Plaintext
146 lines
4.4 KiB
Plaintext
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1995.
|
||
|
//
|
||
|
// File:
|
||
|
// dscm.idl
|
||
|
//
|
||
|
// Contents:
|
||
|
// Definition of private COM interface between ole32.dll
|
||
|
// and the SCM.
|
||
|
//
|
||
|
// History:
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
[
|
||
|
uuid(00000136-0000-0000-C000-000000000046),
|
||
|
version(0.0),
|
||
|
pointer_default(unique)
|
||
|
#ifndef RAW
|
||
|
,object
|
||
|
#endif
|
||
|
]
|
||
|
|
||
|
interface IDSCM
|
||
|
#ifndef RAW
|
||
|
: IUnknown
|
||
|
#endif
|
||
|
{
|
||
|
#ifndef DO_NO_IMPORTS
|
||
|
import "iface.idl";
|
||
|
import "wtypes.idl";
|
||
|
import "objidl.idl";
|
||
|
import "obase.idl";
|
||
|
#endif
|
||
|
#include "comhndl.h"
|
||
|
|
||
|
COM_DEFINES(IDSCM)
|
||
|
|
||
|
//
|
||
|
// Clsid - CLSID to activate
|
||
|
// pServerInfo - Location/Security info specified by client
|
||
|
// pwszWinstaDesktop- Client's winsta\desktop
|
||
|
// ClsContext - Class context requested
|
||
|
// ProcessSignature - Client's process reference for rpcss
|
||
|
// pEnvBlock - The optional client environment block.
|
||
|
// EnvBlockSize - Chars (including 2 trailing nulls) in the env block.
|
||
|
//
|
||
|
typedef struct _ACTIVATION_INFO
|
||
|
{
|
||
|
GUID Clsid;
|
||
|
[string] WCHAR *pwszServerName;
|
||
|
COAUTHINFO * pAuthInfo;
|
||
|
[string] WCHAR *pwszWinstaDesktop;
|
||
|
DWORD ClsContext;
|
||
|
ULONG64 ProcessSignature;
|
||
|
#ifndef _CHICAGO_
|
||
|
[size_is(EnvBlockLength)]
|
||
|
WCHAR * pEnvBlock;
|
||
|
DWORD EnvBlockLength;
|
||
|
#endif //_CHICAGO_
|
||
|
ULONG RestrictedSidCount;
|
||
|
[size_is(RestrictedSidCount)]
|
||
|
SID_AND_ATTRIBUTES * pRestrictedSids;
|
||
|
} ACTIVATION_INFO;
|
||
|
|
||
|
HRESULT SCMGetClassObject(
|
||
|
COM_HANDLE
|
||
|
[in] ACTIVATION_INFO * pActivationInfo,
|
||
|
[in] IID * pIID,
|
||
|
|
||
|
//
|
||
|
// OR piggyback of ClientResolveOXID.
|
||
|
//
|
||
|
[in] long Apartment,
|
||
|
[out] OXID * pOxidServer,
|
||
|
[out] DUALSTRINGARRAY ** ppServerORBindings,
|
||
|
[out] OXID_INFO * pOxidInfo,
|
||
|
[out] MID * pLocalMidOfRemote,
|
||
|
|
||
|
[out] DWORD * pDllServerModel,
|
||
|
[out,string] WCHAR ** ppwszDllServer,
|
||
|
|
||
|
// ClassFactory interface data.
|
||
|
[out] MInterfacePointer ** ppIDClassFactory
|
||
|
);
|
||
|
|
||
|
HRESULT SCMCreateInstance(
|
||
|
COM_HANDLE
|
||
|
[in] ACTIVATION_INFO * pActivationInfo,
|
||
|
|
||
|
[in] DWORD Interfaces,
|
||
|
[in,size_is(Interfaces)] IID * pIIDs,
|
||
|
|
||
|
//
|
||
|
// OR piggyback of ClientResolveOXID.
|
||
|
//
|
||
|
[in] long Apartment,
|
||
|
[out] OXID * pOxidServer,
|
||
|
[out] DUALSTRINGARRAY ** ppServerORBindings,
|
||
|
|
||
|
[out] OXID_INFO * pOxidInfo,
|
||
|
[out] MID * pLocalMidOfRemote,
|
||
|
|
||
|
[out] DWORD * pDllServerModel,
|
||
|
[out,string] WCHAR ** ppwszDllServer,
|
||
|
|
||
|
// Interface data and results.
|
||
|
[out,size_is(Interfaces)] MInterfacePointer ** ppInterfaceData,
|
||
|
[out,size_is(Interfaces)] HRESULT * pResults
|
||
|
);
|
||
|
|
||
|
HRESULT SCMGetPersistentInstance(
|
||
|
COM_HANDLE
|
||
|
[in] ACTIVATION_INFO * pActivationInfo,
|
||
|
|
||
|
[in, string, unique] WCHAR * pwszPath,
|
||
|
[in, unique] MInterfacePointer *pIFDStorage,
|
||
|
[in] DWORD FileMode,
|
||
|
#ifdef DFSACTIVATION
|
||
|
[in] BOOL FileWasOpened,
|
||
|
#endif
|
||
|
[in] DWORD Interfaces,
|
||
|
[in,size_is(Interfaces)] IID * pIIDs,
|
||
|
|
||
|
//
|
||
|
// OR piggyback of ClientResolveOXID.
|
||
|
//
|
||
|
[in] long Apartment,
|
||
|
[out] OXID * pOxidServer,
|
||
|
[out] DUALSTRINGARRAY ** ppServerORBindings,
|
||
|
|
||
|
[out] OXID_INFO * pOxidInfo,
|
||
|
[out] MID * pLocalMidOfRemote,
|
||
|
|
||
|
[out] BOOL * pFoundInROT,
|
||
|
|
||
|
[out] DWORD * pDllServerModel,
|
||
|
[out,string] WCHAR ** ppwszDllServer,
|
||
|
|
||
|
// Interface data and results.
|
||
|
[out,size_is(Interfaces)] MInterfacePointer ** ppInterfaceData,
|
||
|
[out,size_is(Interfaces)] HRESULT * pResults
|
||
|
);
|
||
|
}
|