Win32 API 日本語リファレンス
ホームMedia.DirectShow › IAMMediaTypeSample

IAMMediaTypeSample

COM
IIDab6b4afb-f6e4-11d0-900d-00c04fd9189d継承元IStreamSample自前メソッド開始 vtbl8

公式ドキュメント

注意 このインターフェイスは非推奨です。

メソッド 17

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

vtbl 8 HRESULT SetPointer(BYTE* pBuffer, INT lSize)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetPointer メソッドは、メディアサンプルのメモリバッファへのポインターを設定します。

pBufferBYTE*in呼び出し側が割り当てたメモリバッファへのポインター。または NULL
lSizeINTinバッファのサイズ(バイト単位)。

戻り値

以下のいずれかの値を返します。

Return code Description
E_OUTOFMEMORY
メモリが不足しています。
S_OK
成功しました。

解説(Remarks)

pBuffer パラメーターの値が NULL の場合、このメソッドは lSize パラメーターの値と等しいサイズ(バイト単位)のメモリブロックを割り当てます。メモリが初期化されている保証はありません。

vtbl 9 HRESULT GetPointer(BYTE** ppBuffer)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetPointer メソッドは、バッファのメモリへの読み取り/書き込みポインターを取得します。

ppBufferBYTE**outバッファへのポインターのアドレス。

戻り値

S_OK を返します。

vtbl 10 INT GetSize()

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetSize メソッドは、バッファのデータ領域のサイズ(バイト単位)を取得します。

戻り値

バッファのデータ領域のサイズ(バイト単位)を返します。

vtbl 11 HRESULT GetTime(LONGLONG* pTimeStart, LONGLONG* pTimeEnd)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetTime メソッドは、サンプルの開始および停止すべきストリーム時刻を取得します。

pTimeStartLONGLONG*out開始時刻を受け取る変数へのポインター。
pTimeEndLONGLONG*out停止時刻を受け取る変数へのポインター。サンプルに停止時刻がない場合、値は開始時刻に 1 を加えた値に設定されます。

戻り値

以下のいずれかの値を返します。

Return code Description
S_OK
成功しました。
VFW_E_SAMPLE_TIME_NOT_SET
サンプルにタイムスタンプがありません。
VFW_S_NO_STOP_TIME
サンプルには有効な開始時刻がありますが、停止時刻がありません。
vtbl 12 HRESULT SetTime(LONGLONG* pTimeStart, LONGLONG* pTimeEnd)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetTime メソッドは、サンプルの開始および停止すべきストリーム時刻を設定します。

pTimeStartLONGLONG*in開始時刻を格納する変数へのポインター。
pTimeEndLONGLONG*in停止時刻を格納する変数へのポインター。

戻り値

S_OK を返します。

vtbl 13 HRESULT IsSyncPoint()

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IsSyncPoint メソッドは、サンプルの先頭が同期ポイントかどうかを判定します。

戻り値

サンプルの先頭が同期ポイントの場合は S_OK を、そうでない場合は S_FALSE を返します。

vtbl 14 HRESULT SetSyncPoint(BOOL bIsSyncPoint)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetSyncPoint メソッドは、このサンプルの先頭が同期ポイントかどうかを指定します。

bIsSyncPointBOOLinこのサンプルの先頭が同期ポイントかどうかを指定するブール値。TRUE の場合、サンプルの先頭は同期ポイントです。

戻り値

S_OK を返します。

vtbl 15 HRESULT IsPreroll()

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IsPreroll メソッドは、このサンプルがプリロールの一部かどうかを判定します。プリロールサンプルは表示されるべきではありません。

戻り値

サンプルがプリロールサンプルの場合は S_OK を、そうでない場合は S_FALSE を返します。

vtbl 16 HRESULT SetPreroll(BOOL bIsPreroll)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetPreroll メソッドは、これがプリロールサンプルかどうかを指定します。プリロールサンプルは表示されるべきではありません。

bIsPrerollBOOLinサンプルがプリロールサンプルかどうかを指定するブール値。TRUE の場合、そのサンプルはプリロール用であり、表示されるべきではありません。

戻り値

S_OK を返します。

vtbl 17 INT GetActualDataLength()

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetActualDataLength メソッドは、サンプルのデータ長(バイト単位)を取得します。

戻り値

サンプルのデータ長(バイト単位)を返します。

vtbl 18 HRESULT SetActualDataLength(INT __MIDL__IAMMediaTypeSample0000)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetActualDataLength メソッドは、サンプルのデータ長を設定します。

__MIDL__IAMMediaTypeSample0000INTinメディアサンプル内のデータの長さ(バイト単位)。

戻り値

以下のいずれかの値を返します。

Return code Description
S_OK
成功しました。
VFW_E_BUFFER_OVERFLOW
バッファのサイズが十分ではありません。
vtbl 19 HRESULT GetMediaType(AM_MEDIA_TYPE** ppMediaType)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetMediaType メソッドは、サンプルのメディアタイプを取得します。フォーマットが前のサンプルから変化していない場合、サンプルはメディアタイプを保持していないことがあります。

ppMediaTypeAM_MEDIA_TYPE**outAM_MEDIA_TYPE 構造体を受け取るポインターのアドレス。

戻り値

以下のいずれかの値を返します。

Return code Description
E_OUTOFMEMORY
メモリが不足しています。
S_FALSE
フォーマットは前のサンプルから変化していません。
S_OK
成功しました。
vtbl 20 HRESULT SetMediaType(AM_MEDIA_TYPE* pMediaType)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetMediaType メソッドは、サンプルのメディアタイプを設定します。

pMediaTypeAM_MEDIA_TYPE*inメディアタイプを記述する AM_MEDIA_TYPE 構造体へのポインター。

戻り値

以下のいずれかの値を返します。

Return code Description
E_OUTOFMEMORY
メモリが不足しています。
S_OK
成功しました。
vtbl 21 HRESULT IsDiscontinuity()

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IsDiscontinuity メソッドは、このサンプルがデータストリーム内の不連続を表すかどうかを判定します。

戻り値

このサンプルが不連続の場合は S_OK を、そうでない場合は S_FALSE を返します。

vtbl 22 HRESULT SetDiscontinuity(BOOL bDiscontinuity)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetDiscontinuity メソッドは、不連続プロパティを設定します。

bDiscontinuityBOOLinこのサンプルが不連続かどうかを指定する値。サンプルが前のサンプルと不連続である場合は、値を TRUE に設定します。そうでない場合は FALSE に設定します。

戻り値

S_OK を返します。

vtbl 23 HRESULT GetMediaTime(LONGLONG* pTimeStart, LONGLONG* pTimeEnd)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetMediaTime メソッドは、サンプルのメディアタイムスタンプを取得します。

pTimeStartLONGLONG*outメディア開始時刻を受け取る変数へのポインター。
pTimeEndLONGLONG*outメディア停止時刻を受け取る変数へのポインター。

戻り値

以下のいずれかの値を返します。

Return code Description
S_OK
成功しました。
VFW_E_MEDIA_TIME_NOT_SET
このサンプルにはメディアタイムスタンプが設定されていません。
vtbl 24 HRESULT SetMediaTime(LONGLONG* pTimeStart, LONGLONG* pTimeEnd)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetMediaTime メソッドは、このサンプルのメディアタイムスタンプを設定します。

pTimeStartLONGLONG*inメディア開始時刻を格納する変数へのポインター。
pTimeEndLONGLONG*inメディア停止時刻を格納する変数へのポインター。

戻り値

S_OK を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAMMediaTypeSample "{AB6B4AFB-F6E4-11D0-900D-00C04FD9189D}"
#usecom global IAMMediaTypeSample IID_IAMMediaTypeSample "{}"
#comfunc global IAMMediaTypeSample_SetPointer           8 var,int
#comfunc global IAMMediaTypeSample_GetPointer           9 var
#comfunc global IAMMediaTypeSample_GetSize              10
#comfunc global IAMMediaTypeSample_GetTime              11 var,var
#comfunc global IAMMediaTypeSample_SetTime              12 var,var
#comfunc global IAMMediaTypeSample_IsSyncPoint          13
#comfunc global IAMMediaTypeSample_SetSyncPoint         14 int
#comfunc global IAMMediaTypeSample_IsPreroll            15
#comfunc global IAMMediaTypeSample_SetPreroll           16 int
#comfunc global IAMMediaTypeSample_GetActualDataLength  17
#comfunc global IAMMediaTypeSample_SetActualDataLength  18 int
#comfunc global IAMMediaTypeSample_GetMediaType         19 var
#comfunc global IAMMediaTypeSample_SetMediaType         20 var
#comfunc global IAMMediaTypeSample_IsDiscontinuity      21
#comfunc global IAMMediaTypeSample_SetDiscontinuity     22 int
#comfunc global IAMMediaTypeSample_GetMediaTime         23 var,var
#comfunc global IAMMediaTypeSample_SetMediaTime         24 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。