Typical C++ Usage
IProvQueue *pProvQueue = NULL;
BSTR bstrRequestParent = NULL;
BSTR bstrRequestChild = NULL;
BSTR bstrQueueIDParent = NULL;
BSTR bstrQueueIDChild = NULL;
HRESULT hr = E_OUTOFMEMORY;
// The code for creating the queue manager client and the request strings was skipped
...
// Create 2 suspended requests
hr = pProvQueue->SubmitTrustedRequest(bstrRequestParent, TRUE, &bstrQueueIDParent);
if(FAILED(hr)) goto LocalCleanup;
hr = pProvQueue->SubmitTrustedRequest(bstrRequestChild, TRUE, &bstrQueueIDChild);
if(FAILED(hr)) goto LocalCleanup;
// Add a parent/child relationship between them
hr = pProvQueue-> AddDependency(bstrQueueIDParent, bstrQueueIDChild);
if(FAILED(hr)) goto LocalCleanup;
// Activate the requests
hr = pProvQueue->Activate(bstrQueueIDParent);
if(FAILED(hr)) goto LocalCleanup;
hr = pProvQueue->Activate(bstrQueueIDChild);
// Clean up
LocalCleanup:
if(pProvQueue)
pProvQueue->Release();
::SysFreeString(bstrRequestParent);
::SysFreeString(bstrRequestChild);
::SysFreeString(bstrQueueIDParent);
::SysFreeString(bstrQueueIDChild);