Interfaccia IADsPrintJob (iads.h)
L'interfaccia IADsPrintJob è un'interfaccia doppia che eredita da ID. È progettato per rappresentare un processo di stampa. Quando un utente invia una richiesta a una stampante per stampare un documento, viene creato un processo di stampa nella coda di stampa. I metodi di proprietà consentono di accedere alle informazioni su un processo di stampa. Tali informazioni includono la stampante che esegue la stampa, che ha inviato il documento, quando il documento è stato inviato e il numero di pagine da stampare.
L'interfaccia IADsPrintJob eredita da IDispatch e IAD. IADsPrintJob include anche questi tipi di membri:
Per gestire un processo di stampa in una rete, usare l'interfaccia IADsPrintJobOperations , che supporta la funzionalità per esaminare lo stato di un processo di stampa e per sospendere o riprendere l'operazione di stampa del documento e così via.
Per accedere a tutti i processi di stampa in una coda di stampa, chiamare il metodo IADsPrintQueueOperations::P rintJobs per ottenere l'oggetto raccolta che contiene tutti i processi di stampa nella coda di stampa.
Nell'esempio di codice seguente viene illustrato come gestire un processo di stampa inviato alla stampante" "\aMachine\aPrinter".
Dim pq As IADsPrintQueue
Dim pqo As IADsPrintQueueOperations
Dim pj As IADsPrintJob
Dim pjo As IADsPrintJobOperations
Dim pjs As IADsCollection
On Error GoTo Cleanup
Set pq = GetObject("WinNT://aMachine/aPrinter")
Set pqo = pq
For Each pj In pqo.PrintJobs
MsgBox pj.class
MsgBox pj.description
MsgBox pj.HostPrintQueue
Set pjo = pj
If Hex(pjo.status) = 10 ' printing
pjo.Pause
Else
pjo.Resume
End If
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set pq = Nothing
Set pqo = Nothing
Set pj = Nothing
Set pjo = Nothing
Set pjs = Nothing
Nell'esempio di codice seguente viene illustrato come gestire un processo di stampa inviato alla stampante" "\aMachine\aPrinter".
IADsPrintJobOperations *pjo = NULL;
IADsPrintQueueOperations *pqo = NULL;
IADsCollection *pColl = NULL;
IUnknown *pUnk = NULL;
IEnumVARIANT *pEnum = NULL;
VARIANT var;
ULONG lFetch = 0;
IDispatch *pDisp = NULL;
long status;
HRESULT hr = S_OK;
hr = ADsGetObject(L"WinNT://aMachine/aPrinter",
IID_IADsPrintQueueOperations,
(void**)&pqo);
if(FAILED(hr)){goto Cleanup;}
hr = pqo->PrintJobs(&pColl);
hr = pColl->get__NewEnum(&pUnk);
if(FAILED(hr)){goto Cleanup;}
hr = pUnk->QueryInterface(IID_IEnumVARIANT,(void**)&pEnum);
if(FAILED(hr)){goto Cleanup;}
// Now Enumerate
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);
if(stats == ADS_JOB_PRINTING) {
pjo.Pause();
}
else {
pjo.Resume();
}
pjo->Release();
}
pDisp->Release();
VariantClear(&var);
hr = pEnum->Next(1, &var, &lFetch);
};
Cleanup:
VariantClear(&var);
if(pColl) pColl->Release();
if(pUnk) pUnk->Release();
if(pEnum) pEnum->Release();
if(pqo) pqo->Release();
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | iads.h |
Metodi di proprietà IADsPrintJob