Interface IADsPrintJob (iads.h)
L’interface IADsPrintJob est une double interface qui hérite des IAD. Il est conçu pour représenter un travail d’impression. Lorsqu’un utilisateur envoie une demande à une imprimante pour imprimer un document, un travail d’impression est créé dans la file d’attente d’impression. Les méthodes de propriété vous permettent d’accéder aux informations relatives à un travail d’impression. Ces informations incluent l’imprimante qui effectue l’impression, qui a envoyé le document, le moment où le document a été envoyé et le nombre de pages qui seront imprimées.
Héritage
L’interface IADsPrintJob hérite d’IDispatch et d’IADs. IADsPrintJob a également les types de membres suivants :
Notes
Pour gérer un travail d’impression sur un réseau, utilisez l’interface IADsPrintJobOperations, qui prend en charge la fonctionnalité permettant d’examiner les status d’un travail d’impression et de suspendre ou de reprendre l’opération d’impression du document, etc.
Pour accéder aux travaux d’impression d’une file d’attente d’impression, appelez la méthode IADsPrintQueueOperations::P rintJobs pour obtenir l’objet de collection contenant tous les travaux d’impression dans la file d’attente d’impression.
Exemples
L’exemple de code suivant montre comment gérer un travail d’impression envoyé à l’imprimante, « \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
L’exemple de code suivant montre comment gérer un travail d’impression envoyé à l’imprimante, « \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();
Spécifications
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | iads.h |
Voir aussi
Méthodes de propriété IADsPrintJob