IProvQueue::AddDependency


Establishes a parent-child relationship between two queued requests. Used for requests managed by the Provisioning Queue Manager Service of Microsoft. Provisioning Framework (MPF).

This operation can be performed only when both the child and parent queues are suspended. A child request starts only after the parent request completes successfully or is retried the specified number of retries on failure.

Syntax

C++
HRESULT AddDependency  (
	BSTR bstrQueueID,
	BSTR bstrChildID
);
Visual Basic
Sub AddDependency ( _
	bstrQueueID As String, _
	bstrChildID As String  _
)

Parameters

bstrQueueID
Identifier of the parent queued request. Returned by SubmitRequest or SubmitTrustedRequest.
bstrChildID
Identifier of the child queued request. Returned by SubmitRequest or SubmitTrustedRequest.

Return Codes

Zero indicates success; a non-zero value represents an error. For a list of error codes, see MPF Errors.

C++ Example

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);

Visual Basic Example

Dim objProvQueue
Dim strRequestParent
Dim strRequestChild
Dim strQueueIDParent
Dim strQueueIDChild

' The code for creating the queue manager client and the request strings was skipped
...

' Create 2 suspended requests
strQueueIDParent = objProvQueue.SubmitTrustedRequest(strRequestParent, True)
strQueueIDChild = objProvQueue.SubmitTrustedRequest(strRequestChild, True)

' Add a parent/child relationship between them
Call objProvQueue.AddDependency(strQueueIDParent, strQueueIDChild)

' Activate the requests
objProvQueue.Activate(strQueueIDParent)
objProvQueue.Activate(strQueueIDChild)

See Also

IProvQueue


Up Top of Page
) 1999-2002 Microsoft Corporation. All rights reserved.