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

IPortableDeviceUnitsStream

COM
IID5e98025f-bfc4-47a2-9a5f-bc900a507c67継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IPortableDeviceUnitsStream インターフェイスは、フレームやミリ秒などの代替単位を使用してストリームを操作 (シーク) する手段を提供します。

メソッド 2

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

vtbl 3 HRESULT SeekInUnits(LONGLONG dlibMove, WPD_STREAM_UNITS units, DWORD dwOrigin, ULONGLONG* plibNewPosition)

SeekInUnits メソッドは、代替単位に基づいてストリームのシークを実行します。

dlibMoveLONGLONGindwOrigin パラメーターで示される位置に加算する変位量です。変位量の単位は units で指定します。dwOriginSTREAM_SEEK_SET の場合、この値は符号付きではなく符号なしの値として解釈されます。
unitsWPD_STREAM_UNITSindlibMove パラメーターおよび plibNewPosition パラメーターの単位です。詳細については WPD_STREAM_UNITS を参照してください。
dwOriginDWORDindlibMove で指定した変位量の起点です。起点には、ファイルの先頭 (STREAM_SEEK_SET)、現在のシークポインター (STREAM_SEEK_CUR)、またはファイルの末尾 (STREAM_SEEK_END) を指定できます。値の詳細については、STREAM_SEEK 列挙型を参照してください。
plibNewPositionULONGLONG*outoptionalストリームの先頭から数えた新しいシークポインターの値を、このメソッドが書き込む場所へのポインターです。単位は units で指定されたものになります。 このポインターには NULL を設定できます。その場合、このメソッドは新しいシークポインターを返しません。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。

戻り値 説明
S_OK
シークポインターが正常に調整されました。
STG_E_INVALIDPOINTER
[out] パラメーター plibNewPosition が無効なメモリを指していることを示します。plibNewPosition は読み取られません。
STG_E_INVALIDFUNCTION
dwUnits または dwOrigin パラメーターに無効な値が含まれているか、dlibMove パラメーターに不正なオフセット値が含まれています。たとえば、シークポインターの結果が負のオフセット値になる場合です。
vtbl 4 HRESULT Cancel()
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

出力引数:
#define global IID_IPortableDeviceUnitsStream "{5E98025F-BFC4-47A2-9A5F-BC900A507C67}"
#usecom global IPortableDeviceUnitsStream IID_IPortableDeviceUnitsStream "{}"
#comfunc global IPortableDeviceUnitsStream_SeekInUnits  3 int64,int,int,var
#comfunc global IPortableDeviceUnitsStream_Cancel       4
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。