ホーム › Devices.PortableDevices › IPortableDeviceUnitsStream
IPortableDeviceUnitsStream
COM公式ドキュメント
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 メソッドは、代替単位に基づいてストリームのシークを実行します。
| dlibMove | LONGLONG | in | dwOrigin パラメーターで示される位置に加算する変位量です。変位量の単位は units で指定します。dwOrigin が STREAM_SEEK_SET の場合、この値は符号付きではなく符号なしの値として解釈されます。 |
| units | WPD_STREAM_UNITS | in | dlibMove パラメーターおよび plibNewPosition パラメーターの単位です。詳細については WPD_STREAM_UNITS を参照してください。 |
| dwOrigin | DWORD | in | dlibMove で指定した変位量の起点です。起点には、ファイルの先頭 (STREAM_SEEK_SET)、現在のシークポインター (STREAM_SEEK_CUR)、またはファイルの末尾 (STREAM_SEEK_END) を指定できます。値の詳細については、STREAM_SEEK 列挙型を参照してください。 |
| plibNewPosition | ULONGLONG* | outoptional | ストリームの先頭から数えた新しいシークポインターの値を、このメソッドが書き込む場所へのポインターです。単位は units で指定されたものになります。 このポインターには NULL を設定できます。その場合、このメソッドは新しいシークポインターを返しません。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| シークポインターが正常に調整されました。 | |
| [out] パラメーター plibNewPosition が無効なメモリを指していることを示します。plibNewPosition は読み取られません。 | |
| 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)
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 方式にも切替可。#define global IID_IPortableDeviceUnitsStream "{5E98025F-BFC4-47A2-9A5F-BC900A507C67}" #usecom global IPortableDeviceUnitsStream IID_IPortableDeviceUnitsStream "{}" #comfunc global IPortableDeviceUnitsStream_SeekInUnits 3 int64,int,int,sptr #comfunc global IPortableDeviceUnitsStream_Cancel 4 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。