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 |