Listing 10: Wrapped COM methods.

HRESULT CUltraMaxService::GetReleaseDate(BSTR* CurrentDate)
{
        HRESULT hr = Prolog();
        if ( FAILED(hr) ) return hr;
    COleDateTime dtCurrentDate;
    if ( dtCurrentDate.ParseDateTime(CString(*CurrentDate)) )
    {
        hr = m_pUltraMax->raw_GetReleaseDate(&dtCurrentDate.m_dt);
        *CurrentDate  = _bstr_t(dtCurrentDate.Format("%Y-%m-%d")).Detach();
    }
    else
        hr = E_FAIL;
    return Epilog(hr);
}