Microsoft DirectX 8.0 |
DVD ナビゲータ ソース フィルタによって実装される IDvdInfo2 インターフェイスは、ディスクのさまざまな属性や DVD ナビゲータの状態を問い合わせるメソッドを備えている。IDvdInfo2 は、IDvdControl2 と対になるインターフェイスである。IDvdInfo2 は DVD ナビゲータの "get" メソッドの集合であり、IDvdControl2 は "set" メソッドの集合である。これら 2 つのインターフェイスは、DVD Annex J 仕様の範囲を超える DVD のナビゲーション機能と再生機能を備えている。
注 : これらのメソッドの一部が提供する情報は、DVD ナビゲータからアプリケーションのメッセージ ループに送信されるイベント通知を通じて取得することもできる。たとえば、現在の DVD ドメインを取得するには、IDvdInfo2::GetCurrentDomain を呼び出したり、アプリケーションのメッセージ ループで EC_DVD_DOMAIN_CHANGE イベントを処理し、イベントの lParam1 パラメータから新しいドメインを抽出することもできる。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IDvdInfo2 メソッド 説明 メニュー GetButtonAtPosition 表示ウィンドウ内の指定された位置にあるボタンを取得する。 GetButtonRect 指定されたボタンの矩形の座標を取得する。 GetCurrentButton 利用できるボタンの数と現在選択されているボタンの番号を取得する。 GetDefaultMenuLanguage デフォルトのメニュー言語を取得する。 GetMenuLanguages ディスク上のすべてのメニューで利用できるすべての言語を取得する。 GetVMGAttributes ビデオ マネージャ メニューのすべてのビデオ ストリーム、オーディオ ストリーム、およびサブピクチャ ストリームの属性を取得する。 タイトル GetNumberOfChapters 指定されたタイトルのチャプターの数を取得する。 GetTitleAttributes 指定されたタイトルとそのメニューのすべてのビデオ ストリーム、オーディオ ストリーム、およびサブピクチャ ストリームの属性を取得する。 GetTotalTitleTime 現在のタイトルの総再生時間を取得する。 ディスク情報 GetAllSPRMs すべてのシステム パラメータ レジスタ (SPRM) の現在の内容を取得する。 GetAllGPRMs すべての汎用パラメータ レジスタ (GPRM) の現在の内容を取得する。 GetCurrentUOPS コンテンツの作成者が明示的に無効にしたナビゲーション コマンドが現在のディスク位置にあれば、それを示すフラグのセットを取得する。 GetDiscID 指定された DVD に対してシステムが生成した 64 ビットの "一意" な識別番号を取得する。 GetDVDVolumeInfo 現在の DVD ボリューム情報を取得する。 ビデオ ストリーム GetCurrentAngle 現在のアングル ブロック内の利用できるアングルの数と現在選択されているアングル番号を取得する。 GetCurrentVideoAttributes 現在のタイトルまたはメニューのビデオ属性を取得する。 オーディオ ストリーム GetAudioAttributes 現在のタイトルまたはメニューの指定されたオーディオ ストリームの属性を取得する。 GetAudioLanguage 現在のタイトル内の指定されたオーディオ ストリームの言語を取得する。 GetCurrentAudio 利用できるオーディオ ストリームの数と現在選択されているオーディオ ストリームの番号を取得する。 GetDecoderCaps DVD デコーダのビデオ、オーディオ、およびサブピクチャの最大データ レート (逆方向および順方向) と、サポートしているオーディオの種類 (Dolby AC-3、MPEG-2、DTS、SDDS、LPCM) を取得する。 GetDefaultAudioLanguage デフォルトのオーディオ言語を取得する。 GetKaraokeAttributes 現在のタイトルまたはメニューの指定されたオーディオ ストリームのカラオケ属性を取得する。 IsAudioStreamEnabled 指定されたオーディオ ストリームが現在のタイトルで有効になっているかどうかを判別する。 サブピクチャ ストリーム GetCurrentSubpicture 現在のタイトルの利用できるサブピクチャ ストリームの数、現在選択されているサブピクチャ ストリーム番号、およびサブピクチャの状態を取得する。 GetDefaultSubpictureLanguage デフォルトのサブピクチャ言語を取得する。 GetSubpictureAttributes 現在のタイトルまたはメニューの指定されたサブピクチャ ストリームの属性を取得する。 GetSubpictureLanguage 現在のタイトル内の指定されたサブピクチャ ストリームの言語を取得する。 IsSubpictureStreamEnabled 指定されたサブピクチャ ストリームが現在のタイトルで有効になっているかどうかを判別する。 ペアレンタル ロック レベル GetPlayerParentalLevel DVD ナビゲータの現在のペアレンタル ロック レベルおよび ISO 3166 国コードの設定を取得する。 GetTitleParentalLevels 特定のタイトルに定義されているペアレンタル ロック レベルを取得する。 DVD ナビゲータ ステート情報 GetCmdFromEvent EC_DVD_CMD_START イベント、EC_DVD_CMD_END イベントまたは VFW_E_DVD_CMD_CANCELLED イベントから IDvdCmd オブジェクトを取得する。 GetCurrentDomain 現在 DVD ナビゲータが置かれている DVD ドメインを取得する。 GetCurrentLocation 現在の再生位置を取得する。 GetDVDDirectory DVD ナビゲータで設定されているルート ディレクトリを取得する。 GetState ディスク位置と DVD ナビゲータ ステート情報が格納されているブックマークを取得する。 DVD テキスト文字列 GetDVDTextNumberOfLanguages 現在の DVD またはディスク面のテキスト言語の数を取得する。 GetDVDTextLanguageInfo 指定されたテキスト文字列言語ブロックの情報を取得する。 GetDVDTextStringAsNative 指定された言語のテキスト文字列をバイトの配列として取得する。 GetDVDTextStringAsUnicode 指定された言語のテキスト文字列を Unicode で取得する。
すべての汎用パラメータ レジスタ (GPRM) の現在の内容を取得する。
構文
HRESULT GetAllGPRMs( GPRMARRAY *pRegisterArray );
パラメータ
- pRegisterArray
- [out] 16 個の現在の GPRM 値すべてを受け取る GPRMARRAY へのポインタ。「注意」を参照すること。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。
注意
GPRM は、各ディスクが一時的にデータを格納するためにそれぞれ独自の方法で使用できる 16 ビット レジスタである。Dvdif.idl ファイルには、以下の typedef が含まれている。
typedef WORD DVD_REGISTER; typedef DVD_REGISTER GPRMARRAY[16]; typedef DVD_REGISTER SPRMARRAY[24];注 : DVD ナビゲータを使用するプレーヤー アプリケーションは、Annex J の再生機能またはナビゲーション制御機能を使用する限り、これらのレジスタにアクセスする必要はない。このメソッドは、高度な機能を実装したプレーヤー アプリケーション用に用意されている。DVD の仕様および再生する特定のディスクでの GPRM の使用法が完全にわかっていない限り、直接 GPRM を変更しない方がよい。
参照
すべてのシステム パラメータ レジスタ (SPRM) の現在の内容を取得する。
構文
HRESULT GetAllSPRMs( SPRMARRAY *pRegisterArray );
パラメータ
- pRegisterArray
- [out] SPRM の配列のアドレスを受け取る SPRMARRAY 型の変数へのポインタ。「注意」を参照すること。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。
注意
24 個の SPRM を使って、現在の言語、サブピクチャ、およびその他のナビゲーション データに関する情報を格納する。Dvdif.idl ファイルには、以下の typedef が含まれている。
typedef WORD DVD_REGISTER; typedef DVD_REGISTER GPRMARRAY[16]; typedef DVD_REGISTER SPRMARRAY[24];注 : プレーヤー アプリケーションは、標準ナビゲーション機能を使う限り、これらのレジスタにアクセスする必要はない。これらのレジスタを有効に活用するには、このドキュメントに記載されている内容より詳しい DVD ナビゲーション コマンドに関する知識が必要になる。以下の表は、各レジスタの内容の一覧を示している。ワード内のビットは、b0 (最下位ビット) から b15 (最上位ビット) として表記されている。
レジスタ コンテンツ 0 ISO-639 言語コード (小文字 2 文字の ASCII 文字)。デフォルトの値が定義されていない。 1 下位 4 ビット (b0 〜 b3) にオーディオ ストリーム番号 (0 〜 7) または 15 (なし) が格納される。デフォルト値は 15。 2 下位 6 ビット (b0 〜 b5) にサブピクチャ番号 (0 〜 31) または 62 (なし) または 63 (強制サブピクチャ用のダミー ストリーム) が格納される。第 7 ビット (b6) にサブピクチャ表示フラグ (0 = サブピクチャを表示しない) が格納される。デフォルト値は 62。 3 下位 4 ビット (b0 〜 b3) にアングル番号 (1 〜 9) が格納される。デフォルト値は 1。 4 下位 7 ビット (b0 〜 b6) にタイトル番号 (1 〜 99) が格納される。デフォルト値は 1。 5 下位 7 ビット (b0 〜 b6) に現在の VTS 内のタイトル番号 (1 〜 99) が格納される。デフォルト値は 1。 6 下位 15 ビット (b0 〜 b14) に現在のタイトル内の PGC 番号 (1 〜 32767) が格納される。デフォルトの値が定義されていない。 7 下位 10 ビット (b0 〜 b9) にチャプター番号 (1 〜 99) が格納される。デフォルト値は 1 である。タイトルが one_sequential_PGC_title でない場合、値は未定義になる。 8 上位 6 ビット (b10 〜 b15) にボタン番号 (1 〜 36) が格納される。デフォルト値は 1024 (ボタン 1) である。 9 秒単位のタイマ カウント (0 〜 65535)。デフォルト値は 0。 10 下位 15 ビット (b0 〜 b14) に現在のタイトル内の PGC 番号 (1 〜 32767) が格納される。デフォルトの値が定義されていない。 11 6 個のフラグ (b2: ミックス ch2 を ch1 へ、b3: ミックス ch3 を ch1 へ、b4: ミックス ch4 を ch1 へ、 b10: ミックス ch2 を ch0 へ、b11: ミックス ch3 を ch0 へ、b12: ミックス ch4 を ch0 へ)。フラグ値 0 はミックスしないことを意味する。すべてのフラグのデフォルト値は 0 である。カラオケ ストリームを再生しない場合、値は未定義になる。 12 ISO-3166 国コード (大文字 2 文字の ASCII 文字) または 65535 (指定なし)。デフォルトの値が定義されていない。 13 下位 4 ビット (b0 〜 b3) にペアレンタル ロック レベル (1 〜 8) または 15 (なし) が格納される。デフォルトの値が定義されていない。 14 b8 〜 b9 に優先ディスプレイ モード (0 = 4:3、3 = 16:9) が格納される。b10 〜 b11 に現在のビデオ出力モード (0 = 標準 [4:3 または 16:9]、1 = パン-スキャン、2 = レターボックス) が格納される。デフォルトの値が定義されていない。 15 9 個のフラグ (b2: SDDS カラオケ、b3: DTS カラオケ、b4: MPEG カラオケ、b6: Dolby Digital カラオケ、b7: PCM カラオケ、b10: SDDS 再生、b11: DTS 再生、b12: MPEG 再生、b14: Dolby Digital 再生)。フラグ値 0 は機能がないことを示し、フラグ値 1 は機能があることを示す。デフォルトの値が定義されていない。 16 ISO-639 国コード (小文字 2 文字の ASCII 文字) または 65535 (指定なし)。デフォルト値は 65535。 17 言語拡張コード (0 = 指定なし、1 = 標準オーディオ、2 = 視力の弱い人のためのオーディオ、3 = ディレクター コメント #1、4 = ディレクター コメント #2)。デフォルト値は 0。 18 ISO-639 国コード (小文字 2 文字の ASCII 文字) または 65535 (指定なし)。デフォルト値は 65535。デフォルト値は 65535。 19 言語拡張コード (0 = 指定なし、1 = 標準字幕、2 = 大きい字幕、3 = 子供用字幕、5 = 標準クローズド キャプション、6 = 大きいクローズド キャプション、7 = 子供用クローズド キャプション、9 = 強制表示字幕、13 = ディレクター コメント、14 = 大きいディレクター コメント、15 = 子供用ディレクター コメント)。デフォルト値は 0。 20 下位 8 ビット (b0 〜 b7) に地域番号 (1 〜 8) が格納される。
現在のタイトルまたはメニューの指定されたオーディオ ストリームの属性を取得する。
構文
HRESULT GetAudioAttributes( ULONG ulStream, DVD_AudioAttributes *pATR );
パラメータ
- ulStream
- [in] 問い合わせの対象となる属性を持つオーディオ ストリームを指定する ULONG 型の変数。「注意」を参照すること。
- pATR
- [out] 指定されたオーディオ ストリームの属性が格納される DVD_AudioAttributes 構造体へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_UNEXPECTED DVD ナビゲータが初期化されていない。 VFW_E_DVD_NO_ATTRIBUTES 何らかの理由により、ストリームのオーディオ属性が取得できない。 E_POINTER 無効な引数。
注意
ulStream は 0 から 7 の間のインデックス番号または次の値である。
DVD_DEFAULT_AUDIO_STREAM デフォルトのオーディオ ストリームの属性を問い合わせる。 DVD_STREAM_DATA_CURRENT 現在のストリームを問い合わせる。 DVD_STREAM_DATA_VMGM VMGM のオーディオ属性を問い合わせる。 DVD_STREAM_DATA_VTSM VTSM のオーディオ属性を問い合わせる。 このメソッドの使用例については、DVDSample の「CDvdCore::GetAudioAttributes()」および「CAudioLangDlg::GetAudioLang」を参照すること。
現在のタイトル内の指定されたオーディオ ストリームの言語を取得する。
構文
HRESULT GetAudioLanguage( ULONG ulStream, LCID *pLanguage );
パラメータ
- ulStream
- [in] 言語を取得するオーディオ ストリーム番号。
- pLanguage
- [out] 言語情報を受け取る LCID へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER pLanguage パラメータが NULL である。 E_UNEXPECTED DVD ナビゲータが初期化されていない。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが有効なドメイン内にない。
注意
このメソッドはメニューの言語は返さない。ストリームに未知の言語が含まれている場合、このメソッドは、pLanguage が指す値をゼロに設定する。pLanguage から読み取り可能な文字列名を作成するには、次のように Microsoft® Win32® GetLocaleInfo 関数を呼び出す。LOCALE_SENGLANGUAGE はロケール情報型であり、pszString は要求されたデータを受け取るバッファへのポインタであり、cbSize は pszString のサイズを指定する。
GetLocaleInfo(*pLanguage, LOCALE_SENGLANGUAGE, pszString, cbSize);
参照
表示ウィンドウ内の指定された位置にあるボタンを取得する。
構文
HRESULT GetButtonAtPosition( POINT point, ULONG *puButtonIndex );
パラメータ
- point
- [in] Win32 WM_MOUSEMOVE メッセージを使って取得された現在のマウス ポインタの位置。
- puButtonIndex
- [out] 現在のマウス ポインタ位置にあるボタンのインデックス (1 から 36 の間) を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER puButtonIndex パラメータが無効である。 VFW_E_DVD_NO_BUTTON point にボタンがない。
注意
通常、このメソッドは、DVD メニュー表示ウィンドウ内のマウス ポインタの移動に応じて呼び出される。ボタン番号を取得する前に、必ず HRESULT で成功を確認すること。指定された位置にボタンがあった場合、このメソッドは puButtonIndex の値の設定のみを行う。DVD ボタンは強調表示される矩形を持たない場合があり、ボタンの矩形どうしは重なり合うことがあり、ボタンの矩形は必ずしもボタンの外観と一致するわけではない。
参照
指定されたメニュー ボタンの矩形の座標を取得する。このメソッドは現在実装されていない。
構文
HRESULT GetButtonRect( ULONG ulButton RECT *pRect );
パラメータ
- ulButton
- [in] ボタンを指定する 1 から 36 の間の ULONG 型の変数。
- pRect
- [out] ボタンの矩形の座標を受け取る RECT 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
E_NOTIMPL このメソッドは現在実装されていない。
EC_DVD_CMD_START イベントまたは EC_DVD_CMD_END イベントから IDvdCmd オブジェクトを取得する。
構文
HRESULT GetCmdFromEvent( LONG_PTR lParam1, IDvdCmd **ppCmdObj );
パラメータ
- lParam1
- [in] イベント通知の lParam1 パラメータ。
- ppCmdObj
- [out] イベントを発生させたコマンドに関連付けられている IDvdCmd コマンド オブジェクトへのポインタのアドレス。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_FAIL コマンドが存在しない。 E_POINTER 無効な引数。
注意
このメソッドは、EC_DVD_CMD_START イベントまたは EC_DVD_CMD_END イベントの lParam1 パラメータを、イベントを発生させたコマンドに関連付けられている IDvdCmd オブジェクトにマップする。 その後は、WaitForStart または WaitForEnd を呼び出すことにより、そのコマンドに関連する DVD ナビゲータのブロック動作を制御することができる。IDvdCmd オブジェクトは DVD ナビゲータによって作成され、返されるポインタの参照カウントは既に増加しているため、WaitForStart または WaitForEnd から動作が戻った後、IDvdCmd オブジェクトを解放する必要がある。
参照
現在のアングル ブロック内の利用できるアングルの数と現在選択されているアングル番号を取得する。
構文
HRESULT GetCurrentAngle( ULONG *pulAnglesAvailable, ULONG *pulCurrentAngle );
パラメータ
- pulAnglesAvailable
- [out] 利用できるアングルの数を受け取る ULONG 型の変数へのポインタ。1 つのアングル ブロック内には最大 9 個のアングルがあり、それぞれに 1 から 9 の番号が振られる。値が 1 の場合、DVD ナビゲータはアングル ブロック内にない。
- pulCurrentAngle
- [out] 現在のアングル番号を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが初期化されていない、または有効なドメイン内にない。
注意
オーディオ ストリームとサブピクチャ ストリームのインデックスは開始値が 0 であるが、アングルとメニュー ボタンのインデックスは開始値が 1 である点に注意すること。DVD ナビゲータは、アングル ブロックに入る直前に、lParam パラメータを 1 に設定して EC_DVD_ANGLES_AVAILABLE イベント通知をアプリケーションに送る。通常、アプリケーションは、EC_DVD_ANGLES_AVAILABLE のイベント ハンドラ内で GetCurrentAngle および IDvdControl2::SelectAngle を呼び出す。
このメソッドの使用例については、DVDSample アプリケーションの「CAngleDlg::MakeAngleList」を参照すること。
参照
IDvdControl2::SelectAngle、EC_DVD_ANGLES_AVAILABLE、EC_DVD_ANGLE_CHANGE
利用できるオーディオ ストリームの数と現在選択されているオーディオ ストリームの番号を取得する。
構文
HRESULT GetCurrentAudio( ULONG *pulStreamsAvailable, ULONG *pulCurrentStream );
パラメータ
- pulStreamsAvailable
- [out] 利用できるオーディオ ストリームの数を受け取る ULONG 型の変数へのポインタ。
- pulCurrentStream
- [out] 現在のタイトル内の現在選択されているオーディオ ストリーム番号を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 入力された引数が無効である。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが初期化されていない、または有効なドメイン内にない。
注意
ディスク上の利用できるオーディオ言語を取得するには、GetCurrentAudio を呼び出した後、ゼロから (pulStreamsAvailable - 1) までの各ストリームについて GetAudioLanguage を呼び出し、言語の内容を取得する。
参照
利用できるボタンの数と現在選択されているボタンの番号を取得する。
構文
HRESULT GetCurrentButton( ULONG *pulButtonsAvailable, ULONG *pulCurrentButton );
パラメータ
- pulButtonsAvailable
- [out] 利用できるボタンの数を受け取る ULONG 型の変数へのポインタ。
- pulCurrentButton
- [out] 現在選択されているボタンの番号 (1 から 36 の間) を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER ポインタ引数の 1 つが無効である。
注意
ボタンが存在しない場合は、pulButtonsAvailable と pulCurrentButton の両方がゼロに設定される。
参照
現在 DVD ナビゲータが置かれているドメインを取得する。
構文
HRESULT GetCurrentDomain( DVD_DOMAIN *pDomain );
パラメータ
- pDomain
- [out] 現在のドメインを受け取る DVD_DOMAIN 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_UNEXPECTED 予期せぬエラー。 E_POINTER 無効な引数。
注意
このメソッドを使って、DVD ナビゲータが特定のタイトル ドメイン内で再生を終了したかどうかをテストできる。アプリケーションは、PlayTitle、PlayForwards などの IDvdControl2 メソッドを呼び出す前に現在のドメインのテストを行う必要はない。DVD ナビゲータは、ドメインのテストを行い、現在のコマンドがドメインに対して無効である場合は、何もせずに、VFW_E_DVD_INVALIDDOMAIN を返す。
参照
現在の再生位置を取得する。
構文
HRESULT GetCurrentLocation( DVD_PLAYBACK_LOCATION2 *pLocation );
パラメータ
- pLocation
- [out] 再生位置情報を受け取る DVD_PLAYBACK_LOCATION2 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER pLocation パラメータが無効である。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが無効なドメイン内にある。
注意
このメソッドは、現在の位置のシークを明示的に禁止していないタイトルの現在の再生位置からビデオの再生を再開するのに十分な情報を取得する。ディスクが排出された後は、このメソッドが返す情報では再生を再開するのに十分でない場合がある。ユーザーが後からいつでも同じ位置に戻れるように、現在の位置とステート情報をディスクに保存するには、GetState を使用する。
現在のタイトル内の利用できるサブピクチャ ストリームの数、現在選択されているサブピクチャ ストリーム番号、およびサブピクチャの状態を取得する。
構文
HRESULT GetCurrentSubpicture( ULONG *pulStreamsAvailable, ULONG *pulCurrentStream, BOOL *pbIsDisabled );
パラメータ
- pulStreamsAvailable
- [out] 利用できるサブピクチャ ストリームの数を受け取る ULONG 型の変数へのポインタ。
- pulCurrentStream
- [out] 現在選択されているサブピクチャ ストリームの番号を受け取る ULONG 型の変数へのポインタ。
- pbIsDisabled
- [out] サブピクチャの表示が無効になっているかどうかを示す値を受け取る BOOL 型の変数へのポインタ。TRUE は無効を意味する。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが初期化されていないか、Title ドメイン内にない。
注意
DVD コンテンツの作成者は、ディスク上の任意のサブピクチャ ストリームを強制的にアクティブにするように指定し、利用者が見たいかどうかに関係なく、このストリームを必ず表示するように要求することができる。DVD ナビゲータはそのようなディスクからのすべてのコマンドに従い、アプリケーションが IDvdControl2::SetSubpictureState メソッドによってサブピクチャの表示を無効にした場合でも、強制的にアクティブにされたストリームを表示する。
参照
EC_DVD_SUBPICTURE_STREAM_CHANGE、IDvdControl2::SelectSubpictureStream
現在のタイトルまたはメニューのビデオ属性を取得する。
構文
HRESULT GetCurrentVideoAttributes( DVD_VideoAttributes *pATR );
パラメータ
- pATR
- [out] 属性を受け取る DVD_VideoAttributes 構造体へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
このメソッドの使用例については、DVDSample の「CDvdCore::GetVideoAttributes()」を参照すること。
DVD デコーダのビデオ、オーディオ、およびサブピクチャの最大データ レート (逆方向および順方向) と、サポートしているオーディオの種類 (Dolby AC-3、MPEG-2、DTS、SDDS、LPCM) を取得する。
構文
HRESULT GetDecoderCaps( DVD_DECODER_CAPS *pCaps );
パラメータ
- pCaps
- [out] デコーダに関する情報を受け取る DVD_DECODER_CAPS 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 VFW_E_WRONG_STATE フィルタ グラフが初期化されていない。
デフォルトのオーディオ言語を取得する。
構文
HRESULT GetDefaultAudioLanguage( LCID *pLanguage, DVD_AUDIO_LANG_EXT *pAudioExtension );
パラメータ
- pLanguage
- [out] デフォルトの言語情報を受け取る LCID へのポインタ。
- pAudioExtension
- デフォルトの DVD オーディオ言語拡張機能を示す値を受け取る DVD_AUDIO_LANG_EXT 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER pLanguage パラメータが NULL である。 E_UNEXPECTED DVD ナビゲータが初期化されていない。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが有効なドメイン内にない。
参照
IDvdControl2::SelectAudioStream、IDvdControl2::SelectDefaultAudioLanguage
デフォルトのメニュー言語を取得する。
構文
HRESULT GetDefaultMenuLanguage( LCID *pLanguage );
パラメータ
- pLanguage
- [out] 言語情報を受け取る LCID へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER pLanguage パラメータが NULL である。 E_UNEXPECTED DVD ナビゲータが初期化されていない。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが有効なドメイン内にない。
参照
デフォルトのサブピクチャ言語を取得する。
構文
HRESULT GetDefaultSubpictureLanguage( LCID *pLanguage, DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension );
パラメータ
- pLanguage
- [out] 言語情報を受け取る LCID へのポインタ。
- pSubpictureExtension
- [out] デフォルトの言語拡張機能を示す値として許可されている値の 1 つを受け取る DVD_SUBPICTURE_LANG_EXT 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER pLanguage パラメータが NULL である。 E_UNEXPECTED DVD ナビゲータが初期化されていない。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが有効なドメイン内にない。
参照
指定された DVD に対してシステムが生成した 64 ビットの識別番号を取得する。
構文
HRESULT GetDiscID( LPCWSTR pszwPath, ULONGLONG *pullDiscID );
パラメータ
- pszwPath
- [in] ディスク ID に使用するボリュームのパス。現在の DVD ボリュームを使用するには、NULL を指定する。
- pullDiscID
- [out] 64 ビットのディスク ID を受け取る ULONGLONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
DVD ナビゲータは、BCA 値ではなく、ファイルのサイズ、日付その他の情報に基づいて "一意な" ID を計算する。この番号はディスクが再生されるたびに同じであることが保証される。ID は、複製されたディスクのすべてのコピーに適用される。つまり、特定のムービーのすべてのコピーは同じ ID を持つ。2 つの別々のタイトルが同じ ID を持つ確率は十分に低いため、この ID は、実用上 "一意" であるものと見なすことができる。
DVD ナビゲータで設定されているルート ディレクトリを取得する。
構文
HRESULT GetDVDDirectory( LPWSTR pszwPath, ULONG ulMaxSize, ULONG *pulActualSize );
パラメータ
- pszwPath
- [out, size_is(cbMaxSize)] パス文字列を受け取るバッファへのポインタ。
- ulMaxSize
- [in] WCHAR 単位のバッファのサイズ。
- pulActualSize
- [out] WCHAR 単位で返された実際のデータのサイズを受け取る変数へのポインタ。
注意
このメソッドの使用例については、DVDSample の「CDvdCore::GetDriveLetter」を参照すること。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG バッファの大きさが文字列を格納するのに十分でない。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが有効なドメイン内にない。
現在のタイトルまたはメニューの指定されたオーディオ ストリームのカラオケ属性を取得する。
構文
HRESULT GetKaraokeAttributes( ULONG ulStream, DVD_KaraokeAttributes *pATR );
パラメータ
- ulStream
- [in] 属性を問い合わせるオーディオ ストリームのインデックスを指定する ULONG 型の変数。「注意」を参照すること。
- pATR
- [out] カラオケ属性が格納される DVD_KaraokeAttributes 構造体へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。 VFW_E_DVD_NOT_IN_KARAOKE_MODE 指定されたストリームがカラオケ フォーマットになっていない。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータがタイトル ドメイン内にない。 VFW_E_DVD_NO_ATTRIBUTES 何らかの理由で、指定されたストリームのカラオケ属性が取得できない。
注意
このメソッドは、ストリーム内のチャンネルの数を明示的には返さない。その情報は、IDvdInfo2::GetAudioAttributes を呼び出すことによって取得できる。このメソッドの使用例については、DVDSample の「CKaraokeDlg::DoModal」を参照すること。
ulStream パラメータは、0 から 7 の間の値または次のいずれかである。
DVD_STREAM_DATA_CURRENT (0x800) 現在選択されているオーディオ ストリームを問い合わせる。 DVD_DEFAULT_AUDIO_STREAM デフォルトのオーディオ ストリームを問い合わせる。
指定されたタイトルまたはメニューの指定されたサブピクチャ ストリームの属性を取得する。
構文
HRESULT GetSubpictureAttributes( ULONG ulStream, DVD_SubpictureAttributes *pAttributes );
パラメータ
- ulStream
- [in] 問い合わせるサブピクチャ ストリームを示す 0 から 31 の間のインデックス番号。「注意」を参照すること。
- pAttributes
- [out] サブピクチャの属性を受け取る DVD_SubpictureAttributes 構造体へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_FAIL サブピクチャ ストリームが見つからない。 E_POINTER 無効な引数。 VFW_E_ATTRIBUTES_DO_NOT_EXIST サブピクチャに属性が定義されていない。
注意
タイトルとしてインデックス数 0-31 が有効である。メニューは 1 つのサブピクチャ ストリームのみを持つ、それは以下の表の 1 つを使用して指定されなければならない。
DVD_STREAM_DATA_CURRENT (0x800) 現在選択されているサブピクチャ ストリームを問い合わせる。 DVD_STREAM_DATA_VMGM (0x400) ビデオ マネージャまたは "トップ" メニューのサブピクチャ属性を問い合わせる。 DVD_STREAM_DATA_VTSM (0x401) 現在選択されているビデオ タイトル セット メニューのサブピクチャ属性を問い合わせる。 このメソッドの使用例については、DVDSample の「CDvdCore::GetSPAttributes()」および「CSPLangDlg::GetSPLang」を参照すること。
参照
メニュー、IsSubpictureStreamEnabled
コンテンツの作成者が明示的に無効にしたナビゲーション コマンドが現在のディスク位置にあれば、それを示すフラグのセットを取得する。
構文
HRESULT GetCurrentUOPS( ULONG *pulUOPs );
パラメータ
- pulUOPs
- [out] VALID_UOP_FLAG 値のビットごとの OR である ULONG 型の変数へのポインタ。個々のビットは、ユーザ操作 (UOP) の状態 (有効または無効) を示す。ビットがセットされていれば、ユーザ操作は禁止されている。「注意」を参照すること。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER pulUOPs が有効なポインタではない。
注意
DVD の作成者は、ディスク上のほとんどすべての位置で、UOP コマンドを挿入することにより、通常は現在の DVD ドメイン内で許可されているナビゲーション コマンドを禁止することができる。つまり、UOP コマンドを利用すると、ディスクの作成者は、通常のナビゲーション権限をオーバーライドできる。
DVD ナビゲータは、コマンドを処理する前に自動的にすべての UOP 権限をチェックし、コマンドが現在の UOP によって無効になっていれば、どのメソッドからでも VFW_E_DVD_OPERATION_INHIBITED を返すため、通常は DVD プレーヤー アプリケーショがこのメソッドを使う必要はない。アプリケーションで現在の UOP 権限そのものを追跡する必要がある場合は、現在の UOP 権限が必要になるたびに GetCurrentUOPS を呼び出すか、メッセージ ループで EC_DVD_VALID_UOPS_CHANGE イベント通知を処理し、lParam1 パラメータから UOP 情報を取得することができる。一般的に、後者の方式の方が効率がよい。
参照
現在の DVD ボリューム情報を取得する。
構文
HRESULT GetDVDVolumeInfo( ULONG *pulNumOfVolumes, ULONG *pulVolume, DVD_DISC_SIDE *pSide, ULONG *pulNumOfTitles );
パラメータ
- pulNumOfVolumes
- [out] ボリューム セット内のボリュームの数を受け取る ULONG 型の変数へのポインタ。
- pulVolume
- [out] このルート ディレクトリのボリューム番号を受け取る ULONG 型の変数へのポインタ。
- pSide
- [out] 現在のディスク面を受け取る DVD_DISC_SIDE 型の変数へのポインタ。
- pulNumOfTitles
- [out] このボリュームで使用できるタイトルの数を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。
注意
一部のディスクは、マルチディスク セットの一部として配布できる。その場合、ここでいう "ボリューム" は、ディスクが作成された方法によって、"ディスク" を意味することも、"ディスク面" を意味することもある。
指定されたテキスト文字列言語ブロックの情報を取得する。
構文
HRESULT GetDVDTextLanguageInfo( ULONG ulLangIndex, ULONG *pulNumOfStrings, LCID pLangCode, DVD_TextCharSet *pbCharacterSet );
パラメータ
- ulLangIndex
- [in] 言語ブロックを指定するインデックス。「注意」を参照すること。
- pulNumOfStrings
- [out] 指定された言語ブロックの文字列の数を受け取る ULONG 型の変数へのポインタ。
- pLangCode
- [out] ISO 639 言語コードが格納されている LCID 型の変数へのポインタ。
- pbCharacterSet
- [out] 指定されている言語のどの文字セットが使用されているかを示す値を受け取る DVD_TextCharSet 列挙へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 E_UNEXPECTED 予期しない内部エラーが発生した。
注意
GetDVDTextNumberOfLanguages を呼び出して、使用できるすべてのメニューとサブピクチャのテキスト言語のインデックスを設定する。次に、各インデックス エントリについて GetDVDTextLanguageInfo を呼び出し、特定の言語の情報 (文字列の数、言語コード、文字セット) を取得する。
参照
DVD テキスト文字列の操作
現在の DVD またはディスク面のテキスト言語の数を取得する。
構文
HRESULT GetDVDTextNumberOfLanguages( ULONG *pulNumOfLangs );
パラメータ
- pulNumOfLangs
- [out] テキスト言語の数を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 E_UNEXPECTED 予期しない内部エラーが発生した。
注意
言語の数は、ディスクが作成された方法によって、ディスク全体について有効であることも、現在のディスク面についてのみ有効であることもある。
参照
DVD テキスト文字列の操作
指定された言語のテキスト文字列をバイトの配列として取得する。
構文
HRESULT GetDVDTextStringAsNative( ULONG ulLangIndex, ULONG ulStringIndex, BYTE *pchBuffer, ULONG ulMaxBufferSize, ULONG *pulActualSize, DVD_TextStringType *pType );
パラメータ
- ulLangIndex
- [in] 言語インデックス。
- ulStringIndex
- [in] 特定の言語の文字列インデックス。
- pchBuffer
- [out] テキスト文字列を受け取るバッファへのポインタ。pchBuffer が NULL の場合、このメソッドは pulActualSize によって文字列のサイズのみを返す。
- ulMaxBufferSize
- [in] 許容最大文字列サイズ (pchBuffer のサイズ)。
- pulActualSize
- [out] pchBuffer によって返される、最後の NULL を含む文字列のバイト単位の実際の長さ。
- pType
- [out] 返された文字列データの種類を受け取る DVD_TextStringType 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 E_UNEXPECTED 予期しない内部エラーが発生した。
注意
一般的に、堅牢なアプリケーションは Unicode 文字列を処理できる。したがって、通常、文字列を取得するときは、まず GetDVDTextStringAsUnicode を呼び出す。しかし、一部の文字列には Unicode で表せない文字が含まれていることがあるため、GetDVDTextStringAsUnicode が失敗した場合、アプリケーションは GetDVDTextStringAsNative を呼び出すことができる。
最後の NULL が返された文字列に追加される。
参照
DVD テキスト文字列の操作
指定された言語と文字列インデックスのテキスト文字列を Unicode で取得する。
構文
HRESULT GetDVDTextStringAsUnicode( ULONG ulLangIndex, ULONG ulStringIndex, TCHAR *pchBuffer, ULONG ulMaxBufferSize, ULONG *pulActualSize, enum DVD_TextStringType *pType );
パラメータ
- ulLangIndex
- [in] 文字列インデックス。
- ulStringIndex
- [in] 特定の言語の文字列インデックス。
- pchBuffer
- [out] テキスト文字列を受け取るバッファへのポインタ。pchBuffer が NULL の場合、このメソッドは pulActualSize によって文字列のサイズのみを返す。
- ulMaxBufferSize
- [in]
sizeof(pchBuffer)/sizeof(*pchBuffer)
によって計算される許容最大文字列サイズ。- pulActualSize
- [out] pchBuffer によって返される、最後の NULL を含む文字列のバイト単位の実際の長さを受け取る ULONG 型の変数へのポインタ。
- pType
- [out] 返された文字列データの種類を受け取る DVD_TextStringType 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 E_UNEXPECTED 予期しない内部エラーが発生した。
注意
一般的に、堅牢なアプリケーションは Unicode 文字列を処理できる。したがって、通常、文字列を取得するときは、まず GetDVDTextStringAsUnicode を呼び出す。しかし、一部の文字列には Unicode で表せない文字が含まれていることがあるため、GetDVDTextStringAsUnicode が失敗した場合、アプリケーションは GetDVDTextStringAsNative を呼び出すことができる。
最後の NULL が返された文字列に追加される。
参照
DVD テキスト文字列の操作
ディスク上のすべてのメニューで利用できるすべての言語を取得する。
構文
HRESULT GetMenuLanguages( LCID *pLanguages, ULONG ulMaxLanguages, ULONG *puActualLanguages );
パラメータ
- pLanguages
- [out] 返された言語を受け取る LCID 配列へのポインタ。実際の言語自体ではなく、メニューで使用できる言語の数だけを取得するには、pLanguages に NULL を指定する。
- ulMaxLanguages
- [in] 取得する言語の最大数。
- puActualLanguages
- [out] 取得された言語の実際の数を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
指定されたタイトルのチャプターの数を取得する。
構文
HRESULT GetNumberOfChapters( ULONG ulTitle, ULONG *pulNumOfChapters );
パラメータ
- ulTitle
- [in] タイトルを指定する ULONG 型の変数。
- pulNumOfChapters
- [out] 指定されたタイトルのチャプターの数を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER パラメータが無効である。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
IDvdControl2::PlayChapter を呼び出す前に、このメソッドを呼び出してチャプターの数を取得し、指定するチャプター番号が有効であることを確認する。
DVD ナビゲータの現在のペアレンタル ロック レベルおよび ISO 3166 国コードの設定を取得する。
構文
HRESULT GetPlayerParentalLevel( ULONG *pulParentalLevel, ULONG *pulCountryCode );
パラメータ
- pulParentalLevel
- [out] 現在のペアレンタル ロック レベルを示す値を受け取る ULONG 型の変数へのポインタ。有効なペアレンタル ロック レベルは、ペアレンタル ロックが有効であれば 1 から 8 の間であり、ペアレンタル ロックが無効であれば 0xFFFFFFFF である。
- pulCountryCode
- [out] 現在の国コード (ISO 3166 Alpha-2 コード) を示す値を受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER パラメータが無効である。
注意
DVD ナビゲータでは、ペアレンタル ロックがデフォルトで無効になっている。このメソッドの使用例については、DVDSample の「CDvdCore::GetParentalLevel」を参照すること。
参照
ディスク位置と DVD ナビゲータ ステート情報が格納されているブックマークを取得する。
構文
HRESULT GetState( IDvdState **pStateData );
パラメータ
- pStateData
- [out] DVD ナビゲータによって割り当てられた DVDState オブジェクトの IDvdState インターフェイスへのポインタのアドレス。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
このメソッドが呼び出されると、DVD ナビゲータは新しい状態オブジェクトを作成し、そのオブジェクトに現在の位置、現在のペアレンタル ロック レベル、およびその他のステート情報を保存する。後から DVDState オブジェクトを使って IDvdControl2::SetState を呼び出すことにより、保存した位置に DVD ナビゲータを戻すことができる。これにより、利用者は、ディスクの途中で再生を停止してその位置を保存し、後から、すべての内部設定を元どおりに復元して、前に停止した位置から再生を再開することができる。
DVD ナビゲータは、DvdState オブジェクトをアプリケーションに返す前に、DvdState オブジェクトに対する AddRef を呼び出す。アプリケーションは、オブジェクトを使用した後、オブジェクトに対する Release を呼び出す必要がある。
このメソッドの使用例については、DVDSample の「CDvdCore::RestoreBookmark」を参照すること。
現在のタイトル内の指定されたサブピクチャ ストリームの言語を取得する。
構文
HRESULT GetSubpictureLanguage( ULONG ulStream, LCID *pLanguage );
パラメータ
- ulStream
- [in] 言語を取得するサブピクチャ ストリームの番号。
- pLanguage
- [out] ロケール情報を受け取る LCID へのポインタ。言語情報は、Win32 MAKELANGID マクロを使って LCID から抽出できる。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータが初期化されていない、または有効なドメイン内にない。
注意
メニューで利用できるテキスト言語を取得するには、GetMenuLanguages を呼び出す。ストリームに未知の言語が含まれる場合、GetSubpictureLanguage は pLanguage が指す値をゼロに設定する。pLanguage から読み取り可能な文字列名を作成するには、次のように Win32 GetLocaleInfo 関数を呼び出す。LOCALE_SENGLANGUAGE はロケール情報型であり、pszString は要求されたデータを受け取るバッファへのポインタであり、cbSize は pszString のサイズを指定する。
GetLocaleInfo(*pLanguage, LOCALE_SENGLANGUAGE, pszString, cbSize);
指定されたタイトルとそのメニューのすべてのビデオ ストリーム、オーディオ ストリーム、およびサブピクチャ ストリームの属性を取得する。
構文
HRESULT GetTitleAttributes( ULONG ulTitle, DVD_MenuAttributes *pMenu, DVD_TitleAttributes *pTitle );
パラメータ
- ulTitle
- [in] 情報を要求するタイトル番号を指定する 1 から 99 の間の ULONG 型の変数。現在のタイトルの情報を要求するには、0xFFFFFFFF を指定する。
- pMenu
- [out] 指定されたタイトルに関連付けられているメニューの属性を受け取る DVD_MenuAttributes 構造体へのポインタ。
- pTitle
- [out] 指定されたタイトルの属性を受け取る DVD_TitleAttributes 構造体へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG nTitle パラメータが無効である。 E_INVALIDDOMAIN DVD ナビゲータがタイトル ドメイン内にない。 E_POINTER pMenu パラメータまたは pTitle パラメータが無効である。 E_UNEXPECTED DVD ナビゲータが初期化されていない、またはそれ以外の内部エラーが発生した。
特定のタイトルに定義されているペアレンタル ロック レベルを取得する。
構文
HRESULT GetTitleParentalLevels( ULONG ulTitle, ULONG *pulParentalLevels );
パラメータ
- ulTitle
- [in] ペアレンタル ロック レベルを要求するタイトル。現在のタイトルのペアレンタル ロック レベルを取得するには、0xfffffff を指定する。
- pulParentalLevels
- [out] タイトルに対して定義されている DVD_PARENTAL_LEVEL 値のビットごとの OR の組み合わせを受け取る ULONG 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
1 つのタイトルの別々のセクションには、別々のペアレンタル ロック レベルが含まれていることがある。
参照
現在のタイトルの総再生時間を取得する。
構文
HRESULT GetTotalTitleTime( DVD_HMSF_TIMECODE *pTotalTime, ULONG *pulTimeCodeFlags );
パラメータ
- pTotalTime
- [out] 時、分、秒、フレーム単位の総時間を受け取る DVD_HMSF_TIMECODE 型の変数へのポインタ。
- pulTimeCodeFlags
- [out] ディスクが作成されたときの再生フレーム レートを示す DVD_TIMECODE_FLAGS 値を受け取る ULONG 型の変数へのポインタ。タイムコード情報を受け取りたくない場合は、NULL を指定する。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 VFW_E_DVD_INVALIDDOMAIN DVD ナビゲータがタイトル ドメイン内にない。 VFW_S_DVD_NON_ONE_SEQUENTIAL タイトルが単一シーケンシャル ビデオ タイトルでない。
注意
総タイトル時間は、タイトルを順番に再生するのに必要な時間であり、静止画の再生、ポーズなどにかかる時間は含まれない。
このメソッドは、各チャプターが自動的に次のチャプターに分岐し、タイトル全体が途中で停止することなく連続的に再生される、単一シーケンシャル ビデオ タイトルでのみ使用される。非シーケンシャル ビデオ タイトルとは、自動的に次々とチャプターが再生されないタイトルである。DVD の作成者によって、非シーケンシャル ビデオ タイトルに時間情報をエンコードする方法が異なるため、そのようなタイトルの総時間を調べるためにこのメソッドを使用しないこと。
ビデオ マネージャ メニューのすべてのビデオ ストリーム、オーディオ ストリーム、およびサブピクチャ ストリームの属性を取得する。
構文
HRESULT GetVMGAttributes( DVD_MenuAttributes *pATR );
パラメータ
- pATR
- [out] 属性を受け取る DVD_MenuAttributes 構造体へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
ビデオ マネージャ メニューは特定のタイトル番号に関連付けられていない。
指定されたオーディオ ストリームが現在のタイトルで有効になっているかどうかを判別する。
構文
HRESULT IsAudioStreamEnabled( ULONG ulStreamNum, BOOL *pbEnabled );
パラメータ
- ulStreamNum
- [in] テストするオーディオ ストリーム番号。
- pbEnabled
- [out] オーディオ ストリームが有効になっていれば TRUE、それ以外の場合は FALSE になる値を受け取る BOOL 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
DVD には最大 8 個の個別のオーディオ ストリームを含めることができるが、通常は、1 つのタイトルのすべてのストリームが有効になることはない。IsAudioStreamEnabled を使用して、特定のストリームが現在のタイトルで有効であるかどうかを調べた後、IDvdControl2::SelectAudioStream を呼び出して、いずれかの有効なストリームを選択する。
指定されたサブピクチャ ストリームが現在のタイトルで有効になっているかどうかを判別する。
構文
HRESULT IsSubpictureStreamEnabled( ULONG ulStreamNum, BOOL *pbEnabled );
パラメータ
- ulStreamNum
- [in] テストするサブピクチャ ストリーム番号。
- pbEnabled
- [out] サブピクチャ ストリームが有効になっていれば TRUE、それ以外の場合は FALSE になる値を受け取る BOOL 型の変数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_UNEXPECTED DVD ナビゲータが初期化されていない。
注意
DVD には最大 32 個の個別のサブピクチャ ストリームを含めることができるが、通常は、1 つのタイトルのすべてのストリームが有効になることはない。IsSubpictureStreamEnabled を使用して、特定のストリームが現在のタイトルで有効であるかどうかを調べた後、IDvdControl2::SelectSubpictureStream を呼び出して、いずれかの有効なストリームを選択する。