Microsoft DirectX 8.0

IDvdInfo2 インターフェイス

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利用できるオーディオ ストリームの数と現在選択されているオーディオ ストリームの番号を取得する。
GetDecoderCapsDVD デコーダのビデオ、オーディオ、およびサブピクチャの最大データ レート (逆方向および順方向) と、サポートしているオーディオの種類 (Dolby AC-3、MPEG-2、DTS、SDDS、LPCM) を取得する。
GetDefaultAudioLanguageデフォルトのオーディオ言語を取得する。
GetKaraokeAttributes現在のタイトルまたはメニューの指定されたオーディオ ストリームのカラオケ属性を取得する。
IsAudioStreamEnabled指定されたオーディオ ストリームが現在のタイトルで有効になっているかどうかを判別する。
サブピクチャ ストリーム
GetCurrentSubpicture現在のタイトルの利用できるサブピクチャ ストリームの数、現在選択されているサブピクチャ ストリーム番号、およびサブピクチャの状態を取得する。
GetDefaultSubpictureLanguageデフォルトのサブピクチャ言語を取得する。
GetSubpictureAttributes現在のタイトルまたはメニューの指定されたサブピクチャ ストリームの属性を取得する。
GetSubpictureLanguage現在のタイトル内の指定されたサブピクチャ ストリームの言語を取得する。
IsSubpictureStreamEnabled指定されたサブピクチャ ストリームが現在のタイトルで有効になっているかどうかを判別する。
ペアレンタル ロック レベル
GetPlayerParentalLevelDVD ナビゲータの現在のペアレンタル ロック レベルおよび ISO 3166 国コードの設定を取得する。
GetTitleParentalLevels特定のタイトルに定義されているペアレンタル ロック レベルを取得する。
DVD ナビゲータ ステート情報
GetCmdFromEventEC_DVD_CMD_START イベント、EC_DVD_CMD_END イベントまたは VFW_E_DVD_CMD_CANCELLED イベントから IDvdCmd オブジェクトを取得する。
GetCurrentDomain現在 DVD ナビゲータが置かれている DVD ドメインを取得する。
GetCurrentLocation現在の再生位置を取得する。
GetDVDDirectoryDVD ナビゲータで設定されているルート ディレクトリを取得する。
GetStateディスク位置と DVD ナビゲータ ステート情報が格納されているブックマークを取得する。
DVD テキスト文字列
GetDVDTextNumberOfLanguages現在の DVD またはディスク面のテキスト言語の数を取得する。
GetDVDTextLanguageInfo指定されたテキスト文字列言語ブロックの情報を取得する。
GetDVDTextStringAsNative指定された言語のテキスト文字列をバイトの配列として取得する。
GetDVDTextStringAsUnicode指定された言語のテキスト文字列を Unicode™ で取得する。

IDvdInfo2::GetAllGPRMs

IDvdInfo2 インターフェイス

すべての汎用パラメータ レジスタ (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 を変更しない方がよい。

参照

IDvdControl2::SetGPRM

IDvdInfo2::GetAllSPRMs

IDvdInfo2 インターフェイス

すべてのシステム パラメータ レジスタ (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) が格納される。デフォルトの値が定義されていない。
116 個のフラグ (b2: ミックス ch2 を ch1 へ、b3: ミックス ch3 を ch1 へ、b4: ミックス ch4 を ch1 へ、 b10: ミックス ch2 を ch0 へ、b11: ミックス ch3 を ch0 へ、b12: ミックス ch4 を ch0 へ)。フラグ値 0 はミックスしないことを意味する。すべてのフラグのデフォルト値は 0 である。カラオケ ストリームを再生しない場合、値は未定義になる。
12ISO-3166 国コード (大文字 2 文字の ASCII 文字) または 65535 (指定なし)。デフォルトの値が定義されていない。
13下位 4 ビット (b0 〜 b3) にペアレンタル ロック レベル (1 〜 8) または 15 (なし) が格納される。デフォルトの値が定義されていない。
14b8 〜 b9 に優先ディスプレイ モード (0 = 4:3、3 = 16:9) が格納される。b10 〜 b11 に現在のビデオ出力モード (0 = 標準 [4:3 または 16:9]、1 = パン-スキャン、2 = レターボックス) が格納される。デフォルトの値が定義されていない。
159 個のフラグ (b2: SDDS カラオケ、b3: DTS カラオケ、b4: MPEG カラオケ、b6: Dolby Digital カラオケ、b7: PCM カラオケ、b10: SDDS 再生、b11: DTS 再生、b12: MPEG 再生、b14: Dolby Digital 再生)。フラグ値 0 は機能がないことを示し、フラグ値 1 は機能があることを示す。デフォルトの値が定義されていない。
16ISO-639 国コード (小文字 2 文字の ASCII 文字) または 65535 (指定なし)。デフォルト値は 65535。
17言語拡張コード (0 = 指定なし、1 = 標準オーディオ、2 = 視力の弱い人のためのオーディオ、3 = ディレクター コメント #1、4 = ディレクター コメント #2)。デフォルト値は 0。
18ISO-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) が格納される。

IDvdInfo2::GetAudioAttributes

IDvdInfo2 インターフェイス

現在のタイトルまたはメニューの指定されたオーディオ ストリームの属性を取得する。

構文

HRESULT GetAudioAttributes(
  ULONG ulStream,
  DVD_AudioAttributes *pATR
);

パラメータ

ulStream
[in] 問い合わせの対象となる属性を持つオーディオ ストリームを指定する ULONG 型の変数。「注意」を参照すること。
pATR
[out] 指定されたオーディオ ストリームの属性が格納される DVD_AudioAttributes 構造体へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。
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」を参照すること。

IDvdInfo2::GetAudioLanguage

IDvdInfo2 インターフェイス

現在のタイトル内の指定されたオーディオ ストリームの言語を取得する。

構文

HRESULT GetAudioLanguage(
  ULONG ulStream,
  LCID *pLanguage
);

パラメータ

ulStream
[in] 言語を取得するオーディオ ストリーム番号。
pLanguage
[out] 言語情報を受け取る LCID へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_POINTERpLanguage パラメータが NULL である。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。
VFW_E_DVD_INVALIDDOMAINDVD ナビゲータが有効なドメイン内にない。

注意

このメソッドはメニューの言語は返さない。ストリームに未知の言語が含まれている場合、このメソッドは、pLanguage が指す値をゼロに設定する。pLanguage から読み取り可能な文字列名を作成するには、次のように Microsoft® Win32® GetLocaleInfo 関数を呼び出す。LOCALE_SENGLANGUAGE はロケール情報型であり、pszString は要求されたデータを受け取るバッファへのポインタであり、cbSizepszString のサイズを指定する。

GetLocaleInfo(*pLanguage, LOCALE_SENGLANGUAGE, pszString, cbSize);

参照

IDvdControl2::SelectAudioStream

IDvdInfo2::GetButtonAtPosition

IDvdInfo2 インターフェイス

表示ウィンドウ内の指定された位置にあるボタンを取得する。

構文

HRESULT GetButtonAtPosition(
  POINT point,
  ULONG *puButtonIndex
);

パラメータ

point
[in] Win32 WM_MOUSEMOVE メッセージを使って取得された現在のマウス ポインタの位置。
puButtonIndex
[out] 現在のマウス ポインタ位置にあるボタンのインデックス (1 から 36 の間) を受け取る ULONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_POINTERpuButtonIndex パラメータが無効である。
VFW_E_DVD_NO_BUTTONpoint にボタンがない。

注意

通常、このメソッドは、DVD メニュー表示ウィンドウ内のマウス ポインタの移動に応じて呼び出される。ボタン番号を取得する前に、必ず HRESULT で成功を確認すること。指定された位置にボタンがあった場合、このメソッドは puButtonIndex の値の設定のみを行う。DVD ボタンは強調表示される矩形を持たない場合があり、ボタンの矩形どうしは重なり合うことがあり、ボタンの矩形は必ずしもボタンの外観と一致するわけではない。

参照

IDvdControl2::ActivateButton

IDvdInfo2::GetButtonRect

IDvdInfo2 インターフェイス

指定されたメニュー ボタンの矩形の座標を取得する。このメソッドは現在実装されていない。

構文

HRESULT GetButtonRect(
  ULONG ulButton
  RECT *pRect
);

パラメータ

ulButton
[in] ボタンを指定する 1 から 36 の間の ULONG 型の変数。
pRect
[out] ボタンの矩形の座標を受け取る RECT 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

E_NOTIMPLこのメソッドは現在実装されていない。

IDvdInfo2::GetCmdFromEvent

IDvdInfo2 インターフェイス

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 オブジェクトを解放する必要がある。

参照

DVD コマンドの同期化EC_DVD_CMD_STARTEC_DVD_CMD_END

IDvdInfo2::GetCurrentAngle

IDvdInfo2 インターフェイス

現在のアングル ブロック内の利用できるアングルの数と現在選択されているアングル番号を取得する。

構文

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_INVALIDDOMAINDVD ナビゲータが初期化されていない、または有効なドメイン内にない。

注意

オーディオ ストリームとサブピクチャ ストリームのインデックスは開始値が 0 であるが、アングルとメニュー ボタンのインデックスは開始値が 1 である点に注意すること。DVD ナビゲータは、アングル ブロックに入る直前に、lParam パラメータを 1 に設定して EC_DVD_ANGLES_AVAILABLE イベント通知をアプリケーションに送る。通常、アプリケーションは、EC_DVD_ANGLES_AVAILABLE のイベント ハンドラ内で GetCurrentAngle および IDvdControl2::SelectAngle を呼び出す。

このメソッドの使用例については、DVDSample アプリケーションの「CAngleDlg::MakeAngleList」を参照すること。

参照

IDvdControl2::SelectAngleEC_DVD_ANGLES_AVAILABLEEC_DVD_ANGLE_CHANGE

IDvdInfo2::GetCurrentAudio

IDvdInfo2 インターフェイス

利用できるオーディオ ストリームの数と現在選択されているオーディオ ストリームの番号を取得する。

構文

HRESULT GetCurrentAudio(
  ULONG *pulStreamsAvailable,
  ULONG *pulCurrentStream
);

パラメータ

pulStreamsAvailable
[out] 利用できるオーディオ ストリームの数を受け取る ULONG 型の変数へのポインタ。
pulCurrentStream
[out] 現在のタイトル内の現在選択されているオーディオ ストリーム番号を受け取る ULONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTER入力された引数が無効である。
VFW_E_DVD_INVALIDDOMAINDVD ナビゲータが初期化されていない、または有効なドメイン内にない。

注意

ディスク上の利用できるオーディオ言語を取得するには、GetCurrentAudio を呼び出した後、ゼロから (pulStreamsAvailable - 1) までの各ストリームについて GetAudioLanguage を呼び出し、言語の内容を取得する。

参照

EC_DVD_AUDIO_STREAM_CHANGEIDvdControl2::SelectAudioStream

IDvdInfo2::GetCurrentButton

IDvdInfo2 インターフェイス

利用できるボタンの数と現在選択されているボタンの番号を取得する。

構文

HRESULT GetCurrentButton(
  ULONG *pulButtonsAvailable,
  ULONG *pulCurrentButton
);

パラメータ

pulButtonsAvailable
[out] 利用できるボタンの数を受け取る ULONG 型の変数へのポインタ。
pulCurrentButton
[out] 現在選択されているボタンの番号 (1 から 36 の間) を受け取る ULONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTERポインタ引数の 1 つが無効である。

注意

ボタンが存在しない場合は、pulButtonsAvailablepulCurrentButton の両方がゼロに設定される。

参照

EC_DVD_BUTTON_CHANGEIDvdControl2::ActivateButton

IDvdInfo2::GetCurrentDomain

IDvdInfo2 インターフェイス

現在 DVD ナビゲータが置かれているドメインを取得する。

構文

HRESULT GetCurrentDomain(
  DVD_DOMAIN *pDomain
);

パラメータ

pDomain
[out] 現在のドメインを受け取る DVD_DOMAIN 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_UNEXPECTED予期せぬエラー。
E_POINTER無効な引数。

注意

このメソッドを使って、DVD ナビゲータが特定のタイトル ドメイン内で再生を終了したかどうかをテストできる。アプリケーションは、PlayTitlePlayForwards などの IDvdControl2 メソッドを呼び出す前に現在のドメインのテストを行う必要はない。DVD ナビゲータは、ドメインのテストを行い、現在のコマンドがドメインに対して無効である場合は、何もせずに、VFW_E_DVD_INVALIDDOMAIN を返す。

参照

DomainsEC_DVD_DOMAIN_CHANGE

IDvdInfo2::GetCurrentLocation

IDvdInfo2 インターフェイス

現在の再生位置を取得する。

構文

HRESULT GetCurrentLocation(
  DVD_PLAYBACK_LOCATION2 *pLocation
);

パラメータ

pLocation
[out] 再生位置情報を受け取る DVD_PLAYBACK_LOCATION2 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_POINTERpLocation パラメータが無効である。
VFW_E_DVD_INVALIDDOMAINDVD ナビゲータが無効なドメイン内にある。

注意

このメソッドは、現在の位置のシークを明示的に禁止していないタイトルの現在の再生位置からビデオの再生を再開するのに十分な情報を取得する。ディスクが排出された後は、このメソッドが返す情報では再生を再開するのに十分でない場合がある。ユーザーが後からいつでも同じ位置に戻れるように、現在の位置とステート情報をディスクに保存するには、GetState を使用する。

IDvdInfo2::GetCurrentSubpicture

IDvdInfo2 インターフェイス

現在のタイトル内の利用できるサブピクチャ ストリームの数、現在選択されているサブピクチャ ストリーム番号、およびサブピクチャの状態を取得する。

構文

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_INVALIDDOMAINDVD ナビゲータが初期化されていないか、Title ドメイン内にない。

注意

DVD コンテンツの作成者は、ディスク上の任意のサブピクチャ ストリームを強制的にアクティブにするように指定し、利用者が見たいかどうかに関係なく、このストリームを必ず表示するように要求することができる。DVD ナビゲータはそのようなディスクからのすべてのコマンドに従い、アプリケーションが IDvdControl2::SetSubpictureState メソッドによってサブピクチャの表示を無効にした場合でも、強制的にアクティブにされたストリームを表示する。

参照

EC_DVD_SUBPICTURE_STREAM_CHANGEIDvdControl2::SelectSubpictureStream

IDvdInfo2::GetCurrentVideoAttributes

IDvdInfo2 インターフェイス

現在のタイトルまたはメニューのビデオ属性を取得する。

構文

HRESULT GetCurrentVideoAttributes(
    DVD_VideoAttributes *pATR
);

パラメータ

pATR
[out] 属性を受け取る DVD_VideoAttributes 構造体へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTER無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

このメソッドの使用例については、DVDSample の「CDvdCore::GetVideoAttributes()」を参照すること。

IDvdInfo2::GetDecoderCaps

IDvdInfo2 インターフェイス

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フィルタ グラフが初期化されていない。

IDvdInfo2::GetDefaultAudioLanguage

IDvdInfo2 インターフェイス

デフォルトのオーディオ言語を取得する。

構文

HRESULT GetDefaultAudioLanguage(
  LCID *pLanguage,
  DVD_AUDIO_LANG_EXT *pAudioExtension
);

パラメータ

pLanguage
[out] デフォルトの言語情報を受け取る LCID へのポインタ。
pAudioExtension
デフォルトの DVD オーディオ言語拡張機能を示す値を受け取る DVD_AUDIO_LANG_EXT 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_POINTERpLanguage パラメータが NULL である。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。
VFW_E_DVD_INVALIDDOMAINDVD ナビゲータが有効なドメイン内にない。

参照

IDvdControl2::SelectAudioStreamIDvdControl2::SelectDefaultAudioLanguage

IDvdInfo2::GetDefaultMenuLanguage

IDvdInfo2 インターフェイス

デフォルトのメニュー言語を取得する。

構文

HRESULT GetDefaultMenuLanguage(
  LCID *pLanguage
);

パラメータ

pLanguage
[out] 言語情報を受け取る LCID へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_POINTERpLanguage パラメータが NULL である。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。
VFW_E_DVD_INVALIDDOMAINDVD ナビゲータが有効なドメイン内にない。

参照

IDvdControl2::SelectDefaultMenuLanguage

IDvdInfo2::GetDefaultSubpictureLanguage

IDvdInfo2 インターフェイス

デフォルトのサブピクチャ言語を取得する。

構文

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_POINTERpLanguage パラメータが NULL である。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。
VFW_E_DVD_INVALIDDOMAINDVD ナビゲータが有効なドメイン内にない。

参照

IDvdControl2::SelectDefaultSubpictureLanguage

IDvdInfo2::GetDiscID

IDvdInfo2 インターフェイス

指定された DVD に対してシステムが生成した 64 ビットの識別番号を取得する。

構文

HRESULT GetDiscID(
    LPCWSTR pszwPath,
    ULONGLONG *pullDiscID
  );

パラメータ

pszwPath
[in] ディスク ID に使用するボリュームのパス。現在の DVD ボリュームを使用するには、NULL を指定する。
pullDiscID
[out] 64 ビットのディスク ID を受け取る ULONGLONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

DVD ナビゲータは、BCA 値ではなく、ファイルのサイズ、日付その他の情報に基づいて "一意な" ID を計算する。この番号はディスクが再生されるたびに同じであることが保証される。ID は、複製されたディスクのすべてのコピーに適用される。つまり、特定のムービーのすべてのコピーは同じ ID を持つ。2 つの別々のタイトルが同じ ID を持つ確率は十分に低いため、この ID は、実用上 "一意" であるものと見なすことができる。

IDvdInfo2::GetDVDDirectory

IDvdInfo2 インターフェイス

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_INVALIDDOMAINDVD ナビゲータが有効なドメイン内にない。

IDvdInfo2::GetKaraokeAttributes

IDvdInfo2 インターフェイス

現在のタイトルまたはメニューの指定されたオーディオ ストリームのカラオケ属性を取得する。

構文

HRESULT GetKaraokeAttributes(
  ULONG ulStream,
  DVD_KaraokeAttributes *pATR
);

パラメータ

ulStream
[in] 属性を問い合わせるオーディオ ストリームのインデックスを指定する ULONG 型の変数。「注意」を参照すること。
pATR
[out] カラオケ属性が格納される DVD_KaraokeAttributes 構造体へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTER無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。
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デフォルトのオーディオ ストリームを問い合わせる。

IDvdInfo2::GetSubpictureAttributes

IDvdInfo2 インターフェイス

指定されたタイトルまたはメニューの指定されたサブピクチャ ストリームの属性を取得する。

構文

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

IDvdInfo2::GetCurrentUOPS

IDvdInfo2 インターフェイス

コンテンツの作成者が明示的に無効にしたナビゲーション コマンドが現在のディスク位置にあれば、それを示すフラグのセットを取得する。

構文

HRESULT GetCurrentUOPS(
  ULONG *pulUOPs
);

パラメータ

pulUOPs
[out] VALID_UOP_FLAG 値のビットごとの OR である ULONG 型の変数へのポインタ。個々のビットは、ユーザ操作 (UOP) の状態 (有効または無効) を示す。ビットがセットされていれば、ユーザ操作は禁止されている。「注意」を参照すること。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTERpulUOPs が有効なポインタではない。

注意

DVD の作成者は、ディスク上のほとんどすべての位置で、UOP コマンドを挿入することにより、通常は現在の DVD ドメイン内で許可されているナビゲーション コマンドを禁止することができる。つまり、UOP コマンドを利用すると、ディスクの作成者は、通常のナビゲーション権限をオーバーライドできる。

DVD ナビゲータは、コマンドを処理する前に自動的にすべての UOP 権限をチェックし、コマンドが現在の UOP によって無効になっていれば、どのメソッドからでも VFW_E_DVD_OPERATION_INHIBITED を返すため、通常は DVD プレーヤー アプリケーショがこのメソッドを使う必要はない。アプリケーションで現在の UOP 権限そのものを追跡する必要がある場合は、現在の UOP 権限が必要になるたびに GetCurrentUOPS を呼び出すか、メッセージ ループで EC_DVD_VALID_UOPS_CHANGE イベント通知を処理し、lParam1 パラメータから UOP 情報を取得することができる。一般的に、後者の方式の方が効率がよい。

参照

EC_DVD_VALID_UOPS_CHANGE

IDvdInfo2::GetDVDVolumeInfo

IDvdInfo2 インターフェイス

現在の 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無効な引数。

注意

一部のディスクは、マルチディスク セットの一部として配布できる。その場合、ここでいう "ボリューム" は、ディスクが作成された方法によって、"ディスク" を意味することも、"ディスク面" を意味することもある。

IDvdInfo2::GetDVDTextLanguageInfo

IDvdInfo2 インターフェイス

指定されたテキスト文字列言語ブロックの情報を取得する。

構文

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 テキスト文字列の操作

IDvdInfo2::GetDVDTextNumberOfLanguages

IDvdInfo2 インターフェイス

現在の DVD またはディスク面のテキスト言語の数を取得する。

構文

HRESULT GetDVDTextNumberOfLanguages(
    ULONG *pulNumOfLangs
  );

パラメータ

pulNumOfLangs
[out] テキスト言語の数を受け取る ULONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTER無効な引数。
E_UNEXPECTED 予期しない内部エラーが発生した。

注意

言語の数は、ディスクが作成された方法によって、ディスク全体について有効であることも、現在のディスク面についてのみ有効であることもある。

参照

DVD テキスト文字列の操作

IDvdInfo2::GetDVDTextStringAsNative

IDvdInfo2 インターフェイス

指定された言語のテキスト文字列をバイトの配列として取得する。

構文

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 テキスト文字列の操作

IDvdInfo2::GetDVDTextStringAsUnicode

IDvdInfo2 インターフェイス

指定された言語と文字列インデックスのテキスト文字列を 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 テキスト文字列の操作

IDvdInfo2::GetMenuLanguages

IDvdInfo2 インターフェイス

ディスク上のすべてのメニューで利用できるすべての言語を取得する。

構文

HRESULT GetMenuLanguages(
    LCID *pLanguages,
    ULONG ulMaxLanguages,
    ULONG *puActualLanguages
  );

パラメータ

pLanguages
[out] 返された言語を受け取る LCID 配列へのポインタ。実際の言語自体ではなく、メニューで使用できる言語の数だけを取得するには、pLanguages に NULL を指定する。
ulMaxLanguages
[in] 取得する言語の最大数。
puActualLanguages
[out] 取得された言語の実際の数を受け取る ULONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

IDvdInfo2::GetNumberOfChapters

IDvdInfo2 インターフェイス

指定されたタイトルのチャプターの数を取得する。

構文

HRESULT GetNumberOfChapters(
  ULONG ulTitle,
  ULONG *pulNumOfChapters
);

パラメータ

ulTitle
[in] タイトルを指定する ULONG 型の変数。
pulNumOfChapters
[out] 指定されたタイトルのチャプターの数を受け取る ULONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_POINTERパラメータが無効である。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

IDvdControl2::PlayChapter を呼び出す前に、このメソッドを呼び出してチャプターの数を取得し、指定するチャプター番号が有効であることを確認する。

IDvdInfo2::GetPlayerParentalLevel

IDvdInfo2 インターフェイス

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」を参照すること。

参照

ペアレンタル ロック レベルの適用EC_DVD_PARENTAL_LEVEL_CHANGE

IDvdInfo2::GetState

IDvdInfo2 インターフェイス

ディスク位置と DVD ナビゲータ ステート情報が格納されているブックマークを取得する。

構文

HRESULT GetState(
    IDvdState **pStateData
);

パラメータ

pStateData
[out] DVD ナビゲータによって割り当てられた DVDState オブジェクトの IDvdState インターフェイスへのポインタのアドレス。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

このメソッドが呼び出されると、DVD ナビゲータは新しい状態オブジェクトを作成し、そのオブジェクトに現在の位置、現在のペアレンタル ロック レベル、およびその他のステート情報を保存する。後から DVDState オブジェクトを使って IDvdControl2::SetState を呼び出すことにより、保存した位置に DVD ナビゲータを戻すことができる。これにより、利用者は、ディスクの途中で再生を停止してその位置を保存し、後から、すべての内部設定を元どおりに復元して、前に停止した位置から再生を再開することができる。

DVD ナビゲータは、DvdState オブジェクトをアプリケーションに返す前に、DvdState オブジェクトに対する AddRef を呼び出す。アプリケーションは、オブジェクトを使用した後、オブジェクトに対する Release を呼び出す必要がある。

このメソッドの使用例については、DVDSample の「CDvdCore::RestoreBookmark」を参照すること。

IDvdInfo2::GetSubpictureLanguage

IDvdInfo2 インターフェイス

現在のタイトル内の指定されたサブピクチャ ストリームの言語を取得する。

構文

HRESULT GetSubpictureLanguage(
  ULONG ulStream,
  LCID *pLanguage
  );

パラメータ

ulStream
[in] 言語を取得するサブピクチャ ストリームの番号。
pLanguage
[out] ロケール情報を受け取る LCID へのポインタ。言語情報は、Win32 MAKELANGID マクロを使って LCID から抽出できる。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
VFW_E_DVD_INVALIDDOMAINDVD ナビゲータが初期化されていない、または有効なドメイン内にない。

注意

メニューで利用できるテキスト言語を取得するには、GetMenuLanguages を呼び出す。ストリームに未知の言語が含まれる場合、GetSubpictureLanguagepLanguage が指す値をゼロに設定する。pLanguage から読み取り可能な文字列名を作成するには、次のように Win32 GetLocaleInfo 関数を呼び出す。LOCALE_SENGLANGUAGE はロケール情報型であり、pszString は要求されたデータを受け取るバッファへのポインタであり、cbSizepszString のサイズを指定する。

GetLocaleInfo(*pLanguage, LOCALE_SENGLANGUAGE, pszString, cbSize);

IDvdInfo2::GetTitleAttributes

IDvdInfo2 インターフェイス

指定されたタイトルとそのメニューのすべてのビデオ ストリーム、オーディオ ストリーム、およびサブピクチャ ストリームの属性を取得する。

構文

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_INVALIDARGnTitle パラメータが無効である。
E_INVALIDDOMAIN DVD ナビゲータがタイトル ドメイン内にない。
E_POINTERpMenu パラメータまたは pTitle パラメータが無効である。
E_UNEXPECTEDDVD ナビゲータが初期化されていない、またはそれ以外の内部エラーが発生した。

IDvdInfo2::GetTitleParentalLevels

IDvdInfo2 インターフェイス

特定のタイトルに定義されているペアレンタル ロック レベルを取得する。

構文

HRESULT GetTitleParentalLevels(
    ULONG ulTitle,
    ULONG *pulParentalLevels
  );

パラメータ

ulTitle
[in] ペアレンタル ロック レベルを要求するタイトル。現在のタイトルのペアレンタル ロック レベルを取得するには、0xfffffff を指定する。
pulParentalLevels
[out] タイトルに対して定義されている DVD_PARENTAL_LEVEL 値のビットごとの OR の組み合わせを受け取る ULONG 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

1 つのタイトルの別々のセクションには、別々のペアレンタル ロック レベルが含まれていることがある。

参照

ペアレンタル ロック レベルの適用

IDvdInfo2::GetTotalTitleTime

IDvdInfo2 インターフェイス

現在のタイトルの総再生時間を取得する。

構文

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_INVALIDDOMAINDVD ナビゲータがタイトル ドメイン内にない。
VFW_S_DVD_NON_ONE_SEQUENTIALタイトルが単一シーケンシャル ビデオ タイトルでない。

注意

総タイトル時間は、タイトルを順番に再生するのに必要な時間であり、静止画の再生、ポーズなどにかかる時間は含まれない。

このメソッドは、各チャプターが自動的に次のチャプターに分岐し、タイトル全体が途中で停止することなく連続的に再生される、単一シーケンシャル ビデオ タイトルでのみ使用される。非シーケンシャル ビデオ タイトルとは、自動的に次々とチャプターが再生されないタイトルである。DVD の作成者によって、非シーケンシャル ビデオ タイトルに時間情報をエンコードする方法が異なるため、そのようなタイトルの総時間を調べるためにこのメソッドを使用しないこと。

IDvdInfo2::GetVMGAttributes

IDvdInfo2 インターフェイス

ビデオ マネージャ メニューのすべてのビデオ ストリーム、オーディオ ストリーム、およびサブピクチャ ストリームの属性を取得する。

構文

HRESULT GetVMGAttributes(
  DVD_MenuAttributes *pATR
);

パラメータ

pATR
[out] 属性を受け取る DVD_MenuAttributes 構造体へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTER無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

ビデオ マネージャ メニューは特定のタイトル番号に関連付けられていない。

IDvdInfo2::IsAudioStreamEnabled

IDvdInfo2 インターフェイス

指定されたオーディオ ストリームが現在のタイトルで有効になっているかどうかを判別する。

構文

HRESULT IsAudioStreamEnabled(
    ULONG ulStreamNum,
    BOOL *pbEnabled
    );

パラメータ

ulStreamNum
[in] テストするオーディオ ストリーム番号。
pbEnabled
[out] オーディオ ストリームが有効になっていれば TRUE、それ以外の場合は FALSE になる値を受け取る BOOL 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

DVD には最大 8 個の個別のオーディオ ストリームを含めることができるが、通常は、1 つのタイトルのすべてのストリームが有効になることはない。IsAudioStreamEnabled を使用して、特定のストリームが現在のタイトルで有効であるかどうかを調べた後、IDvdControl2::SelectAudioStream を呼び出して、いずれかの有効なストリームを選択する。

IDvdInfo2::IsSubpictureStreamEnabled

IDvdInfo2 インターフェイス

指定されたサブピクチャ ストリームが現在のタイトルで有効になっているかどうかを判別する。

構文

HRESULT IsSubpictureStreamEnabled(
    ULONG ulStreamNum,
    BOOL *pbEnabled
);

パラメータ

ulStreamNum
[in] テストするサブピクチャ ストリーム番号。
pbEnabled
[out] サブピクチャ ストリームが有効になっていれば TRUE、それ以外の場合は FALSE になる値を受け取る BOOL 型の変数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_UNEXPECTEDDVD ナビゲータが初期化されていない。

注意

DVD には最大 32 個の個別のサブピクチャ ストリームを含めることができるが、通常は、1 つのタイトルのすべてのストリームが有効になることはない。IsSubpictureStreamEnabled を使用して、特定のストリームが現在のタイトルで有効であるかどうかを調べた後、IDvdControl2::SelectSubpictureStream を呼び出して、いずれかの有効なストリームを選択する。