Compartilhar via


Interface IADsPrintJob (iads.h)

A interface IADsPrintJob é uma interface dupla que herda de IADs. Ele foi projetado para representar um trabalho de impressão. Quando um usuário envia uma solicitação a uma impressora para imprimir um documento, um trabalho de impressão é criado na fila de impressão. Os métodos de propriedade permitem que você acesse as informações sobre um trabalho de impressão. Essas informações incluem qual impressora executa a impressão, quem enviou o documento, quando o documento foi enviado e quantas páginas serão impressas.

Herança

A interface IADsPrintJob herda de IDispatch e IADs. IADsPrintJob também tem estes tipos de membros:

Comentários

Para gerenciar um trabalho de impressão em uma rede, use a interface IADsPrintJobOperations, que dá suporte à funcionalidade para examinar a status de um trabalho de impressão e pausar ou retomar a operação de impressão do documento e assim por diante.

Para acessar quaisquer trabalhos de impressão em uma fila de impressão, chame o método IADsPrintQueueOperations::P rintJobs para obter o objeto de coleção que contém todos os trabalhos de impressão na fila de impressão.

Exemplos

O exemplo de código a seguir mostra como gerenciar um trabalho de impressão enviado à impressora, "\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

O exemplo de código a seguir mostra como gerenciar um trabalho de impressão enviado à impressora, "\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();

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho iads.h

Confira também

Iads

Métodos da propriedade IADsPrintJob

IADsPrintJobOperations

IADsPrintQueueOperations::P rintJobs

IDispatch