Compartir a través de


Interfaz IADsPrintJob (iads.h)

La interfaz IADsPrintJob es una interfaz dual que hereda de los IAD. Está diseñado para representar un trabajo de impresión. Cuando un usuario envía una solicitud a una impresora para imprimir un documento, se crea un trabajo de impresión en la cola de impresión. Los métodos de propiedad permiten acceder a la información sobre un trabajo de impresión. Esta información incluye qué impresora realiza la impresión, quién envió el documento, cuándo se envió el documento y cuántas páginas se imprimirán.

Herencia

La interfaz IADsPrintJob hereda de IDispatch e IAD. IADsPrintJob también tiene estos tipos de miembros:

Comentarios

Para administrar un trabajo de impresión a través de una red, use la interfaz IADsPrintJobOperations , que admite la funcionalidad para examinar el estado de un trabajo de impresión y pausar o reanudar la operación de impresión del documento, etc.

Para acceder a los trabajos de impresión de una cola de impresión, llame al método IADsPrintQueueOperations::P rintJobs para obtener el objeto de colección que contiene todos los trabajos de impresión de la cola de impresión.

Ejemplos

En el ejemplo de código siguiente se muestra cómo administrar un trabajo de impresión enviado a la impresora, "\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

En el ejemplo de código siguiente se muestra cómo administrar un trabajo de impresión enviado a la impresora, "\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 compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado iads.h

Consulte también

Iads

Métodos de propiedad IADsPrintJob

IADsPrintJobOperations

IADsPrintQueueOperations::P rintJobs

IDispatch