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
Métodos de propiedad IADsPrintJob