Partager via


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

IADs

Méthodes de propriété IADsPrintJob

IADsPrintJobOperations

IADsPrintQueueOperations::P rintJobs

IDispatch