次の方法で共有


IADsPrintJob インターフェイス (iads.h)

IADsPrintJob インターフェイスは、IAD から継承するデュアル インターフェイスです。 これは、印刷ジョブを表す目的で設計されています。 ユーザーがプリンターにドキュメントを印刷する要求を送信すると、印刷ジョブが印刷キューに作成されます。 プロパティ メソッドを使用すると、印刷ジョブに関する情報にアクセスできます。 このような情報には、印刷を実行するプリンター、ドキュメントを提出したユーザー、ドキュメントが送信された日時、印刷されるページ数が含まれます。

継承

IADsPrintJob インターフェイスは、IDispatchIAD を継承します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

関連項目

Iad

IADsPrintJob プロパティ メソッド

IADsPrintJobOperations

IADsPrintQueueOperations::P rintJobs

IDispatch