Win32 API 日本語リファレンス
ホームDevices.Fax › IStiDevice

IStiDevice

COM
IID6cfa5a80-2dc8-11d0-90ea-00aa0060f86c継承元IUnknown自前メソッド開始 vtbl3

メソッド 17

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Initialize(HINSTANCE hinst, LPWSTR pwszDeviceName, DWORD dwVersion, DWORD dwMode)
hinstHINSTANCEin呼び出し元アプリケーションのインスタンスハンドル。
pwszDeviceNameLPWSTRin初期化対象デバイスの内部名。
dwVersionDWORDin使用するSTI APIのバージョン番号。
dwModeDWORDinデバイスを開くアクセスモードを示す値。
vtbl 4 HRESULT GetCapabilities(STI_DEV_CAPS* pDevCaps)
pDevCapsSTI_DEV_CAPS*inoutデバイスの機能情報を受け取るSTI_DEV_CAPS構造体。
vtbl 5 HRESULT GetStatus(STI_DEVICE_STATUS* pDevStatus)
pDevStatusSTI_DEVICE_STATUS*inoutデバイスの現在の状態を受け取るSTI_DEVICE_STATUS構造体。
vtbl 6 HRESULT DeviceReset()
vtbl 7 HRESULT Diagnostic(STI_DIAG* pBuffer)
pBufferSTI_DIAG*inout診断の実行結果を受け取るSTI_DIAG構造体。
vtbl 8 HRESULT Escape(DWORD EscapeFunction, void* lpInData, DWORD cbInDataSize, void* pOutData, DWORD dwOutDataSize, DWORD* pdwActualData)
EscapeFunctionDWORDin実行するデバイス固有エスケープ機能の番号。
lpInDatavoid*inエスケープ機能へ渡す入力データのバッファー。
cbInDataSizeDWORDin入力データのサイズ(バイト単位)。
pOutDatavoid*inoutエスケープ機能からの出力データを受け取るバッファー。
dwOutDataSizeDWORDin出力バッファーのサイズ(バイト単位)。
pdwActualDataDWORD*out実際に書き込まれた出力データのバイト数を受け取るポインター。
vtbl 9 HRESULT GetLastError(DWORD* pdwLastDeviceError)
pdwLastDeviceErrorDWORD*outデバイスで最後に発生したエラーコードを受け取るポインター。
vtbl 10 HRESULT LockDevice(DWORD dwTimeOut)
dwTimeOutDWORDinデバイスのロック取得を待機する最大時間(ミリ秒)。
vtbl 11 HRESULT UnLockDevice()
vtbl 12 HRESULT RawReadData(void* lpBuffer, DWORD* lpdwNumberOfBytes, OVERLAPPED* lpOverlapped)
lpBuffervoid*inout読み取ったデータを受け取るバッファー。
lpdwNumberOfBytesDWORD*inout入力時は読み取り要求バイト数、出力時は実読み取りバイト数を示すポインター。
lpOverlappedOVERLAPPED*inoptional非同期I/O用のOVERLAPPED構造体。同期時はNULL可。
vtbl 13 HRESULT RawWriteData(void* lpBuffer, DWORD nNumberOfBytes, OVERLAPPED* lpOverlapped)
lpBuffervoid*inデバイスへ書き込むデータを格納したバッファー。
nNumberOfBytesDWORDin書き込むデータのバイト数。
lpOverlappedOVERLAPPED*inoptional非同期I/O用のOVERLAPPED構造体。同期時はNULL可。
vtbl 14 HRESULT RawReadCommand(void* lpBuffer, DWORD* lpdwNumberOfBytes, OVERLAPPED* lpOverlapped)
lpBuffervoid*inout読み取ったコマンド応答データを受け取るバッファー。
lpdwNumberOfBytesDWORD*inout入力時は要求バイト数、出力時は実読み取りバイト数を示すポインター。
lpOverlappedOVERLAPPED*inoptional非同期I/O用のOVERLAPPED構造体。同期時はNULL可。
vtbl 15 HRESULT RawWriteCommand(void* lpBuffer, DWORD nNumberOfBytes, OVERLAPPED* lpOverlapped)
lpBuffervoid*inデバイスへ送信するコマンドデータを格納したバッファー。
nNumberOfBytesDWORDin送信するコマンドのバイト数。
lpOverlappedOVERLAPPED*inoptional非同期I/O用のOVERLAPPED構造体。同期時はNULL可。
vtbl 16 HRESULT Subscribe(STISUBSCRIBE* lpSubsribe)
lpSubsribeSTISUBSCRIBE*inoutイベント通知の購読設定を指定するSTISUBSCRIBE構造体。
vtbl 17 HRESULT GetLastNotificationData(STINOTIFY* lpNotify)
lpNotifySTINOTIFY*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 指定が可能。