IWMPDVD
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IWMPDVD インターフェイスは、DVD を操作するためのメソッドを提供します。
メソッド 6
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_isAvailable メソッドは、指定した種類の情報が利用可能かどうか、または指定した操作を実行できるかどうかを示します。
| bstrItem | LPWSTR | in | 次のいずれかの値を含む BSTR。
| ||||||||||||||
| pIsAvailable | VARIANT_BOOL* | inout | 指定したパラメーターが利用可能かどうかを示す VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
DVD デコーダーがインストールされていないコンピューターでは、Windows Media Player の DVD 機能は動作しません。デコーダーが利用可能かどうかは、get_isAvailable メソッドを呼び出して BSTR 値 "dvdDecoder" を渡すことで判定できます。
DVD はそれぞれ異なる方法でオーサリングされています。DVD の再生およびナビゲーション中に利用できるメソッドは、その DVD がどのようにオーサリングされているかによって異なります。
Windows Media Player 10 Mobile: このメソッドは常に FALSE に設定された VARIANT_BOOL を取得します。
get_domain メソッドは、DVD の現在のドメインを取得します。
| strDomain | LPWSTR* | inout | 次のいずれかの値を含む BSTR へのポインター。
|
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
DVD はそれぞれ異なる方法でオーサリングされています。DVD によっては、firstPlay、videoManagerMenu、videoTitleSetMenu の各ドメインを含まないものもあります。
Windows Media Player 10 Mobile: このメソッドは常に空の文字列を含む BSTR を取得します。
topMenu メソッドは、再生を停止し、現在のタイトルのトップ(またはルート)メニューを表示します。
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
DVD はそれぞれ異なる方法でオーサリングされています。このメソッドが機能するには、DVD にメニューが含まれている必要があります。DVD によっては、topMenu メソッドと IWMPDVD::titleMenu メソッドが同じメニューを開くようにオーサリングされている場合があります。topMenu メソッドは通常トップ(またはルート)メニューを呼び出しますが、利用できるルートメニューがない場合はタイトルメニューを呼び出すことがあります。
Windows Media Player 10 Mobile: このメソッドは常に S_OK を返しますが、意図した操作は実行しません。
titleMenu メソッドは、再生を停止し、タイトルメニューを表示します。
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
DVD はそれぞれ異なる方法でオーサリングされています。このメソッドが機能するには、DVD にメニューが含まれている必要があります。DVD によっては、IWMPDVD::topMenu メソッドと titleMenu メソッドが同じメニューを開くようにオーサリングされている場合があります。titleMenu メソッドは通常タイトルメニューを呼び出しますが、利用できるタイトルメニューがない場合はトップメニューを呼び出すことがあります。
Windows Media Player 10 Mobile: このメソッドは常に S_OK を返しますが、意図した操作は実行しません。
back メソッドは、表示をサブメニューからその親メニューに戻します。
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
DVD はそれぞれ異なる方法でオーサリングされています。DVD によっては、ルートメニューから back メソッドを利用できるようにオーサリングされているものの、呼び出しても何も実行されない場合があります。
Windows Media Player 10 Mobile: このメソッドは常に S_OK を返しますが、意図した操作は実行しません。
resume メソッドは、メニューを呼び出したときと同じタイトル位置で、メニューモードから再生モードに戻ります。
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
Windows Media Player 10 Mobile: このメソッドは常に S_OK を返しますが、意図した操作は実行しません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPDVD "{8DA61686-4668-4A5C-AE5D-803193293DBE}" #usecom global IWMPDVD IID_IWMPDVD "{}" #comfunc global IWMPDVD_get_isAvailable 7 wstr,var #comfunc global IWMPDVD_get_domain 8 var #comfunc global IWMPDVD_topMenu 9 #comfunc global IWMPDVD_titleMenu 10 #comfunc global IWMPDVD_back 11 #comfunc global IWMPDVD_resume 12 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWMPDVD "{8DA61686-4668-4A5C-AE5D-803193293DBE}" #usecom global IWMPDVD IID_IWMPDVD "{}" #comfunc global IWMPDVD_get_isAvailable 7 wstr,sptr #comfunc global IWMPDVD_get_domain 8 sptr #comfunc global IWMPDVD_topMenu 9 #comfunc global IWMPDVD_titleMenu 10 #comfunc global IWMPDVD_back 11 #comfunc global IWMPDVD_resume 12 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。