57 lines
2.2 KiB
C++
57 lines
2.2 KiB
C++
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Microsoft WMIOLE DB Implementation
|
|
//
|
|
// (C) Copyright 1999 By Microsoft Corporation.
|
|
//
|
|
// Module : CMDCREAT.CPP - IDBCreateCommand interface implementation
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
#include "headers.h"
|
|
#include "command.h"
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Creates a Command object.
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
STDMETHODIMP CImpIDBCreateCommand::CreateCommand( IUnknown * pUnkOuter, REFIID riid, IUnknown** ppCommand )
|
|
{
|
|
|
|
HRESULT hr;
|
|
CSetStructuredExceptionHandler seh;
|
|
|
|
TRY_BLOCK;
|
|
|
|
//=========================================================================
|
|
// Seriliaze the object
|
|
//=========================================================================
|
|
CAutoBlock cab(m_pCDBSession->GetCriticalSection());
|
|
|
|
//=========================================================================
|
|
// Clear previous Error Object for this thread
|
|
//=========================================================================
|
|
g_pCError->ClearErrorInfo();
|
|
|
|
//=========================================================================
|
|
// Initialize output param
|
|
//=========================================================================
|
|
if (ppCommand)
|
|
{
|
|
*ppCommand = NULL;
|
|
}
|
|
|
|
//=========================================================================
|
|
// Call this function to create a command
|
|
//=========================================================================
|
|
hr = m_pCDBSession->CreateCommand(pUnkOuter,riid,ppCommand);
|
|
|
|
//=========================================================================
|
|
// Since only failure codes can hit this return, just post
|
|
// the error record here
|
|
//=========================================================================
|
|
hr = hr == S_OK ? hr : g_pCError->PostHResult(hr, &IID_IDBCreateCommand);
|
|
|
|
CATCH_BLOCK_HRESULT(hr,L"IDBCreateCommand::CreateCommand");
|
|
|
|
return hr;
|
|
}
|