Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// SsrCore.cpp : Implementation of CSsrCore
#include "stdafx.h"
#include "SSRTE.h"
#include "ActionData.h"
#include "SSRTEngine.h"
#include "SsrCore.h"
#include "SSRLog.h"
#include "global.h"
#include "util.h"
//-------------------------------------------------------------------------------
// ISsrCore implementation
//-------------------------------------------------------------------------------
/*
Routine Description:
Name:
CSsrCore::CSsrCore
Functionality: constructor
Virtual: no. Arguments:
none.
Return Value:
none.
Notes:
*/
CSsrCore::CSsrCore() : m_pEngine(NULL) { if (SUCCEEDED(CComObject<CSsrEngine>::CreateInstance(&m_pEngine))) { m_pEngine->AddRef(); } }
/*
Routine Description:
Name:
CSsrCore::~CSsrCore
Functionality: destructor
Virtual: yes. Arguments:
none.
Return Value:
none.
Notes:
*/
CSsrCore::~CSsrCore() { if (m_pEngine != NULL) { m_pEngine->Release(); } }
/*
Routine Description:
Name:
CSsrCore::get_ActionData
Functionality: It returns the engine's action data object (the property bag) which holds all runtime and static data needed to carry out the action.
Virtual: Yes. Arguments:
pVal - out parameter receives the ISsrActionData object of the engine.
Return Value:
Success: S_OK
Failure:
various error codes.
Notes: */
STDMETHODIMP CSsrCore::get_ActionData ( OUT VARIANT * pVal // [out, retval]
) { HRESULT hr = E_NOTIMPL; if (pVal == NULL) { hr = E_INVALIDARG; }
::VariantInit(pVal);
if (m_pEngine != NULL) { pVal->vt = VT_DISPATCH; hr = m_pEngine->GetActionData((ISsrActionData **)&(pVal->pdispVal)); if (hr != S_OK) { pVal->vt = VT_EMPTY; } } else { hr = E_SSR_ENGINE_NOT_AVAILABLE; }
return hr; }
/*
Routine Description:
Name:
CSsrCore::get_Engine
Functionality: It returns the engine itself.
Virtual: Yes. Arguments:
pVal - out parameter receives the ISsrEngine object.
Return Value:
Success: S_OK
Failure:
various error codes.
Notes: */
STDMETHODIMP CSsrCore::get_Engine ( OUT VARIANT * pVal // [out, retval]
) { HRESULT hr = S_OK; if (pVal == NULL) { hr = E_INVALIDARG; }
::VariantInit(pVal);
if (m_pEngine != NULL) { pVal->vt = VT_DISPATCH; hr = m_pEngine->QueryInterface(IID_ISsrEngine, (LPVOID*)&(pVal->pdispVal)); if (hr != S_OK) { pVal->vt = VT_EMPTY; hr = E_SSR_ENGINE_NOT_SUPPORT_INTERFACE; } } else { hr = E_SSR_ENGINE_NOT_AVAILABLE; }
return hr; }
/*
Routine Description:
Name:
CSsrCore::get_SsrLog
Functionality: It returns the engine's logging object.
Virtual:
Yes.
Arguments:
pVal - out parameter receives the ISsrPreProcessor object.
Return Value:
Success:
S_OK
Failure:
various error codes.
Notes:
*/
STDMETHODIMP CSsrCore::get_SsrLog ( OUT VARIANT * pVal // [out, retval]
) { return g_fblog.GetLogObject(pVal); }
|