Поделиться через


Интерфейс IADsPrintJob (iads.h)

Интерфейс IADsPrintJob — это двойной интерфейс, который наследуется от IAD. Он предназначен для представления задания печати. Когда пользователь отправляет на принтер запрос на печать документа, в очереди печати создается задание печати. Методы свойств позволяют получить доступ к сведениям о задании печати. Эта информация включает в себя, какой принтер выполняет печать, кто отправил документ, когда был отправлен документ и сколько страниц будет напечатано.

Наследование

Интерфейс IADsPrintJob наследуется от IDispatch и IAD. IADsPrintJob также имеет следующие типы элементов:

Комментарии

Для управления заданием печати по сети используйте интерфейс IADsPrintJobOperations , который поддерживает функцию проверки состояния задания печати, приостановки или возобновления печати документа и т. д.

Чтобы получить доступ к любым заданиям печати в очереди печати, вызовите метод IADsPrintQueueOperations::P rintJobs , чтобы получить объект коллекции, содержащий все задания печати в очереди печати.

Примеры

В следующем примере кода показано, как управлять заданием печати, отправленным на принтер, "\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

В следующем примере кода показано, как управлять заданием печати, отправленным на принтер, "\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();

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header iads.h

См. также раздел

Идентификаторы IAD

Методы свойств IADsPrintJob

IADsPrintJobOperations

IADsPrintQueueOperations::P rintJobs

IDispatch