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
#define global IID_IADsPrintJob "{32FB6780-1ED0-11CF-A988-00AA006BC149}"
#usecom global IADsPrintJob IID_IADsPrintJob "{}"
#comfunc global IADsPrintJob_get_HostPrintQueue 20 var
#comfunc global IADsPrintJob_get_User 21 var
#comfunc global IADsPrintJob_get_UserPath 22 var
#comfunc global IADsPrintJob_get_TimeSubmitted 23 var
#comfunc global IADsPrintJob_get_TotalPages 24 var
#comfunc global IADsPrintJob_get_Size 25 var
#comfunc global IADsPrintJob_get_Description 26 var
#comfunc global IADsPrintJob_put_Description 27 wstr
#comfunc global IADsPrintJob_get_Priority 28 var
#comfunc global IADsPrintJob_put_Priority 29 int
#comfunc global IADsPrintJob_get_StartTime 30 var
#comfunc global IADsPrintJob_put_StartTime 31 double
#comfunc global IADsPrintJob_get_UntilTime 32 var
#comfunc global IADsPrintJob_put_UntilTime 33 double
#comfunc global IADsPrintJob_get_Notify 34 var
#comfunc global IADsPrintJob_put_Notify 35 wstr
#comfunc global IADsPrintJob_get_NotifyPath 36 var
#comfunc global IADsPrintJob_put_NotifyPath 37 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IADsPrintJob "{32FB6780-1ED0-11CF-A988-00AA006BC149}"
#usecom global IADsPrintJob IID_IADsPrintJob "{}"
#comfunc global IADsPrintJob_get_HostPrintQueue 20 sptr
#comfunc global IADsPrintJob_get_User 21 sptr
#comfunc global IADsPrintJob_get_UserPath 22 sptr
#comfunc global IADsPrintJob_get_TimeSubmitted 23 sptr
#comfunc global IADsPrintJob_get_TotalPages 24 sptr
#comfunc global IADsPrintJob_get_Size 25 sptr
#comfunc global IADsPrintJob_get_Description 26 sptr
#comfunc global IADsPrintJob_put_Description 27 wstr
#comfunc global IADsPrintJob_get_Priority 28 sptr
#comfunc global IADsPrintJob_put_Priority 29 int
#comfunc global IADsPrintJob_get_StartTime 30 sptr
#comfunc global IADsPrintJob_put_StartTime 31 double
#comfunc global IADsPrintJob_get_UntilTime 32 sptr
#comfunc global IADsPrintJob_put_UntilTime 33 double
#comfunc global IADsPrintJob_get_Notify 34 sptr
#comfunc global IADsPrintJob_put_Notify 35 wstr
#comfunc global IADsPrintJob_get_NotifyPath 36 sptr
#comfunc global IADsPrintJob_put_NotifyPath 37 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。