ホーム › Devices.Fax › IStiDevice
IStiDevice
COMメソッド 17
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| hinst | HINSTANCE | in | 呼び出し元アプリケーションのインスタンスハンドル。 |
| pwszDeviceName | LPWSTR | in | 初期化対象デバイスの内部名。 |
| dwVersion | DWORD | in | 使用するSTI APIのバージョン番号。 |
| dwMode | DWORD | in | デバイスを開くアクセスモードを示す値。 |
vtbl 4 HRESULT GetCapabilities(STI_DEV_CAPS* pDevCaps)
| pDevCaps | STI_DEV_CAPS* | inout | デバイスの機能情報を受け取るSTI_DEV_CAPS構造体。 |
vtbl 5 HRESULT GetStatus(STI_DEVICE_STATUS* pDevStatus)
| pDevStatus | STI_DEVICE_STATUS* | inout | デバイスの現在の状態を受け取るSTI_DEVICE_STATUS構造体。 |
vtbl 6 HRESULT DeviceReset()
| pBuffer | STI_DIAG* | inout | 診断の実行結果を受け取るSTI_DIAG構造体。 |
vtbl 8 HRESULT Escape(DWORD EscapeFunction, void* lpInData, DWORD cbInDataSize, void* pOutData, DWORD dwOutDataSize, DWORD* pdwActualData)
| EscapeFunction | DWORD | in | 実行するデバイス固有エスケープ機能の番号。 |
| lpInData | void* | in | エスケープ機能へ渡す入力データのバッファー。 |
| cbInDataSize | DWORD | in | 入力データのサイズ(バイト単位)。 |
| pOutData | void* | inout | エスケープ機能からの出力データを受け取るバッファー。 |
| dwOutDataSize | DWORD | in | 出力バッファーのサイズ(バイト単位)。 |
| pdwActualData | DWORD* | out | 実際に書き込まれた出力データのバイト数を受け取るポインター。 |
| pdwLastDeviceError | DWORD* | out | デバイスで最後に発生したエラーコードを受け取るポインター。 |
| dwTimeOut | DWORD | in | デバイスのロック取得を待機する最大時間(ミリ秒)。 |
vtbl 11 HRESULT UnLockDevice()
vtbl 12 HRESULT RawReadData(void* lpBuffer, DWORD* lpdwNumberOfBytes, OVERLAPPED* lpOverlapped)
| lpBuffer | void* | inout | 読み取ったデータを受け取るバッファー。 |
| lpdwNumberOfBytes | DWORD* | inout | 入力時は読み取り要求バイト数、出力時は実読み取りバイト数を示すポインター。 |
| lpOverlapped | OVERLAPPED* | inoptional | 非同期I/O用のOVERLAPPED構造体。同期時はNULL可。 |
vtbl 13 HRESULT RawWriteData(void* lpBuffer, DWORD nNumberOfBytes, OVERLAPPED* lpOverlapped)
| lpBuffer | void* | in | デバイスへ書き込むデータを格納したバッファー。 |
| nNumberOfBytes | DWORD | in | 書き込むデータのバイト数。 |
| lpOverlapped | OVERLAPPED* | inoptional | 非同期I/O用のOVERLAPPED構造体。同期時はNULL可。 |
vtbl 14 HRESULT RawReadCommand(void* lpBuffer, DWORD* lpdwNumberOfBytes, OVERLAPPED* lpOverlapped)
| lpBuffer | void* | inout | 読み取ったコマンド応答データを受け取るバッファー。 |
| lpdwNumberOfBytes | DWORD* | inout | 入力時は要求バイト数、出力時は実読み取りバイト数を示すポインター。 |
| lpOverlapped | OVERLAPPED* | inoptional | 非同期I/O用のOVERLAPPED構造体。同期時はNULL可。 |
vtbl 15 HRESULT RawWriteCommand(void* lpBuffer, DWORD nNumberOfBytes, OVERLAPPED* lpOverlapped)
| lpBuffer | void* | in | デバイスへ送信するコマンドデータを格納したバッファー。 |
| nNumberOfBytes | DWORD | in | 送信するコマンドのバイト数。 |
| lpOverlapped | OVERLAPPED* | inoptional | 非同期I/O用のOVERLAPPED構造体。同期時はNULL可。 |
vtbl 16 HRESULT Subscribe(STISUBSCRIBE* lpSubsribe)
| lpSubsribe | STISUBSCRIBE* | inout | イベント通知の購読設定を指定するSTISUBSCRIBE構造体。 |
| lpNotify | STINOTIFY* | out | 直近のデバイス通知データを受け取るSTINOTIFY構造体。 |
vtbl 18 HRESULT UnSubscribe()
vtbl 19 HRESULT GetLastErrorInfo(_ERROR_INFOW* pLastErrorInfo)
| pLastErrorInfo | _ERROR_INFOW* | out | 直近のエラーの詳細情報を受け取る_ERROR_INFOW構造体。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IStiDevice "{6CFA5A80-2DC8-11D0-90EA-00AA0060F86C}" #usecom global IStiDevice IID_IStiDevice "{}" #comfunc global IStiDevice_Initialize 3 sptr,wstr,int,int #comfunc global IStiDevice_GetCapabilities 4 var #comfunc global IStiDevice_GetStatus 5 var #comfunc global IStiDevice_DeviceReset 6 #comfunc global IStiDevice_Diagnostic 7 var #comfunc global IStiDevice_Escape 8 int,sptr,int,sptr,int,var #comfunc global IStiDevice_GetLastError 9 var #comfunc global IStiDevice_LockDevice 10 int #comfunc global IStiDevice_UnLockDevice 11 #comfunc global IStiDevice_RawReadData 12 sptr,var,var #comfunc global IStiDevice_RawWriteData 13 sptr,int,var #comfunc global IStiDevice_RawReadCommand 14 sptr,var,var #comfunc global IStiDevice_RawWriteCommand 15 sptr,int,var #comfunc global IStiDevice_Subscribe 16 var #comfunc global IStiDevice_GetLastNotificationData 17 var #comfunc global IStiDevice_UnSubscribe 18 #comfunc global IStiDevice_GetLastErrorInfo 19 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IStiDevice "{6CFA5A80-2DC8-11D0-90EA-00AA0060F86C}" #usecom global IStiDevice IID_IStiDevice "{}" #comfunc global IStiDevice_Initialize 3 sptr,wstr,int,int #comfunc global IStiDevice_GetCapabilities 4 sptr #comfunc global IStiDevice_GetStatus 5 sptr #comfunc global IStiDevice_DeviceReset 6 #comfunc global IStiDevice_Diagnostic 7 sptr #comfunc global IStiDevice_Escape 8 int,sptr,int,sptr,int,sptr #comfunc global IStiDevice_GetLastError 9 sptr #comfunc global IStiDevice_LockDevice 10 int #comfunc global IStiDevice_UnLockDevice 11 #comfunc global IStiDevice_RawReadData 12 sptr,sptr,sptr #comfunc global IStiDevice_RawWriteData 13 sptr,int,sptr #comfunc global IStiDevice_RawReadCommand 14 sptr,sptr,sptr #comfunc global IStiDevice_RawWriteCommand 15 sptr,int,sptr #comfunc global IStiDevice_Subscribe 16 sptr #comfunc global IStiDevice_GetLastNotificationData 17 sptr #comfunc global IStiDevice_UnSubscribe 18 #comfunc global IStiDevice_GetLastErrorInfo 19 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。