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 |
標頭 | iads.h |