IAMMediaTypeSample
COM公式ドキュメント
注意 このインターフェイスは非推奨です。
メソッド 17
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetPointer メソッドは、メディアサンプルのメモリバッファへのポインターを設定します。
| pBuffer | BYTE* | in | 呼び出し側が割り当てたメモリバッファへのポインター。または NULL。 |
| lSize | INT | in | バッファのサイズ(バイト単位)。 |
戻り値
以下のいずれかの値を返します。
| Return code | Description |
|---|---|
| メモリが不足しています。 | |
| 成功しました。 |
解説(Remarks)
pBuffer パラメーターの値が NULL の場合、このメソッドは lSize パラメーターの値と等しいサイズ(バイト単位)のメモリブロックを割り当てます。メモリが初期化されている保証はありません。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetPointer メソッドは、バッファのメモリへの読み取り/書き込みポインターを取得します。
| ppBuffer | BYTE** | out | バッファへのポインターのアドレス。 |
戻り値
S_OK を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetSize メソッドは、バッファのデータ領域のサイズ(バイト単位)を取得します。
戻り値
バッファのデータ領域のサイズ(バイト単位)を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetTime メソッドは、サンプルの開始および停止すべきストリーム時刻を取得します。
| pTimeStart | LONGLONG* | out | 開始時刻を受け取る変数へのポインター。 |
| pTimeEnd | LONGLONG* | out | 停止時刻を受け取る変数へのポインター。サンプルに停止時刻がない場合、値は開始時刻に 1 を加えた値に設定されます。 |
戻り値
以下のいずれかの値を返します。
| Return code | Description |
|---|---|
| 成功しました。 | |
| サンプルにタイムスタンプがありません。 | |
| サンプルには有効な開始時刻がありますが、停止時刻がありません。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetTime メソッドは、サンプルの開始および停止すべきストリーム時刻を設定します。
| pTimeStart | LONGLONG* | in | 開始時刻を格納する変数へのポインター。 |
| pTimeEnd | LONGLONG* | in | 停止時刻を格納する変数へのポインター。 |
戻り値
S_OK を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IsSyncPoint メソッドは、サンプルの先頭が同期ポイントかどうかを判定します。
戻り値
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetSyncPoint メソッドは、このサンプルの先頭が同期ポイントかどうかを指定します。
| bIsSyncPoint | BOOL | in | このサンプルの先頭が同期ポイントかどうかを指定するブール値。TRUE の場合、サンプルの先頭は同期ポイントです。 |
戻り値
S_OK を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IsPreroll メソッドは、このサンプルがプリロールの一部かどうかを判定します。プリロールサンプルは表示されるべきではありません。
戻り値
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetPreroll メソッドは、これがプリロールサンプルかどうかを指定します。プリロールサンプルは表示されるべきではありません。
| bIsPreroll | BOOL | in | サンプルがプリロールサンプルかどうかを指定するブール値。TRUE の場合、そのサンプルはプリロール用であり、表示されるべきではありません。 |
戻り値
S_OK を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetActualDataLength メソッドは、サンプルのデータ長(バイト単位)を取得します。
戻り値
サンプルのデータ長(バイト単位)を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetActualDataLength メソッドは、サンプルのデータ長を設定します。
| __MIDL__IAMMediaTypeSample0000 | INT | in | メディアサンプル内のデータの長さ(バイト単位)。 |
戻り値
以下のいずれかの値を返します。
| Return code | Description |
|---|---|
| 成功しました。 | |
| バッファのサイズが十分ではありません。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetMediaType メソッドは、サンプルのメディアタイプを取得します。フォーマットが前のサンプルから変化していない場合、サンプルはメディアタイプを保持していないことがあります。
| ppMediaType | AM_MEDIA_TYPE** | out | AM_MEDIA_TYPE 構造体を受け取るポインターのアドレス。 |
戻り値
以下のいずれかの値を返します。
| Return code | Description |
|---|---|
| メモリが不足しています。 | |
| フォーマットは前のサンプルから変化していません。 | |
| 成功しました。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetMediaType メソッドは、サンプルのメディアタイプを設定します。
| pMediaType | AM_MEDIA_TYPE* | in | メディアタイプを記述する AM_MEDIA_TYPE 構造体へのポインター。 |
戻り値
以下のいずれかの値を返します。
| Return code | Description |
|---|---|
| メモリが不足しています。 | |
| 成功しました。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IsDiscontinuity メソッドは、このサンプルがデータストリーム内の不連続を表すかどうかを判定します。
戻り値
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetDiscontinuity メソッドは、不連続プロパティを設定します。
| bDiscontinuity | BOOL | in | このサンプルが不連続かどうかを指定する値。サンプルが前のサンプルと不連続である場合は、値を TRUE に設定します。そうでない場合は FALSE に設定します。 |
戻り値
S_OK を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetMediaTime メソッドは、サンプルのメディアタイムスタンプを取得します。
| pTimeStart | LONGLONG* | out | メディア開始時刻を受け取る変数へのポインター。 |
| pTimeEnd | LONGLONG* | out | メディア停止時刻を受け取る変数へのポインター。 |
戻り値
以下のいずれかの値を返します。
| Return code | Description |
|---|---|
| 成功しました。 | |
| このサンプルにはメディアタイムスタンプが設定されていません。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetMediaTime メソッドは、このサンプルのメディアタイムスタンプを設定します。
| pTimeStart | LONGLONG* | in | メディア開始時刻を格納する変数へのポインター。 |
| pTimeEnd | LONGLONG* | in | メディア停止時刻を格納する変数へのポインター。 |
戻り値
S_OK を返します。
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 方式にも切替可。#define global IID_IAMMediaTypeSample "{AB6B4AFB-F6E4-11D0-900D-00C04FD9189D}" #usecom global IAMMediaTypeSample IID_IAMMediaTypeSample "{}" #comfunc global IAMMediaTypeSample_SetPointer 8 sptr,int #comfunc global IAMMediaTypeSample_GetPointer 9 sptr #comfunc global IAMMediaTypeSample_GetSize 10 #comfunc global IAMMediaTypeSample_GetTime 11 sptr,sptr #comfunc global IAMMediaTypeSample_SetTime 12 sptr,sptr #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 sptr #comfunc global IAMMediaTypeSample_SetMediaType 20 sptr #comfunc global IAMMediaTypeSample_IsDiscontinuity 21 #comfunc global IAMMediaTypeSample_SetDiscontinuity 22 int #comfunc global IAMMediaTypeSample_GetMediaTime 23 sptr,sptr #comfunc global IAMMediaTypeSample_SetMediaTime 24 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。