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
Métodos da propriedade IADsPrintJob