| Platform SDK: Active Directory, ADSI, and Directory Services |
The IADsPrintJobOperations interface is used to control a print job across a network. A print job object that implements the IADsPrintJob interface will also support the following functionality for this interface:
IADsPrintJobOperations is a dual interface that inherits from IADs. The IADsPrintJobOperations interface exposes the following methods.
| IUnknown methods | Description |
|---|---|
| QueryInterface | Returns pointers to supported interfaces. |
| AddRef | Increments reference count. |
| Release | Decrements reference count. |
| IDispatch methods | Description |
|---|---|
| GetTypeInfoCount | Gets the number of type descriptions. |
| GetTypeInfo | Gets a description of the object's programmable interface. |
| GetIDsOfNames | Maps the name of the method or property to DISPID. |
| Invoke | Calls one of the object's methods, or gets and sets one of its properties. |
| IADsPrintJobOperations properties and methods | Description |
|---|---|
| get_Status | Tracks the status of the print job. |
| get_TimeElapsed | Tracks the elapsed time, in seconds, since the job started printing. |
| get_PagesPrinted | Tracks the number of pages completed. |
| get/put_Position | Tracks the numeric position of the print job in the print queue. |
| Pause | Pauses processing of this print job. |
| Resume | Resumes processing of this print job. |
The following Visual Basic code fragment shows how this interface can be used.
Dim pqo As IADsPrintQueueOperations
Dim pjo As IADsPrintJobOperations
Set pqo = GetObject("WinNT://aMachine/aPrinter")
For each pj in pqo.PrintJobs
set pjo = pj
MsgBox "Print job status: " & Hex(pjo.status)
Next
The following C++ code fragment shows how this interface can be used.
IADsPrintJobOperations *pjo;
IADsPrintQueueOperations *pqo;
HRESULT hr ;
hr = ADsGetObject(L"WinNT://aMachine/aPrinter",
IID_IADsPrintQueueOperations,
(void**)&pqo);
if (FAILED(hr)) exit(hr);
IADsCollection *pColl;
hr = pqo->PrintJobs(&pColl);
IUnknown *pUnk = NULL;
hr = pColl->get__NewEnum(&pUnk);
pColl->Release();
if (FAILED(hr) ) exit(hr);
IEnumVARIANT *pEnum;
hr = pUnk->QueryInterface(IID_IEnumVARIANT,(void**)&pEnum);
pUnk->Release();
if (FAILED(hr)) exit(hr);
// Now Enumerate
VARIANT var;
ULONG lFetch;
IDispatch *pDisp;
long status;
VariantInit(&var);
hr = pEnum->Next(1, &var, &lFetch);
while(hr == S_OK)
{
if (lFetch == 1)
{
pDisp = V_DISPATCH(&var);
pDisp->QueryInterface(IID_IADsPrintJobOperations,
(void**)&pjo);
pjo->get_Status(&status);
printf("Job status: %x\n",status);
pjo->Release();
}
VariantClear(&var);
pDisp=NULL;
hr = pEnum->Next(1, &var, &lFetch);
};
hr = pEnum->Release();
hr = pqo->Release();
Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with DSClient).
Windows 95/98: Requires Windows 95 or later (with DSClient).
Header: Declared in Iads.h.