다음을 통해 공유


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