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
:
:
: