jvGetJobStatus(印刷ジョブの状態取得) 
 
プリンタの印刷ジョブの状態を取得します。
[構文] 
  
 
Function jvGetJobStatus(ByVal printerName As String, ByVal printJobId As Long) As Long 
 
C言語 
 
int jvGetJobStatus(char *printerName, int printJobId); 
 
JAVA 
int jvGetJobStatus(String printerName, int printJobId); 
 
Delphi 
 
Function jvGetJobStatus(printerName:PAnsiChar; printJobId:Longint): Longint; 
  
| 
 設定項目  | 
 内容  | 
| 
 printerName  | 
 j状態を取得するプリンタ名称  | 
| 
 printJobId  | 
 印刷ジョブID  | 
  
リターンコード 
 
| 
 定数  | 
 値  | 
 内容  | 
| 
 JV_JOBSTATUS_PAUSED   | 
 1  | 
 一時停止  | 
| 
 JV_JOBSTATUS_ERROR   | 
 2  | 
 エラー  | 
| 
 JV_JOBSTATUS_DELETING  | 
 4  | 
 削除中   | 
| 
 JV_JOBSTATUS_SPOOLING  | 
 8  | 
 スプール中  | 
| 
 JV_JOBSTATUS_PRINTING  | 
 16  | 
 印刷中   | 
| 
 JV_JOBSTATUS_OFFLINE  | 
 32  | 
 オフライン   | 
| 
 JV_JOBSTATUS_PAPEROUT   | 
 64  | 
 紙切れ  | 
| 
 JV_JOBSTATUS_PRINTED   | 
 128  | 
 印刷済み   | 
| 
    | 
 0以上  | 
 ジョブの状態(上記の値の組合わせ)   | 
| 
 JV_ERR_PRINTERNAME  | 
 -10  | 
 プリンタ名称エラー   | 
| 
 JV_ERR_GET_JOB  | 
 -92  | 
 GetJobエラー   | 
  
[解説] 
  
印刷中のプリンタのプリンタ名称は、jvGetStringで取得することができます。使用できるプリンタの一覧はjvGetPrinterNameで取得することができます。 
 
印刷中の印刷ジョブIDはjvStartDoc実行後にjvGetLongで取得することができます。 
 
  
[コーディング例] 
  
 
Dim jid&, ret&, PrintJobId&, PrinterName$ 
 
jid = jvCreate(JV_PRINTER, form1.hWnd, 0, 0, 
 0, 0, "") 
ret = jvSetForm(jid, "c:\JiveReport\納品書.jfm", 
 1,"", 100, 0, 0) 
ret = jvStartDoc(jid, "納品書", "") 
 
'印刷ジョブIDの取得 
PrintJobId = jvGetLong(jid, JV_JOB_ID) 
'プリンタ名の取得 
PrinterName = Space(33) 
ret = jvGetString(jid, JV_PRINTER_NAME,PrinterName) 
 
| 
ret = jvEndPage(jid) 
ret = jvEndDoc(jid) 
ret = jvClose(jid) 
'印刷ジョブの状態取得 
ret = jvGetJobStatus(PrinterName, PrintJobId) 
jobStatus = "" 
If (ret And JV_JOBSTATUS_PAUSED) <> 0 Then 
 
jobStatus = jobStatus + "一時停止 " 
End If 
If (ret And JV_JOBSTATUS_ERROR) <> 0 Then 
 
jobStatus = jobStatus + "エラー " 
End If 
: 
: 
: