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

IDvdControl2

COM
IID33bc7430-eec0-11d2-8201-00a0c9d74842継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IDvdControl2 インターフェイスは、DVD-Video タイトルのナビゲーションと再生を行います。

メソッド 40

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

vtbl 3 HRESULT PlayTitle(DWORD ulTitle, DWORD dwFlags, IDvdCmd** ppCmd)

PlayTitle メソッドは、指定されたタイトルの先頭から再生を開始します。

ulTitleDWORDinタイトル番号を指定する値。この値は 1 から 99 の範囲でなければなりません。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
E_INVALIDARG
引数が無効です。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Title_Play
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 4 HRESULT PlayChapterInTitle(DWORD ulTitle, DWORD ulChapter, DWORD dwFlags, IDvdCmd** ppCmd)

PlayChapterInTitle メソッドは、指定されたタイトル内の指定されたチャプターの先頭から再生を開始します。

ulTitleDWORDinチャプターが含まれるタイトルを指定する値。この値は 1 から 99 の範囲でなければなりません。
ulChapterDWORDinDVD Navigator が再生を開始する、指定されたタイトル内のチャプターを指定する値。この値は 1 から 999 の範囲でなければなりません。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
E_INVALIDARG
引数が無効です。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

このメソッドは、DVDSample アプリケーションの CDvdCore::PlayChapterInTitle で示されています。

Annex J コマンド名 有効なドメイン
PTT_Play
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 5 HRESULT PlayAtTimeInTitle(DWORD ulTitle, DVD_HMSF_TIMECODE* pStartTime, DWORD dwFlags, IDvdCmd** ppCmd)

PlayAtTimeInTitle メソッドは、指定されたタイトル内の指定された時刻から再生を開始します。

ulTitleDWORDin再生するタイトルの番号を指定する値。この値は 1 から 99 の範囲でなければなりません。
pStartTimeDVD_HMSF_TIMECODE*in再生を開始する位置を指定する DVD_HMSF_TIMECODE 構造体へのポインター。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
E_INVALIDARG
引数が無効です。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Time_Play
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 6 HRESULT Stop()

Stop メソッドは、DVD Navigator を DVD Stop ドメインに移行させることで、タイトルまたはメニューの再生を停止します。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。

解説(Remarks)

このメソッドを呼び出すと、DVD Navigator は Stop ドメインに移行しますが、DVD フィルターグラフ全体は実行状態のまま保たれ、いつでも再生できる状態になります。Stop ドメインからは、ユーザーはメニューを表示したり、いずれかの "Play" メソッドを通じて直接再生を開始したりできます。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Stop
  • DVD_DOMAIN_FirstPlay
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 7 HRESULT ReturnFromSubmenu(DWORD dwFlags, IDvdCmd** ppCmd)

ReturnFromSubmenu メソッドは、表示をサブメニューからその親メニューに戻します。

dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
VFW_E_DVD_NO_GOUP_PGC
GoUp プログラムチェーン (PGC) が存在しないため、この操作は実行できません。

解説(Remarks)

DVD Navigator が最上位のメニューにある場合、このメソッドは IDvdControl2::Resume メソッドを呼び出し、再生が中断された位置から続行されるようにします。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
GoUP
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 8 HRESULT PlayAtTime(DVD_HMSF_TIMECODE* pTime, DWORD dwFlags, IDvdCmd** ppCmd)

PlayAtTime メソッドは、現在のタイトル内の指定された時刻から再生を開始します。

pTimeDVD_HMSF_TIMECODE*in再生を開始する時刻を指定する DVD_HMSF_TIMECODE 構造体へのポインター。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
引数が無効です。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

このメソッドは、DVDSample アプリケーションの CDvdCore::PlayTime で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Time_Search DVD_DOMAIN_Title
vtbl 9 HRESULT PlayChapter(DWORD ulChapter, DWORD dwFlags, IDvdCmd** ppCmd)

PlayChapter メソッドは、現在のタイトル内の指定されたチャプターから再生を開始します。

ulChapterDWORDinDVD Navigator が再生を開始する、現在のタイトル内のチャプターを指定する値。この値は 1 から 999 の範囲でなければなりません。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
E_INVALIDARG
引数が無効です。

解説(Remarks)

DVD Navigator は指定されたチャプターから再生を開始し、後続のチャプターへと続けます。現在のチャプターのみを再生するには、IDvdControl2::PlayChaptersAutoStop を使用します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

このメソッドは、DVDSample アプリケーションの CDvdCore::PlayChapter で示されています。

Annex J コマンド名 有効なドメイン
PTT_Search DVD_DOMAIN_Title
vtbl 10 HRESULT PlayPrevChapter(DWORD dwFlags, IDvdCmd** ppCmd)

PlayPrevChapter メソッドは、現在のタイトル内の前のチャプターの先頭から再生を開始します。

dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

このメソッドは、DVDSample アプリケーションの CDvdCore::PrevChapter で示されています。

Annex J コマンド名 有効なドメイン
PrevPG_Search
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 11 HRESULT ReplayChapter(DWORD dwFlags, IDvdCmd** ppCmd)

ReplayChapter メソッドは、現在のチャプターの先頭から再生を開始します。

dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
TopPG_Search
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 12 HRESULT PlayNextChapter(DWORD dwFlags, IDvdCmd** ppCmd)

PlayNextChapter メソッドは、現在のタイトル内の次のチャプターの先頭から再生を開始します。

dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

次のチャプターを再生した後、DVD Navigator はディスク上の分岐指示に従って再生を続けます。次のチャプターのみを再生するには、IDvdControl2::PlayChaptersAutoStop を呼び出します。

このメソッドは、DVDSample アプリケーションの CDvdCore::NextChapter で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
NextPG_Search
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 13 HRESULT PlayForwards(DOUBLE dSpeed, DWORD dwFlags, IDvdCmd** ppCmd)

PlayForwards メソッドは、現在の位置から指定された速度で順方向に再生します。

dSpeedDOUBLEin再生速度を指定する値。この値は倍率であり、1.0 がオーサリング時の速度です。したがって、2.5 の値はオーサリング時の速度の 2.5 倍で再生し、0.5 の値はオーサリング時の速度の半分で再生します。実際の再生速度はビデオデコーダーの能力に依存します。0.00001 未満の値は 0.00001 に変換されます。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

このメソッドは、DVDSample アプリケーションの CDvdCore::FastForward で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Forward_Scan
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 14 HRESULT PlayBackwards(DOUBLE dSpeed, DWORD dwFlags, IDvdCmd** ppCmd)

PlayBackwards メソッドは、現在の位置から指定された速度で逆方向に再生します。

dSpeedDOUBLEin逆方向再生の速度を指定する値。この値は倍率であり、1.0 がオーサリング時の速度です。したがって、2.5 の値はオーサリング時の速度の 2.5 倍で逆方向に再生し、0.5 の値はオーサリング時の速度の半分で逆方向に再生します。実際の再生速度はビデオデコーダーの能力に依存し、指定した速度と異なる場合があります。逆方向再生では、オーディオはミュートされ、サブピクチャは表示されません。0.00001 未満の速度は 0.00001 に変換されます。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

このメソッドは、DVDSample アプリケーションの CDvdCore::Rewind で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Backward_Scan
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 15 HRESULT ShowMenu(DVD_MENU_ID MenuID, DWORD dwFlags, IDvdCmd** ppCmd)

ShowMenu メソッドは、指定されたメニューが利用可能な場合にそれを表示します。

MenuIDDVD_MENU_IDin表示するメニューを指定する DVD_MENU_ID 列挙値。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
MenuID パラメーターが無効です。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。
VFW_E_DVD_MENU_DOES_NOT_EXIST
指定されたメニューは存在しません。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

Video Manager Menu (VMGM) は、Title ドメインまたは Video Title Set ドメインからアクセスできる必要があります。Video Title Set メニュー (VTSM) は、VMGM を通じてのみアクセスできる場合があります。各 VTSM の下にあるサブメニュー (チャプター、アングル、オーディオおよびサブピクチャストリーム用) は、その VTSM を通じてのみアクセスできます。

このメソッドは、DVDSample アプリケーションの CDvdCore::RootMenu および CDvdCore::TitleMenu で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Menu_Call すべて。
vtbl 16 HRESULT Resume(DWORD dwFlags, IDvdCmd** ppCmd)

Resume メソッドは、メニューを抜けて再生を再開します。

dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
VFW_E_DVD_NO_RESUME_INFORMATION
Video Manager Menu から Resume が呼び出されました。

解説(Remarks)

このメソッドは、再生が中断された位置から再生に戻ります。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

このメソッドは、DVDSample アプリケーションの CDvdCore::RootMenu および CDvdCore::TitleMenu で示されています。

Annex J コマンド名 有効なドメイン
Resume
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Stop
vtbl 17 HRESULT SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir)

SelectRelativeButton メソッドは、指定された相対ボタン (上、下、右、または左) を設定します。

buttonDirDVD_RELATIVE_BUTTONin選択するボタンを示す DVD_RELATIVE_BUTTON 列挙値。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator フィルターが有効なドメインにありません。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
(Left/Right/Upper/Lower)_Button_Select
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 18 HRESULT ActivateButton()

ActivateButton メソッドは、現在選択されているメニューボタンをアクティブ化します。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator が無効なドメインにあります。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御により、DVD Navigator は一時停止状態に入ることを禁止されています。
VFW_E_DVD_NO_BUTTON
ボタンが選択されていません。

解説(Remarks)

アプリケーションは、物理的なリモコンのボタンを表すために、ビデオ表示の横に 4 つの相対ボタンを備えている場合と備えていない場合があります。これらのボタンによって、ユーザーはメニューボタンを選択できますが、アクティブ化することはできません。選択したボタンをアクティブ化するには、5 つ目のボタンが必要です。5 つ目のボタンのマウスクリックに応じて ActivateButton を呼び出します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Button_Activate
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 19 HRESULT SelectButton(DWORD ulButton)

SelectButton メソッドは、指定されたメニューボタンを選択します。

ulButtonDWORDin選択するボタンを指定する、1 から 36 の値。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator が無効なドメインにあります。
VFW_E_DVD_NO_BUTTON
ボタンが選択されていません。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御により、DVD Navigator は一時停止状態に入ることを禁止されています。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Upper_Button_Select, Lower_Button_Select, Left_Button_Select, Right_Button_Select
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 20 HRESULT SelectAndActivateButton(DWORD ulButton)

SelectAndActivateButton メソッドは、指定されたメニューボタンを選択してアクティブ化します。

ulButtonDWORDin選択してアクティブ化するボタンを指定する、1 から 36 の値。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
ulButton が範囲外です。
E_UNEXPECTED
ulButton の値は有効ですが、DVD Navigator フィルターがそれをアクティブ化できませんでした。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Button_Select_and_Activate
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 21 HRESULT StillOff()

StillOff メソッドは、静止モードを解除して再生を再開します。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_UNEXPECTED
DVD Navigator フィルターがメニュードメインにあり、メニューにボタンがあります。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

静止画 (still) は、ディスクによって提示される静的な画像です。これは、ユーザーが Pause ボタンをクリックしたときに表示される、フリーズした表示画像とは異なります。DVD Navigator は静止画に遭遇すると、アプリケーションに EC_DVD_STILL_ON メッセージを送信し、その画像を表示する still-store モードに入り、再生を再開する前に StillOff が呼び出されるのを待ちます。

DVD Navigator が still-store モードにない場合、このメソッドは何も行いません。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Still_Off
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 22 HRESULT Pause(BOOL bState)

メモ  このメソッドは非推奨です。アプリケーションは代わりに IMediaControl::Pause を呼び出す必要があります。詳細については、「DVD Navigator におけるデータフロー」を参照してください。Pause メソッドは、現在の位置で再生を一時停止または再開します。

bStateBOOLin再生を一時停止するかどうかを指定する Boolean 型の値。TRUE は一時停止することを意味します。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御により、DVD Navigator は一時停止状態に入ることを禁止されています。

解説(Remarks)

DVD Navigator を一時停止状態にすると、IMediaControl::Pause と同様に、再生とすべての内部タイマーが停止します。フィルターグラフが実行されていない場合、このメソッドは何も行いません。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Pause_On, Pause_Off
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
vtbl 23 HRESULT SelectAudioStream(DWORD ulAudio, DWORD dwFlags, IDvdCmd** ppCmd)

SelectAudioStream メソッドは、再生するオーディオストリームを選択します。

ulAudioDWORDinオーディオストリームを指定する値。有効なストリーム番号は 0 から 7 です。既定のストリームを指定するには DVD_DEFAULT_AUDIO_STREAM を指定します。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。このパラメーターは現在無視されます。DVD_CMD_FLAG_None を使用してください。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_FALSE
既定のオーディオストリームが見つからなかったか、dwFlags が 0 ではありません。
S_OK
成功しました。
E_INVALIDARG
ulAudio が範囲外であるか、オーディオストリームに対応していません。
E_UNEXPECTED
ulAudio の値は有効ですが、何らかの理由で DVD Navigator がそれを設定できませんでした。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
VFW_E_DVD_STREAM_DISABLED
指定されたストリームは無効化されています。

解説(Remarks)

このメソッドは、現在の Video Title Set (VTS) のオーディオに影響します。メニュー内から呼び出された場合、このメソッドは、そのメニューの呼び出し元となったタイトルのオーディオストリームを設定します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Audio_Stream_Change
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 24 HRESULT SelectSubpictureStream(DWORD ulSubPicture, DWORD dwFlags, IDvdCmd** ppCmd)

SelectSubpictureStream メソッドは、表示するサブピクチャストリームを設定します。

ulSubPictureDWORDin

サブピクチャストリームを指定する値。0 から 31、または 63 でなければなりません。

説明
0-31 ストリームは有効です。
63 ストリームは ダミーストリーム です。これは、ミュートされた低ビットレートのストリームであることを意味します。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
ulSubPicture が範囲外であるか、サブピクチャ (SP) ストリームに対応していません。
E_UNEXPECTED
ulSubPicture パラメーターは有効ですが、他の何らかの理由で DVD Navigator がそれを設定できません。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。
VFW_E_DVD_STREAM_DISABLED
指定されたストリームは無効化されています。

解説(Remarks)

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Sub-picture_Stream_Change
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 25 HRESULT SetSubpictureState(BOOL bState, DWORD dwFlags, IDvdCmd** ppCmd)

SetSubpictureState メソッドは、サブピクチャ表示のオンとオフを切り替えます。

bStateBOOLinサブピクチャ表示をオンにするかどうかを指定する Boolean 値。TRUE は、以降の再生でサブピクチャ表示をオンに設定します。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator が First Play ドメインにあります。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

サブピクチャストリームは、通常、メニューではボタンのテキストや場合によってはボタンのグラフィックに、ビデオ再生では字幕、クレジット、その他の重ね合わせグラフィックに使用されます。サブピクチャをクローズドキャプションと混同しないでください。後者はビデオストリーム内にエンコードされています。一般に、このメソッドは、DVD Navigator フィルターが DVD Title ドメインでビデオを再生している間に、ビデオ上のサブピクチャ表示を制御することを目的としています。

このメソッドは、Annex J の "Sub-picture_Stream_Change" コマンドの 2 番目のパラメーターに対応します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Sub-picture_stream_Change
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 26 HRESULT SelectAngle(DWORD ulAngle, DWORD dwFlags, IDvdCmd** ppCmd)

SelectAngle メソッドは、DVD Navigator がアングルブロック内にあるときに新しいアングルを設定します。

ulAngleDWORDin新しいアングルの値。1 から 9 でなければなりません。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
ulAngle が範囲外です。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator が First Play ドメインにあります。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
VFW_E_DVD_WRONG_SPEED
現在の再生速度ではこの操作を実行できません。速度を 1.0 に設定してください。

解説(Remarks)

アングルとメニューボタンのインデックスは 1 から始まるのに対し、オーディオストリームとサブピクチャストリームのインデックスは 0 から始まることに注意してください。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Angle_Change
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 27 HRESULT SelectParentalLevel(DWORD ulParentalLevel)

SelectParentalLevel メソッドは、ログオンしているユーザーのペアレンタルアクセスレベルを設定します。

ulParentalLevelDWORDin現在のユーザーのペアレンタルアクセスレベルを指定する値。詳細については、「解説」を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
引数が無効です。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。

解説(Remarks)

DVD 仕様では、1 (最も制限が厳しい) から 8 (最も制限が緩い) までの番号が付けられた 8 つの汎用ペアレンタルレベルが定義されています。これらのレベルの意味は地域ごとに異なり、現在の国/地域に依存します (IDvdControl2::SelectParentalCountry を参照)。米国とカナダ (DVD リージョン 1) の場合、推奨される値は次のとおりです。

ペアレンタルレベル 意味
1 レーティングは G (一般向け) です。
3 レーティングは PG (保護者の助言が望ましい) です。
4 レーティングは PG-13 (保護者の助言が望ましく、13 歳未満には推奨されない) です。
6 レーティングは R (制限付き) です。
7 レーティングは NC-17 (17 歳未満には適さない) です。
 

このメソッドは現在のユーザーのアクセスレベルを設定します。このアクセスレベルによって、ユーザーが再生できるコンテンツが決まります。より高いレベルは、より低いレベルのコンテンツを再生できますが、より低いレベルは、より高いレベルのコンテンツを再生できません。言い換えると、大人は子供向けのコンテンツを視聴できますが、子供は成人向けのコンテンツを視聴できません。

DVD プレーヤーアプリケーションは、現在のペアレンタルレベルを上げる際にパスワード保護を提供するなど、ペアレンタルレベル設定に対する制限を適用できます。アプリケーションのユーザーインターフェイスには、レベルを設定する手段と、チェックを完全に無効にする手段を用意する必要があります。一部のディスクは、レベル 8 でさえ許可しないようにオーサリングされている場合があります。これは、どのレベルも有効ではなく、ペアレンタル管理が有効な場合は誰もそのディスクを視聴できないことを意味します。そのようなディスクでは、ディスクを視聴するためにペアレンタル管理を無効にする必要があります。DVD Navigator フィルターのペアレンタル管理は、既定で無効になっています。

ペアレンタル管理を有効にした後で無効にするには、ulParentalLevel に 0xffffffff を渡します。

このメソッドは、DVDSample アプリケーションの CDvdCore::SetParentalLevel で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Parental_Level_Select DVD_DOMAIN_Stop
vtbl 28 HRESULT SelectParentalCountry(BYTE* bCountry)

SelectParentalCountry メソッドは、ペアレンタルアクセスレベルの解釈と既定言語の設定に使用する国/地域を設定します。

bCountryBYTE*inISO 3166 に従って現在の国/地域を指定するバイト配列。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
引数が無効です。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator フィルターが有効なドメインにありません。

解説(Remarks)

ペアレンタルの国/地域は、8 つの汎用ペアレンタルレベルの意味と、サウンドトラックおよびメニューの既定言語を決定します。詳細については、ペアレンタル管理レベルの適用 を参照してください。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Parental_Country_Select DVD_DOMAIN_Stop
vtbl 29 HRESULT SelectKaraokeAudioPresentationMode(DWORD ulMode)

SelectKaraokeAudioPresentationMode メソッドは、カラオケの補助チャンネルを左または右のスピーカーに送ります。

ulModeDWORDin5 つのカラオケチャンネルを、通常は左右のスピーカーに出力されるチャンネル 0 および 1 にどのようにダウンミックスするかを示す、DVD_KARAOKE_DOWNMIX 列挙型のビットごとの OR。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_PROP_SET_UNSUPPORTED
オーディオデコーダーがダウンミックスをサポートしていません。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator フィルターが無効なドメインにあります。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御により現在の操作は禁止されています。

解説(Remarks)

DVD Navigator は、カラオケモードに入ると、オーディオデコーダーにカラオケのダウンミックスをサポートしているかどうかを問い合わせます。デコーダーがサポートしている場合、チャンネル 2 から 4 (ガイドボーカル、ガイドメロディ、効果音を含むカラオケの補助チャンネル) はミュートされます。個々のチャンネルのオン/オフを切り替え、それらをチャンネル 0 および 1 に振り分けるには、このメソッドを使用します。

このメソッドは、DVDSample アプリケーションの CKaraokeDlg::DoModal で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Karaoke_Audio_Presentation_Mode_Change
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 30 HRESULT SelectVideoModePreference(DWORD ulPreferredDisplayMode)

SelectVideoModePreference メソッドは、再生用に指定されたビデオモード表示 (ワイドスクリーン、レターボックス、またはパンスキャン) を設定します。

ulPreferredDisplayModeDWORDinDVD コンテンツの新しい表示モードを指定する値。DVD_PREFERRED_DISPLAY_MODE 列挙型のメンバー。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
引数が無効です。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。

解説(Remarks)

このメソッドは、既定のビデオウィンドウの縦横比を変更し、既定の縦横比変換メカニズムを指定することもできます。

720 x 480 のソースビデオを 16 x 9 の縦横比に引き伸ばして形成される、アナモルフィック 16 x 9 ソースビデオの場合。

ワイドスクリーン 16 x 9 のソースビデオは、クライアント出力ウィンドウ内の最大の 16 x 9 領域に配置し、引き伸ばす必要があります。ハイライトは 16 x 9 領域の内側を基準とします。16 x 9 領域を維持するために、上下または左右のいずれかに黒い帯を追加する必要があります。

パンスキャン 表示されるビデオは、引き伸ばされた 16 x 9 ビデオから 4 x 3 のサブウィンドウを切り出して計算されます (水平方向のオフセットは MPEG-2 ビデオのウィンドウのオフセットで提供されます)。4 x 3 のサブウィンドウは、出力クライアントウィンドウ内の最大の 4 x 3 領域に配置されます。ハイライトの座標は 4 x 3 出力ウィンドウを基準とします (ソースの 16 x 9 ビデオとは関係ありません)。4 x 3 領域を維持するために、上下または左右のいずれかに黒い帯を追加する必要があります。

レターボックス 4 x 3 の表示領域は、出力クライアントウィンドウの最大の 4 x 3 領域を取って形成されます。4 x 3 領域を維持するために、上下または左右のいずれかに黒い帯を追加する必要があります。ソースの 16 x 9 ビデオは、4 x 3 サブウィンドウ内の最大の 16 x 9 サブウィンドウに配置されます。16 x 9 領域を維持するために、サブウィンドウの上下に黒い帯を追加する必要があります。ハイライトの座標は 4 x 3 サブウィンドウを基準とします (ソースの 16 x 9 ビデオとは関係ありません)。技術的には、ディスクが 16 x 9 領域の外側 (ただし 4 x 3 ウィンドウ内) にあるハイライトを指定することも可能です。

4 x 3 ビデオの場合、ビデオは出力クライアントウィンドウの最大の 4 x 3 出力領域に配置されます。4 x 3 領域を維持するために、上下または左右のいずれかに黒い帯を追加する必要があります。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Video_Presentation_Mode_Change
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_Stop
vtbl 31 HRESULT SetDVDDirectory(LPWSTR pszwPath)

SetDVDDirectory メソッドは、DVD Navigator フィルターが読み取る DVD ドライブを設定します。

pszwPathLPWSTRinルートディレクトリのパスを指定するワイド文字列へのポインター。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
pszwPath パラメーターが無効な DVD パスを指しているか、列挙中に DVD ドライブが見つかりません。
E_UNEXPECTED
DVD Navigator が初期化されていません。
VFW_E_DVD_INVALIDDOMAIN
ドメインが無効です。詳細については、「解説」を参照してください。

解説(Remarks)

pszwPathNULL の場合、DVD Navigator は利用可能な任意のドライブ上の DVD ボリュームを選択しようとします。起動時に、DVD Navigator はドライブ C から順に、ルートフォルダーに VIDEO_TS フォルダーがあるドライブを自動的に探します。したがって、SetDVDDirectory を呼び出す必要があるのは、マシンに複数の DVD ドライブがある場合、または DVD ドライブのドライブ文字が A または B の場合のみです。パスを指定するときは、video_ts フォルダーを含めてください。

C++
SetDVDDirectory(L"e:\\video_ts");
一部の DVD ボリュームでは、ビデオが "video_ts" 以外の名前のディレクトリに格納されている場合があります。基本的な考え方は、通常は VIDEO_TS ディレクトリに格納される追加の "DVD ボリューム" (.IFO、.VOB、.BUP ファイルのセット) を、ディスク上のサブディレクトリに配置できるということです。ルートをこのディレクトリを指すように変更すると、MSWebDVD はこの別個の DVD ボリュームに対して動作します。VIDEO_TS ルート内のタイトルとは独立して、新しいメニューやタイトルなどのセットが利用可能になり、VIDEO_TS ルート内のタイトルにはアクセスできなくなります。このようなディレクトリは "隠しディレクトリ" と呼ばれます。次の例は、隠しディレクトリをルートとして設定する方法を示しています。ここで "hidden" は、ディスクの作成者がそのディレクトリに付けた名前のプレースホルダーです。
C++
SetDVDDirectory(L"d:\\webdvd\\hidden");
フィルターグラフが実行中で、DVD Navigator が pszwPath で指定されたディレクトリに DVD を見つけた場合、DVD Navigator は自動的にそのディスクの再生を開始します。これは DVD 仕様に準拠しており、新しいディスクが適切に初期化されることを保証します。SetDVDDirectory が戻った後に新しいディスクを自動的に再生したくない場合は、IDvdControl2::SetOption の DVD_ResetOnStop フラグを TRUE に設定し、Filter Graph Manager に対する IMediaControl::Stop の呼び出しによってフィルターグラフを停止する必要があります。DVD_ResetOnStop が FALSE に設定されている場合、SetDVDDirectoryVFW_E_DVD_INVALIDDOMAIN を返します。

このメソッドは、DVDSample アプリケーションの CDvdCore::SetDirectory で示されています。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし DVD_DOMAIN_Stop
vtbl 32 HRESULT ActivateAtPosition(POINT point)

ActivateAtPosition メソッドは、マウスポインターの位置にあるメニューボタンをアクティブ化します。

pointPOINTinクライアントウィンドウ領域上の点。画面のピクセル座標で指定します。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
クリックがハイライトされたボタンの矩形内で発生し、ボタンが正常にアクティブ化されました。
E_INVALIDARG
指定された座標が有効なビデオ領域の外側にあります。
E_UNEXPECTED
ボタンは存在しますが、機能していません。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator がメニュードメインにありません。
VFW_E_DVD_NO_BUTTON
マウスポインターの位置にメニューボタンがありません。
VFW_E_DVD_OPERATION_INHIBITED
この操作はユーザー操作 (UOP) 制御によって禁止されています。

解説(Remarks)

マウスポインターの座標は、クライアント領域の左上を基準とします。ビデオがレターボックス形式の場合、これは必ずしもビデオ表示領域とは限りません。

ユーザーがマウスポインターをメニューボタンの上に直接移動させてメニューを操作しているときは、このメソッドを使用します。ユーザーが相対ボタンを使用してメニューを操作している場合は、ActivateAtPosition ではなく ActivateButton を使用します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
vtbl 33 HRESULT SelectAtPosition(POINT point)

SelectAtPosition メソッドは、マウスポインターの位置にあるメニューボタンをハイライト表示します。

pointPOINTin画面上の点。画面のピクセル座標で指定します。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_NO_BUTTON
マウスポインターの位置にボタンがありません。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator が Stop ドメインにあります。

解説(Remarks)

アングルとメニューボタンのインデックスは 1 から始まるのに対し、オーディオストリームとサブピクチャストリームのインデックスは 0 から始まることに注意してください。

ポインターがメニューボタンの上にあるときのマウスクリックに応じて、IDvdControl2::ActivateButton を呼び出します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

このメソッドは、DVDSample アプリケーションの CDvdCore::OnMouseEvent で示されています。

Annex J コマンド名 有効なドメイン
なし
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_Title
  • DVD_DOMAIN_FirstPlay
vtbl 34 HRESULT PlayChaptersAutoStop(DWORD ulTitle, DWORD ulChapter, DWORD ulChaptersToPlay, DWORD dwFlags, IDvdCmd** ppCmd)

PlayChaptersAutoStop メソッドは、指定されたタイトル内の指定されたチャプターから開始して、指定された数のチャプターを再生します。

ulTitleDWORDinチャプターが含まれるタイトルを指定する値。この値は 1 から 99 の範囲でなければなりません。
ulChapterDWORDinDVD Navigator が再生を開始する、指定されたタイトル内のチャプターを指定する値。この値は 1 から 999 の範囲でなければなりません。
ulChaptersToPlayDWORDin開始チャプターから再生するチャプターの数。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_UNEXPECTED
DVD Navigator が初期化されていないか、タイトルが One Sequential PGC Title ではありません。
E_INVALIDARG
ulTitle の値が存在しないかタイトル数を超えているか、ulChapter が存在しないかチャプター数を超えているか、または ulChapterulChaptersToPlay の合計がチャプター数を超えています。
VFW_E_DVD_GRAPHNOTREADY
グラフが実行状態にありません。

解説(Remarks)

このメソッドは、One_Sequential_PGC_Titles でのみ機能します。指定された数のチャプターが再生されると、DVD Navigator はアプリケーションに EC_DVD_CHAPTER_AUTOSTOP イベント通知を送信します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし。 すべて。
vtbl 35 HRESULT AcceptParentalLevelChange(BOOL bAccept)

AcceptParentalLevelChange メソッドは、より高いペアレンタル管理レベルのコンテンツを再生するという DVD Navigator からの要求を受け入れるか拒否します。

bAcceptBOOLinアプリケーションがペアレンタル管理レベルの変更を受け入れるかどうかを示すフラグ。変更を受け入れてより高いレベルのコンテンツを再生するには TRUE を指定し、変更を拒否するには FALSE を指定します。

戻り値

成功した場合は S_OK を返し、それ以外の場合はエラーコードを返します。

解説(Remarks)

一時的なペアレンタル管理レベル (PML) コマンドは、後続のコンテンツがタイトル全体に指定されたレベルよりも高い PML を持つことを示す、DVD ディスク上のマーカーです。このマーカーには、変更が受け入れられたか拒否されたかに応じて、どこに分岐するかの指示も含まれています。FALSE を指定すると、DVD Navigator はディスク上の拒否時の分岐に従います。TRUE を指定すると、DVD Navigator はより高いレベルのコンテンツへの分岐に従います。

AcceptParentalLevelChange は、SetOption メソッドと組み合わせて使用します。処理の流れは次のとおりです。まず、SetOption(DVD_NotifyParentalLevelChange, TRUE) を呼び出して、アプリケーションに EC_DVD_PARENTAL_LEVEL_CHANGE イベント通知を送信した後は常に待機するよう DVD Navigator に指示します。イベントハンドラーで、変更を受け入れるか拒否するかを判断するコードを実装し、その後 AcceptParentalLevelChange を呼び出して、その決定を DVD Navigator に通知します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし すべて
vtbl 36 HRESULT SetOption(DVD_OPTION_FLAG flag, BOOL fState)

SetOption メソッドは、DVD Navigator フィルターの内部動作フラグを有効または無効にします。

flagDVD_OPTION_FLAGin変更する動作を、DVD_OPTION_FLAG 列挙型のメンバーとして指定します。
fStateBOOLin

flag パラメーターで指定されたオプションの新しい値を指定します。

DVD_OPTION_FLAG リファレンスページ。

 

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
フラグが無効です。

解説(Remarks)

DVD Navigator のインスタンスを作成した直後、および何らかの動作を変更したいときにはいつでも、目的のフラグを指定して SetOption を呼び出します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし すべて
vtbl 37 HRESULT SetState(IDvdState* pState, DWORD dwFlags, IDvdCmd** ppCmd)

SetState メソッドは、現在のディスク位置と DVD Navigator フィルターの状態を保存します。

pStateIDvdState*in状態情報を格納しているオブジェクトの IDvdState インターフェイスへのポインター。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

成功した場合は S_OK を返し、それ以外の場合は HRESULT 値を返します。

解説(Remarks)

DVD Navigator は、指定された状態オブジェクト内の位置情報を使用して、再生位置をディスク上の特定の位置に復元します。

このメソッドは、DVDSample アプリケーションの CDvdCore::RestoreBookmark で示されています。

vtbl 38 HRESULT PlayPeriodInTitleAutoStop(DWORD ulTitle, DVD_HMSF_TIMECODE* pStartTime, DVD_HMSF_TIMECODE* pEndTime, DWORD dwFlags, IDvdCmd** ppCmd)

PlayPeriodInTitleAutoStop メソッドは、指定されたタイトルで、指定された開始時刻から指定された終了時刻まで再生を開始します。

ulTitleDWORDinタイトルを指定する値。この値は 1 から 99 の範囲でなければなりません。
pStartTimeDVD_HMSF_TIMECODE*in再生を開始する時刻を指定する DVD_HMSF_TIMECODE 構造体へのポインター。
pEndTimeDVD_HMSF_TIMECODE*in再生を停止する時刻を指定する DVD_HMSF_TIMECODE 構造体へのポインター。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
VFW_E_DVD_OPERATION_INHIBITED
UOP 制御によりこの操作は禁止されています。
E_INVALIDARG
引数が無効です。

解説(Remarks)

実際の開始時刻と終了時刻は、DVD_HMSF_TIMECODE で指定されたフレーム番号以前の時刻になります。フレームレートコードは、pStartTimepEndTime では無視されます。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし
  • DVD_DOMAIN_VideoManagerMenu
  • DVD_DOMAIN_VideoTitleSetMenu
  • DVD_DOMAIN_TitleDVD_DOMAIN_Stop
vtbl 39 HRESULT SetGPRM(DWORD ulIndex, WORD wValue, DWORD dwFlags, IDvdCmd** ppCmd)

SetGPRM メソッドは、汎用パラメーターレジスタの値を設定します。

ulIndexDWORDinレジスタのインデックス。0 から 15 の値を指定できます。
wValueWORDin指定されたレジスタに格納される 16 ビットの値。
dwFlagsDWORDinコマンドの同期方法を指定する、DVD_CMD_FLAGS 列挙型の 1 つ以上のフラグのビットごとの OR。
ppCmdIDvdCmd**outDVD コマンドの同期に使用できる IDvdCmd オブジェクトへのポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。このパラメーターは NULL でもかまいません。詳細については、DVD コマンドの同期 を参照してください。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
ulIndex パラメーターが 15 を超えているか、その他の入力パラメーターが無効です。

解説(Remarks)

DVD ディスクは、さまざまな種類の情報を格納するために汎用パラメーターレジスタを使用します。これらのレジスタの 1 つ以上を手動で設定することで、アプリケーションは特定のカスタム機能を提供できる場合があります。これは高度なコマンドであり、DVD 仕様を十分に理解している場合を除き、使用しないでください。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし すべて
vtbl 40 HRESULT SelectDefaultMenuLanguage(DWORD Language)

SelectDefaultMenuLanguage メソッドは、すべてのメニューとメニューボタンの既定言語を設定します。

LanguageDWORDin既定言語を指定する LCID 型の変数。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
引数が無効です。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator が有効なドメインにありません。

解説(Remarks)

このメソッドは、ディスクの再生時にメニューで使用する既定のテキスト言語を選択します。たとえば、Language にアメリカ英語を表す 0x409 を指定すると、DVD Navigator はメニューにアメリカ英語のテキストを表示しようとします。既定のメニュー言語がディスク上で見つからない場合、DVD Navigator は最も近い一致を選択します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
Menu_Language_Select DVD_DOMAIN_Stop
vtbl 41 HRESULT SelectDefaultAudioLanguage(DWORD Language, DVD_AUDIO_LANG_EXT audioExtension)

SelectDefaultAudioLanguage メソッドは、既定のオーディオ言語を設定します。

LanguageDWORDin既定言語を指定するロケール識別子。
audioExtensionDVD_AUDIO_LANG_EXTin既定のオーディオ言語拡張を指定する DVD_AUDIO_LANG_EXT 列挙型。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
audioExtension の値が無効です。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator フィルターが Stop ドメインにありません。

解説(Remarks)

このメソッドは、ディスクの再生時に使用する既定の言語と言語拡張を選択します。たとえば、Language に英語を表す 0x409 を指定し、audioExtension に DVD_AUD_EXT_NotSpecified を指定すると、DVD Navigator は英語の基本オーディオストリームを探します。audioExtension に DVD_AUD_EXT_VisuallyImpaired を指定すると、DVD Navigator はまず、低視力の人向けの英語の特別なオーディオストリームを探します。既定のストリームがディスク上で見つからない場合、DVD Navigator は最も近い一致を選択します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし DVD_DOMAIN_Stop
vtbl 42 HRESULT SelectDefaultSubpictureLanguage(DWORD Language, DVD_SUBPICTURE_LANG_EXT subpictureExtension)

SelectDefaultSubpictureLanguage メソッドは、サブピクチャテキストの既定言語を設定します。

LanguageDWORDin既定言語を指定するロケール識別子。
subpictureExtensionDVD_SUBPICTURE_LANG_EXTin既定のサブピクチャ拡張を指定する DVD_SUBPICTURE_LANG_EXT 列挙型。

戻り値

以下のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
Language が無効です。
VFW_E_DVD_INVALIDDOMAIN
DVD Navigator フィルターが有効なドメインにありません。

解説(Remarks)

このメソッドは、ディスクの再生時にサブピクチャとメニューで使用する既定の言語と形式を選択します。たとえば、Language にアメリカ英語を表す 0x409 を指定し、subpictureExtension に DVD_SP_EXT_Caption_Big を指定すると、DVD Navigator はサブピクチャに "大きなキャプション (big caption)" 形式でアメリカ英語のテキストを表示しようとします。既定の言語または言語拡張がディスク上で見つからない場合、DVD Navigator は最も近い一致を選択します。

次の表は、このメソッド名が対応する Annex J コマンド名と、このメソッドが有効なドメインを示しています。

Annex J コマンド名 有効なドメイン
なし DVD_DOMAIN_Stop
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDvdControl2 "{33BC7430-EEC0-11D2-8201-00A0C9D74842}"
#usecom global IDvdControl2 IID_IDvdControl2 "{}"
#comfunc global IDvdControl2_PlayTitle                           3 int,int,sptr
#comfunc global IDvdControl2_PlayChapterInTitle                  4 int,int,int,sptr
#comfunc global IDvdControl2_PlayAtTimeInTitle                   5 int,var,int,sptr
#comfunc global IDvdControl2_Stop                                6
#comfunc global IDvdControl2_ReturnFromSubmenu                   7 int,sptr
#comfunc global IDvdControl2_PlayAtTime                          8 var,int,sptr
#comfunc global IDvdControl2_PlayChapter                         9 int,int,sptr
#comfunc global IDvdControl2_PlayPrevChapter                     10 int,sptr
#comfunc global IDvdControl2_ReplayChapter                       11 int,sptr
#comfunc global IDvdControl2_PlayNextChapter                     12 int,sptr
#comfunc global IDvdControl2_PlayForwards                        13 double,int,sptr
#comfunc global IDvdControl2_PlayBackwards                       14 double,int,sptr
#comfunc global IDvdControl2_ShowMenu                            15 int,int,sptr
#comfunc global IDvdControl2_Resume                              16 int,sptr
#comfunc global IDvdControl2_SelectRelativeButton                17 int
#comfunc global IDvdControl2_ActivateButton                      18
#comfunc global IDvdControl2_SelectButton                        19 int
#comfunc global IDvdControl2_SelectAndActivateButton             20 int
#comfunc global IDvdControl2_StillOff                            21
#comfunc global IDvdControl2_Pause                               22 int
#comfunc global IDvdControl2_SelectAudioStream                   23 int,int,sptr
#comfunc global IDvdControl2_SelectSubpictureStream              24 int,int,sptr
#comfunc global IDvdControl2_SetSubpictureState                  25 int,int,sptr
#comfunc global IDvdControl2_SelectAngle                         26 int,int,sptr
#comfunc global IDvdControl2_SelectParentalLevel                 27 int
#comfunc global IDvdControl2_SelectParentalCountry               28 var
#comfunc global IDvdControl2_SelectKaraokeAudioPresentationMode  29 int
#comfunc global IDvdControl2_SelectVideoModePreference           30 int
#comfunc global IDvdControl2_SetDVDDirectory                     31 wstr
#comfunc global IDvdControl2_ActivateAtPosition                  32 int
#comfunc global IDvdControl2_SelectAtPosition                    33 int
#comfunc global IDvdControl2_PlayChaptersAutoStop                34 int,int,int,int,sptr
#comfunc global IDvdControl2_AcceptParentalLevelChange           35 int
#comfunc global IDvdControl2_SetOption                           36 int,int
#comfunc global IDvdControl2_SetState                            37 sptr,int,sptr
#comfunc global IDvdControl2_PlayPeriodInTitleAutoStop           38 int,var,var,int,sptr
#comfunc global IDvdControl2_SetGPRM                             39 int,int,int,sptr
#comfunc global IDvdControl2_SelectDefaultMenuLanguage           40 int
#comfunc global IDvdControl2_SelectDefaultAudioLanguage          41 int,int
#comfunc global IDvdControl2_SelectDefaultSubpictureLanguage     42 int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。