IFaxJobStatus
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IFaxJobStatus インターフェイスは、通知のために使用され、ジョブの動的な情報を保持します。
解説(Remarks)
FaxJobStatus オブジェクトを自分で作成することはありません。このオブジェクトは、IFaxServerNotify::OnIncomingJobChanged または IFaxServerNotify::OnOutgoingJobChanged を実装した際に、通知の一部として受け取ります。これらのメソッドは FaxJobStatus 型のパラメーターを持ちます。イベントが発生して実装した関数が呼び出されると、動的な情報を格納したこのオブジェクトを受け取ります。
メソッド 17
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
Status プロパティは、ジョブキュー内の FAX ジョブの現在の状態を示す数値です。
| pStatus | FAX_JOB_STATUS_ENUM* | out | ジョブの現在状態を表すFAX_JOB_STATUS_ENUM値を受け取る出力先。 |
Pages プロパティは、FAX 送受信でこれまでに受信したページの総数を示す数値です。
| plPages | INT* | out | ジョブの総ページ数を受け取る出力先。 |
Size プロパティは、FAX ジョブについてこれまでに受信した Tagged Image File Format Class F (TIFF Class F) ファイルのバイト数を示す値です。
| plSize | INT* | out | ジョブのデータサイズ(バイト単位)を受け取る出力先。 |
CurrentPage プロパティは、FAX サービスが現在処理しているページを識別する数値です。
| plCurrentPage | INT* | out | 現在送受信中のページ番号を受け取る出力先。 |
DeviceId プロパティは、FAX ジョブに関連付けられたデバイスのデバイス ID を示します。
| plDeviceId | INT* | out | ジョブを処理するFAXデバイスのIDを受け取る出力先。 |
CSID プロパティは、ジョブの着信側ステーション識別子 (CSID) を格納する null 終端文字列です。(IFaxJobStatus.get_CSID)
| pbstrCSID | LPWSTR* | out | 呼び出し局識別子(CSID)を受け取るBSTR出力先。 |
TSID プロパティは、FAX ジョブに関連付けられた送信側ステーション識別子 (TSID) を格納する null 終端文字列です。
| pbstrTSID | LPWSTR* | out | 送信局識別子(TSID)を受け取るBSTR出力先。 |
ExtendedStatusCode プロパティは、ジョブの拡張状態を表すコードを指定します。
| pExtendedStatusCode | FAX_JOB_EXTENDED_STATUS_ENUM* | out | 拡張状態を表すFAX_JOB_EXTENDED_STATUS_ENUM値を受け取る出力先。 |
ExtendedStatus プロパティは、ジョブの拡張状態を説明する null 終端文字列です。(IFaxJobStatus.get_ExtendedStatus)
| pbstrExtendedStatus | LPWSTR* | out | 拡張状態の説明文字列を受け取るBSTR出力先。 |
AvailableOperations プロパティは、現在の状態において FAX ジョブに対して実行できる有効な操作の組み合わせを示します。
| pAvailableOperations | FAX_JOB_OPERATIONS_ENUM* | out | 現在実行可能な操作を表すFAX_JOB_OPERATIONS_ENUM値を受け取る出力先。 |
Retries プロパティは、最初の試行が失敗した際に FAX サービスが FAX ジョブの送信を試みた回数を示す値です。
| plRetries | INT* | out | これまでの再試行回数を受け取る出力先。 |
JobType プロパティは、FAX ジョブの種類を表します。たとえば、ジョブは受信ジョブ、送信ジョブ、またはルーティングジョブのいずれかになります。
| pJobType | FAX_JOB_TYPE_ENUM* | out | ジョブ種別を表すFAX_JOB_TYPE_ENUM値を受け取る出力先。 |
ScheduledTime プロパティは、FAX ジョブの送信が予定されている時刻を示します。
| pdateScheduledTime | DOUBLE* | out | 送信予定日時をDATE(OLEオートメーション日付)で受け取る出力先。 |
TransmissionStart プロパティは、FAX ジョブの送信が開始された時刻を示します。
| pdateTransmissionStart | DOUBLE* | out | 送受信開始日時をDATE値で受け取る出力先。 |
TransmissionEnd プロパティは、FAX ジョブの送信が完了した時刻を示します。
| pdateTransmissionEnd | DOUBLE* | out | 送受信終了日時をDATE値で受け取る出力先。 |
解説(Remarks)
このプロパティは、FAX デバイスが FAX を受信している間は有効ではありません。
CallerId プロパティは、FAX ジョブに関連付けられた発信側デバイスを識別する null 終端文字列です。
| pbstrCallerId | LPWSTR* | out | 発信者番号(CallerID)を受け取るBSTR出力先。 |
RoutingInformation プロパティは、FAX ジョブのルーティング情報を指定する null 終端文字列です。
| pbstrRoutingInformation | LPWSTR* | out | 受信ルーティング情報文字列を受け取るBSTR出力先。 |
解説(Remarks)
ルーティング情報の詳細については、FAX_DEV_STATUS 構造体の RoutingInfo メンバーを参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFaxJobStatus "{8B86F485-FD7F-4824-886B-40C5CAA617CC}" #usecom global IFaxJobStatus IID_IFaxJobStatus "{}" #comfunc global IFaxJobStatus_get_Status 7 var #comfunc global IFaxJobStatus_get_Pages 8 var #comfunc global IFaxJobStatus_get_Size 9 var #comfunc global IFaxJobStatus_get_CurrentPage 10 var #comfunc global IFaxJobStatus_get_DeviceId 11 var #comfunc global IFaxJobStatus_get_CSID 12 var #comfunc global IFaxJobStatus_get_TSID 13 var #comfunc global IFaxJobStatus_get_ExtendedStatusCode 14 var #comfunc global IFaxJobStatus_get_ExtendedStatus 15 var #comfunc global IFaxJobStatus_get_AvailableOperations 16 var #comfunc global IFaxJobStatus_get_Retries 17 var #comfunc global IFaxJobStatus_get_JobType 18 var #comfunc global IFaxJobStatus_get_ScheduledTime 19 var #comfunc global IFaxJobStatus_get_TransmissionStart 20 var #comfunc global IFaxJobStatus_get_TransmissionEnd 21 var #comfunc global IFaxJobStatus_get_CallerId 22 var #comfunc global IFaxJobStatus_get_RoutingInformation 23 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IFaxJobStatus "{8B86F485-FD7F-4824-886B-40C5CAA617CC}" #usecom global IFaxJobStatus IID_IFaxJobStatus "{}" #comfunc global IFaxJobStatus_get_Status 7 sptr #comfunc global IFaxJobStatus_get_Pages 8 sptr #comfunc global IFaxJobStatus_get_Size 9 sptr #comfunc global IFaxJobStatus_get_CurrentPage 10 sptr #comfunc global IFaxJobStatus_get_DeviceId 11 sptr #comfunc global IFaxJobStatus_get_CSID 12 sptr #comfunc global IFaxJobStatus_get_TSID 13 sptr #comfunc global IFaxJobStatus_get_ExtendedStatusCode 14 sptr #comfunc global IFaxJobStatus_get_ExtendedStatus 15 sptr #comfunc global IFaxJobStatus_get_AvailableOperations 16 sptr #comfunc global IFaxJobStatus_get_Retries 17 sptr #comfunc global IFaxJobStatus_get_JobType 18 sptr #comfunc global IFaxJobStatus_get_ScheduledTime 19 sptr #comfunc global IFaxJobStatus_get_TransmissionStart 20 sptr #comfunc global IFaxJobStatus_get_TransmissionEnd 21 sptr #comfunc global IFaxJobStatus_get_CallerId 22 sptr #comfunc global IFaxJobStatus_get_RoutingInformation 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。