Freigeben über


IADsPrintJob-Schnittstelle (iads.h)

Die IADsPrintJob-Schnittstelle ist eine duale Schnittstelle, die von IADs erbt. Es ist für die Darstellung eines Druckauftrags konzipiert. Wenn ein Benutzer eine Anforderung zum Drucken eines Dokuments an einen Drucker sendet, wird in der Druckwarteschlange ein Druckauftrag erstellt. Mit den Eigenschaftenmethoden können Sie auf die Informationen zu einem Druckauftrag zugreifen. Zu diesen Informationen gehört, welcher Drucker den Druck durchführt, wer das Dokument eingereicht hat, wann das Dokument eingereicht wurde und wie viele Seiten gedruckt werden.

Vererbung

Die IADsPrintJob-Schnittstelle erbt von IDispatch und IADs. IADsPrintJob verfügt auch über folgende Membertypen:

Hinweise

Um einen Druckauftrag in einem Netzwerk zu verwalten, verwenden Sie die IADsPrintJobOperations-Schnittstelle, die die Funktionalität unterstützt, um die status eines Druckauftrags zu untersuchen und den Druckvorgang des Dokuments anzuhalten oder fortzusetzen usw.

Um auf Druckaufträge in einer Druckwarteschlange zuzugreifen, rufen Sie die IADsPrintQueueOperations::P rintJobs-Methode auf, um das Sammlungsobjekt abzurufen, das alle Druckaufträge in der Druckwarteschlange enthält.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie einen an den Drucker übermittelten Druckauftrag "\aMachine\aPrinter" verwalten.

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

Das folgende Codebeispiel zeigt, wie Sie einen an den Drucker übermittelten Druckauftrag "\aMachine\aPrinter" verwalten.

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h

Weitere Informationen

Iads

Methoden der IADsPrintJob-Eigenschaft

IADsPrintJobOperations

IADsPrintQueueOperations::P rintJobs

IDispatch