[1166] | 1 | /*
|
---|
| 2 | * Copyright (C) 2020 Vijay Kiran Kamuju
|
---|
| 3 | *
|
---|
| 4 | * This library is free software; you can redistribute it and/or
|
---|
| 5 | * modify it under the terms of the GNU Lesser General Public
|
---|
| 6 | * License as published by the Free Software Foundation; either
|
---|
| 7 | * version 2.1 of the License, or (at your option) any later version.
|
---|
| 8 | *
|
---|
| 9 | * This library is distributed in the hope that it will be useful,
|
---|
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
| 12 | * Lesser General Public License for more details.
|
---|
| 13 | *
|
---|
| 14 | * You should have received a copy of the GNU Lesser General Public
|
---|
| 15 | * License along with this library; if not, write to the Free Software
|
---|
| 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
---|
| 17 | */
|
---|
| 18 |
|
---|
| 19 | #if 0
|
---|
| 20 | pragma makedep install
|
---|
| 21 | #endif
|
---|
| 22 |
|
---|
| 23 | import "unknwn.idl";
|
---|
| 24 | import "objidl.idl";
|
---|
| 25 |
|
---|
| 26 | cpp_quote("#include <ddraw.h>")
|
---|
| 27 |
|
---|
| 28 | cpp_quote("#if 0")
|
---|
| 29 | interface IGraphBuilder;
|
---|
| 30 | cpp_quote("#endif")
|
---|
| 31 |
|
---|
| 32 | typedef enum tagDVD_DOMAIN
|
---|
| 33 | {
|
---|
| 34 | DVD_DOMAIN_FirstPlay = 1,
|
---|
| 35 | DVD_DOMAIN_VideoManagerMenu,
|
---|
| 36 | DVD_DOMAIN_VideoTitleSetMenu,
|
---|
| 37 | DVD_DOMAIN_Title,
|
---|
| 38 | DVD_DOMAIN_Stop
|
---|
| 39 | } DVD_DOMAIN;
|
---|
| 40 |
|
---|
| 41 | typedef enum tagDVD_MENU_ID
|
---|
| 42 | {
|
---|
| 43 | DVD_MENU_Title = 2,
|
---|
| 44 | DVD_MENU_Root = 3,
|
---|
| 45 | DVD_MENU_Subpicture = 4,
|
---|
| 46 | DVD_MENU_Audio = 5,
|
---|
| 47 | DVD_MENU_Angle = 6,
|
---|
| 48 | DVD_MENU_Chapter = 7
|
---|
| 49 | } DVD_MENU_ID;
|
---|
| 50 |
|
---|
| 51 | typedef enum tagDVD_DISC_SIDE
|
---|
| 52 | {
|
---|
| 53 | DVD_SIDE_A = 1,
|
---|
| 54 | DVD_SIDE_B = 2
|
---|
| 55 | } DVD_DISC_SIDE;
|
---|
| 56 |
|
---|
| 57 | typedef enum tagDVD_PREFERRED_DISPLAY_MODE
|
---|
| 58 | {
|
---|
| 59 | DISPLAY_CONTENT_DEFAULT = 0,
|
---|
| 60 | DISPLAY_16x9 = 1,
|
---|
| 61 | DISPLAY_4x3_PANSCAN_PREFERRED = 2,
|
---|
| 62 | DISPLAY_4x3_LETTERBOX_PREFERRED = 3
|
---|
| 63 | } DVD_PREFERRED_DISPLAY_MODE;
|
---|
| 64 |
|
---|
| 65 | typedef WORD DVD_REGISTER;
|
---|
| 66 | typedef DVD_REGISTER GPRMARRAY[16];
|
---|
| 67 | typedef DVD_REGISTER SPRMARRAY[24];
|
---|
| 68 |
|
---|
| 69 | typedef struct tagDVD_ATR
|
---|
| 70 | {
|
---|
| 71 | ULONG ulCAT;
|
---|
| 72 | BYTE pbATRI[768];
|
---|
| 73 | } DVD_ATR;
|
---|
| 74 |
|
---|
| 75 | typedef BYTE DVD_VideoATR[2];
|
---|
| 76 | typedef BYTE DVD_AudioATR[8];
|
---|
| 77 | typedef BYTE DVD_SubpictureATR[6];
|
---|
| 78 |
|
---|
| 79 | typedef enum tagDVD_FRAMERATE
|
---|
| 80 | {
|
---|
| 81 | DVD_FPS_25 = 1,
|
---|
| 82 | DVD_FPS_30NonDrop = 3
|
---|
| 83 | } DVD_FRAMERATE;
|
---|
| 84 |
|
---|
| 85 | cpp_quote("typedef struct tagDVD_TIMECODE")
|
---|
| 86 | cpp_quote("{")
|
---|
| 87 | cpp_quote(" ULONG Hours1 : 4;")
|
---|
| 88 | cpp_quote(" ULONG Hours10 : 4;")
|
---|
| 89 | cpp_quote(" ULONG Minutes1 : 4;")
|
---|
| 90 | cpp_quote(" ULONG Minutes10 : 4;")
|
---|
| 91 | cpp_quote(" ULONG Seconds1 : 4;")
|
---|
| 92 | cpp_quote(" ULONG Seconds10 : 4;")
|
---|
| 93 | cpp_quote(" ULONG Frames1 : 4;")
|
---|
| 94 | cpp_quote(" ULONG Frames10 : 2;")
|
---|
| 95 | cpp_quote(" ULONG FrameRateCode : 2;")
|
---|
| 96 | cpp_quote("} DVD_TIMECODE;")
|
---|
| 97 |
|
---|
| 98 | typedef enum tagDVD_NavCmdType
|
---|
| 99 | {
|
---|
| 100 | DVD_NavCmdType_Pre = 1,
|
---|
| 101 | DVD_NavCmdType_Post = 2,
|
---|
| 102 | DVD_NavCmdType_Cell = 3,
|
---|
| 103 | DVD_NavCmdType_Button = 4
|
---|
| 104 | } DVD_NavCmdType;
|
---|
| 105 |
|
---|
| 106 | typedef enum tagDVD_TIMECODE_FLAGS
|
---|
| 107 | {
|
---|
| 108 | DVD_TC_FLAG_25fps = 0x00000001,
|
---|
| 109 | DVD_TC_FLAG_30fps = 0x00000002,
|
---|
| 110 | DVD_TC_FLAG_DropFrame = 0x00000004,
|
---|
| 111 | DVD_TC_FLAG_Interpolated = 0x00000008
|
---|
| 112 | } DVD_TIMECODE_FLAGS;
|
---|
| 113 |
|
---|
| 114 | typedef struct tagDVD_HMSF_TIMECODE
|
---|
| 115 | {
|
---|
| 116 | BYTE bHours;
|
---|
| 117 | BYTE bMinutes;
|
---|
| 118 | BYTE bSeconds;
|
---|
| 119 | BYTE bFrames;
|
---|
| 120 | } DVD_HMSF_TIMECODE;
|
---|
| 121 |
|
---|
| 122 | typedef struct tagDVD_PLAYBACK_LOCATION2
|
---|
| 123 | {
|
---|
| 124 | ULONG TitleNum;
|
---|
| 125 | ULONG ChapterNum;
|
---|
| 126 | DVD_HMSF_TIMECODE TimeCode;
|
---|
| 127 | ULONG TimeCodeFlags;
|
---|
| 128 | } DVD_PLAYBACK_LOCATION2;
|
---|
| 129 |
|
---|
| 130 | typedef struct tagDVD_PLAYBACK_LOCATION
|
---|
| 131 | {
|
---|
| 132 | ULONG TitleNum;
|
---|
| 133 | ULONG ChapterNum;
|
---|
| 134 | ULONG TimeCode;
|
---|
| 135 | } DVD_PLAYBACK_LOCATION;
|
---|
| 136 |
|
---|
| 137 | typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
|
---|
| 138 |
|
---|
| 139 | typedef enum
|
---|
| 140 | {
|
---|
| 141 | UOP_FLAG_Play_Title_Or_AtTime = 0x00000001,
|
---|
| 142 | UOP_FLAG_Play_Chapter = 0x00000002,
|
---|
| 143 | UOP_FLAG_Play_Title = 0x00000004,
|
---|
| 144 | UOP_FLAG_Stop = 0x00000008,
|
---|
| 145 | UOP_FLAG_ReturnFromSubMenu = 0x00000010,
|
---|
| 146 | UOP_FLAG_Play_Chapter_Or_AtTime = 0x00000020,
|
---|
| 147 | UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x00000040,
|
---|
| 148 | UOP_FLAG_PlayNext_Chapter = 0x00000080,
|
---|
| 149 | UOP_FLAG_Play_Forwards = 0x00000100,
|
---|
| 150 | UOP_FLAG_Play_Backwards = 0x00000200,
|
---|
| 151 | UOP_FLAG_ShowMenu_Title = 0x00000400,
|
---|
| 152 | UOP_FLAG_ShowMenu_Root = 0x00000800,
|
---|
| 153 | UOP_FLAG_ShowMenu_SubPic = 0x00001000,
|
---|
| 154 | UOP_FLAG_ShowMenu_Audio = 0x00002000,
|
---|
| 155 | UOP_FLAG_ShowMenu_Angle = 0x00004000,
|
---|
| 156 | UOP_FLAG_ShowMenu_Chapter = 0x00008000,
|
---|
| 157 | UOP_FLAG_Resume = 0x00010000,
|
---|
| 158 | UOP_FLAG_Select_Or_Activate_Button = 0x00020000,
|
---|
| 159 | UOP_FLAG_Still_Off = 0x00040000,
|
---|
| 160 | UOP_FLAG_Pause_On = 0x00080000,
|
---|
| 161 | UOP_FLAG_Select_Audio_Stream = 0x00100000,
|
---|
| 162 | UOP_FLAG_Select_SubPic_Stream = 0x00200000,
|
---|
| 163 | UOP_FLAG_Select_Angle = 0x00400000,
|
---|
| 164 | UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x00800000,
|
---|
| 165 | UOP_FLAG_Select_Video_Mode_Preference = 0x01000000
|
---|
| 166 | } VALID_UOP_FLAG;
|
---|
| 167 |
|
---|
| 168 | typedef enum
|
---|
| 169 | {
|
---|
| 170 | DVD_CMD_FLAG_None = 0x00000000,
|
---|
| 171 | DVD_CMD_FLAG_Flush = 0x00000001,
|
---|
| 172 | DVD_CMD_FLAG_SendEvents = 0x00000002,
|
---|
| 173 | DVD_CMD_FLAG_Block = 0x00000004,
|
---|
| 174 | DVD_CMD_FLAG_StartWhenRendered = 0x00000008,
|
---|
| 175 | DVD_CMD_FLAG_EndAfterRendered = 0x00000010
|
---|
| 176 | } DVD_CMD_FLAGS;
|
---|
| 177 |
|
---|
| 178 | typedef enum
|
---|
| 179 | {
|
---|
| 180 | DVD_ResetOnStop = 1,
|
---|
| 181 | DVD_NotifyParentalLevelChange = 2,
|
---|
| 182 | DVD_HMSF_TimeCodeEvents = 3,
|
---|
| 183 | DVD_AudioDuringFFwdRew = 4,
|
---|
| 184 | DVD_EnableNonblockingAPIs = 5,
|
---|
| 185 | DVD_CacheSizeInMB = 6,
|
---|
| 186 | DVD_EnablePortableBookmarks = 7,
|
---|
| 187 | DVD_EnableExtendedCopyProtectErrors = 8,
|
---|
| 188 | DVD_NotifyPositionChange = 9,
|
---|
| 189 | DVD_IncreaseOutputControl = 10,
|
---|
| 190 | DVD_EnableStreaming = 11,
|
---|
| 191 | DVD_EnableESOutput = 12,
|
---|
| 192 | DVD_EnableTitleLength = 13,
|
---|
| 193 | DVD_DisableStillThrottle = 14,
|
---|
| 194 | DVD_EnableLoggingEvents = 15,
|
---|
| 195 | DVD_MaxReadBurstInKB = 16,
|
---|
| 196 | DVD_ReadBurstPeriodInMS = 17,
|
---|
| 197 | DVD_RestartDisc = 18,
|
---|
| 198 | DVD_EnableCC = 19
|
---|
| 199 | } DVD_OPTION_FLAG;
|
---|
| 200 |
|
---|
| 201 | typedef enum
|
---|
| 202 | {
|
---|
| 203 | DVD_Relative_Upper = 1,
|
---|
| 204 | DVD_Relative_Lower = 2,
|
---|
| 205 | DVD_Relative_Left = 3,
|
---|
| 206 | DVD_Relative_Right = 4
|
---|
| 207 | } DVD_RELATIVE_BUTTON;
|
---|
| 208 |
|
---|
| 209 | typedef enum tagDVD_PARENTAL_LEVEL
|
---|
| 210 | {
|
---|
| 211 | DVD_PARENTAL_LEVEL_8 = 0x8000,
|
---|
| 212 | DVD_PARENTAL_LEVEL_7 = 0x4000,
|
---|
| 213 | DVD_PARENTAL_LEVEL_6 = 0x2000,
|
---|
| 214 | DVD_PARENTAL_LEVEL_5 = 0x1000,
|
---|
| 215 | DVD_PARENTAL_LEVEL_4 = 0x0800,
|
---|
| 216 | DVD_PARENTAL_LEVEL_3 = 0x0400,
|
---|
| 217 | DVD_PARENTAL_LEVEL_2 = 0x0200,
|
---|
| 218 | DVD_PARENTAL_LEVEL_1 = 0x0100
|
---|
| 219 | } DVD_PARENTAL_LEVEL;
|
---|
| 220 |
|
---|
| 221 | typedef enum tagDVD_AUDIO_LANG_EXT
|
---|
| 222 | {
|
---|
| 223 | DVD_AUD_EXT_NotSpecified = 0,
|
---|
| 224 | DVD_AUD_EXT_Captions = 1,
|
---|
| 225 | DVD_AUD_EXT_VisuallyImpaired = 2,
|
---|
| 226 | DVD_AUD_EXT_DirectorComments1 = 3,
|
---|
| 227 | DVD_AUD_EXT_DirectorComments2 = 4
|
---|
| 228 | } DVD_AUDIO_LANG_EXT;
|
---|
| 229 |
|
---|
| 230 | typedef enum tagDVD_SUBPICTURE_LANG_EXT
|
---|
| 231 | {
|
---|
| 232 | DVD_SP_EXT_NotSpecified = 0,
|
---|
| 233 | DVD_SP_EXT_Caption_Normal = 1,
|
---|
| 234 | DVD_SP_EXT_Caption_Big = 2,
|
---|
| 235 | DVD_SP_EXT_Caption_Children = 3,
|
---|
| 236 | DVD_SP_EXT_CC_Normal = 5,
|
---|
| 237 | DVD_SP_EXT_CC_Big = 6,
|
---|
| 238 | DVD_SP_EXT_CC_Children = 7,
|
---|
| 239 | DVD_SP_EXT_Forced = 9,
|
---|
| 240 | DVD_SP_EXT_DirectorComments_Normal = 13,
|
---|
| 241 | DVD_SP_EXT_DirectorComments_Big = 14,
|
---|
| 242 | DVD_SP_EXT_DirectorComments_Children = 15
|
---|
| 243 | } DVD_SUBPICTURE_LANG_EXT;
|
---|
| 244 |
|
---|
| 245 | typedef enum tagDVD_AUDIO_APPMODE
|
---|
| 246 | {
|
---|
| 247 | DVD_AudioMode_None = 0,
|
---|
| 248 | DVD_AudioMode_Karaoke = 1,
|
---|
| 249 | DVD_AudioMode_Surround = 2,
|
---|
| 250 | DVD_AudioMode_Other = 3
|
---|
| 251 | } DVD_AUDIO_APPMODE;
|
---|
| 252 |
|
---|
| 253 | typedef enum tagDVD_AUDIO_FORMAT
|
---|
| 254 | {
|
---|
| 255 | DVD_AudioFormat_AC3 = 0,
|
---|
| 256 | DVD_AudioFormat_MPEG1 = 1,
|
---|
| 257 | DVD_AudioFormat_MPEG1_DRC = 2,
|
---|
| 258 | DVD_AudioFormat_MPEG2 = 3,
|
---|
| 259 | DVD_AudioFormat_MPEG2_DRC = 4,
|
---|
| 260 | DVD_AudioFormat_LPCM = 5,
|
---|
| 261 | DVD_AudioFormat_DTS = 6,
|
---|
| 262 | DVD_AudioFormat_SDDS = 7,
|
---|
| 263 | DVD_AudioFormat_Other = 8
|
---|
| 264 | } DVD_AUDIO_FORMAT;
|
---|
| 265 |
|
---|
| 266 | typedef enum tagDVD_KARAOKE_DOWNMIX
|
---|
| 267 | {
|
---|
| 268 | DVD_Mix_0to0 = 0x0001,
|
---|
| 269 | DVD_Mix_1to0 = 0x0002,
|
---|
| 270 | DVD_Mix_2to0 = 0x0004,
|
---|
| 271 | DVD_Mix_3to0 = 0x0008,
|
---|
| 272 | DVD_Mix_4to0 = 0x0010,
|
---|
| 273 | DVD_Mix_Lto0 = 0x0020,
|
---|
| 274 | DVD_Mix_Rto0 = 0x0040,
|
---|
| 275 | DVD_Mix_0to1 = 0x0100,
|
---|
| 276 | DVD_Mix_1to1 = 0x0200,
|
---|
| 277 | DVD_Mix_2to1 = 0x0400,
|
---|
| 278 | DVD_Mix_3to1 = 0x0800,
|
---|
| 279 | DVD_Mix_4to1 = 0x1000,
|
---|
| 280 | DVD_Mix_Lto1 = 0x2000,
|
---|
| 281 | DVD_Mix_Rto1 = 0x4000
|
---|
| 282 | } DVD_KARAOKE_DOWNMIX;
|
---|
| 283 |
|
---|
| 284 | typedef enum tagDVD_KARAOKE_CONTENTS
|
---|
| 285 | {
|
---|
| 286 | DVD_Karaoke_GuideVocal1 = 0x0001,
|
---|
| 287 | DVD_Karaoke_GuideVocal2 = 0x0002,
|
---|
| 288 | DVD_Karaoke_GuideMelody1 = 0x0004,
|
---|
| 289 | DVD_Karaoke_GuideMelody2 = 0x0008,
|
---|
| 290 | DVD_Karaoke_GuideMelodyA = 0x0010,
|
---|
| 291 | DVD_Karaoke_GuideMelodyB = 0x0020,
|
---|
| 292 | DVD_Karaoke_SoundEffectA = 0x0040,
|
---|
| 293 | DVD_Karaoke_SoundEffectB = 0x0080
|
---|
| 294 | } DVD_KARAOKE_CONTENTS;
|
---|
| 295 |
|
---|
| 296 | typedef enum tagDVD_KARAOKE_ASSIGNMENT
|
---|
| 297 | {
|
---|
| 298 | DVD_Assignment_reserved0 = 0,
|
---|
| 299 | DVD_Assignment_reserved1 = 1,
|
---|
| 300 | DVD_Assignment_LR = 2,
|
---|
| 301 | DVD_Assignment_LRM = 3,
|
---|
| 302 | DVD_Assignment_LR1 = 4,
|
---|
| 303 | DVD_Assignment_LRM1 = 5,
|
---|
| 304 | DVD_Assignment_LR12 = 6,
|
---|
| 305 | DVD_Assignment_LRM12 = 7
|
---|
| 306 | } DVD_KARAOKE_ASSIGNMENT;
|
---|
| 307 |
|
---|
| 308 | typedef struct tagDVD_MUA_MixingInfo
|
---|
| 309 | {
|
---|
| 310 | BOOL fMixTo0;
|
---|
| 311 | BOOL fMixTo1;
|
---|
| 312 | BOOL fMix0InPhase;
|
---|
| 313 | BOOL fMix1InPhase;
|
---|
| 314 | DWORD dwSpeakerPosition;
|
---|
| 315 | } DVD_MUA_MixingInfo;
|
---|
| 316 |
|
---|
| 317 | typedef struct tagDVD_MUA_Coeff
|
---|
| 318 | {
|
---|
| 319 | double log2_alpha;
|
---|
| 320 | double log2_beta;
|
---|
| 321 | } DVD_MUA_Coeff;
|
---|
| 322 |
|
---|
| 323 | typedef enum tagDVD_VIDEO_COMPRESSION
|
---|
| 324 | {
|
---|
| 325 | DVD_VideoCompression_Other = 0,
|
---|
| 326 | DVD_VideoCompression_MPEG1 = 1,
|
---|
| 327 | DVD_VideoCompression_MPEG2 = 2
|
---|
| 328 | } DVD_VIDEO_COMPRESSION;
|
---|
| 329 |
|
---|
| 330 | typedef enum tagDVD_SUBPICTURE_TYPE
|
---|
| 331 | {
|
---|
| 332 | DVD_SPType_NotSpecified = 0,
|
---|
| 333 | DVD_SPType_Language = 1,
|
---|
| 334 | DVD_SPType_Other = 2
|
---|
| 335 | } DVD_SUBPICTURE_TYPE;
|
---|
| 336 |
|
---|
| 337 | typedef enum tagDVD_SUBPICTURE_CODING
|
---|
| 338 | {
|
---|
| 339 | DVD_SPCoding_RunLength = 0,
|
---|
| 340 | DVD_SPCoding_Extended = 1,
|
---|
| 341 | DVD_SPCoding_Other = 2
|
---|
| 342 | } DVD_SUBPICTURE_CODING;
|
---|
| 343 |
|
---|
| 344 | typedef enum tagDVD_TITLE_APPMODE
|
---|
| 345 | {
|
---|
| 346 | DVD_AppMode_Not_Specified = 0,
|
---|
| 347 | DVD_AppMode_Karaoke = 1,
|
---|
| 348 | DVD_AppMode_Other = 3
|
---|
| 349 | } DVD_TITLE_APPMODE;
|
---|
| 350 |
|
---|
| 351 | enum DVD_TextStringType
|
---|
| 352 | {
|
---|
| 353 | DVD_Struct_Volume = 0x01,
|
---|
| 354 | DVD_Struct_Title = 0x02,
|
---|
| 355 | DVD_Struct_ParentalID = 0x03,
|
---|
| 356 | DVD_Struct_PartOfTitle = 0x04,
|
---|
| 357 | DVD_Struct_Cell = 0x05,
|
---|
| 358 | DVD_Stream_Audio = 0x10,
|
---|
| 359 | DVD_Stream_Subpicture = 0x11,
|
---|
| 360 | DVD_Stream_Angle = 0x12,
|
---|
| 361 | DVD_Channel_Audio = 0x20,
|
---|
| 362 | DVD_General_Name = 0x30,
|
---|
| 363 | DVD_General_Comments = 0x31,
|
---|
| 364 | DVD_Title_Series = 0x38,
|
---|
| 365 | DVD_Title_Movie = 0x39,
|
---|
| 366 | DVD_Title_Video = 0x3a,
|
---|
| 367 | DVD_Title_Album = 0x3b,
|
---|
| 368 | DVD_Title_Song = 0x3c,
|
---|
| 369 | DVD_Title_Other = 0x3f,
|
---|
| 370 | DVD_Title_Sub_Series = 0x40,
|
---|
| 371 | DVD_Title_Sub_Movie = 0x41,
|
---|
| 372 | DVD_Title_Sub_Video = 0x42,
|
---|
| 373 | DVD_Title_Sub_Album = 0x43,
|
---|
| 374 | DVD_Title_Sub_Song = 0x44,
|
---|
| 375 | DVD_Title_Sub_Other = 0x47,
|
---|
| 376 | DVD_Title_Orig_Series = 0x48,
|
---|
| 377 | DVD_Title_Orig_Movie = 0x49,
|
---|
| 378 | DVD_Title_Orig_Video = 0x4a,
|
---|
| 379 | DVD_Title_Orig_Album = 0x4b,
|
---|
| 380 | DVD_Title_Orig_Song = 0x4c,
|
---|
| 381 | DVD_Title_Orig_Other = 0x4f,
|
---|
| 382 | DVD_Other_Scene = 0x50,
|
---|
| 383 | DVD_Other_Cut = 0x51,
|
---|
| 384 | DVD_Other_Take = 0x52
|
---|
| 385 | };
|
---|
| 386 |
|
---|
| 387 | enum DVD_TextCharSet
|
---|
| 388 | {
|
---|
| 389 | DVD_CharSet_Unicode = 0,
|
---|
| 390 | DVD_CharSet_ISO646 = 1,
|
---|
| 391 | DVD_CharSet_JIS_Roman_Kanji = 2,
|
---|
| 392 | DVD_CharSet_ISO8859_1 = 3,
|
---|
| 393 | DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
|
---|
| 394 | };
|
---|
| 395 |
|
---|
| 396 | typedef struct tagDVD_AudioAttributes
|
---|
| 397 | {
|
---|
| 398 | DVD_AUDIO_APPMODE AppMode;
|
---|
| 399 | BYTE AppModeData;
|
---|
| 400 | DVD_AUDIO_FORMAT AudioFormat;
|
---|
| 401 | LCID Language;
|
---|
| 402 | DVD_AUDIO_LANG_EXT LanguageExtension;
|
---|
| 403 | BOOL fHasMultichannelInfo;
|
---|
| 404 | DWORD dwFrequency;
|
---|
| 405 | BYTE bQuantization;
|
---|
| 406 | BYTE bNumberOfChannels;
|
---|
| 407 | DWORD dwReserved[2];
|
---|
| 408 | } DVD_AudioAttributes;
|
---|
| 409 |
|
---|
| 410 | typedef struct tagDVD_MultichannelAudioAttributes
|
---|
| 411 | {
|
---|
| 412 | DVD_MUA_MixingInfo Info[8];
|
---|
| 413 | DVD_MUA_Coeff Coeff[8];
|
---|
| 414 | } DVD_MultichannelAudioAttributes;
|
---|
| 415 |
|
---|
| 416 | typedef struct tagDVD_VideoAttributes
|
---|
| 417 | {
|
---|
| 418 | BOOL fPanscanPermitted;
|
---|
| 419 | BOOL fLetterboxPermitted;
|
---|
| 420 | ULONG ulAspectX;
|
---|
| 421 | ULONG ulAspectY;
|
---|
| 422 | ULONG ulFrameRate;
|
---|
| 423 | ULONG ulFrameHeight;
|
---|
| 424 | DVD_VIDEO_COMPRESSION Compression;
|
---|
| 425 | BOOL fLine21Field1InGOP;
|
---|
| 426 | BOOL fLine21Field2InGOP;
|
---|
| 427 | ULONG ulSourceResolutionX;
|
---|
| 428 | ULONG ulSourceResolutionY;
|
---|
| 429 | BOOL fIsSourceLetterboxed;
|
---|
| 430 | BOOL fIsFilmMode;
|
---|
| 431 | } DVD_VideoAttributes;
|
---|
| 432 |
|
---|
| 433 | typedef struct tagDVD_SubpictureAttributes
|
---|
| 434 | {
|
---|
| 435 | DVD_SUBPICTURE_TYPE Type;
|
---|
| 436 | DVD_SUBPICTURE_CODING CodingMode;
|
---|
| 437 | LCID Language;
|
---|
| 438 | DVD_SUBPICTURE_LANG_EXT LanguageExtension;
|
---|
| 439 | } DVD_SubpictureAttributes;
|
---|
| 440 |
|
---|
| 441 | typedef struct tagDVD_KaraokeAttributes
|
---|
| 442 | {
|
---|
| 443 | BYTE bVersion;
|
---|
| 444 | BOOL fMasterOfCeremoniesInGuideVocal1;
|
---|
| 445 | BOOL fDuet;
|
---|
| 446 | DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
|
---|
| 447 | WORD wChannelContents[8];
|
---|
| 448 | } DVD_KaraokeAttributes;
|
---|
| 449 |
|
---|
| 450 | typedef struct tagDVD_TitleMainAttributes
|
---|
| 451 | {
|
---|
| 452 | union
|
---|
| 453 | {
|
---|
| 454 | DVD_TITLE_APPMODE AppMode;
|
---|
| 455 | DVD_HMSF_TIMECODE TitleLength;
|
---|
| 456 | } DUMMYUNIONNAME;
|
---|
| 457 | DVD_VideoAttributes VideoAttributes;
|
---|
| 458 | ULONG ulNumberOfAudioStreams;
|
---|
| 459 | DVD_AudioAttributes AudioAttributes[8];
|
---|
| 460 | DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
|
---|
| 461 | ULONG ulNumberOfSubpictureStreams;
|
---|
| 462 | DVD_SubpictureAttributes SubpictureAttributes[32];
|
---|
| 463 | } DVD_TitleAttributes;
|
---|
| 464 |
|
---|
| 465 | typedef struct tagDVD_MenuAttributes
|
---|
| 466 | {
|
---|
| 467 | BOOL fCompatibleRegion[8];
|
---|
| 468 | DVD_VideoAttributes VideoAttributes;
|
---|
| 469 | BOOL fAudioPresent;
|
---|
| 470 | DVD_AudioAttributes AudioAttributes;
|
---|
| 471 | BOOL fSubpicturePresent;
|
---|
| 472 | DVD_SubpictureAttributes SubpictureAttributes;
|
---|
| 473 | } DVD_MenuAttributes;
|
---|
| 474 |
|
---|
| 475 | cpp_quote ("#define DVD_TITLE_MENU 0x000")
|
---|
| 476 | cpp_quote ("#define DVD_STREAM_DATA_VMGM 0x400")
|
---|
| 477 | cpp_quote ("#define DVD_STREAM_DATA_VTSM 0x401")
|
---|
| 478 | cpp_quote ("#define DVD_STREAM_DATA_CURRENT 0x800")
|
---|
| 479 | cpp_quote ("#define DVD_DEFAULT_AUDIO_STREAM 0x00f")
|
---|
| 480 |
|
---|
| 481 | cpp_quote ("#define DVD_AUDIO_CAPS_AC3 0x00000001")
|
---|
| 482 | cpp_quote ("#define DVD_AUDIO_CAPS_MPEG2 0x00000002")
|
---|
| 483 | cpp_quote ("#define DVD_AUDIO_CAPS_LPCM 0x00000004")
|
---|
| 484 | cpp_quote ("#define DVD_AUDIO_CAPS_DTS 0x00000008")
|
---|
| 485 | cpp_quote ("#define DVD_AUDIO_CAPS_SDDS 0x00000010")
|
---|
| 486 |
|
---|
| 487 | typedef struct tagDVD_DECODER_CAPS
|
---|
| 488 | {
|
---|
| 489 | DWORD dwSize;
|
---|
| 490 | DWORD dwAudioCaps;
|
---|
| 491 | double dFwdMaxRateVideo;
|
---|
| 492 | double dFwdMaxRateAudio;
|
---|
| 493 | double dFwdMaxRateSP;
|
---|
| 494 | double dBwdMaxRateVideo;
|
---|
| 495 | double dBwdMaxRateAudio;
|
---|
| 496 | double dBwdMaxRateSP;
|
---|
| 497 | DWORD dwRes1;
|
---|
| 498 | DWORD dwRes2;
|
---|
| 499 | DWORD dwRes3;
|
---|
| 500 | DWORD dwRes4;
|
---|
| 501 | } DVD_DECODER_CAPS;
|
---|
| 502 |
|
---|
| 503 | typedef enum _AM_DVD_GRAPH_FLAGS
|
---|
| 504 | {
|
---|
| 505 | AM_DVD_HWDEC_PREFER = 0x0001,
|
---|
| 506 | AM_DVD_HWDEC_ONLY = 0x0002,
|
---|
| 507 | AM_DVD_SWDEC_PREFER = 0x0004,
|
---|
| 508 | AM_DVD_SWDEC_ONLY = 0x0008,
|
---|
| 509 | AM_DVD_NOVPE = 0x0100,
|
---|
| 510 | AM_DVD_DO_NOT_CLEAR = 0x0200,
|
---|
| 511 | AM_DVD_VMR9_ONLY = 0x0800,
|
---|
| 512 | AM_DVD_EVR_ONLY = 0x1000,
|
---|
| 513 | AM_DVD_EVR_QOS = 0x2000,
|
---|
| 514 | AM_DVD_ADAPT_GRAPH = 0x4000,
|
---|
| 515 | AM_DVD_MASK = 0xffff
|
---|
| 516 | } AM_DVD_GRAPH_FLAGS;
|
---|
| 517 |
|
---|
| 518 | typedef enum _AM_DVD_STREAM_FLAGS
|
---|
| 519 | {
|
---|
| 520 | AM_DVD_STREAM_VIDEO = 0x01,
|
---|
| 521 | AM_DVD_STREAM_AUDIO = 0x02,
|
---|
| 522 | AM_DVD_STREAM_SUBPIC = 0x04
|
---|
| 523 | } AM_DVD_STREAM_FLAGS;
|
---|
| 524 |
|
---|
| 525 | typedef struct tagAM_DVD_RENDERSTATUS
|
---|
| 526 | {
|
---|
| 527 | HRESULT hrVPEStatus;
|
---|
| 528 | BOOL bDvdVolInvalid;
|
---|
| 529 | BOOL bDvdVolUnknown;
|
---|
| 530 | BOOL bNoLine21In;
|
---|
| 531 | BOOL bNoLine21Out;
|
---|
| 532 | int iNumStreams;
|
---|
| 533 | int iNumStreamsFailed;
|
---|
| 534 | DWORD dwFailedStreamsFlag;
|
---|
| 535 | } AM_DVD_RENDERSTATUS;
|
---|
| 536 |
|
---|
| 537 | [
|
---|
| 538 | local,
|
---|
| 539 | object,
|
---|
| 540 | uuid(a70efe61-e2a3-11d0-a9be-00aa0061be93),
|
---|
| 541 | ]
|
---|
| 542 | interface IDvdControl : IUnknown
|
---|
| 543 | {
|
---|
| 544 | HRESULT TitlePlay([in] ULONG title);
|
---|
| 545 | HRESULT ChapterPlay([in] ULONG title, [in] ULONG chapter);
|
---|
| 546 | HRESULT TimePlay([in] ULONG title, [in] ULONG time);
|
---|
| 547 | HRESULT StopForResume();
|
---|
| 548 | HRESULT GoUp();
|
---|
| 549 | HRESULT TimeSearch([in] ULONG time);
|
---|
| 550 | HRESULT ChapterSearch([in] ULONG chapter);
|
---|
| 551 | HRESULT PrevPGSearch();
|
---|
| 552 | HRESULT TopPGSearch();
|
---|
| 553 | HRESULT NextPGSearch();
|
---|
| 554 | HRESULT ForwardScan([in] double speed);
|
---|
| 555 | HRESULT BackwardScan([in] double speed);
|
---|
| 556 | HRESULT MenuCall([in] DVD_MENU_ID id);
|
---|
| 557 | HRESULT Resume();
|
---|
| 558 | HRESULT UpperButtonSelect();
|
---|
| 559 | HRESULT LowerButtonSelect();
|
---|
| 560 | HRESULT LeftButtonSelect();
|
---|
| 561 | HRESULT RightButtonSelect();
|
---|
| 562 | HRESULT ButtonActivate();
|
---|
| 563 | HRESULT ButtonSelectActivate([in] ULONG button);
|
---|
| 564 | HRESULT StillOff();
|
---|
| 565 | HRESULT PauseOn();
|
---|
| 566 | HRESULT PauseOff();
|
---|
| 567 | HRESULT MenuLanguageSelect([in] LCID language);
|
---|
| 568 | HRESULT AudioStreamChange([in] ULONG audio);
|
---|
| 569 | HRESULT SubpictureStreamChange([in] ULONG subpicture, [in] BOOL enable);
|
---|
| 570 | HRESULT AngleChange([in] ULONG angle);
|
---|
| 571 | HRESULT ParentalLevelSelect([in] ULONG level);
|
---|
| 572 | HRESULT ParentalCountrySelect([in] WORD country);
|
---|
| 573 | HRESULT KaraokeAudioPresentationModeChange([in] ULONG mode);
|
---|
| 574 | HRESULT VideoModePreference([in] ULONG mode);
|
---|
| 575 | HRESULT SetRoot([in] const WCHAR *path);
|
---|
| 576 | HRESULT MouseActivate([in] POINT point);
|
---|
| 577 | HRESULT MouseSelect([in] POINT point);
|
---|
| 578 | HRESULT ChapterPlayAutoStop([in] ULONG title, [in] ULONG chapter, [in] ULONG count);
|
---|
| 579 | }
|
---|
| 580 |
|
---|
| 581 | [
|
---|
| 582 | local,
|
---|
| 583 | object,
|
---|
| 584 | uuid(a70efe60-e2a3-11d0-a9be-00aa0061be93),
|
---|
| 585 | ]
|
---|
| 586 | interface IDvdInfo : IUnknown
|
---|
| 587 | {
|
---|
| 588 | HRESULT GetCurrentDomain([out] DVD_DOMAIN *domain);
|
---|
| 589 | HRESULT GetCurrentLocation([out] DVD_PLAYBACK_LOCATION *location);
|
---|
| 590 | HRESULT GetTotalTitleTime([out] ULONG *time);
|
---|
| 591 | HRESULT GetCurrentButton([out] ULONG *count, [out] ULONG *current);
|
---|
| 592 | HRESULT GetCurrentAngle([out] ULONG *count, [out] ULONG *current);
|
---|
| 593 | HRESULT GetCurrentAudio([out] ULONG *count, [out] ULONG *current);
|
---|
| 594 | HRESULT GetCurrentSubpicture([out] ULONG *count, [out] ULONG *current, [out] BOOL *enable);
|
---|
| 595 | HRESULT GetCurrentUOPS([out] VALID_UOP_SOMTHING_OR_OTHER *uops);
|
---|
| 596 | HRESULT GetAllSPRMs([out] SPRMARRAY *regs);
|
---|
| 597 | HRESULT GetAllGPRMs([out] GPRMARRAY *regs);
|
---|
| 598 | HRESULT GetAudioLanguage([in] ULONG stream, [out] LCID *language);
|
---|
| 599 | HRESULT GetSubpictureLanguage([in] ULONG stream, [out] LCID *language);
|
---|
| 600 | HRESULT GetTitleAttributes([in] ULONG title, [out] DVD_ATR *attr);
|
---|
| 601 | HRESULT GetVMGAttributes([out] DVD_ATR *attr);
|
---|
| 602 | HRESULT GetCurrentVideoAttributes([out] DVD_VideoATR *attr);
|
---|
| 603 | HRESULT GetCurrentAudioAttributes([out] DVD_AudioATR *attr);
|
---|
| 604 | HRESULT GetCurrentSubpictureAttributes([out] DVD_SubpictureATR *attr);
|
---|
| 605 | HRESULT GetCurrentVolumeInfo([out] ULONG *volume_count, [out] ULONG *current, [out] DVD_DISC_SIDE *side, [out] ULONG *title_count);
|
---|
| 606 | HRESULT GetDVDTextInfo([out, size_is(size)] BYTE *text_manager, [in] ULONG size, [out] ULONG *ret_size);
|
---|
| 607 | HRESULT GetPlayerParentalLevel([out] ULONG *level, [out] ULONG *country_code);
|
---|
| 608 | HRESULT GetNumberOfChapters([in] ULONG title, [out] ULONG *count);
|
---|
| 609 | HRESULT GetTitleParentalLevels([in] ULONG title, [out] ULONG *levels);
|
---|
| 610 | HRESULT GetRoot([out, size_is(size)] char *path, [in] ULONG size, [out] ULONG *ret_size);
|
---|
| 611 | }
|
---|
| 612 |
|
---|
| 613 | [
|
---|
| 614 | local,
|
---|
| 615 | object,
|
---|
| 616 | uuid(5a4a97e4-94ee-4a55-9751-74b5643aa27d),
|
---|
| 617 | ]
|
---|
| 618 | interface IDvdCmd : IUnknown
|
---|
| 619 | {
|
---|
| 620 | HRESULT WaitForStart();
|
---|
| 621 | HRESULT WaitForEnd();
|
---|
| 622 | }
|
---|
| 623 |
|
---|
| 624 | [
|
---|
| 625 | local,
|
---|
| 626 | object,
|
---|
| 627 | uuid(86303d6d-1c4a-4087-ab42-f711167048ef),
|
---|
| 628 | ]
|
---|
| 629 | interface IDvdState : IUnknown
|
---|
| 630 | {
|
---|
| 631 | HRESULT GetDiscID([out] ULONGLONG *id);
|
---|
| 632 | HRESULT GetParentalLevel([out] ULONG *level);
|
---|
| 633 | }
|
---|
| 634 |
|
---|
| 635 | [
|
---|
| 636 | local,
|
---|
| 637 | object,
|
---|
| 638 | uuid(33bc7430-eec0-11d2-8201-00a0c9d74842),
|
---|
| 639 | ]
|
---|
| 640 | interface IDvdControl2 : IUnknown
|
---|
| 641 | {
|
---|
| 642 | HRESULT PlayTitle([in] ULONG title, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 643 | HRESULT PlayChapterInTitle([in] ULONG title, [in] ULONG chapter, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 644 | HRESULT PlayTimeInTitle([in] ULONG title, [in] DVD_HMSF_TIMECODE *time, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 645 | HRESULT Stop();
|
---|
| 646 | HRESULT ReturnFromSubmenu([in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 647 | HRESULT PlayAtTime([in] DVD_HMSF_TIMECODE *time, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 648 | HRESULT PlayChapter([in] ULONG chapter, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 649 | HRESULT PlayPrevChapter([in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 650 | HRESULT ReplayChapter([in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 651 | HRESULT PlayNextChapter([in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 652 | HRESULT PlayForwards([in] double speed, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 653 | HRESULT PlayBackwards([in] double speed, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 654 | HRESULT ShowMenu([in] DVD_MENU_ID id, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 655 | HRESULT Resume([in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 656 | HRESULT SelectRelativeButton([in] DVD_RELATIVE_BUTTON button);
|
---|
| 657 | HRESULT ActivateButton();
|
---|
| 658 | HRESULT SelectButton([in] ULONG button);
|
---|
| 659 | HRESULT SelectAndActivateButton([in] ULONG button);
|
---|
| 660 | HRESULT StillOff();
|
---|
| 661 | HRESULT Pause([in] BOOL enable);
|
---|
| 662 | HRESULT SelectAudioStream([in] ULONG stream, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 663 | HRESULT SelectSubpictureStream([in] ULONG stream, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 664 | HRESULT SetSubpictureState([in] BOOL enable, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 665 | HRESULT SelectAngle([in] ULONG angle, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 666 | HRESULT SelectParentalLevel([in] ULONG level);
|
---|
| 667 | HRESULT SelectParentalCountry([in] BYTE country[2]);
|
---|
| 668 | HRESULT SelectKaraokeAudioPresentationMode([in] ULONG mode);
|
---|
| 669 | HRESULT SelectVideoModePreference([in] ULONG mode);
|
---|
| 670 | HRESULT SetDVDDirectory([in] const WCHAR *path);
|
---|
| 671 | HRESULT ActivateAtPosition([in] POINT point);
|
---|
| 672 | HRESULT SelectAtPosition([in] POINT point);
|
---|
| 673 | HRESULT PlayChaptersAutoStop([in] ULONG title, [in] ULONG chapter, [in] ULONG count, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 674 | HRESULT AcceptParentalLevelChange([in] BOOL accept);
|
---|
| 675 | HRESULT SetOption([in] DVD_OPTION_FLAG flag, [in] BOOL option);
|
---|
| 676 | HRESULT SetState([in] IDvdState *state, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 677 | HRESULT PlayPeriodInTitleAutoStop([in] ULONG title, [in] DVD_HMSF_TIMECODE *start_time, [in] DVD_HMSF_TIMECODE *end_time, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 678 | HRESULT SetGRPM([in] ULONG index, [in] WORD value, [in] DWORD flags, [out] IDvdCmd **cmd);
|
---|
| 679 | HRESULT SelectDefaultMenuLanguage([in] LCID language);
|
---|
| 680 | HRESULT SelectDefaultAudioLanguage([in] LCID language, [in] DVD_AUDIO_LANG_EXT extension);
|
---|
| 681 | HRESULT SelectDefaultSubpictureLanguage([in] LCID language, [in] DVD_SUBPICTURE_LANG_EXT extension);
|
---|
| 682 | }
|
---|
| 683 |
|
---|
| 684 | [
|
---|
| 685 | local,
|
---|
| 686 | object,
|
---|
| 687 | uuid(34151510-eec0-11d2-8201-00a0c9d74842),
|
---|
| 688 | ]
|
---|
| 689 | interface IDvdInfo2 : IUnknown
|
---|
| 690 | {
|
---|
| 691 | HRESULT GetCurrentDomain([out] DVD_DOMAIN *domain);
|
---|
| 692 | HRESULT GetCurrentLocation([out] DVD_PLAYBACK_LOCATION2 *location);
|
---|
| 693 | HRESULT GetTotalTitleTime([out] DVD_HMSF_TIMECODE *time, [out] ULONG *flags);
|
---|
| 694 | HRESULT GetCurrentButton([out] ULONG *count, [out] ULONG *current);
|
---|
| 695 | HRESULT GetCurrentAngle([out] ULONG *count, [out] ULONG *current);
|
---|
| 696 | HRESULT GetCurrentAudio([out] ULONG *count, [out] ULONG *current);
|
---|
| 697 | HRESULT GetCurrentSubpicture([out] ULONG *count, [out] ULONG *current, [out] BOOL *enable);
|
---|
| 698 | HRESULT GetCurrentUOPS([out] ULONG *uops);
|
---|
| 699 | HRESULT GetAllSPRMs([out] SPRMARRAY *regs);
|
---|
| 700 | HRESULT GetAllGPRMs([out] GPRMARRAY *regs);
|
---|
| 701 | HRESULT GetAudioLanguage([in] ULONG stream, [out] LCID *language);
|
---|
| 702 | HRESULT GetSubpictureLanguage([in] ULONG stream, [out] LCID *language);
|
---|
| 703 | HRESULT GetTitleAttributes([in] ULONG index, [out] DVD_MenuAttributes *menu, [out] DVD_TitleAttributes *title);
|
---|
| 704 | HRESULT GetVMGAttributes([out] DVD_MenuAttributes *attr);
|
---|
| 705 | HRESULT GetVideoAttributes([out] DVD_VideoAttributes *attr);
|
---|
| 706 | HRESULT GetAudioAttributes([in] ULONG stream, [out] DVD_AudioAttributes *attr);
|
---|
| 707 | HRESULT GetKaraokeAttributes([in] ULONG stream, [out] DVD_KaraokeAttributes *attr);
|
---|
| 708 | HRESULT GetSubpictureAttributes([in] ULONG stream, [out] DVD_SubpictureAttributes *attr);
|
---|
| 709 | HRESULT GetCurrentVolumeInfo([out] ULONG *volume_count, [out] ULONG *current, [out] DVD_DISC_SIDE *side, [out] ULONG *title_count);
|
---|
| 710 | HRESULT GetDVDTextNumberOfLanguages([out] ULONG *count);
|
---|
| 711 | HRESULT GetDVDTextLanguageInfo([in] ULONG index, [out] ULONG *string_count, [out] LCID *language, [out] enum DVD_TextCharSet *character_set);
|
---|
| 712 | HRESULT GetDVDTextStringAsNative([in] ULONG lang_index, [in] ULONG string_index, [out] BYTE *string, [in] ULONG size, [out] ULONG *ret_size, [out] enum DVD_TextStringType *type);
|
---|
| 713 | HRESULT GetDVDTextStringAsUnicode([in] ULONG lang_index, [in] ULONG string_index, [out] WCHAR *string, [in] ULONG size, [out] ULONG *ret_size, [out] enum DVD_TextStringType *type);
|
---|
| 714 | HRESULT GetPlayerParentalLevel([out] ULONG *level, [out] BYTE country_code[2]);
|
---|
| 715 | HRESULT GetNumberOfChapters([in] ULONG title, [out] ULONG *count);
|
---|
| 716 | HRESULT GetTitleParentalLevels([in] ULONG title, [out] ULONG *levels);
|
---|
| 717 | HRESULT GetDVDDirectory([out, size_is(size)] WCHAR *path, [in] ULONG size, [out] ULONG *ret_size);
|
---|
| 718 | HRESULT IsAudioStreamEnabled([in] ULONG stream, [out] BOOL *enable);
|
---|
| 719 | HRESULT GetDiscID([in] const WCHAR *path, [out] ULONGLONG *id);
|
---|
| 720 | HRESULT GetState([out] IDvdState **state);
|
---|
| 721 | HRESULT GetMenuLanguages([out] LCID *languages, [in] ULONG count, [out] ULONG *ret_count);
|
---|
| 722 | HRESULT GetButtonAtPosition([in] POINT point, [out] ULONG *button);
|
---|
| 723 | HRESULT GetCmdFromEvent([in] LONG_PTR param, [out] IDvdCmd **cmd);
|
---|
| 724 | HRESULT GetDefaultMenuLanguage([out] LCID *language);
|
---|
| 725 | HRESULT GetDefaultAudioLanguage([out] LCID *language, [out] DVD_AUDIO_LANG_EXT *extension);
|
---|
| 726 | HRESULT SelectDefaultSubpictureLanguage([out] LCID *language, [out] DVD_SUBPICTURE_LANG_EXT *extension);
|
---|
| 727 | HRESULT GetDecoderCaps([out] DVD_DECODER_CAPS *caps);
|
---|
| 728 | HRESULT GetButtonRect([in] ULONG button, [out] RECT *rect);
|
---|
| 729 | HRESULT IsSubpictureStreamEnabled([in] ULONG stream, [out] BOOL *enable);
|
---|
| 730 | }
|
---|
| 731 |
|
---|
| 732 | [
|
---|
| 733 | local,
|
---|
| 734 | object,
|
---|
| 735 | uuid(fcc152b6-f372-11d0-8e00-00c04fd7c08b),
|
---|
| 736 | ]
|
---|
| 737 | interface IDvdGraphBuilder : IUnknown
|
---|
| 738 | {
|
---|
| 739 | HRESULT GetFiltergraph([out] IGraphBuilder **graph);
|
---|
| 740 | HRESULT GetDvdInterface([in] REFIID iid, [out] void **out);
|
---|
| 741 | HRESULT RenderDvdVideoVolume([in] const WCHAR *path, [in] DWORD flags, [out] AM_DVD_RENDERSTATUS *status);
|
---|
| 742 | }
|
---|