Win32 API 日本語リファレンス
ホームSystem.Com.Urlmon › IInternetProtocol

IInternetProtocol

COM
IID79eac9e4-baf9-11ce-8c82-00aa004ba90b継承元IInternetProtocolRoot自前メソッド開始 vtbl9

メソッド 4

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

vtbl 9 HRESULT Read(void* pv, DWORD cb, DWORD* pcbRead)
pvvoid*inout読み取ったデータを受け取るバッファへのポインタである。
cbDWORDin読み取る最大バイト数を指定する。
pcbReadDWORD*out実際に読み取られたバイト数を受け取るポインタである。
vtbl 10 HRESULT Seek(LONGLONG dlibMove, DWORD dwOrigin, ULONGLONG* plibNewPosition)
dlibMoveLONGLONGindwOrigin を基準とした移動量(バイト数)を指定する。
dwOriginDWORDinシークの起点(先頭、現在位置、末尾)を示す STREAM_SEEK 値を指定する。
plibNewPositionULONGLONG*outシーク後の新しい位置(先頭からのバイト数)を受け取るポインタである。
vtbl 11 HRESULT LockRequest(DWORD dwOptions)
dwOptionsDWORDin要求のロック動作を制御するフラグを指定する。通常は 0 を指定する。
vtbl 12 HRESULT UnlockRequest()

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IInternetProtocol "{79EAC9E4-BAF9-11CE-8C82-00AA004BA90B}"
#usecom global IInternetProtocol IID_IInternetProtocol "{}"
#comfunc global IInternetProtocol_Read           9 sptr,int,var
#comfunc global IInternetProtocol_Seek           10 int64,int,var
#comfunc global IInternetProtocol_LockRequest    11 int
#comfunc global IInternetProtocol_UnlockRequest  12
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。