IWMPClosedCaption
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IWMPClosedCaption インターフェイスは、デジタルメディアファイルにキャプションを含めるための手段を提供します。キャプションのテキストは、Synchronized Accessible Media Interchange (SAMI) ファイルに記述されます。
メソッド 8
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_SAMIStyle メソッドは、クローズドキャプションのスタイルを取得します。
| pbstrSAMIStyle | LPWSTR* | inout | SAMI スタイルを格納する BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
1 つの SAMI ファイルには、複数の書式スタイル定義を含めることができます。SAMI スタイルは、SAMI ファイル内の <STYLE> タグと </STYLE> タグの間に定義します。スタイルは、# 文字を先頭に付けたテキスト文字列で定義します。たとえば、次のコードは、あるスタイルに使用するテキストの書式を指定しています。
#Emphasis1 {Name: Big Bold Italic; font-size: 14pt; text-align: center;
color: blue; font-family: sans-serif; font-weight: bold;
font-style: italic;}
SAMI スタイルが指定されていない場合は、既定で SAMI ファイル内に最初に定義されているスタイルが使用されます。
Windows Media Player 10 Mobile: このメソッドは常に空の文字列を格納する BSTR を取得します。
put_SAMIStyle メソッドは、クローズドキャプションのスタイルを指定します。
| bstrSAMIStyle | LPWSTR | in | SAMI スタイルを格納する BSTR。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
1 つの SAMI ファイルには、複数の書式スタイル定義を含めることができます。SAMI スタイルは、SAMI ファイル内の <STYLE> タグと </STYLE> タグの間に定義します。スタイルは、# 文字を先頭に付けたテキスト文字列で定義します。たとえば、次のコードは、あるスタイルに使用するテキストの書式を指定しています。
#Emphasis1 {Name: Big Bold Italic; font-size: 14pt; text-align: center;
color: blue; font-family: sans-serif; font-weight: bold;
font-style: italic;}
SAMI スタイルが指定されていない場合は、既定で SAMI ファイル内に最初に定義されているスタイルが使用されます。
Windows Media Player 10 Mobile: このメソッドは常に E_INVALIDARG を返します。
get_SAMILang メソッドは、クローズドキャプションに表示される言語を取得します。
| pbstrSAMILang | LPWSTR* | inout | 言語を格納する BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
1 つの SAMI ファイルには、1 つまたは複数の言語のテキストを含めることができます。クローズドキャプションに使用できる言語は、SAMI ファイル内の <STYLE> タグと </STYLE> タグの間に定義します。言語識別子は、ピリオド (.) を先頭に付けた一意の英数字文字列で指定します。言語に指定する名前には、任意の文字列を使用できます。たとえば、次のコードは米国英語を定義するために使用できます。
.ENUSCC {Name:'English Captions' lang: en-US; SAMIType:CC;}
SAMI 言語が指定されていない場合は、既定で SAMI ファイル内に最初に定義されている言語が使用されます。
put_SAMILang を使用して指定する値は、言語指定子の Name 属性と一致している必要があります。
Windows Media Player 10 Mobile: このメソッドは常に空の文字列を格納する BSTR を取得します。
put_SAMILang メソッドは、クローズドキャプションに表示される言語を指定します。
| bstrSAMILang | LPWSTR | in | 言語を格納する BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
1 つの SAMI ファイルには、1 つまたは複数の言語のテキストを含めることができます。クローズドキャプションに使用できる言語は、SAMI ファイル内の <STYLE> タグと </STYLE> タグの間に定義します。言語識別子は、ピリオド (.) を先頭に付けた一意の英数字文字列で指定します。言語に指定する名前には、任意の文字列を使用できます。たとえば、次のコードは米国英語を定義するために使用できます。
.ENUSCC {Name:'English Captions' lang: en-US; SAMIType:CC;}
SAMI 言語が指定されていない場合は、既定で SAMI ファイル内に最初に定義されている言語が使用されます。
put_SAMILang を使用して指定する値は、言語指定子の Name 属性と一致している必要があります。
Windows Media Player 10 Mobile: このメソッドは常に E_INVALIDARG を返します。
get_SAMIFileName メソッドは、クローズドキャプションに必要な情報を格納するファイルの名前を取得します。
| pbstrSAMIFileName | LPWSTR* | inout | Synchronized Accessible Media Interchange (SAMI) ファイルの名前を格納する BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
SAMI ファイルには、.smi または .sami のファイル名拡張子を使用する必要があります。
IWMPClosedCaption::put_SAMIFileName を使用して値を指定していない場合、get_SAMIFileName メソッドは、現在のメディア項目に関連付けられた既定のファイルまたは URL を格納する BSTR を取得します。この関連付けは、sami URL パラメーターを使用して SAMI ファイルが指定されている場合、または SAMI ファイルがデジタルメディアファイルと同じ名前 (ファイル名拡張子を除く) である場合に自動的に発生します。現在のメディアに関連付けられた既定の SAMI ファイルがない場合、get_SAMIFileName は空の文字列 ("") を取得します。
Windows Media Player に特定のメディア項目に関連付けられた既定の SAMI ファイルを使用させたい場合は、次のメディア項目を再生する前に、空の文字列 ("") を使用して IWMPClosedCaption::put_SAMIFileName を呼び出します。
Windows Media Player 10 Mobile: このメソッドは常に空の文字列を格納する BSTR を取得します。
put_SAMIFileName メソッドは、クローズドキャプションに必要な情報を格納するファイルの名前を指定します。
| bstrSAMIFileName | LPWSTR | in | SAMI ファイル名を格納する BSTR。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
SAMI ファイルには、.smi または .sami のファイル名拡張子を使用する必要があります。
put_SAMIFileName を使用して値を指定すると、その値は新しい値を指定するまで (または sami URL パラメーターを使用して新しいメディア項目が開かれるまで) 保持されます。そのため、新しいメディア項目を再生する前に、このメソッドで毎回新しい値を指定する必要があります。新しい値は、次のメディア項目が開かれたとき (または IWMPCore::close が呼び出されたとき) に有効になります。put_SAMIFileName を使用して新しい値を指定しても、現在のメディア項目には影響しません。
Windows Media Player 10 Mobile: このメソッドは常に E_INVALIDARG を返します。
get_captioningId メソッドは、キャプションを表示する要素の名前を取得します。
| pbstrCaptioningID | LPWSTR* | inout | キャプション ID を格納する BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
指定する要素名には、innerHTML 属性をサポートしていれば、Web ページ内の任意の HTML 要素を使用できます。Web ページに複数のフレームが含まれている場合、要素名は Windows Media Player コントロールと同じフレーム内の要素のみを参照できます。
Windows Media Player 10 Mobile: このメソッドは常に空の文字列を格納する BSTR を取得します。
put_captioningId メソッドは、キャプションを表示する要素の名前を指定します。
| bstrCaptioningID | LPWSTR | in | キャプション ID を格納する BSTR。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
指定する要素名には、innerHTML 属性をサポートしていれば、Web ページ内の任意の HTML 要素を使用できます。Web ページに複数のフレームが含まれている場合、要素名は Windows Media Player コントロールと同じフレーム内の要素のみを参照できます。
Windows Media Player 10 Mobile: このメソッドは常に E_INVALIDARG を返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPClosedCaption "{4F2DF574-C588-11D3-9ED0-00C04FB6E937}" #usecom global IWMPClosedCaption IID_IWMPClosedCaption "{}" #comfunc global IWMPClosedCaption_get_SAMIStyle 7 var #comfunc global IWMPClosedCaption_put_SAMIStyle 8 wstr #comfunc global IWMPClosedCaption_get_SAMILang 9 var #comfunc global IWMPClosedCaption_put_SAMILang 10 wstr #comfunc global IWMPClosedCaption_get_SAMIFileName 11 var #comfunc global IWMPClosedCaption_put_SAMIFileName 12 wstr #comfunc global IWMPClosedCaption_get_captioningId 13 var #comfunc global IWMPClosedCaption_put_captioningId 14 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWMPClosedCaption "{4F2DF574-C588-11D3-9ED0-00C04FB6E937}" #usecom global IWMPClosedCaption IID_IWMPClosedCaption "{}" #comfunc global IWMPClosedCaption_get_SAMIStyle 7 sptr #comfunc global IWMPClosedCaption_put_SAMIStyle 8 wstr #comfunc global IWMPClosedCaption_get_SAMILang 9 sptr #comfunc global IWMPClosedCaption_put_SAMILang 10 wstr #comfunc global IWMPClosedCaption_get_SAMIFileName 11 sptr #comfunc global IWMPClosedCaption_put_SAMIFileName 12 wstr #comfunc global IWMPClosedCaption_get_captioningId 13 sptr #comfunc global IWMPClosedCaption_put_captioningId 14 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。