📄 dvdif.idl
字号:
// Angle number is between 1 and 9.
HRESULT SelectAngle
( [in] ULONG ulAngle,
[in] DWORD dwFlags,
[out] IDvdCmd** ppCmd
);
// SelectParentalLevel
// Selects the current player parental level.
// Annex J: Parental_Level_Select
// Parental level ranges between 1 and 8.
// The defined parental levels are listed below :
//
// Level Rating
// ----- ------
// 1 G
// 3 PG
// 4 PG13
// 6 R
// 7 NC17
// Higher levels can play lower level content; lower levels cannot play
// higher level content. The DVD Navigator provides no restriction on
// setting the parental level. DVD player application may enforce
// restriction on parental level setting, such as password protection for
// raising the current parental level. Parental Management is disabled in
// the Navigator by default.
//
// Note : To disable parental management, pass 0xffffffff for ulParentalLevel
// If parental management is disabled, then the player will play the
// first PGC in a parental block regardless of parental IDs.
//
HRESULT SelectParentalLevel
( [in] ULONG ulParentalLevel
);
// SelectParentalCountry
// Sets the country in which to interpret the Parental Level.
// Annex J: Parental_Country_Select
// The country specified using the Alpha-2 code of the ISO-3166 standard,
HRESULT SelectParentalCountry
( [in] BYTE bCountry[2]
);
// SelectKaraokeAudioPresentationMode
// Sets the Karaoke audio mode.
// Annex J: Karaoke_Audio_Presentation_Mode_Change
// NOTE: This and all other Karoke support is currently not implemented.
// Mode represents the audio mixing mode for Karaoke (same info as SPRM11).
// Use a bitwise OR of the bits in DVD_KARAOKE_DOWNMIX
HRESULT SelectKaraokeAudioPresentationMode
( [in] ULONG ulMode
);
// SelectVideoModePreference
// The user can specify the (initial) preferred display mode (aspect ratio)
// (wide / letterbox / pan-scan) that should be used to display content
// (16 : 9).
// Annex J: Video_Presentation_Mode_Change
// The parameter is a ULONG that has one of the values defined in
// DVD_PREFERRED_DISPLAY_MODE
HRESULT SelectVideoModePreference
( [in] ULONG ulPreferredDisplayMode
);
// SetDVDDirectory
// Sets the root directory containing the DVD-Video volume.
// Can only be called from the DVD Stop State (DVD_DOMAIN_Stop).
// If the root directory is not successfully set before
// IMediaControl::Play is called, the first drive starting from c:
// containing a VIDEO_TS directory in the top level directory
// will be used as the root.
HRESULT SetDVDDirectory
( [in] LPCWSTR pszwPath
);
// ActivateAtPosition
// This is typically called in response to a mouse click.
// The specified point within the display window is to see if it is
// within a current DVD button's highlight rect. If it is, that
// button is first selected, then activated.
// NOTE: DVD Buttons do not all necessarily have highlight rects,
// button rects can overlap, and button rects do not always
// correspond to the visual representation of DVD buttons.
HRESULT ActivateAtPosition // typically called after a mouse click
( [in] POINT point
);
// SelectAtPosition
// This is typically called in response to a mouse move within the
// display window.
// The specified point within the display window is to see if it is
// within a current DVD button's highlight rect. If it is, that
// button is selected.
// NOTE: DVD Buttons do not all necessarily have highlight rects,
// button rects can overlap, and button rects do not always
// correspond to the visual representation of DVD buttons.
HRESULT SelectAtPosition // typically called after a mouse move
( [in] POINT point
);
// PlayChaptersAutoStop
// Start playing at the specified chapter within the specified title
// and play the number of chapters specified by the third parameter.
// Then the playback stops by sending an event EC_DVD_CHAPTER_AUTOSTOP.
// Title ranges from 1 to 99.
// Chapter (and number of chapters to play) ranges from 1 to 999.
HRESULT PlayChaptersAutoStop
( [in] ULONG ulTitle, // title number
[in] ULONG ulChapter, // chapter number to start playback
[in] ULONG ulChaptersToPlay, // number of chapters to play from the start chapter
[in] DWORD dwFlags,
[out] IDvdCmd** ppCmd
);
// AcceptParentalLevelChange
//
// Application's way of informing the Navigator that the required parental
// level change indicated through a previous event was accepted or rejected
// by the app (and unblock the Navigator).
//
// FALSE - reject the disc's request to change the current parental level.
// TRUE - change the parental level as required by the disc.
HRESULT AcceptParentalLevelChange
( [in] BOOL bAccept
);
// SetOption(flag, true/false )
// Flags:
//
// DVD_ResetOnStop
// Disable reset of the Navigator's internal state on the
// subsequent IMediaControl::Stop() call(s).
//
// FALSE - Navigator does not reset its state on the subsequent Stop calls
// (play from the current location on next Run call).
// TRUE - (default) Navigator resets its state on the subsequent Stop call
// (play from the first play PGC on the Run call after the Stop).
//
// DVD_NotifyParentalLevelChange
//
// Allows the application to indicate to the Navigator that it wants to control
// parent level change (e.g., through a dialog box) and indicate the acceptance
// or rejection of the new parental level to the Navigator through
// AcceptParentalLevelChange().
//
// FALSE - disable (default). Always reject request by the disc to change parental level.
// TRUE - enable. Navigator will send the app a 'EC_DVD_PARENTAL_LEVEL_CHANGE' event
// and block until AcceptParentalLevelChange() is called by the app.
//
// DVD_HMSF_TimeCodeEvents
//
// Lets the application specify to the Navigator if it wants to get the new time
// event EC_DVD_CURRENT_HMSF_TIME with the HMSF format rather than the older
// EC_DVD_CURRENT_TIME events.
//
// FALSE - disable (default). Older EC_DVD_CURRENT_TIME events are returned.
// TRUE - enable. Navigator will send the app EC_DVD_CURRENT_HMSF_TIME events.
HRESULT SetOption
( [in] DVD_OPTION_FLAG flag,
[in] BOOL fState
);
// SetState
//
// The navigator will use the location information in the given state object to restore
// the navigator's position to a specific location on the disc.
// A valid state object is returned by either calling GetState(), or by using
// "CoCreateInstance( CLSID_DVDState, NULL, CLSCTX_INPROC_SERVER, IID_IDvdState, (void **) ppState )"
// to create a state object, followed by pState->IPersist::Load() to read it from memory or disk.
//
HRESULT SetState
( [in] IDvdState* pState,
[in] DWORD dwFlags,
[out] IDvdCmd** ppCmd
);
// PlayPeriodInTitleAutoStop
//
// Start playing from the specified time within the specified title number until the specified end time.
// NOTE: the actual start and end times will be the closest sync points before
// or equal to the specified frame number.
// Annex J: Time_Play for a limited range
// Title numbers range between 1 and 99.
HRESULT PlayPeriodInTitleAutoStop
( [in] ULONG ulTitle,
[in] DVD_HMSF_TIMECODE* pStartTime,
[in] DVD_HMSF_TIMECODE* pEndTime,
[in] DWORD dwFlags,
[out] IDvdCmd** ppCmd
);
// SetGPRM
// Sets the current contents of a DVD General Parameter Register.
// Use of GPRMs is title specific.
HRESULT SetGPRM
( [in] ULONG ulIndex,
[in] WORD wValue,
[in] DWORD dwFlags,
[out] IDvdCmd** ppCmd
);
// SelectDefaultMenuLanguage
// Selects the default language for menus.
// Languages are specified with Windows standard LCIDs. LCIDs can be created
// from ISO-639 codes with
// MAKELCID( MAKELANGID(wISO639LangID ,SUBLANG_DEFAULT ), SORT_DEFAULT ).
// SelectMenuLanguage may only called from the DVD Stop state (DVD_DOMAIN_Stop).
// Annex J: Menu_Language_Select
//
// NOT TRUE ANYMORE:
// NOTE: MAKELANGID seems to have a bug so 'jp' may have to be used
// instead of 'ja' for the ISO639 code for Japanese.
HRESULT SelectDefaultMenuLanguage
( [in] LCID Language
);
// SelectDefaultAudioLanguage
// Selects the default audio language.
// Languages are specified with Windows standard LCIDs.
HRESULT SelectDefaultAudioLanguage
( [in] LCID Language,
[in] DVD_AUDIO_LANG_EXT audioExtension
);
// SelectDefaultSubpictureLanguage
// Selects the default subpicture language.
// Languages are specified with Windows standard LCIDs.
HRESULT SelectDefaultSubpictureLanguage
( [in] LCID Language,
[in] DVD_SUBPICTURE_LANG_EXT subpictureExtension
);
}
//==========================================================================
//==========================================================================
// IDvdInfo2 interface -- allows an app to query for attributes of available
// DVD titles and DVD player status. Also allows for control of a DVD
// player beyond Annex J in the DVD spec.
//==========================================================================
//==========================================================================
enum DVD_TextStringType {
// disc structure (0x00..0x0f)
DVD_Struct_Volume = 0x01,
DVD_Struct_Title = 0x02,
DVD_Struct_ParentalID = 0x03,
DVD_Struct_PartOfTitle = 0x04,
DVD_Struct_Cell = 0x05,
// stream (0x10..0x1f)
DVD_Stream_Audio = 0x10,
DVD_Stream_Subpicture = 0x11,
DVD_Stream_Angle = 0x12,
// channel in stream (0x20..0x2f)
DVD_Channel_Audio = 0x20,
// Application information
// General (0x30..0x37)
DVD_General_Name = 0x30,
DVD_General_Comments = 0x31,
// Title (0x38..0x3f)
DVD_Title_Series = 0x38,
DVD_Title_Movie = 0x39,
DVD_Title_Video = 0x3a,
DVD_Title_Album = 0x3b,
DVD_Title_Song = 0x3c,
DVD_Title_Other = 0x3f,
// Title (sub) (0x40..0x47)
DVD_Title_Sub_Series = 0x40,
DVD_Title_Sub_Movie = 0x41,
DVD_Title_Sub_Video = 0x42,
DVD_Title_Sub_Album = 0x43,
DVD_Title_Sub_Song = 0x44,
DVD_Title_Sub_Other = 0x47,
// Title (original) (0x48..0x4f)
DVD_Title_Orig_Series = 0x48,
DVD_Title_Orig_Movie = 0x49,
DVD_Title_Orig_Video = 0x4a,
DVD_Title_Orig_Album = 0x4b,
DVD_Title_Orig_Song = 0x4c,
DVD_Title_Orig_Other = 0x4f,
// Other info (0x50..0x57)
DVD_Other_Scene = 0x50,
DVD_Other_Cut = 0x51,
DVD_Other_Take = 0x52,
// Language 0x58..0x5b
// Work 0x5c..0x6b
// Character 0x6c..0x8f
// Data 0x90..0x93
// Karaoke 0x94..0x9b
// Category 0x9c..0x9f
// Lyrics 0xa0..0xa3
// Document 0xa4..0xa7
// Others 0xa8..0xab
// Reserved 0xac..0xaf
// Admin 0xb0..0xb7
// more admin 0xb8..0xc0
// Reserved 0xd0..0xdf
// vendor 0xe0..0xef
// extension 0xf0..0xf7
// reserved 0xf8..0xff
};
enum DVD_TextCharSet {
DVD_CharSet_Unicode = 0,
DVD_CharSet_ISO646 = 1,
DVD_CharSet_JIS_Roman_Kanji = 2,
DVD_CharSet_ISO8859_1 = 3,
DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
};
cpp_quote ("#define DVD_TITLE_MENU 0x000")
cpp_quote ("#define DVD_STREAM_DATA_CURRENT 0x800")
cpp_quote ("#define DVD_STREAM_DATA_VMGM 0x400")
cpp_quote ("#define DVD_STREAM_DATA_VTSM 0x401")
cpp_quote ("#define DVD_DEFAULT_AUDIO_STREAM 0x0f")
// DVD Decoder Caps data
typedef struct tagDVD_DECODER_CAPS
{
DWORD dwSize ; // size of this struct
DWORD dwAudioCaps ; // bits indicating audio support (AC3, DTS, SDDS, LPCM etc.) of decoder
double dFwdMaxRateVideo ; // max data rate for video going forward
double dFwdMaxRateAudi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -