IWMWriterPostView
COM公式ドキュメント
IWMWriterPostView インターフェイスは、サンプルのポストビュー(postview)に関連する高度な書き込み機能を管理します。
メソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
SetPostViewCallback メソッドは、ポストビューサンプルの受信に使用するコールバックインターフェイスを指定します。
| pCallback | IWMWriterPostViewCallback* | in | IWMWriterPostViewCallback インターフェイスへのポインター。 |
| pvContext | void* | inout | 汎用ポインター。アプリケーションが使用します。 |
戻り値
このメソッドは常に S_OK を返します。
SetReceivePostViewSamples メソッドは、指定したストリームのポストビューサンプルの配信を有効または無効にします。
| wStreamNum | WORD | in | ストリーム番号を格納する WORD。 |
| fReceivePostViewSamples | BOOL | in | ポストビューサンプルを配信する必要がある場合に True となるブール値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| wStreamNum が 1 未満、または最大ストリーム数を超えています。 | |
| そのストリームの出力を取得できませんでした。 | |
| ストリームがポストビューをサポートしていません。 |
GetReceivePostViewSamples メソッドは、指定したストリームでポストビューサンプルの配信が有効になっているかどうかを示すフラグを取得します。
| wStreamNum | WORD | in | ストリーム番号を格納する WORD。 |
| pfReceivePostViewSamples | BOOL* | out | フラグへのポインター。True はポストビューサンプルが配信されることを示します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pfReceivePostViewSamples に NULL 値が渡されました。 |
GetPostViewProps メソッドは、指定した出力ストリームのプロパティを取得します。
| wStreamNumber | WORD | in | ストリーム番号を格納する WORD。 |
| ppOutput | IWMMediaProps** | out | IWMMediaProps インターフェイスへのポインターへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ppOutput に NULL 値が渡されました。 |
解説(Remarks)
アプリケーションはさまざまな出力を列挙し、そのデータの出力フォーマットプロパティを取得できます。取得したオブジェクトを操作しても、アプリケーションが SetPostViewProps も呼び出さない限り、出力には影響しません。
SetPostViewProps メソッドは、指定した出力ストリームのフォーマットを指定します。
| wStreamNumber | WORD | in | ストリーム番号を格納する WORD。 |
| pOutput | IWMMediaProps* | in | IWMMediaProps インターフェイスへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| wStreamNumber で指定されたストリーム番号が無効です。 | |
| メソッドは内部構造体を作成できませんでした。 |
解説(Remarks)
ポストビュープロパティを使用してビデオ出力のサイズを変更することはできません。
IWMWriter::BeginWriting が既に呼び出されている場合、SetPostViewProps は失敗します。ポストビュープロパティを変更する必要がある場合は、BeginWriting を呼び出す前に行う必要があります。
GetPostViewFormatCount メソッドは、指定したストリームでサポートされているすべてのフォーマットタイプを確認するために使用します。
| wStreamNumber | WORD | in | ストリーム番号を格納する WORD。 |
| pcFormats | DWORD* | out | 出力フォーマットの数へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pcFormats に NULL 値が渡されました。 |
解説(Remarks)
このメソッドは GetPostViewFormat と組み合わせて使用することで、リーダー上のこの出力がサポートするすべてのフォーマットタイプを確認できます。
GetPostViewFormat メソッドは、指定した出力ストリームおよび出力フォーマットのメディアプロパティを取得します。
| wStreamNumber | WORD | in | ストリーム番号を格納する WORD。 |
| dwFormatNumber | DWORD | in | フォーマット番号を格納する DWORD。 |
| ppProps | IWMMediaProps** | out | IWMMediaProps インターフェイスへのポインターへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ppProps に NULL 値が渡されました。 | |
| タスクを完了するのに十分なメモリがありません。 |
解説(Remarks)
このメソッドは GetPostViewFormatCount と組み合わせて使用することで、リーダー上のこの出力がサポートするすべてのフォーマットタイプを判別できます。
SetAllocateForPostView メソッドは、ライターではなくアプリケーションがバッファーを提供する必要があるかどうかを指定します。
| wStreamNumber | WORD | in | ストリーム番号を格納する WORD。 |
| fAllocate | BOOL | in | ブール値。アプリケーションがバッファーを割り当てる場合は True、リーダーに任せる場合は False を設定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| wStreamNumber で指定されたストリーム番号が無効です。 | |
| メソッドは内部構造体を作成できませんでした。 |
解説(Remarks)
アプリケーションは、リーダーによって割り当てられたバッファーを使用する代わりに、任意の出力に対してバッファーを提供できます。たとえば、一部のアプリケーションは Microsoft DirectDraw® バッファーを割り当てることができます。
バッファーの実際の割り当ては IWMReaderCallbackAdvanced インターフェイスによって処理されます。
GetAllocateForPostView メソッドは、ライターではなくアプリケーションがバッファーを提供する必要があるかどうかを確認します。
| wStreamNumber | WORD | in | ストリーム番号を格納する WORD。 |
| pfAllocate | BOOL* | out | ブール値へのポインター。アプリケーションがバッファーを割り当てる場合は True、ライターに任せる場合は False となります。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものがありますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pfAllocate に NULL 値が渡されました。 |
解説(Remarks)
SetAllocateForPostView の「解説」を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMWriterPostView "{81E20CE4-75EF-491A-8004-FC53C45BDC3E}" #usecom global IWMWriterPostView IID_IWMWriterPostView "{}" #comfunc global IWMWriterPostView_SetPostViewCallback 3 sptr,sptr #comfunc global IWMWriterPostView_SetReceivePostViewSamples 4 int,int #comfunc global IWMWriterPostView_GetReceivePostViewSamples 5 int,var #comfunc global IWMWriterPostView_GetPostViewProps 6 int,sptr #comfunc global IWMWriterPostView_SetPostViewProps 7 int,sptr #comfunc global IWMWriterPostView_GetPostViewFormatCount 8 int,var #comfunc global IWMWriterPostView_GetPostViewFormat 9 int,int,sptr #comfunc global IWMWriterPostView_SetAllocateForPostView 10 int,int #comfunc global IWMWriterPostView_GetAllocateForPostView 11 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMWriterPostView "{81E20CE4-75EF-491A-8004-FC53C45BDC3E}" #usecom global IWMWriterPostView IID_IWMWriterPostView "{}" #comfunc global IWMWriterPostView_SetPostViewCallback 3 sptr,sptr #comfunc global IWMWriterPostView_SetReceivePostViewSamples 4 int,int #comfunc global IWMWriterPostView_GetReceivePostViewSamples 5 int,sptr #comfunc global IWMWriterPostView_GetPostViewProps 6 int,sptr #comfunc global IWMWriterPostView_SetPostViewProps 7 int,sptr #comfunc global IWMWriterPostView_GetPostViewFormatCount 8 int,sptr #comfunc global IWMWriterPostView_GetPostViewFormat 9 int,int,sptr #comfunc global IWMWriterPostView_SetAllocateForPostView 10 int,int #comfunc global IWMWriterPostView_GetAllocateForPostView 11 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。