Интерфейс 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 |