|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995.
//
// File:
// objexif.cxx
//
// Contents:
// Entry point for remote activation call to SCM/OR.
//
// Functions:
// RemoteGetClassObject
// RemoteCreateInstance
//
// History:
//
//--------------------------------------------------------------------------
#include "act.hxx"
//-------------------------------------------------------------------------
//
// Function: _RemoteGetClassObject
//
// Synopsis: Entry point for 5.6 get class object activations. Forwards to
// PerformScmStage.
//
//-------------------------------------------------------------------------
HRESULT _RemoteGetClassObject( handle_t hRpc, ORPCTHIS *ORPCthis, ORPCTHAT *ORPCthat, IN MInterfacePointer * pInActProperties, OUT MInterfacePointer ** ppOutActProperties ) { RPC_STATUS sc; LOCALTHIS Localthis; HRESULT hr;
if (ORPCthis == NULL || ORPCthat == NULL) return E_INVALIDARG; Localthis.dwClientThread = 0; Localthis.dwFlags = LOCALF_NONE; ORPCthis->flags |= ORPCF_DYNAMIC_CLOAKING; ORPCthat->flags = 0; ORPCthat->extensions = NULL;
if ( ! s_fEnableDCOM ) { return E_ACCESSDENIED; }
// Determine what version to use for the returned interface. Fail
// if the client wants a version we don't support.
hr = NegotiateDCOMVersion( &ORPCthis->version ); if (hr != OR_OK) { return hr; }
RegisterAuthInfoIfNecessary();
ACTIVATION_PARAMS ActParams; memset(&ActParams, 0, sizeof(ActParams));
ActParams.MsgType = GETCLASSOBJECT; ActParams.hRpc = hRpc; ActParams.ORPCthis = ORPCthis; ActParams.Localthis = &Localthis; ActParams.ORPCthat = ORPCthat; ActParams.oldActivationCall = FALSE; ActParams.RemoteActivation = TRUE;
return PerformScmStage(SERVER_MACHINE_STAGE, &ActParams, pInActProperties, ppOutActProperties); }
//-------------------------------------------------------------------------
//
// Function: _RemoteGetCreateInstance
//
// Synopsis: Entry point for 5.6 create instance activations. Forwards to
// PerformScmStage.
//
//-------------------------------------------------------------------------
HRESULT _RemoteCreateInstance( handle_t hRpc, ORPCTHIS *ORPCthis, ORPCTHAT *ORPCthat, IN MInterfacePointer * pUnk, IN MInterfacePointer * pInActProperties, OUT MInterfacePointer ** ppOutActProperties ) { RPC_STATUS sc; LOCALTHIS Localthis; HRESULT hr;
if (ORPCthis == NULL || ORPCthat == NULL) return E_INVALIDARG; Localthis.dwClientThread = 0; Localthis.dwFlags = LOCALF_NONE; ORPCthis->flags |= ORPCF_DYNAMIC_CLOAKING; ORPCthat->flags = 0; ORPCthat->extensions = NULL;
if ( ! s_fEnableDCOM ) { return E_ACCESSDENIED; }
// Determine what version to use for the returned interface. Fail
// if the client wants a version we don't support.
hr = NegotiateDCOMVersion( &ORPCthis->version ); if (hr != OR_OK) { return hr; }
RegisterAuthInfoIfNecessary();
ACTIVATION_PARAMS ActParams; memset(&ActParams, 0, sizeof(ActParams));
ActParams.MsgType = CREATEINSTANCE; ActParams.hRpc = hRpc; ActParams.ORPCthis = ORPCthis; ActParams.Localthis = &Localthis; ActParams.ORPCthat = ORPCthat; ActParams.oldActivationCall = FALSE; ActParams.RemoteActivation = TRUE;
return PerformScmStage(SERVER_MACHINE_STAGE, &ActParams, pInActProperties, ppOutActProperties); }
//-------------------------------------------------------------------------
//
// Function: _DummyQueryInterfaceIRemoteSCMActivator
//
// Synopsis: Unused function required by linker. This function exists
// to make the activation interface wire compatible with a
// COM interface.
//
//-------------------------------------------------------------------------
HRESULT _DummyQueryInterfaceIRemoteSCMActivator(handle_t rpc, ORPCTHIS *orpcthis, ORPCTHAT *orpcthat, DWORD dummy ) { return E_NOTIMPL; }
//-------------------------------------------------------------------------
//
// Function: _DummyAddRefIRemoteSCMActivator
//
// Synopsis: Unused function required by linker. This function exists
// to make the activation interface wire compatible with a
// COM interface.
//
//-------------------------------------------------------------------------
HRESULT _DummyAddRefIRemoteSCMActivator(handle_t rpc, ORPCTHIS *orpcthis, ORPCTHAT *orpcthat, DWORD dummy ) { return E_NOTIMPL; }
//-------------------------------------------------------------------------
//
// Function: _DummyReleaseIRemoteSCMActivator
//
// Synopsis: Unused function required by linker. This function exists
// to make the activation interface wire compatible with a
// COM interface.
//
//-------------------------------------------------------------------------
HRESULT _DummyReleaseIRemoteSCMActivator(handle_t rpc, ORPCTHIS *orpcthis, ORPCTHAT *orpcthat, DWORD dummy ) { return E_NOTIMPL; }
|