Typical C++ Usage
IProvQueue *pProvQueue = NULL;
BSTR bstrRequest = NULL;
BSTR bstrQueueID = NULL;
BOOL fRequestMustGo = FALSE;
HRESULT hr = E_OUTOFMEMORY;
// The code for creating the queue manager client and the request string was skipped
...
// Create a suspended request
hr = pProvQueue->SubmitTrustedRequest(bstrRequest, TRUE, &bstrQueueID);
if(FAILED(hr)) goto LocalCleanup;
// Do something; set fRequestMustGo on success
...
if(fRequestMustGo)
{
// Everything is OK; activate the request
hr = pProvQueue->Activate(bstrQueueID);
}
else
{
// An error occured; delete the request
hr = pProvQueue->Delete(bstrQueueID);
}
// Clean up
LocalCleanup:
if(pProvQueue)
pProvQueue->Release();
::SysFreeString(bstrRequest);
::SysFreeString(bstrQueueID);