IDvdInfo2
COM公式ドキュメント
IDvdInfo2 インターフェイスは、DVD ディスクの属性、または DVD の再生およびナビゲーションの現在の状態を報告します。
メソッド 39
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetCurrentDomain メソッドは、DVD Navigator が現在位置しているドメインを取得します。
| pDomain | DVD_DOMAIN* | out | 現在のドメインを受け取る DVD_DOMAIN 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 予期しないエラーです。 | |
| 引数が無効です。 |
解説(Remarks)
このメソッドを使用すると、DVD Navigator が特定のタイトルドメインでの再生を終了したかどうかを判定できます。アプリケーションは、PlayTitle や PlayForwards などの IDvdControl2 メソッドを呼び出す前に、現在のドメインを確認する必要はありません。DVD Navigator はドメインを確認し、現在のコマンドがそのドメインで無効な場合は、単に何も行わずに VFW_E_DVD_INVALIDDOMAIN を返します。
GetCurrentLocation メソッドは、現在の再生位置を取得します。
| pLocation | DVD_PLAYBACK_LOCATION2* | out | 再生位置の情報を受け取る DVD_PLAYBACK_LOCATION2 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| pLocation パラメーターが無効です。 | |
| DVD Navigator が無効なドメインにあります。 |
解説(Remarks)
このメソッドは、現在の位置へのシークが明示的に無効化されていないタイトルにおいて、現在の再生位置からビデオの再生を再開するのに十分な情報を取得します。ディスクが取り出された後は、このメソッドが返す情報だけでは再生を再開するのに十分でない場合があります。ユーザーが後から任意のタイミングで同じ位置に戻れるように、現在の位置と状態情報をディスクに保存するには、GetState を使用します。
GetTotalTitleTime メソッドは、現在のタイトルの総再生時間を取得します。
| pTotalTime | DVD_HMSF_TIMECODE* | out | 総時間を時・分・秒・フレームで受け取る DVD_HMSF_TIMECODE 構造体へのポインター。 |
| ulTimeCodeFlags | DWORD* | out | ディスクが再生用にオーサリングされたフレームレートを示す DVD_TIMECODE_FLAGS 値を受け取ります。タイムコード情報を受け取る必要がない場合は NULL を指定します。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator がタイトルドメインにありません。 | |
| タイトルが 1 つの連続ビデオタイトルではないため、タイミング情報が連続していない可能性があります。 |
解説(Remarks)
総タイトル時間とは、静止画や一時停止などを含めずに、タイトルを順次再生するのに要する時間です。
このメソッドは、1 つの連続ビデオタイトル(各チャプターが自動的に次のチャプターへ分岐し、タイトル全体が停止することなく連続再生される、映画などのタイトル)でのみ使用します。非連続ビデオタイトルとは、チャプターが自動的に次々と再生されないタイトルです。DVD のオーサリング担当者が非連続ビデオタイトルに時間情報をエンコードする方法にはばらつきがあるため、そのようなタイトルの総時間を求めるためにこのメソッドを使用しないでください。
GetCurrentButton メソッドは、利用可能なボタンの数と、現在選択されているボタンの番号を取得します。
| pulButtonsAvailable | DWORD* | out | 利用可能なボタンの数を受け取ります。 |
| pulCurrentButton | DWORD* | out | 現在選択されているボタンの番号(1 から 36 まで)を受け取ります。 |
戻り値
解説(Remarks)
ボタンが存在しない場合、pulButtonsAvailable と pulCurrentButton の両方が 0 に設定されます。
GetCurrentAngle メソッドは、現在のアングルブロックで利用可能なアングルの数と、現在選択されているアングル番号を取得します。
| pulAnglesAvailable | DWORD* | out | 利用可能なアングルの数を受け取ります。1 つのアングルブロックには最大 9 個のアングルがあり、1 から 9 までの番号が付けられます。値が 1 の場合、DVD Navigator はアングルブロック内にありません。 |
| pulCurrentAngle | DWORD* | out | 現在のアングル番号を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていないか、有効なドメインにありません。 |
解説(Remarks)
アングルとメニューボタンのインデックスは 1 から始まるのに対し、オーディオおよびサブピクチャーストリームのインデックスは 0 から始まる点に注意してください。DVD Navigator はアングルブロックに入ろうとするとき、lParam を 1 に設定した EC_DVD_ANGLES_AVAILABLE イベント通知をアプリケーションに送信します。アプリケーションは通常、EC_DVD_ANGLES_AVAILABLE のイベントハンドラー内で GetCurrentAngle と IDvdControl2::SelectAngle を呼び出します。
このメソッドの使用例は、DVDSample アプリケーションの CAngleDlg::MakeAngleList で示されています。
GetCurrentAudio メソッドは、利用可能なオーディオストリームの数と、現在選択されているオーディオストリームの番号を取得します。
| pulStreamsAvailable | DWORD* | out | 利用可能なオーディオストリームの数を受け取ります。 |
| pulCurrentStream | DWORD* | out | 現在のタイトルで現在選択されているオーディオストリーム番号を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 入力引数が無効です。 | |
| DVD Navigator が初期化されていないか、有効なドメインにありません。 |
解説(Remarks)
ディスク上で利用可能なオーディオ言語を取得するには、GetCurrentAudio を呼び出した後、0 から (pulStreamsAvailable - 1) までの各ストリームに対して GetAudioLanguage を呼び出し、言語情報を取得します。
GetCurrentSubpicture メソッドは、現在のタイトルで利用可能なサブピクチャーストリームの数、現在選択されているサブピクチャーストリーム番号、およびサブピクチャーの状態を取得します。
| pulStreamsAvailable | DWORD* | out | 利用可能なサブピクチャーストリームの数を受け取ります。 |
| pulCurrentStream | DWORD* | out | 現在選択されているサブピクチャーストリームの番号を受け取ります。 |
| pbIsDisabled | BOOL* | out | サブピクチャー表示が無効かどうかを示すブール値を受け取ります。TRUE は無効であることを意味します。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていないか、タイトルドメインにありません。 |
解説(Remarks)
DVD コンテンツのオーサリング担当者は、ディスク上の特定のサブピクチャーストリームを強制的に有効化されるものとして指定できます。これは、視聴者が視聴を望むかどうかにかかわらず、DVD のオーサリング担当者がそのストリームを表示するよう要求することを意味します。DVD Navigator はディスクからのそのようなコマンドすべてに従うため、アプリケーションが IDvdControl2::SetSubpictureState メソッドでサブピクチャー表示を無効にしていても、強制的に有効化されたストリームは表示されます。
GetCurrentUOPS メソッドは、コンテンツのオーサリング担当者が現在のディスク位置に対して明示的に無効化したナビゲーションコマンド(存在する場合)を示すフラグのセットを取得します。
| pulUOPs | DWORD* | out | VALID_UOP_FLAG 値のビットごとの組み合わせを受け取ります。各ビットは、ユーザー操作 (UOP) の状態(有効または無効)を表します。ビットが設定されている場合、そのユーザー操作は禁止されています。「解説」を参照してください。 |
戻り値
解説(Remarks)
DVD のオーサリング担当者は、現在の DVD ドメイン内では本来許可されるナビゲーションコマンドを禁止するために、ディスク上のほぼ任意の場所に UOP コマンドを挿入できます。言い換えると、UOP コマンドを使用すると、ディスクのオーサリング担当者は通常のナビゲーション権限を上書きできます。
DVD Navigator は任意のコマンドを実行する前にすべての UOP 権限を自動的にチェックし、現在の UOP でコマンドが無効な場合はいずれのメソッドからも VFW_E_DVD_OPERATION_INHIBITED を返すため、DVD プレーヤーアプリケーションが通常このメソッドを使用する必要はありません。アプリケーション自身で現在の UOP 権限を追跡する必要がある場合は、現在の UOP 権限が必要になるたびに GetCurrentUOPS を呼び出すか、メッセージループ内で EC_DVD_VALID_UOPS_CHANGE イベント通知を処理し、lParam1 パラメーターから UOP 情報を取得できます。後者の方法が一般的により効率的です。
GetAllSPRMs メソッドは、すべてのシステムパラメーターレジスタ (SPRM) の現在の内容を取得します。
| pRegisterArray | WORD** | out | SPRM の配列のアドレスを受け取る SPRMARRAY 型の配列へのポインター。 |
戻り値
解説(Remarks)
24 個の SPRM は、現在の言語、サブピクチャー、その他のナビゲーションデータに関する情報を保持するために使用されます。
| レジスタ | 内容 |
|---|---|
| 0 | ISO-639 言語コード(小文字の ASCII 2 文字)。既定値は未定義です。 |
| 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 国/地域コード(大文字の ASCII 2 文字)、または 65535(未指定)。既定値は未定義です。 |
| 13 | 下位 4 ビット (b0-b3) に視聴制限レベル (1~8)、または 15(なし)が入ります。既定値は未定義です。 |
| 14 | b8-b9 に現在のビデオ出力モード(0 = 通常 [4:3 または 16:9]、1 = パンスキャン、2 = レターボックス)が入ります。b10-b11 に優先表示モード(0 = 4:3、3 = 16:9)が入ります。既定値は未定義です。 |
| 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 言語コード(小文字の ASCII 2 文字)、または 65535(未指定)。既定値は 65535 です。 |
| 17 | 言語拡張コード(0 = 未指定、1 = 通常のオーディオ、2 = 視覚障碍者向けオーディオ、3 = 監督コメント #1、4 = 監督コメント #2)。既定値は 0 です。 |
| 18 | ISO-639 言語コード(小文字の ASCII 2 文字)、または 65535(未指定)。既定値は 65535 です。 |
| 19 | 言語拡張コード(0 = 未指定、1 = 通常の字幕、2 = 大きい字幕、3 = 子供向け字幕、5 = 通常のクローズドキャプション、6 = 大きいクローズドキャプション、7 = 子供向けクローズドキャプション、9 = 強制字幕、13 = 監督コメント、14 = 大きい監督コメント、15 = 子供向け監督コメント)。既定値は 0 です。 |
| 20 | 下位 8 ビット (b0-b7) にリージョンコード (1~8) が入ります。 |
GetAllGPRMs メソッドは、すべての汎用パラメーターレジスタ (GPRM) の現在の内容を取得します。
| pRegisterArray | WORD** | out | 現在の 16 個すべての GPRM 値を受け取る GPRMARRAY 型の配列へのポインター。 |
戻り値
解説(Remarks)
GPRM は 16 ビットのレジスタで、各ディスクが一時的なデータ格納のために独自の方法で使用できます。
GetAudioLanguage メソッドは、現在のタイトル内で指定されたオーディオストリームの言語を取得します。
| ulStream | DWORD | in | 言語を取得するオーディオストリームの番号。 |
| pLanguage | DWORD* | out | 言語情報を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| pLanguage パラメーターが NULL です。 | |
| DVD Navigator が初期化されていません。 | |
| DVD Navigator が有効なドメインにありません。 |
解説(Remarks)
このメソッドはメニューの言語を返しません。ストリームが不明な言語を含む場合、pLanguage が指す値を 0 に設定します。pLanguage から人間が読める文字列名を作成するには、GetLocaleInfo 関数を呼び出します。
| C++ |
|---|
LCID Language;
hr = pDvdInfo->GetAudioLanguage(ulStream, &Language);
if (SUCCEEDED(hr))
{
int cchSize = GetLocaleInfo(Language, LOCALE_SENGLANGUAGE, 0, 0);
TCHAR *szString = new TCHAR[cchSize];
if (szString)
{
GetLocaleInfo(Language, LOCALE_SENGLANGUAGE, szString, cchSize);
/* ... */
delete [] szString;
}
}
|
GetSubpictureLanguage メソッドは、現在のタイトル内で指定されたサブピクチャーストリームの言語を取得します。
| ulStream | DWORD | in | 言語を取得するサブピクチャーストリームの番号。 |
| pLanguage | DWORD* | out | ロケール情報を受け取る LCID へのポインター。その後、Win32 の MAKELANGID マクロを使用して LCID から言語情報を抽出できます。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていないか、有効なドメインにありません。 |
解説(Remarks)
メニューで利用可能なテキスト言語を取得するには、GetMenuLanguages を呼び出します。ストリームが不明な言語を含む場合、GetSubpictureLanguage は pLanguage が指す値を 0 に設定します。pLanguage から人間が読める文字列名を作成するには、次のように Win32 の GetLocaleInfo 関数を呼び出します。
| C++ |
|---|
LCID Language;
hr = pDvdInfo->GetSubpictureLanguage(ulStream, &Language);
if (SUCCEEDED(hr))
{
int cchSize = GetLocaleInfo(Language, LOCALE_SENGLANGUAGE, 0, 0);
TCHAR *szString = new TCHAR[cchSize];
if (szString)
{
GetLocaleInfo(Language, LOCALE_SENGLANGUAGE, szString, cchSize);
/* ... */
delete [] szString;
}
}
|
GetTitleAttributes メソッドは、指定されたタイトルとそのメニューについて、すべてのビデオ、オーディオ、およびサブピクチャーストリームの属性を取得します。
| ulTitle | DWORD | in | 要求するタイトル番号を指定する、1 から 99 までの ULONG 型の変数。現在のタイトルを指定するには 0xFFFFFFFF を指定します。 |
| pMenu | DVD_MenuAttributes* | out | 指定されたタイトルに関連付けられたメニューの属性を受け取る DVD_MenuAttributes 構造体へのポインター。 |
| pTitle | DVD_TitleAttributes* | out | 指定されたタイトルの属性を受け取る DVD_TitleAttributes 構造体へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| nTitle パラメーターが無効です。 | |
|
DVD Navigator がタイトルドメインにありません。 |
| pMenu または pTitle パラメーターが無効です。 | |
| DVD Navigator が初期化されていないか、その他の内部エラーが発生しました。 |
GetVMGAttributes メソッドは、Video Manager Menu について、すべてのビデオ、オーディオ、およびサブピクチャーストリームの属性を取得します。
| pATR | DVD_MenuAttributes* | out | 属性を受け取る DVD_MenuAttributes 構造体へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 |
解説(Remarks)
Video Manager Menu は、特定のタイトル番号には関連付けられていません。
GetCurrentVideoAttributes メソッドは、現在のタイトルまたはメニューのビデオ属性を取得します。
| pATR | DVD_VideoAttributes* | out | 属性を受け取る DVD_VideoAttributes 構造体へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 |
解説(Remarks)
このメソッドの使用例は、DVDSample アプリケーションの CDvdCore::GetVideoAttributes() で示されています。
GetAudioAttributes メソッドは、現在のタイトルまたはメニューで指定されたオーディオストリームの属性を取得します。
| ulStream | DWORD | in | 属性を照会するオーディオストリームを指定する ULONG 型の変数。「解説」を参照してください。 |
| pATR | DVD_AudioAttributes* | out | 指定されたオーディオストリームの属性が格納される DVD_AudioAttributes 構造体へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| DVD Navigator が初期化されていません。 | |
| ストリームのオーディオ属性は利用できません。 | |
| 引数が無効です。 |
解説(Remarks)
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 で示されています。
GetKaraokeAttributes メソッドは、現在のタイトルまたはメニューで指定されたオーディオストリームのカラオケ属性を取得します。
| ulStream | DWORD | in | 属性を照会するオーディオストリームのインデックスを指定します。「解説」を参照してください。 |
| pAttributes | DVD_KaraokeAttributes* | out | カラオケ属性が格納される DVD_KaraokeAttributes 構造体へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 | |
| 指定されたストリームはカラオケ形式ではありません。 | |
| DVD Navigator がタイトルドメインにありません。 | |
| 指定されたストリームのカラオケ属性は利用できません。 |
解説(Remarks)
このメソッドは、ストリーム内のチャンネル数を明示的には返しません。その情報は、IDvdInfo2::GetAudioAttributes を呼び出すことで取得できます。このメソッドの使用例は、DVDSample アプリケーションの CKaraokeDlg::DoModal で示されています。
ulStream パラメーターには、0 から 7 までの値、または次のいずれかを指定できます。
| 値 | 説明 |
|---|---|
| DVD_STREAM_DATA_CURRENT (0x800) | 現在選択されているオーディオストリームを照会します。 |
| DVD_DEFAULT_AUDIO_STREAM | 既定のオーディオストリームを照会します。 |
GetSubpictureAttributes メソッドは、指定されたタイトルまたはメニューで指定されたサブピクチャーストリームの属性を取得します。
| ulStream | DWORD | in | 照会するサブピクチャーストリームのインデックス番号(0 から 31 まで)。「解説」を参照してください。 |
| pATR | DVD_SubpictureAttributes* | out | サブピクチャー属性を受け取る DVD_SubpictureAttributes 構造体へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| サブピクチャーストリームが見つかりませんでした。 | |
| 引数が無効です。 | |
| サブピクチャーには定義された属性がありません。 |
解説(Remarks)
インデックス番号 0~31 はタイトルに対してのみ有効です。メニューにはサブピクチャーストリームが 1 つしかなく、以下の表の定数のいずれかを使用して指定する必要があります。
| 値 | 説明 |
|---|---|
| DVD_STREAM_DATA_CURRENT (0x800) | 現在選択されているサブピクチャーストリームを照会します。 |
| DVD_STREAM_DATA_VMGM (0x400) | Video Manager または「Top」メニューのサブピクチャー属性を照会します。 |
| DVD_STREAM_DATA_VTSM (0x401) | 現在選択されている Video Title Set Menu のサブピクチャー属性を照会します。 |
このメソッドの使用例は、DVDSample アプリケーションの CDvdCore::GetSPAttributes() と CSPLangDlg::GetSPLang で示されています。
GetDVDVolumeInfo メソッドは、現在の DVD ボリューム情報を取得します。
| pulNumOfVolumes | DWORD* | out | ボリュームセット内のボリューム数を受け取ります。 |
| pulVolume | DWORD* | out | このルートディレクトリのボリューム番号を受け取ります。 |
| pSide | DVD_DISC_SIDE* | out | 現在のディスク面を受け取る DVD_DISC_SIDE 型の変数へのポインター。 |
| pulNumOfTitles | DWORD* | out | このボリュームで利用可能なタイトル数を受け取る ULONG 型の変数へのポインター。 |
戻り値
解説(Remarks)
一部のディスクは、複数ディスクセットの一部として配布されることがあります。この文脈における「ボリューム」は、ディスクのオーサリング方法に応じて、「ディスク」または「ディスク面」のいずれかを意味することがあります。
GetDVDTextNumberOfLanguages メソッドは、DVD テキスト文字列が存在する言語の数を取得します。
| pulNumOfLangs | DWORD* | out | テキスト言語の数を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| 予期しない内部エラーが発生しました。 |
解説(Remarks)
ディスクのオーサリング方法に応じて、言語数はディスク全体に対して有効な場合と、ディスクの現在の面に対してのみ有効な場合があります。
DVD にテキスト文字列が含まれていない場合、このメソッドは成功しますが、pulNumOfLangs は値 0 を受け取ります。
GetDVDTextLanguageInfo メソッドは、指定された言語のテキスト文字列に関する情報を取得します。このメソッドは、その言語の文字列数、ロケール識別子、および文字セットを取得します。
| ulLangIndex | DWORD | in | 照会する言語の 0 から始まるインデックス。DVD 上のテキスト文字列言語の数を調べるには、IDvdInfo2::GetDVDTextNumberOfLanguages を呼び出します。 |
| pulNumOfStrings | DWORD* | out | 指定された言語のテキスト文字列の数を受け取ります。 |
| pLangCode | DWORD* | out | テキストが記述されている言語を指定するロケール識別子 (LCID) を受け取ります。たとえば、「en-us」の LCID は 0x0409 です。 |
| pbCharacterSet | DVD_TextCharSet* | out | DVD_TextCharSet 列挙体のメンバーを受け取ります。この値は、テキスト文字列の文字セットを指定します。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| この DVD にはテキスト文字列がないか、ulLangIndex パラメーターが範囲外です。 | |
| NULL ポインター引数です。 | |
| 予期しない内部エラーが発生しました。 |
解説(Remarks)
特定のテキスト文字列を取得するには、IDvdInfo2::GetDVDTextStringAsUnicode または IDvdInfo2::GetDVDTextStringAsNative を呼び出します。
GetDVDTextStringAsNative メソッドは、指定された言語の DVD テキスト文字列を取得し、そのテキスト文字列をバイト配列として返します。
| ulLangIndex | DWORD | in | 言語の 0 から始まるインデックス。DVD 上のテキスト文字列言語の数を調べるには、IDvdInfo2::GetDVDTextNumberOfLanguages を呼び出します。 |
| ulStringIndex | DWORD | in | 取得する文字列の 0 から始まるインデックス。特定の言語の文字列数を調べるには、IDvdInfo2::GetDVDTextLanguageInfo を呼び出します。 |
| pbBuffer | BYTE* | out | テキスト文字列を受け取るバッファーへのポインター。pchBuffer が NULL の場合、このメソッドは文字列のサイズを pulActualSize に返します。 |
| ulMaxBufferSize | DWORD | in | pchBuffer のサイズ(バイト単位)。 |
| pulActualSize | DWORD* | out | 終端の NULL を含む、文字列の実際の長さ(バイト単位)を受け取ります。 |
| pType | DVD_TextStringType* | out | DVD_TextStringType 列挙体のメンバーを受け取ります。この値は、映画のタイトルや曲名など、テキスト文字列の種類を示します。このパラメーターは、DVD_TextStringType 列挙体で定義されていない値を受け取ることもあります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| 予期しない内部エラーが発生しました。 |
解説(Remarks)
このメソッドは、変換を行わずに DVD テキスト文字列を生のバイト配列として返します。このメソッドを使用すると、JIS ローマ字・漢字など、Unicode や 7 ビット ASCII (ISO/IEC 646) 以外の文字セットでエンコードされたテキスト文字列を取得できます。文字セットを調べるには、IDvdInfo2::GetDVDTextLanguageInfo を呼び出します。
Unicode および ASCII のテキスト文字列については、ワイド文字列を返す IDvdInfo2::GetDVDTextStringAsUnicode メソッドを使用できます。
返される文字列には、常に単一の終端 NULL バイトが含まれます。バッファーが DVD テキスト文字列の長さより小さい場合、文字列は切り詰められます。必要なバッファーサイズを調べるには、pchBuffer を NULL、ulMaxBufferSize を 0 にして、このメソッドを一度呼び出します。サイズは pulActualSize に返されます。その後、バッファーを割り当てて、このメソッドを再度呼び出します。
GetDVDTextStringAsUnicode メソッドは、指定された言語の DVD テキスト文字列を取得し、そのテキスト文字列を Unicode 文字列として返します。
| ulLangIndex | DWORD | in | 言語の 0 から始まるインデックス。DVD 上のテキスト文字列言語の数を調べるには、IDvdInfo2::GetDVDTextNumberOfLanguages を呼び出します。 |
| ulStringIndex | DWORD | in | 取得する文字列の 0 から始まるインデックス。特定の言語の文字列数を調べるには、IDvdInfo2::GetDVDTextLanguageInfo を呼び出します。 |
| pchwBuffer | LPWSTR | out | テキスト文字列を受け取るバッファーへのポインター。pchBuffer が NULL の場合、このメソッドは文字列のサイズを pulActualSize に返します。 |
| ulMaxBufferSize | DWORD | in | pchBuffer バッファーのサイズ(WCHAR 単位)。 |
| pulActualSize | DWORD* | out | 終端の NULL を含む、文字列の実際の長さ(文字単位)を受け取ります。 |
| pType | DVD_TextStringType* | out | DVD_TextStringType 列挙体のメンバーを受け取ります。この値は、映画のタイトルや曲名など、テキスト文字列の種類を示します。このパラメーターは、DVD_TextStringType 列挙体で定義されていない値を受け取ることもあります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| サポートされていないテキストです。 | |
| 引数が無効です。 | |
| 予期しない内部エラーが発生しました。 |
解説(Remarks)
このメソッドは、Unicode または 7 ビット ASCII (ISO/IEC 646) でエンコードされたテキスト文字列をサポートします。テキスト文字列が ASCII エンコードを使用している場合、このメソッドは文字列をワイド文字列に変換します。テキスト文字列がそれ以外の文字セットを使用している場合、このメソッドは E_FAIL を返します。その場合は、IDvdInfo2::GetDVDTextStringAsNative を呼び出して、文字列を生のバイト配列として取得できます。文字セットを調べるには、IDvdInfo2::GetDVDTextLanguageInfo を呼び出します。
返される文字列には、常に終端の NULL が含まれます。バッファーが DVD テキスト文字列の長さより小さい場合、文字列は切り詰められます。必要なバッファーサイズを調べるには、pchBuffer を NULL、ulMaxBufferSize を 0 にして、このメソッドを一度呼び出します。サイズは pulActualSize に返されます。その後、バッファーを割り当てて、このメソッドを再度呼び出します。
GetPlayerParentalLevel メソッドは、DVD Navigator の現在の視聴制限レベルと ISO 3166 国/地域コードの設定を取得します。
| pulParentalLevel | DWORD* | out | 現在の視聴制限レベルを示す値を受け取ります。視聴制限が有効な場合、有効な視聴制限レベルは 1 から 8 で、視聴制限が無効な場合は 0xFFFFFFFF です。 |
| pbCountryCode | BYTE* | out | 現在の国/地域コード (ISO 3166 Alpha-2 コード) を受け取る 2 バイト配列のアドレス。 |
戻り値
解説(Remarks)
DVD Navigator では、視聴制限は既定で無効になっています。このメソッドの使用例は、DVDSample アプリケーションの CDvdCore::GetParentalLevel で示されています。
GetNumberOfChapters メソッドは、指定されたタイトル内のチャプター数を取得します。
| ulTitle | DWORD | in | タイトルを指定します。 |
| pulNumOfChapters | DWORD* | out | 指定されたタイトルのチャプター数を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| パラメーターが無効です。 | |
| DVD Navigator が初期化されていません。 |
解説(Remarks)
有効なチャプター番号を指定できるように、IDvdControl2::PlayChapter を呼び出す前にこのメソッドを呼び出してチャプター数を取得してください。
GetTitleParentalLevels メソッドは、特定のタイトルに対して定義された視聴制限レベルを取得します。
| ulTitle | DWORD | in | 視聴制限レベルを要求するタイトル。現在のタイトルの視聴制限レベルを返すには 0xfffffff を指定します。 |
| pulParentalLevels | DWORD* | out | タイトルに対して定義された DVD_PARENTAL_LEVEL 値のビットごとの OR の組み合わせを受け取る ULONG 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 |
解説(Remarks)
1 つのタイトルには、セクションごとに異なる視聴制限レベルを含めることができます。
GetDVDDirectory メソッドは、DVD Navigator に設定されているルートディレクトリを取得します。
| pszwPath | LPWSTR | out | パス文字列を受け取るバッファーへのポインター。 |
| ulMaxSize | DWORD | in | バッファーのサイズ(WCHAR 単位)。 |
| pulActualSize | DWORD* | out | 返された実際のデータのサイズ(WCHAR 単位)を受け取る変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| バッファーが文字列を保持するのに十分な大きさではありません。 | |
| DVD Navigator が有効なドメインにありません。 |
解説(Remarks)
このメソッドの使用例は、DVDSample アプリケーションの CDvdCore::GetDriveLetter で示されています。
IsAudioStreamEnabled メソッドは、指定されたオーディオストリームが現在のタイトルで有効かどうかを判定します。
| ulStreamNum | DWORD | in | テストするオーディオストリーム番号。 |
| pbEnabled | BOOL* | out | オーディオストリームが有効な場合は TRUE、それ以外の場合は FALSE の値を受け取る BOOL 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 |
解説(Remarks)
DVD は最大 8 個の個別のオーディオストリームを持つことができますが、通常、すべてのストリームが各タイトルで有効になるわけではありません。IsAudioStreamEnabled を使用して特定のストリームが現在のタイトルで有効かどうかを判定し、その後 IDvdControl2::SelectAudioStream を呼び出して有効なストリームの 1 つを選択します。
GetDiscID メソッドは、指定された DVD に対してシステムが生成した 64 ビットの識別番号を取得します。
| pszwPath | LPWSTR | in | ディスク ID に使用するボリュームのパス。現在または既定の DVD ボリュームを使用するには NULL を指定します。 |
| pullDiscID | ULONGLONG* | out | 64 ビットのディスク ID を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 | |
| 指定されたパスは有効な DVD ディスクではありません。 |
解説(Remarks)
DVD Navigator は、BCA (burst cutting area) の値ではなく、ファイルサイズ、日付、その他の情報に基づいて識別 ID を計算します。この番号は、ディスクを再生するたびに同じであることが保証されます。この ID は、ディスクのすべての複製コピーに適用されます。言い換えると、特定の映画のすべてのコピーは同じ ID を持ちます。2 つの異なるタイトルが同じ ID を持つ可能性は十分に低いため、この ID は実用上「一意」とみなすことができます。
GetState メソッドは、ディスクの位置と DVD Navigator の状態情報を含むブックマークを取得します。
| pStateData | IDvdState** | out | DVD Navigator によって割り当てられた DvdState オブジェクトの IDvdState インターフェイスへのポインターを受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 |
解説(Remarks)
このメソッドが呼び出されると、DVD Navigator は新しい状態オブジェクトを作成し、現在の位置、現在の視聴制限レベル、その他の状態情報をそこに保存します。DVDState オブジェクトを使用すると、IDvdControl2::SetState の呼び出しによって、後から DVD Navigator を保存された位置に復元できます。これにより、視聴者はディスクの途中で視聴を中断して位置を保存し、後から戻って、すべての内部設定が以前のまま復元された状態で、中断した位置から視聴を開始できます。
DVD Navigator は、DvdState オブジェクトをアプリケーションに返す前に、そのオブジェクトに対して AddRef を呼び出します。アプリケーションは、そのオブジェクトの使用を終えたら、Release を呼び出す必要があります。
このメソッドの使用例は、DVDSample アプリケーションの CDvdCore::RestoreBookmark で示されています。
GetMenuLanguages メソッドは、ディスク上のすべてのメニューで利用可能なすべての言語を取得します。
| pLanguages | DWORD* | out | 返される言語を受け取る LCID 配列へのポインター。実際の言語そのものではなく、メニューで利用可能な言語の数だけを取得するには、pLanguages に NULL を指定します。 |
| ulMaxLanguages | DWORD | in | 取得する言語の最大数。 |
| pulActualLanguages | DWORD* | out | 取得された実際の言語数を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 |
GetButtonAtPosition メソッドは、表示ウィンドウ内の指定された位置にあるボタンを取得します。
| point | POINT | in | Win32 の WM_MOUSEMOVE メッセージを通じて取得された、現在のマウスポインターの位置。 |
| pulButtonIndex | DWORD* | out | 現在のマウスポインター位置にあるボタンのインデックス(1 から 36 まで)を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| puButtonIndex パラメーターが無効です。 | |
| point にボタンがありません。 |
解説(Remarks)
このメソッドは通常、DVD メニュー表示ウィンドウ内でのマウスポインターの移動に応じて呼び出されます。ボタン番号を取得しようとする前に、必ず HRESULT で成功を確認してください。このメソッドは、指定された位置にボタンが見つかった場合にのみ puButtonIndex の値を設定します。DVD のボタンは必ずしも強調表示された矩形を持つとは限らず、ボタンの矩形は重なり合うことがあり、また、ボタンの矩形が常にボタンの視覚的表現に対応するとは限りません。
GetCmdFromEvent メソッドは、EC_DVD_CMD_START または EC_DVD_CMD_END イベントから IDvdCmd オブジェクトを取得します。
| lParam1 | INT_PTR | in | イベント通知の lParam1 パラメーター。 |
| pCmdObj | IDvdCmd** | out | イベントを発生させたコマンドに関連付けられた IDvdCmd インターフェイスへのポインターを受け取ります。 |
戻り値
解説(Remarks)
このメソッドは、EC_DVD_CMD_START または EC_DVD_CMD_END イベントの lParam1 パラメーターを、イベントを発生させたコマンドに関連付けられた IDvdCmd オブジェクトにマップします。その後、WaitForStart または WaitForEnd を呼び出して、そのコマンドに関する DVD Navigator のブロッキング動作を制御できます。IDvdCmd オブジェクトは DVD Navigator によって作成され、返されるポインターは既に参照カウントがインクリメントされているため、WaitForStart または WaitForEnd が返された後に解放する必要があります。
GetDefaultMenuLanguage メソッドは、既定のメニュー言語を取得します。
| pLanguage | DWORD* | out | 言語情報を受け取ります。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| pLanguage パラメーターが NULL です。 | |
| DVD Navigator が初期化されていません。 | |
| DVD Navigator が有効なドメインにありません。 |
GetDefaultAudioLanguage メソッドは、既定のオーディオ言語を取得します。
| pLanguage | DWORD* | out | 既定の言語情報を受け取ります。 |
| pAudioExtension | DVD_AUDIO_LANG_EXT* | out | 既定の DVD オーディオ言語拡張を示す値を受け取る DVD_AUDIO_LANG_EXT 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| pLanguage パラメーターが NULL です。 | |
| DVD Navigator が初期化されていません。 | |
| DVD Navigator が有効なドメインにありません。 |
GetDefaultSubpictureLanguage メソッドは、既定のサブピクチャー言語を取得します。
| pLanguage | DWORD* | out | 言語情報を受け取ります。 |
| pSubpictureExtension | DVD_SUBPICTURE_LANG_EXT* | out | 既定の言語拡張を示す許容値のいずれかを受け取る DVD_SUBPICTURE_LANG_EXT 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| pLanguage パラメーターが NULL です。 | |
| DVD Navigator が初期化されていません。 | |
| DVD Navigator が有効なドメインにありません。 |
GetDecoderCaps メソッドは、DVD デコーダーのビデオ、オーディオ、およびサブピクチャーの最大データレート(順方向および逆方向)に加えて、さまざまな種類のオーディオ (AC-3, MPEG-2, DTS, SDDS, LPCM) のサポート状況を取得します。
| pCaps | DVD_DECODER_CAPS* | out | デコーダーに関する情報を受け取る DVD_DECODER_CAPS 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| フィルターグラフが初期化されていません。 |
GetButtonRect メソッドは、指定されたメニューボタンの矩形座標を取得します。注意 このメソッドは現在実装されていません。
| ulButton | DWORD | in | メニューボタンを指定します。 |
| pRect | RECT* | out | ボタンの矩形の座標を受け取る RECT 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| このメソッドは現在実装されていません。 |
IsSubpictureStreamEnabled メソッドは、指定されたサブピクチャーストリームが現在のタイトルで有効かどうかを判定します。
| ulStreamNum | DWORD | in | テストするサブピクチャーストリーム番号。 |
| pbEnabled | BOOL* | out | オーディオストリームが有効な場合は TRUE、それ以外の場合は FALSE の値を受け取る BOOL 型の変数へのポインター。 |
戻り値
以下の HRESULT 値のいずれかを返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 引数が無効です。 | |
| DVD Navigator が初期化されていません。 |
解説(Remarks)
DVD は最大 32 個の個別のサブピクチャーストリームを持つことができますが、通常、すべてのストリームが各タイトルで有効になるわけではありません。IsSubpictureStreamEnabled を使用して特定のストリームが現在のタイトルで有効かどうかを判定し、その後 IDvdControl2::SelectSubpictureStream を呼び出して有効なストリームの 1 つを選択します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDvdInfo2 "{34151510-EEC0-11D2-8201-00A0C9D74842}" #usecom global IDvdInfo2 IID_IDvdInfo2 "{}" #comfunc global IDvdInfo2_GetCurrentDomain 3 var #comfunc global IDvdInfo2_GetCurrentLocation 4 var #comfunc global IDvdInfo2_GetTotalTitleTime 5 var,var #comfunc global IDvdInfo2_GetCurrentButton 6 var,var #comfunc global IDvdInfo2_GetCurrentAngle 7 var,var #comfunc global IDvdInfo2_GetCurrentAudio 8 var,var #comfunc global IDvdInfo2_GetCurrentSubpicture 9 var,var,var #comfunc global IDvdInfo2_GetCurrentUOPS 10 var #comfunc global IDvdInfo2_GetAllSPRMs 11 var #comfunc global IDvdInfo2_GetAllGPRMs 12 var #comfunc global IDvdInfo2_GetAudioLanguage 13 int,var #comfunc global IDvdInfo2_GetSubpictureLanguage 14 int,var #comfunc global IDvdInfo2_GetTitleAttributes 15 int,var,var #comfunc global IDvdInfo2_GetVMGAttributes 16 var #comfunc global IDvdInfo2_GetCurrentVideoAttributes 17 var #comfunc global IDvdInfo2_GetAudioAttributes 18 int,var #comfunc global IDvdInfo2_GetKaraokeAttributes 19 int,var #comfunc global IDvdInfo2_GetSubpictureAttributes 20 int,var #comfunc global IDvdInfo2_GetDVDVolumeInfo 21 var,var,var,var #comfunc global IDvdInfo2_GetDVDTextNumberOfLanguages 22 var #comfunc global IDvdInfo2_GetDVDTextLanguageInfo 23 int,var,var,var #comfunc global IDvdInfo2_GetDVDTextStringAsNative 24 int,int,var,int,var,var #comfunc global IDvdInfo2_GetDVDTextStringAsUnicode 25 int,int,var,int,var,var #comfunc global IDvdInfo2_GetPlayerParentalLevel 26 var,var #comfunc global IDvdInfo2_GetNumberOfChapters 27 int,var #comfunc global IDvdInfo2_GetTitleParentalLevels 28 int,var #comfunc global IDvdInfo2_GetDVDDirectory 29 var,int,var #comfunc global IDvdInfo2_IsAudioStreamEnabled 30 int,var #comfunc global IDvdInfo2_GetDiscID 31 wstr,var #comfunc global IDvdInfo2_GetState 32 sptr #comfunc global IDvdInfo2_GetMenuLanguages 33 var,int,var #comfunc global IDvdInfo2_GetButtonAtPosition 34 int,var #comfunc global IDvdInfo2_GetCmdFromEvent 35 sptr,sptr #comfunc global IDvdInfo2_GetDefaultMenuLanguage 36 var #comfunc global IDvdInfo2_GetDefaultAudioLanguage 37 var,var #comfunc global IDvdInfo2_GetDefaultSubpictureLanguage 38 var,var #comfunc global IDvdInfo2_GetDecoderCaps 39 var #comfunc global IDvdInfo2_GetButtonRect 40 int,var #comfunc global IDvdInfo2_IsSubpictureStreamEnabled 41 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDvdInfo2 "{34151510-EEC0-11D2-8201-00A0C9D74842}" #usecom global IDvdInfo2 IID_IDvdInfo2 "{}" #comfunc global IDvdInfo2_GetCurrentDomain 3 sptr #comfunc global IDvdInfo2_GetCurrentLocation 4 sptr #comfunc global IDvdInfo2_GetTotalTitleTime 5 sptr,sptr #comfunc global IDvdInfo2_GetCurrentButton 6 sptr,sptr #comfunc global IDvdInfo2_GetCurrentAngle 7 sptr,sptr #comfunc global IDvdInfo2_GetCurrentAudio 8 sptr,sptr #comfunc global IDvdInfo2_GetCurrentSubpicture 9 sptr,sptr,sptr #comfunc global IDvdInfo2_GetCurrentUOPS 10 sptr #comfunc global IDvdInfo2_GetAllSPRMs 11 sptr #comfunc global IDvdInfo2_GetAllGPRMs 12 sptr #comfunc global IDvdInfo2_GetAudioLanguage 13 int,sptr #comfunc global IDvdInfo2_GetSubpictureLanguage 14 int,sptr #comfunc global IDvdInfo2_GetTitleAttributes 15 int,sptr,sptr #comfunc global IDvdInfo2_GetVMGAttributes 16 sptr #comfunc global IDvdInfo2_GetCurrentVideoAttributes 17 sptr #comfunc global IDvdInfo2_GetAudioAttributes 18 int,sptr #comfunc global IDvdInfo2_GetKaraokeAttributes 19 int,sptr #comfunc global IDvdInfo2_GetSubpictureAttributes 20 int,sptr #comfunc global IDvdInfo2_GetDVDVolumeInfo 21 sptr,sptr,sptr,sptr #comfunc global IDvdInfo2_GetDVDTextNumberOfLanguages 22 sptr #comfunc global IDvdInfo2_GetDVDTextLanguageInfo 23 int,sptr,sptr,sptr #comfunc global IDvdInfo2_GetDVDTextStringAsNative 24 int,int,sptr,int,sptr,sptr #comfunc global IDvdInfo2_GetDVDTextStringAsUnicode 25 int,int,sptr,int,sptr,sptr #comfunc global IDvdInfo2_GetPlayerParentalLevel 26 sptr,sptr #comfunc global IDvdInfo2_GetNumberOfChapters 27 int,sptr #comfunc global IDvdInfo2_GetTitleParentalLevels 28 int,sptr #comfunc global IDvdInfo2_GetDVDDirectory 29 sptr,int,sptr #comfunc global IDvdInfo2_IsAudioStreamEnabled 30 int,sptr #comfunc global IDvdInfo2_GetDiscID 31 wstr,sptr #comfunc global IDvdInfo2_GetState 32 sptr #comfunc global IDvdInfo2_GetMenuLanguages 33 sptr,int,sptr #comfunc global IDvdInfo2_GetButtonAtPosition 34 int,sptr #comfunc global IDvdInfo2_GetCmdFromEvent 35 sptr,sptr #comfunc global IDvdInfo2_GetDefaultMenuLanguage 36 sptr #comfunc global IDvdInfo2_GetDefaultAudioLanguage 37 sptr,sptr #comfunc global IDvdInfo2_GetDefaultSubpictureLanguage 38 sptr,sptr #comfunc global IDvdInfo2_GetDecoderCaps 39 sptr #comfunc global IDvdInfo2_GetButtonRect 40 int,sptr #comfunc global IDvdInfo2_IsSubpictureStreamEnabled 41 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。