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

IWMWriterPostView

COM
IID81e20ce4-75ef-491a-8004-fc53c45bdc3e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMWriterPostView インターフェイスは、サンプルのポストビュー(postview)に関連する高度な書き込み機能を管理します。

メソッド 9

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

vtbl 3 HRESULT SetPostViewCallback(IWMWriterPostViewCallback* pCallback, void* pvContext)

SetPostViewCallback メソッドは、ポストビューサンプルの受信に使用するコールバックインターフェイスを指定します。

pCallbackIWMWriterPostViewCallback*inIWMWriterPostViewCallback インターフェイスへのポインター。
pvContextvoid*inout汎用ポインター。アプリケーションが使用します。

戻り値

このメソッドは常に S_OK を返します。

vtbl 4 HRESULT SetReceivePostViewSamples(WORD wStreamNum, BOOL fReceivePostViewSamples)

SetReceivePostViewSamples メソッドは、指定したストリームのポストビューサンプルの配信を有効または無効にします。

wStreamNumWORDinストリーム番号を格納する WORD
fReceivePostViewSamplesBOOLinポストビューサンプルを配信する必要がある場合に True となるブール値。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
wStreamNum が 1 未満、または最大ストリーム数を超えています。
NS_E_INVALID_STREAM
そのストリームの出力を取得できませんでした。
NS_E_INVALID_REQUEST
ストリームがポストビューをサポートしていません。
vtbl 5 HRESULT GetReceivePostViewSamples(WORD wStreamNum, BOOL* pfReceivePostViewSamples)

GetReceivePostViewSamples メソッドは、指定したストリームでポストビューサンプルの配信が有効になっているかどうかを示すフラグを取得します。

wStreamNumWORDinストリーム番号を格納する WORD
pfReceivePostViewSamplesBOOL*outフラグへのポインター。True はポストビューサンプルが配信されることを示します。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
pfReceivePostViewSamples に NULL 値が渡されました。
vtbl 6 HRESULT GetPostViewProps(WORD wStreamNumber, IWMMediaProps** ppOutput)

GetPostViewProps メソッドは、指定した出力ストリームのプロパティを取得します。

wStreamNumberWORDinストリーム番号を格納する WORD
ppOutputIWMMediaProps**outIWMMediaProps インターフェイスへのポインターへのポインター。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
ppOutput に NULL 値が渡されました。

解説(Remarks)

アプリケーションはさまざまな出力を列挙し、そのデータの出力フォーマットプロパティを取得できます。取得したオブジェクトを操作しても、アプリケーションが SetPostViewProps も呼び出さない限り、出力には影響しません。

vtbl 7 HRESULT SetPostViewProps(WORD wStreamNumber, IWMMediaProps* pOutput)

SetPostViewProps メソッドは、指定した出力ストリームのフォーマットを指定します。

wStreamNumberWORDinストリーム番号を格納する WORD
pOutputIWMMediaProps*inIWMMediaProps インターフェイスへのポインター。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
NS_E_INVALID_STREAM
wStreamNumber で指定されたストリーム番号が無効です。
E_OUTOFMEMORY
メソッドは内部構造体を作成できませんでした。

解説(Remarks)

ポストビュープロパティを使用してビデオ出力のサイズを変更することはできません。

IWMWriter::BeginWriting が既に呼び出されている場合、SetPostViewProps は失敗します。ポストビュープロパティを変更する必要がある場合は、BeginWriting を呼び出す前に行う必要があります。

vtbl 8 HRESULT GetPostViewFormatCount(WORD wStreamNumber, DWORD* pcFormats)

GetPostViewFormatCount メソッドは、指定したストリームでサポートされているすべてのフォーマットタイプを確認するために使用します。

wStreamNumberWORDinストリーム番号を格納する WORD
pcFormatsDWORD*out出力フォーマットの数へのポインター。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
pcFormats に NULL 値が渡されました。

解説(Remarks)

このメソッドは GetPostViewFormat と組み合わせて使用することで、リーダー上のこの出力がサポートするすべてのフォーマットタイプを確認できます。

vtbl 9 HRESULT GetPostViewFormat(WORD wStreamNumber, DWORD dwFormatNumber, IWMMediaProps** ppProps)

GetPostViewFormat メソッドは、指定した出力ストリームおよび出力フォーマットのメディアプロパティを取得します。

wStreamNumberWORDinストリーム番号を格納する WORD
dwFormatNumberDWORDinフォーマット番号を格納する DWORD
ppPropsIWMMediaProps**outIWMMediaProps インターフェイスへのポインターへのポインター。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
ppProps に NULL 値が渡されました。
E_OUTOFMEMORY
タスクを完了するのに十分なメモリがありません。

解説(Remarks)

このメソッドは GetPostViewFormatCount と組み合わせて使用することで、リーダー上のこの出力がサポートするすべてのフォーマットタイプを判別できます。

vtbl 10 HRESULT SetAllocateForPostView(WORD wStreamNumber, BOOL fAllocate)

SetAllocateForPostView メソッドは、ライターではなくアプリケーションがバッファーを提供する必要があるかどうかを指定します。

wStreamNumberWORDinストリーム番号を格納する WORD
fAllocateBOOLinブール値。アプリケーションがバッファーを割り当てる場合は True、リーダーに任せる場合は False を設定します。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
NS_E_INVALID_STREAM
wStreamNumber で指定されたストリーム番号が無効です。
E_OUTOFMEMORY
メソッドは内部構造体を作成できませんでした。

解説(Remarks)

アプリケーションは、リーダーによって割り当てられたバッファーを使用する代わりに、任意の出力に対してバッファーを提供できます。たとえば、一部のアプリケーションは Microsoft DirectDraw® バッファーを割り当てることができます。

バッファーの実際の割り当ては IWMReaderCallbackAdvanced インターフェイスによって処理されます。

vtbl 11 HRESULT GetAllocateForPostView(WORD wStreamNumber, BOOL* pfAllocate)

GetAllocateForPostView メソッドは、ライターではなくアプリケーションがバッファーを提供する必要があるかどうかを確認します。

wStreamNumberWORDinストリーム番号を格納する WORD
pfAllocateBOOL*outブール値へのポインター。アプリケーションがバッファーを割り当てる場合は True、ライターに任せる場合は False となります。

戻り値

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

戻り値コード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
pfAllocate に NULL 値が渡されました。

解説(Remarks)

SetAllocateForPostView の「解説」を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。