Listing 7: The Prolog() method.
HRESULT CUltraMaxService::Prolog()
{
HRESULT hr;
CComVariant var;
// Retrieve existing or create new session
if ( SUCCEEDED(hr = EnsureSession()) &&
// Instantiate UltraMax COM component
SUCCEEDED(hr = m_pUltraMax.CreateInstance("UltraMax.UltraMax")))
{
CComVariant var;
// Retrieve object state from session storage
if ( SUCCEEDED(m_spSession->GetVariable("state", &var)) )
{
var.ChangeType(VT_BSTR);
m_pUltraMax->InitFromString(var.bstrVal);
}
return S_OK;
}
else
return hr;
}