dvdif.h 97 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781
  1. /*** Autogenerated by WIDL 7.7 from include/dvdif.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __dvdif_h__
  14. #define __dvdif_h__
  15. /* Forward declarations */
  16. #ifndef __IDvdControl_FWD_DEFINED__
  17. #define __IDvdControl_FWD_DEFINED__
  18. typedef interface IDvdControl IDvdControl;
  19. #ifdef __cplusplus
  20. interface IDvdControl;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IDvdInfo_FWD_DEFINED__
  24. #define __IDvdInfo_FWD_DEFINED__
  25. typedef interface IDvdInfo IDvdInfo;
  26. #ifdef __cplusplus
  27. interface IDvdInfo;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IDvdCmd_FWD_DEFINED__
  31. #define __IDvdCmd_FWD_DEFINED__
  32. typedef interface IDvdCmd IDvdCmd;
  33. #ifdef __cplusplus
  34. interface IDvdCmd;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IDvdState_FWD_DEFINED__
  38. #define __IDvdState_FWD_DEFINED__
  39. typedef interface IDvdState IDvdState;
  40. #ifdef __cplusplus
  41. interface IDvdState;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IDvdControl2_FWD_DEFINED__
  45. #define __IDvdControl2_FWD_DEFINED__
  46. typedef interface IDvdControl2 IDvdControl2;
  47. #ifdef __cplusplus
  48. interface IDvdControl2;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IDvdInfo2_FWD_DEFINED__
  52. #define __IDvdInfo2_FWD_DEFINED__
  53. typedef interface IDvdInfo2 IDvdInfo2;
  54. #ifdef __cplusplus
  55. interface IDvdInfo2;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IDvdGraphBuilder_FWD_DEFINED__
  59. #define __IDvdGraphBuilder_FWD_DEFINED__
  60. typedef interface IDvdGraphBuilder IDvdGraphBuilder;
  61. #ifdef __cplusplus
  62. interface IDvdGraphBuilder;
  63. #endif /* __cplusplus */
  64. #endif
  65. /* Headers for imported files */
  66. #include <unknwn.h>
  67. #include <objidl.h>
  68. #ifdef __cplusplus
  69. extern "C" {
  70. #endif
  71. #include <ddraw.h>
  72. #if 0
  73. #ifndef __IGraphBuilder_FWD_DEFINED__
  74. #define __IGraphBuilder_FWD_DEFINED__
  75. typedef interface IGraphBuilder IGraphBuilder;
  76. #ifdef __cplusplus
  77. interface IGraphBuilder;
  78. #endif /* __cplusplus */
  79. #endif
  80. #endif
  81. typedef enum tagDVD_DOMAIN {
  82. DVD_DOMAIN_FirstPlay = 1,
  83. DVD_DOMAIN_VideoManagerMenu = 2,
  84. DVD_DOMAIN_VideoTitleSetMenu = 3,
  85. DVD_DOMAIN_Title = 4,
  86. DVD_DOMAIN_Stop = 5
  87. } DVD_DOMAIN;
  88. typedef enum tagDVD_MENU_ID {
  89. DVD_MENU_Title = 2,
  90. DVD_MENU_Root = 3,
  91. DVD_MENU_Subpicture = 4,
  92. DVD_MENU_Audio = 5,
  93. DVD_MENU_Angle = 6,
  94. DVD_MENU_Chapter = 7
  95. } DVD_MENU_ID;
  96. typedef enum tagDVD_DISC_SIDE {
  97. DVD_SIDE_A = 1,
  98. DVD_SIDE_B = 2
  99. } DVD_DISC_SIDE;
  100. typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
  101. DISPLAY_CONTENT_DEFAULT = 0,
  102. DISPLAY_16x9 = 1,
  103. DISPLAY_4x3_PANSCAN_PREFERRED = 2,
  104. DISPLAY_4x3_LETTERBOX_PREFERRED = 3
  105. } DVD_PREFERRED_DISPLAY_MODE;
  106. typedef WORD DVD_REGISTER;
  107. typedef DVD_REGISTER GPRMARRAY[16];
  108. typedef DVD_REGISTER SPRMARRAY[24];
  109. typedef struct tagDVD_ATR {
  110. ULONG ulCAT;
  111. BYTE pbATRI[768];
  112. } DVD_ATR;
  113. typedef BYTE DVD_VideoATR[2];
  114. typedef BYTE DVD_AudioATR[8];
  115. typedef BYTE DVD_SubpictureATR[6];
  116. typedef enum tagDVD_FRAMERATE {
  117. DVD_FPS_25 = 1,
  118. DVD_FPS_30NonDrop = 3
  119. } DVD_FRAMERATE;
  120. typedef struct tagDVD_TIMECODE
  121. {
  122. ULONG Hours1 : 4;
  123. ULONG Hours10 : 4;
  124. ULONG Minutes1 : 4;
  125. ULONG Minutes10 : 4;
  126. ULONG Seconds1 : 4;
  127. ULONG Seconds10 : 4;
  128. ULONG Frames1 : 4;
  129. ULONG Frames10 : 2;
  130. ULONG FrameRateCode : 2;
  131. } DVD_TIMECODE;
  132. typedef enum tagDVD_NavCmdType {
  133. DVD_NavCmdType_Pre = 1,
  134. DVD_NavCmdType_Post = 2,
  135. DVD_NavCmdType_Cell = 3,
  136. DVD_NavCmdType_Button = 4
  137. } DVD_NavCmdType;
  138. typedef enum tagDVD_TIMECODE_FLAGS {
  139. DVD_TC_FLAG_25fps = 0x1,
  140. DVD_TC_FLAG_30fps = 0x2,
  141. DVD_TC_FLAG_DropFrame = 0x4,
  142. DVD_TC_FLAG_Interpolated = 0x8
  143. } DVD_TIMECODE_FLAGS;
  144. typedef struct tagDVD_HMSF_TIMECODE {
  145. BYTE bHours;
  146. BYTE bMinutes;
  147. BYTE bSeconds;
  148. BYTE bFrames;
  149. } DVD_HMSF_TIMECODE;
  150. typedef struct tagDVD_PLAYBACK_LOCATION2 {
  151. ULONG TitleNum;
  152. ULONG ChapterNum;
  153. DVD_HMSF_TIMECODE TimeCode;
  154. ULONG TimeCodeFlags;
  155. } DVD_PLAYBACK_LOCATION2;
  156. typedef struct tagDVD_PLAYBACK_LOCATION {
  157. ULONG TitleNum;
  158. ULONG ChapterNum;
  159. ULONG TimeCode;
  160. } DVD_PLAYBACK_LOCATION;
  161. typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
  162. typedef enum __WIDL_dvdif_generated_name_0000000E {
  163. UOP_FLAG_Play_Title_Or_AtTime = 0x1,
  164. UOP_FLAG_Play_Chapter = 0x2,
  165. UOP_FLAG_Play_Title = 0x4,
  166. UOP_FLAG_Stop = 0x8,
  167. UOP_FLAG_ReturnFromSubMenu = 0x10,
  168. UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,
  169. UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,
  170. UOP_FLAG_PlayNext_Chapter = 0x80,
  171. UOP_FLAG_Play_Forwards = 0x100,
  172. UOP_FLAG_Play_Backwards = 0x200,
  173. UOP_FLAG_ShowMenu_Title = 0x400,
  174. UOP_FLAG_ShowMenu_Root = 0x800,
  175. UOP_FLAG_ShowMenu_SubPic = 0x1000,
  176. UOP_FLAG_ShowMenu_Audio = 0x2000,
  177. UOP_FLAG_ShowMenu_Angle = 0x4000,
  178. UOP_FLAG_ShowMenu_Chapter = 0x8000,
  179. UOP_FLAG_Resume = 0x10000,
  180. UOP_FLAG_Select_Or_Activate_Button = 0x20000,
  181. UOP_FLAG_Still_Off = 0x40000,
  182. UOP_FLAG_Pause_On = 0x80000,
  183. UOP_FLAG_Select_Audio_Stream = 0x100000,
  184. UOP_FLAG_Select_SubPic_Stream = 0x200000,
  185. UOP_FLAG_Select_Angle = 0x400000,
  186. UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
  187. UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
  188. } VALID_UOP_FLAG;
  189. typedef enum __WIDL_dvdif_generated_name_0000000F {
  190. DVD_CMD_FLAG_None = 0x0,
  191. DVD_CMD_FLAG_Flush = 0x1,
  192. DVD_CMD_FLAG_SendEvents = 0x2,
  193. DVD_CMD_FLAG_Block = 0x4,
  194. DVD_CMD_FLAG_StartWhenRendered = 0x8,
  195. DVD_CMD_FLAG_EndAfterRendered = 0x10
  196. } DVD_CMD_FLAGS;
  197. typedef enum __WIDL_dvdif_generated_name_00000010 {
  198. DVD_ResetOnStop = 1,
  199. DVD_NotifyParentalLevelChange = 2,
  200. DVD_HMSF_TimeCodeEvents = 3,
  201. DVD_AudioDuringFFwdRew = 4,
  202. DVD_EnableNonblockingAPIs = 5,
  203. DVD_CacheSizeInMB = 6,
  204. DVD_EnablePortableBookmarks = 7,
  205. DVD_EnableExtendedCopyProtectErrors = 8,
  206. DVD_NotifyPositionChange = 9,
  207. DVD_IncreaseOutputControl = 10,
  208. DVD_EnableStreaming = 11,
  209. DVD_EnableESOutput = 12,
  210. DVD_EnableTitleLength = 13,
  211. DVD_DisableStillThrottle = 14,
  212. DVD_EnableLoggingEvents = 15,
  213. DVD_MaxReadBurstInKB = 16,
  214. DVD_ReadBurstPeriodInMS = 17,
  215. DVD_RestartDisc = 18,
  216. DVD_EnableCC = 19
  217. } DVD_OPTION_FLAG;
  218. typedef enum __WIDL_dvdif_generated_name_00000011 {
  219. DVD_Relative_Upper = 1,
  220. DVD_Relative_Lower = 2,
  221. DVD_Relative_Left = 3,
  222. DVD_Relative_Right = 4
  223. } DVD_RELATIVE_BUTTON;
  224. typedef enum tagDVD_PARENTAL_LEVEL {
  225. DVD_PARENTAL_LEVEL_8 = 0x8000,
  226. DVD_PARENTAL_LEVEL_7 = 0x4000,
  227. DVD_PARENTAL_LEVEL_6 = 0x2000,
  228. DVD_PARENTAL_LEVEL_5 = 0x1000,
  229. DVD_PARENTAL_LEVEL_4 = 0x800,
  230. DVD_PARENTAL_LEVEL_3 = 0x400,
  231. DVD_PARENTAL_LEVEL_2 = 0x200,
  232. DVD_PARENTAL_LEVEL_1 = 0x100
  233. } DVD_PARENTAL_LEVEL;
  234. typedef enum tagDVD_AUDIO_LANG_EXT {
  235. DVD_AUD_EXT_NotSpecified = 0,
  236. DVD_AUD_EXT_Captions = 1,
  237. DVD_AUD_EXT_VisuallyImpaired = 2,
  238. DVD_AUD_EXT_DirectorComments1 = 3,
  239. DVD_AUD_EXT_DirectorComments2 = 4
  240. } DVD_AUDIO_LANG_EXT;
  241. typedef enum tagDVD_SUBPICTURE_LANG_EXT {
  242. DVD_SP_EXT_NotSpecified = 0,
  243. DVD_SP_EXT_Caption_Normal = 1,
  244. DVD_SP_EXT_Caption_Big = 2,
  245. DVD_SP_EXT_Caption_Children = 3,
  246. DVD_SP_EXT_CC_Normal = 5,
  247. DVD_SP_EXT_CC_Big = 6,
  248. DVD_SP_EXT_CC_Children = 7,
  249. DVD_SP_EXT_Forced = 9,
  250. DVD_SP_EXT_DirectorComments_Normal = 13,
  251. DVD_SP_EXT_DirectorComments_Big = 14,
  252. DVD_SP_EXT_DirectorComments_Children = 15
  253. } DVD_SUBPICTURE_LANG_EXT;
  254. typedef enum tagDVD_AUDIO_APPMODE {
  255. DVD_AudioMode_None = 0,
  256. DVD_AudioMode_Karaoke = 1,
  257. DVD_AudioMode_Surround = 2,
  258. DVD_AudioMode_Other = 3
  259. } DVD_AUDIO_APPMODE;
  260. typedef enum tagDVD_AUDIO_FORMAT {
  261. DVD_AudioFormat_AC3 = 0,
  262. DVD_AudioFormat_MPEG1 = 1,
  263. DVD_AudioFormat_MPEG1_DRC = 2,
  264. DVD_AudioFormat_MPEG2 = 3,
  265. DVD_AudioFormat_MPEG2_DRC = 4,
  266. DVD_AudioFormat_LPCM = 5,
  267. DVD_AudioFormat_DTS = 6,
  268. DVD_AudioFormat_SDDS = 7,
  269. DVD_AudioFormat_Other = 8
  270. } DVD_AUDIO_FORMAT;
  271. typedef enum tagDVD_KARAOKE_DOWNMIX {
  272. DVD_Mix_0to0 = 0x1,
  273. DVD_Mix_1to0 = 0x2,
  274. DVD_Mix_2to0 = 0x4,
  275. DVD_Mix_3to0 = 0x8,
  276. DVD_Mix_4to0 = 0x10,
  277. DVD_Mix_Lto0 = 0x20,
  278. DVD_Mix_Rto0 = 0x40,
  279. DVD_Mix_0to1 = 0x100,
  280. DVD_Mix_1to1 = 0x200,
  281. DVD_Mix_2to1 = 0x400,
  282. DVD_Mix_3to1 = 0x800,
  283. DVD_Mix_4to1 = 0x1000,
  284. DVD_Mix_Lto1 = 0x2000,
  285. DVD_Mix_Rto1 = 0x4000
  286. } DVD_KARAOKE_DOWNMIX;
  287. typedef enum tagDVD_KARAOKE_CONTENTS {
  288. DVD_Karaoke_GuideVocal1 = 0x1,
  289. DVD_Karaoke_GuideVocal2 = 0x2,
  290. DVD_Karaoke_GuideMelody1 = 0x4,
  291. DVD_Karaoke_GuideMelody2 = 0x8,
  292. DVD_Karaoke_GuideMelodyA = 0x10,
  293. DVD_Karaoke_GuideMelodyB = 0x20,
  294. DVD_Karaoke_SoundEffectA = 0x40,
  295. DVD_Karaoke_SoundEffectB = 0x80
  296. } DVD_KARAOKE_CONTENTS;
  297. typedef enum tagDVD_KARAOKE_ASSIGNMENT {
  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. typedef struct tagDVD_MUA_MixingInfo {
  308. WINBOOL fMixTo0;
  309. WINBOOL fMixTo1;
  310. WINBOOL fMix0InPhase;
  311. WINBOOL fMix1InPhase;
  312. DWORD dwSpeakerPosition;
  313. } DVD_MUA_MixingInfo;
  314. typedef struct tagDVD_MUA_Coeff {
  315. double log2_alpha;
  316. double log2_beta;
  317. } DVD_MUA_Coeff;
  318. typedef enum tagDVD_VIDEO_COMPRESSION {
  319. DVD_VideoCompression_Other = 0,
  320. DVD_VideoCompression_MPEG1 = 1,
  321. DVD_VideoCompression_MPEG2 = 2
  322. } DVD_VIDEO_COMPRESSION;
  323. typedef enum tagDVD_SUBPICTURE_TYPE {
  324. DVD_SPType_NotSpecified = 0,
  325. DVD_SPType_Language = 1,
  326. DVD_SPType_Other = 2
  327. } DVD_SUBPICTURE_TYPE;
  328. typedef enum tagDVD_SUBPICTURE_CODING {
  329. DVD_SPCoding_RunLength = 0,
  330. DVD_SPCoding_Extended = 1,
  331. DVD_SPCoding_Other = 2
  332. } DVD_SUBPICTURE_CODING;
  333. typedef enum tagDVD_TITLE_APPMODE {
  334. DVD_AppMode_Not_Specified = 0,
  335. DVD_AppMode_Karaoke = 1,
  336. DVD_AppMode_Other = 3
  337. } DVD_TITLE_APPMODE;
  338. enum DVD_TextStringType {
  339. DVD_Struct_Volume = 0x1,
  340. DVD_Struct_Title = 0x2,
  341. DVD_Struct_ParentalID = 0x3,
  342. DVD_Struct_PartOfTitle = 0x4,
  343. DVD_Struct_Cell = 0x5,
  344. DVD_Stream_Audio = 0x10,
  345. DVD_Stream_Subpicture = 0x11,
  346. DVD_Stream_Angle = 0x12,
  347. DVD_Channel_Audio = 0x20,
  348. DVD_General_Name = 0x30,
  349. DVD_General_Comments = 0x31,
  350. DVD_Title_Series = 0x38,
  351. DVD_Title_Movie = 0x39,
  352. DVD_Title_Video = 0x3a,
  353. DVD_Title_Album = 0x3b,
  354. DVD_Title_Song = 0x3c,
  355. DVD_Title_Other = 0x3f,
  356. DVD_Title_Sub_Series = 0x40,
  357. DVD_Title_Sub_Movie = 0x41,
  358. DVD_Title_Sub_Video = 0x42,
  359. DVD_Title_Sub_Album = 0x43,
  360. DVD_Title_Sub_Song = 0x44,
  361. DVD_Title_Sub_Other = 0x47,
  362. DVD_Title_Orig_Series = 0x48,
  363. DVD_Title_Orig_Movie = 0x49,
  364. DVD_Title_Orig_Video = 0x4a,
  365. DVD_Title_Orig_Album = 0x4b,
  366. DVD_Title_Orig_Song = 0x4c,
  367. DVD_Title_Orig_Other = 0x4f,
  368. DVD_Other_Scene = 0x50,
  369. DVD_Other_Cut = 0x51,
  370. DVD_Other_Take = 0x52
  371. };
  372. enum DVD_TextCharSet {
  373. DVD_CharSet_Unicode = 0,
  374. DVD_CharSet_ISO646 = 1,
  375. DVD_CharSet_JIS_Roman_Kanji = 2,
  376. DVD_CharSet_ISO8859_1 = 3,
  377. DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
  378. };
  379. typedef struct tagDVD_AudioAttributes {
  380. DVD_AUDIO_APPMODE AppMode;
  381. BYTE AppModeData;
  382. DVD_AUDIO_FORMAT AudioFormat;
  383. LCID Language;
  384. DVD_AUDIO_LANG_EXT LanguageExtension;
  385. WINBOOL fHasMultichannelInfo;
  386. DWORD dwFrequency;
  387. BYTE bQuantization;
  388. BYTE bNumberOfChannels;
  389. DWORD dwReserved[2];
  390. } DVD_AudioAttributes;
  391. typedef struct tagDVD_MultichannelAudioAttributes {
  392. DVD_MUA_MixingInfo Info[8];
  393. DVD_MUA_Coeff Coeff[8];
  394. } DVD_MultichannelAudioAttributes;
  395. typedef struct tagDVD_VideoAttributes {
  396. WINBOOL fPanscanPermitted;
  397. WINBOOL fLetterboxPermitted;
  398. ULONG ulAspectX;
  399. ULONG ulAspectY;
  400. ULONG ulFrameRate;
  401. ULONG ulFrameHeight;
  402. DVD_VIDEO_COMPRESSION Compression;
  403. WINBOOL fLine21Field1InGOP;
  404. WINBOOL fLine21Field2InGOP;
  405. ULONG ulSourceResolutionX;
  406. ULONG ulSourceResolutionY;
  407. WINBOOL fIsSourceLetterboxed;
  408. WINBOOL fIsFilmMode;
  409. } DVD_VideoAttributes;
  410. typedef struct tagDVD_SubpictureAttributes {
  411. DVD_SUBPICTURE_TYPE Type;
  412. DVD_SUBPICTURE_CODING CodingMode;
  413. LCID Language;
  414. DVD_SUBPICTURE_LANG_EXT LanguageExtension;
  415. } DVD_SubpictureAttributes;
  416. typedef struct tagDVD_KaraokeAttributes {
  417. BYTE bVersion;
  418. WINBOOL fMasterOfCeremoniesInGuideVocal1;
  419. WINBOOL fDuet;
  420. DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
  421. WORD wChannelContents[8];
  422. } DVD_KaraokeAttributes;
  423. typedef struct tagDVD_TitleMainAttributes {
  424. union {
  425. DVD_TITLE_APPMODE AppMode;
  426. DVD_HMSF_TIMECODE TitleLength;
  427. } DUMMYUNIONNAME;
  428. DVD_VideoAttributes VideoAttributes;
  429. ULONG ulNumberOfAudioStreams;
  430. DVD_AudioAttributes AudioAttributes[8];
  431. DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
  432. ULONG ulNumberOfSubpictureStreams;
  433. DVD_SubpictureAttributes SubpictureAttributes[32];
  434. } DVD_TitleAttributes;
  435. typedef struct tagDVD_MenuAttributes {
  436. WINBOOL fCompatibleRegion[8];
  437. DVD_VideoAttributes VideoAttributes;
  438. WINBOOL fAudioPresent;
  439. DVD_AudioAttributes AudioAttributes;
  440. WINBOOL fSubpicturePresent;
  441. DVD_SubpictureAttributes SubpictureAttributes;
  442. } DVD_MenuAttributes;
  443. #define DVD_TITLE_MENU 0x000
  444. #define DVD_STREAM_DATA_VMGM 0x400
  445. #define DVD_STREAM_DATA_VTSM 0x401
  446. #define DVD_STREAM_DATA_CURRENT 0x800
  447. #define DVD_DEFAULT_AUDIO_STREAM 0x00f
  448. #define DVD_AUDIO_CAPS_AC3 0x00000001
  449. #define DVD_AUDIO_CAPS_MPEG2 0x00000002
  450. #define DVD_AUDIO_CAPS_LPCM 0x00000004
  451. #define DVD_AUDIO_CAPS_DTS 0x00000008
  452. #define DVD_AUDIO_CAPS_SDDS 0x00000010
  453. typedef struct tagDVD_DECODER_CAPS {
  454. DWORD dwSize;
  455. DWORD dwAudioCaps;
  456. double dFwdMaxRateVideo;
  457. double dFwdMaxRateAudio;
  458. double dFwdMaxRateSP;
  459. double dBwdMaxRateVideo;
  460. double dBwdMaxRateAudio;
  461. double dBwdMaxRateSP;
  462. DWORD dwRes1;
  463. DWORD dwRes2;
  464. DWORD dwRes3;
  465. DWORD dwRes4;
  466. } DVD_DECODER_CAPS;
  467. typedef enum _AM_DVD_GRAPH_FLAGS {
  468. AM_DVD_HWDEC_PREFER = 0x1,
  469. AM_DVD_HWDEC_ONLY = 0x2,
  470. AM_DVD_SWDEC_PREFER = 0x4,
  471. AM_DVD_SWDEC_ONLY = 0x8,
  472. AM_DVD_NOVPE = 0x100,
  473. AM_DVD_DO_NOT_CLEAR = 0x200,
  474. AM_DVD_VMR9_ONLY = 0x800,
  475. AM_DVD_EVR_ONLY = 0x1000,
  476. AM_DVD_EVR_QOS = 0x2000,
  477. AM_DVD_ADAPT_GRAPH = 0x4000,
  478. AM_DVD_MASK = 0xffff
  479. } AM_DVD_GRAPH_FLAGS;
  480. typedef enum _AM_DVD_STREAM_FLAGS {
  481. AM_DVD_STREAM_VIDEO = 0x1,
  482. AM_DVD_STREAM_AUDIO = 0x2,
  483. AM_DVD_STREAM_SUBPIC = 0x4
  484. } AM_DVD_STREAM_FLAGS;
  485. typedef struct tagAM_DVD_RENDERSTATUS {
  486. HRESULT hrVPEStatus;
  487. WINBOOL bDvdVolInvalid;
  488. WINBOOL bDvdVolUnknown;
  489. WINBOOL bNoLine21In;
  490. WINBOOL bNoLine21Out;
  491. int iNumStreams;
  492. int iNumStreamsFailed;
  493. DWORD dwFailedStreamsFlag;
  494. } AM_DVD_RENDERSTATUS;
  495. /*****************************************************************************
  496. * IDvdControl interface
  497. */
  498. #ifndef __IDvdControl_INTERFACE_DEFINED__
  499. #define __IDvdControl_INTERFACE_DEFINED__
  500. DEFINE_GUID(IID_IDvdControl, 0xa70efe61, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93);
  501. #if defined(__cplusplus) && !defined(CINTERFACE)
  502. MIDL_INTERFACE("a70efe61-e2a3-11d0-a9be-00aa0061be93")
  503. IDvdControl : public IUnknown
  504. {
  505. virtual HRESULT STDMETHODCALLTYPE TitlePlay(
  506. ULONG title) = 0;
  507. virtual HRESULT STDMETHODCALLTYPE ChapterPlay(
  508. ULONG title,
  509. ULONG chapter) = 0;
  510. virtual HRESULT STDMETHODCALLTYPE TimePlay(
  511. ULONG title,
  512. ULONG time) = 0;
  513. virtual HRESULT STDMETHODCALLTYPE StopForResume(
  514. ) = 0;
  515. virtual HRESULT STDMETHODCALLTYPE GoUp(
  516. ) = 0;
  517. virtual HRESULT STDMETHODCALLTYPE TimeSearch(
  518. ULONG time) = 0;
  519. virtual HRESULT STDMETHODCALLTYPE ChapterSearch(
  520. ULONG chapter) = 0;
  521. virtual HRESULT STDMETHODCALLTYPE PrevPGSearch(
  522. ) = 0;
  523. virtual HRESULT STDMETHODCALLTYPE TopPGSearch(
  524. ) = 0;
  525. virtual HRESULT STDMETHODCALLTYPE NextPGSearch(
  526. ) = 0;
  527. virtual HRESULT STDMETHODCALLTYPE ForwardScan(
  528. double speed) = 0;
  529. virtual HRESULT STDMETHODCALLTYPE BackwardScan(
  530. double speed) = 0;
  531. virtual HRESULT STDMETHODCALLTYPE MenuCall(
  532. DVD_MENU_ID id) = 0;
  533. virtual HRESULT STDMETHODCALLTYPE Resume(
  534. ) = 0;
  535. virtual HRESULT STDMETHODCALLTYPE UpperButtonSelect(
  536. ) = 0;
  537. virtual HRESULT STDMETHODCALLTYPE LowerButtonSelect(
  538. ) = 0;
  539. virtual HRESULT STDMETHODCALLTYPE LeftButtonSelect(
  540. ) = 0;
  541. virtual HRESULT STDMETHODCALLTYPE RightButtonSelect(
  542. ) = 0;
  543. virtual HRESULT STDMETHODCALLTYPE ButtonActivate(
  544. ) = 0;
  545. virtual HRESULT STDMETHODCALLTYPE ButtonSelectActivate(
  546. ULONG button) = 0;
  547. virtual HRESULT STDMETHODCALLTYPE StillOff(
  548. ) = 0;
  549. virtual HRESULT STDMETHODCALLTYPE PauseOn(
  550. ) = 0;
  551. virtual HRESULT STDMETHODCALLTYPE PauseOff(
  552. ) = 0;
  553. virtual HRESULT STDMETHODCALLTYPE MenuLanguageSelect(
  554. LCID language) = 0;
  555. virtual HRESULT STDMETHODCALLTYPE AudioStreamChange(
  556. ULONG audio) = 0;
  557. virtual HRESULT STDMETHODCALLTYPE SubpictureStreamChange(
  558. ULONG subpicture,
  559. WINBOOL enable) = 0;
  560. virtual HRESULT STDMETHODCALLTYPE AngleChange(
  561. ULONG angle) = 0;
  562. virtual HRESULT STDMETHODCALLTYPE ParentalLevelSelect(
  563. ULONG level) = 0;
  564. virtual HRESULT STDMETHODCALLTYPE ParentalCountrySelect(
  565. WORD country) = 0;
  566. virtual HRESULT STDMETHODCALLTYPE KaraokeAudioPresentationModeChange(
  567. ULONG mode) = 0;
  568. virtual HRESULT STDMETHODCALLTYPE VideoModePreference(
  569. ULONG mode) = 0;
  570. virtual HRESULT STDMETHODCALLTYPE SetRoot(
  571. const WCHAR *path) = 0;
  572. virtual HRESULT STDMETHODCALLTYPE MouseActivate(
  573. POINT point) = 0;
  574. virtual HRESULT STDMETHODCALLTYPE MouseSelect(
  575. POINT point) = 0;
  576. virtual HRESULT STDMETHODCALLTYPE ChapterPlayAutoStop(
  577. ULONG title,
  578. ULONG chapter,
  579. ULONG count) = 0;
  580. };
  581. #ifdef __CRT_UUID_DECL
  582. __CRT_UUID_DECL(IDvdControl, 0xa70efe61, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93)
  583. #endif
  584. #else
  585. typedef struct IDvdControlVtbl {
  586. BEGIN_INTERFACE
  587. /*** IUnknown methods ***/
  588. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  589. IDvdControl *This,
  590. REFIID riid,
  591. void **ppvObject);
  592. ULONG (STDMETHODCALLTYPE *AddRef)(
  593. IDvdControl *This);
  594. ULONG (STDMETHODCALLTYPE *Release)(
  595. IDvdControl *This);
  596. /*** IDvdControl methods ***/
  597. HRESULT (STDMETHODCALLTYPE *TitlePlay)(
  598. IDvdControl *This,
  599. ULONG title);
  600. HRESULT (STDMETHODCALLTYPE *ChapterPlay)(
  601. IDvdControl *This,
  602. ULONG title,
  603. ULONG chapter);
  604. HRESULT (STDMETHODCALLTYPE *TimePlay)(
  605. IDvdControl *This,
  606. ULONG title,
  607. ULONG time);
  608. HRESULT (STDMETHODCALLTYPE *StopForResume)(
  609. IDvdControl *This);
  610. HRESULT (STDMETHODCALLTYPE *GoUp)(
  611. IDvdControl *This);
  612. HRESULT (STDMETHODCALLTYPE *TimeSearch)(
  613. IDvdControl *This,
  614. ULONG time);
  615. HRESULT (STDMETHODCALLTYPE *ChapterSearch)(
  616. IDvdControl *This,
  617. ULONG chapter);
  618. HRESULT (STDMETHODCALLTYPE *PrevPGSearch)(
  619. IDvdControl *This);
  620. HRESULT (STDMETHODCALLTYPE *TopPGSearch)(
  621. IDvdControl *This);
  622. HRESULT (STDMETHODCALLTYPE *NextPGSearch)(
  623. IDvdControl *This);
  624. HRESULT (STDMETHODCALLTYPE *ForwardScan)(
  625. IDvdControl *This,
  626. double speed);
  627. HRESULT (STDMETHODCALLTYPE *BackwardScan)(
  628. IDvdControl *This,
  629. double speed);
  630. HRESULT (STDMETHODCALLTYPE *MenuCall)(
  631. IDvdControl *This,
  632. DVD_MENU_ID id);
  633. HRESULT (STDMETHODCALLTYPE *Resume)(
  634. IDvdControl *This);
  635. HRESULT (STDMETHODCALLTYPE *UpperButtonSelect)(
  636. IDvdControl *This);
  637. HRESULT (STDMETHODCALLTYPE *LowerButtonSelect)(
  638. IDvdControl *This);
  639. HRESULT (STDMETHODCALLTYPE *LeftButtonSelect)(
  640. IDvdControl *This);
  641. HRESULT (STDMETHODCALLTYPE *RightButtonSelect)(
  642. IDvdControl *This);
  643. HRESULT (STDMETHODCALLTYPE *ButtonActivate)(
  644. IDvdControl *This);
  645. HRESULT (STDMETHODCALLTYPE *ButtonSelectActivate)(
  646. IDvdControl *This,
  647. ULONG button);
  648. HRESULT (STDMETHODCALLTYPE *StillOff)(
  649. IDvdControl *This);
  650. HRESULT (STDMETHODCALLTYPE *PauseOn)(
  651. IDvdControl *This);
  652. HRESULT (STDMETHODCALLTYPE *PauseOff)(
  653. IDvdControl *This);
  654. HRESULT (STDMETHODCALLTYPE *MenuLanguageSelect)(
  655. IDvdControl *This,
  656. LCID language);
  657. HRESULT (STDMETHODCALLTYPE *AudioStreamChange)(
  658. IDvdControl *This,
  659. ULONG audio);
  660. HRESULT (STDMETHODCALLTYPE *SubpictureStreamChange)(
  661. IDvdControl *This,
  662. ULONG subpicture,
  663. WINBOOL enable);
  664. HRESULT (STDMETHODCALLTYPE *AngleChange)(
  665. IDvdControl *This,
  666. ULONG angle);
  667. HRESULT (STDMETHODCALLTYPE *ParentalLevelSelect)(
  668. IDvdControl *This,
  669. ULONG level);
  670. HRESULT (STDMETHODCALLTYPE *ParentalCountrySelect)(
  671. IDvdControl *This,
  672. WORD country);
  673. HRESULT (STDMETHODCALLTYPE *KaraokeAudioPresentationModeChange)(
  674. IDvdControl *This,
  675. ULONG mode);
  676. HRESULT (STDMETHODCALLTYPE *VideoModePreference)(
  677. IDvdControl *This,
  678. ULONG mode);
  679. HRESULT (STDMETHODCALLTYPE *SetRoot)(
  680. IDvdControl *This,
  681. const WCHAR *path);
  682. HRESULT (STDMETHODCALLTYPE *MouseActivate)(
  683. IDvdControl *This,
  684. POINT point);
  685. HRESULT (STDMETHODCALLTYPE *MouseSelect)(
  686. IDvdControl *This,
  687. POINT point);
  688. HRESULT (STDMETHODCALLTYPE *ChapterPlayAutoStop)(
  689. IDvdControl *This,
  690. ULONG title,
  691. ULONG chapter,
  692. ULONG count);
  693. END_INTERFACE
  694. } IDvdControlVtbl;
  695. interface IDvdControl {
  696. CONST_VTBL IDvdControlVtbl* lpVtbl;
  697. };
  698. #ifdef COBJMACROS
  699. #ifndef WIDL_C_INLINE_WRAPPERS
  700. /*** IUnknown methods ***/
  701. #define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  702. #define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  703. #define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
  704. /*** IDvdControl methods ***/
  705. #define IDvdControl_TitlePlay(This,title) (This)->lpVtbl->TitlePlay(This,title)
  706. #define IDvdControl_ChapterPlay(This,title,chapter) (This)->lpVtbl->ChapterPlay(This,title,chapter)
  707. #define IDvdControl_TimePlay(This,title,time) (This)->lpVtbl->TimePlay(This,title,time)
  708. #define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
  709. #define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
  710. #define IDvdControl_TimeSearch(This,time) (This)->lpVtbl->TimeSearch(This,time)
  711. #define IDvdControl_ChapterSearch(This,chapter) (This)->lpVtbl->ChapterSearch(This,chapter)
  712. #define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
  713. #define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
  714. #define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
  715. #define IDvdControl_ForwardScan(This,speed) (This)->lpVtbl->ForwardScan(This,speed)
  716. #define IDvdControl_BackwardScan(This,speed) (This)->lpVtbl->BackwardScan(This,speed)
  717. #define IDvdControl_MenuCall(This,id) (This)->lpVtbl->MenuCall(This,id)
  718. #define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
  719. #define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
  720. #define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
  721. #define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
  722. #define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
  723. #define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
  724. #define IDvdControl_ButtonSelectActivate(This,button) (This)->lpVtbl->ButtonSelectActivate(This,button)
  725. #define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
  726. #define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
  727. #define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
  728. #define IDvdControl_MenuLanguageSelect(This,language) (This)->lpVtbl->MenuLanguageSelect(This,language)
  729. #define IDvdControl_AudioStreamChange(This,audio) (This)->lpVtbl->AudioStreamChange(This,audio)
  730. #define IDvdControl_SubpictureStreamChange(This,subpicture,enable) (This)->lpVtbl->SubpictureStreamChange(This,subpicture,enable)
  731. #define IDvdControl_AngleChange(This,angle) (This)->lpVtbl->AngleChange(This,angle)
  732. #define IDvdControl_ParentalLevelSelect(This,level) (This)->lpVtbl->ParentalLevelSelect(This,level)
  733. #define IDvdControl_ParentalCountrySelect(This,country) (This)->lpVtbl->ParentalCountrySelect(This,country)
  734. #define IDvdControl_KaraokeAudioPresentationModeChange(This,mode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,mode)
  735. #define IDvdControl_VideoModePreference(This,mode) (This)->lpVtbl->VideoModePreference(This,mode)
  736. #define IDvdControl_SetRoot(This,path) (This)->lpVtbl->SetRoot(This,path)
  737. #define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
  738. #define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
  739. #define IDvdControl_ChapterPlayAutoStop(This,title,chapter,count) (This)->lpVtbl->ChapterPlayAutoStop(This,title,chapter,count)
  740. #else
  741. /*** IUnknown methods ***/
  742. static FORCEINLINE HRESULT IDvdControl_QueryInterface(IDvdControl* This,REFIID riid,void **ppvObject) {
  743. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  744. }
  745. static FORCEINLINE ULONG IDvdControl_AddRef(IDvdControl* This) {
  746. return This->lpVtbl->AddRef(This);
  747. }
  748. static FORCEINLINE ULONG IDvdControl_Release(IDvdControl* This) {
  749. return This->lpVtbl->Release(This);
  750. }
  751. /*** IDvdControl methods ***/
  752. static FORCEINLINE HRESULT IDvdControl_TitlePlay(IDvdControl* This,ULONG title) {
  753. return This->lpVtbl->TitlePlay(This,title);
  754. }
  755. static FORCEINLINE HRESULT IDvdControl_ChapterPlay(IDvdControl* This,ULONG title,ULONG chapter) {
  756. return This->lpVtbl->ChapterPlay(This,title,chapter);
  757. }
  758. static FORCEINLINE HRESULT IDvdControl_TimePlay(IDvdControl* This,ULONG title,ULONG time) {
  759. return This->lpVtbl->TimePlay(This,title,time);
  760. }
  761. static FORCEINLINE HRESULT IDvdControl_StopForResume(IDvdControl* This) {
  762. return This->lpVtbl->StopForResume(This);
  763. }
  764. static FORCEINLINE HRESULT IDvdControl_GoUp(IDvdControl* This) {
  765. return This->lpVtbl->GoUp(This);
  766. }
  767. static FORCEINLINE HRESULT IDvdControl_TimeSearch(IDvdControl* This,ULONG time) {
  768. return This->lpVtbl->TimeSearch(This,time);
  769. }
  770. static FORCEINLINE HRESULT IDvdControl_ChapterSearch(IDvdControl* This,ULONG chapter) {
  771. return This->lpVtbl->ChapterSearch(This,chapter);
  772. }
  773. static FORCEINLINE HRESULT IDvdControl_PrevPGSearch(IDvdControl* This) {
  774. return This->lpVtbl->PrevPGSearch(This);
  775. }
  776. static FORCEINLINE HRESULT IDvdControl_TopPGSearch(IDvdControl* This) {
  777. return This->lpVtbl->TopPGSearch(This);
  778. }
  779. static FORCEINLINE HRESULT IDvdControl_NextPGSearch(IDvdControl* This) {
  780. return This->lpVtbl->NextPGSearch(This);
  781. }
  782. static FORCEINLINE HRESULT IDvdControl_ForwardScan(IDvdControl* This,double speed) {
  783. return This->lpVtbl->ForwardScan(This,speed);
  784. }
  785. static FORCEINLINE HRESULT IDvdControl_BackwardScan(IDvdControl* This,double speed) {
  786. return This->lpVtbl->BackwardScan(This,speed);
  787. }
  788. static FORCEINLINE HRESULT IDvdControl_MenuCall(IDvdControl* This,DVD_MENU_ID id) {
  789. return This->lpVtbl->MenuCall(This,id);
  790. }
  791. static FORCEINLINE HRESULT IDvdControl_Resume(IDvdControl* This) {
  792. return This->lpVtbl->Resume(This);
  793. }
  794. static FORCEINLINE HRESULT IDvdControl_UpperButtonSelect(IDvdControl* This) {
  795. return This->lpVtbl->UpperButtonSelect(This);
  796. }
  797. static FORCEINLINE HRESULT IDvdControl_LowerButtonSelect(IDvdControl* This) {
  798. return This->lpVtbl->LowerButtonSelect(This);
  799. }
  800. static FORCEINLINE HRESULT IDvdControl_LeftButtonSelect(IDvdControl* This) {
  801. return This->lpVtbl->LeftButtonSelect(This);
  802. }
  803. static FORCEINLINE HRESULT IDvdControl_RightButtonSelect(IDvdControl* This) {
  804. return This->lpVtbl->RightButtonSelect(This);
  805. }
  806. static FORCEINLINE HRESULT IDvdControl_ButtonActivate(IDvdControl* This) {
  807. return This->lpVtbl->ButtonActivate(This);
  808. }
  809. static FORCEINLINE HRESULT IDvdControl_ButtonSelectActivate(IDvdControl* This,ULONG button) {
  810. return This->lpVtbl->ButtonSelectActivate(This,button);
  811. }
  812. static FORCEINLINE HRESULT IDvdControl_StillOff(IDvdControl* This) {
  813. return This->lpVtbl->StillOff(This);
  814. }
  815. static FORCEINLINE HRESULT IDvdControl_PauseOn(IDvdControl* This) {
  816. return This->lpVtbl->PauseOn(This);
  817. }
  818. static FORCEINLINE HRESULT IDvdControl_PauseOff(IDvdControl* This) {
  819. return This->lpVtbl->PauseOff(This);
  820. }
  821. static FORCEINLINE HRESULT IDvdControl_MenuLanguageSelect(IDvdControl* This,LCID language) {
  822. return This->lpVtbl->MenuLanguageSelect(This,language);
  823. }
  824. static FORCEINLINE HRESULT IDvdControl_AudioStreamChange(IDvdControl* This,ULONG audio) {
  825. return This->lpVtbl->AudioStreamChange(This,audio);
  826. }
  827. static FORCEINLINE HRESULT IDvdControl_SubpictureStreamChange(IDvdControl* This,ULONG subpicture,WINBOOL enable) {
  828. return This->lpVtbl->SubpictureStreamChange(This,subpicture,enable);
  829. }
  830. static FORCEINLINE HRESULT IDvdControl_AngleChange(IDvdControl* This,ULONG angle) {
  831. return This->lpVtbl->AngleChange(This,angle);
  832. }
  833. static FORCEINLINE HRESULT IDvdControl_ParentalLevelSelect(IDvdControl* This,ULONG level) {
  834. return This->lpVtbl->ParentalLevelSelect(This,level);
  835. }
  836. static FORCEINLINE HRESULT IDvdControl_ParentalCountrySelect(IDvdControl* This,WORD country) {
  837. return This->lpVtbl->ParentalCountrySelect(This,country);
  838. }
  839. static FORCEINLINE HRESULT IDvdControl_KaraokeAudioPresentationModeChange(IDvdControl* This,ULONG mode) {
  840. return This->lpVtbl->KaraokeAudioPresentationModeChange(This,mode);
  841. }
  842. static FORCEINLINE HRESULT IDvdControl_VideoModePreference(IDvdControl* This,ULONG mode) {
  843. return This->lpVtbl->VideoModePreference(This,mode);
  844. }
  845. static FORCEINLINE HRESULT IDvdControl_SetRoot(IDvdControl* This,const WCHAR *path) {
  846. return This->lpVtbl->SetRoot(This,path);
  847. }
  848. static FORCEINLINE HRESULT IDvdControl_MouseActivate(IDvdControl* This,POINT point) {
  849. return This->lpVtbl->MouseActivate(This,point);
  850. }
  851. static FORCEINLINE HRESULT IDvdControl_MouseSelect(IDvdControl* This,POINT point) {
  852. return This->lpVtbl->MouseSelect(This,point);
  853. }
  854. static FORCEINLINE HRESULT IDvdControl_ChapterPlayAutoStop(IDvdControl* This,ULONG title,ULONG chapter,ULONG count) {
  855. return This->lpVtbl->ChapterPlayAutoStop(This,title,chapter,count);
  856. }
  857. #endif
  858. #endif
  859. #endif
  860. #endif /* __IDvdControl_INTERFACE_DEFINED__ */
  861. /*****************************************************************************
  862. * IDvdInfo interface
  863. */
  864. #ifndef __IDvdInfo_INTERFACE_DEFINED__
  865. #define __IDvdInfo_INTERFACE_DEFINED__
  866. DEFINE_GUID(IID_IDvdInfo, 0xa70efe60, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93);
  867. #if defined(__cplusplus) && !defined(CINTERFACE)
  868. MIDL_INTERFACE("a70efe60-e2a3-11d0-a9be-00aa0061be93")
  869. IDvdInfo : public IUnknown
  870. {
  871. virtual HRESULT STDMETHODCALLTYPE GetCurrentDomain(
  872. DVD_DOMAIN *domain) = 0;
  873. virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation(
  874. DVD_PLAYBACK_LOCATION *location) = 0;
  875. virtual HRESULT STDMETHODCALLTYPE GetTotalTitleTime(
  876. ULONG *time) = 0;
  877. virtual HRESULT STDMETHODCALLTYPE GetCurrentButton(
  878. ULONG *count,
  879. ULONG *current) = 0;
  880. virtual HRESULT STDMETHODCALLTYPE GetCurrentAngle(
  881. ULONG *count,
  882. ULONG *current) = 0;
  883. virtual HRESULT STDMETHODCALLTYPE GetCurrentAudio(
  884. ULONG *count,
  885. ULONG *current) = 0;
  886. virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpicture(
  887. ULONG *count,
  888. ULONG *current,
  889. WINBOOL *enable) = 0;
  890. virtual HRESULT STDMETHODCALLTYPE GetCurrentUOPS(
  891. VALID_UOP_SOMTHING_OR_OTHER *uops) = 0;
  892. virtual HRESULT STDMETHODCALLTYPE GetAllSPRMs(
  893. SPRMARRAY *regs) = 0;
  894. virtual HRESULT STDMETHODCALLTYPE GetAllGPRMs(
  895. GPRMARRAY *regs) = 0;
  896. virtual HRESULT STDMETHODCALLTYPE GetAudioLanguage(
  897. ULONG stream,
  898. LCID *language) = 0;
  899. virtual HRESULT STDMETHODCALLTYPE GetSubpictureLanguage(
  900. ULONG stream,
  901. LCID *language) = 0;
  902. virtual HRESULT STDMETHODCALLTYPE GetTitleAttributes(
  903. ULONG title,
  904. DVD_ATR *attr) = 0;
  905. virtual HRESULT STDMETHODCALLTYPE GetVMGAttributes(
  906. DVD_ATR *attr) = 0;
  907. virtual HRESULT STDMETHODCALLTYPE GetCurrentVideoAttributes(
  908. DVD_VideoATR *attr) = 0;
  909. virtual HRESULT STDMETHODCALLTYPE GetCurrentAudioAttributes(
  910. DVD_AudioATR *attr) = 0;
  911. virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpictureAttributes(
  912. DVD_SubpictureATR *attr) = 0;
  913. virtual HRESULT STDMETHODCALLTYPE GetCurrentVolumeInfo(
  914. ULONG *volume_count,
  915. ULONG *current,
  916. DVD_DISC_SIDE *side,
  917. ULONG *title_count) = 0;
  918. virtual HRESULT STDMETHODCALLTYPE GetDVDTextInfo(
  919. BYTE *text_manager,
  920. ULONG size,
  921. ULONG *ret_size) = 0;
  922. virtual HRESULT STDMETHODCALLTYPE GetPlayerParentalLevel(
  923. ULONG *level,
  924. ULONG *country_code) = 0;
  925. virtual HRESULT STDMETHODCALLTYPE GetNumberOfChapters(
  926. ULONG title,
  927. ULONG *count) = 0;
  928. virtual HRESULT STDMETHODCALLTYPE GetTitleParentalLevels(
  929. ULONG title,
  930. ULONG *levels) = 0;
  931. virtual HRESULT STDMETHODCALLTYPE GetRoot(
  932. char *path,
  933. ULONG size,
  934. ULONG *ret_size) = 0;
  935. };
  936. #ifdef __CRT_UUID_DECL
  937. __CRT_UUID_DECL(IDvdInfo, 0xa70efe60, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93)
  938. #endif
  939. #else
  940. typedef struct IDvdInfoVtbl {
  941. BEGIN_INTERFACE
  942. /*** IUnknown methods ***/
  943. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  944. IDvdInfo *This,
  945. REFIID riid,
  946. void **ppvObject);
  947. ULONG (STDMETHODCALLTYPE *AddRef)(
  948. IDvdInfo *This);
  949. ULONG (STDMETHODCALLTYPE *Release)(
  950. IDvdInfo *This);
  951. /*** IDvdInfo methods ***/
  952. HRESULT (STDMETHODCALLTYPE *GetCurrentDomain)(
  953. IDvdInfo *This,
  954. DVD_DOMAIN *domain);
  955. HRESULT (STDMETHODCALLTYPE *GetCurrentLocation)(
  956. IDvdInfo *This,
  957. DVD_PLAYBACK_LOCATION *location);
  958. HRESULT (STDMETHODCALLTYPE *GetTotalTitleTime)(
  959. IDvdInfo *This,
  960. ULONG *time);
  961. HRESULT (STDMETHODCALLTYPE *GetCurrentButton)(
  962. IDvdInfo *This,
  963. ULONG *count,
  964. ULONG *current);
  965. HRESULT (STDMETHODCALLTYPE *GetCurrentAngle)(
  966. IDvdInfo *This,
  967. ULONG *count,
  968. ULONG *current);
  969. HRESULT (STDMETHODCALLTYPE *GetCurrentAudio)(
  970. IDvdInfo *This,
  971. ULONG *count,
  972. ULONG *current);
  973. HRESULT (STDMETHODCALLTYPE *GetCurrentSubpicture)(
  974. IDvdInfo *This,
  975. ULONG *count,
  976. ULONG *current,
  977. WINBOOL *enable);
  978. HRESULT (STDMETHODCALLTYPE *GetCurrentUOPS)(
  979. IDvdInfo *This,
  980. VALID_UOP_SOMTHING_OR_OTHER *uops);
  981. HRESULT (STDMETHODCALLTYPE *GetAllSPRMs)(
  982. IDvdInfo *This,
  983. SPRMARRAY *regs);
  984. HRESULT (STDMETHODCALLTYPE *GetAllGPRMs)(
  985. IDvdInfo *This,
  986. GPRMARRAY *regs);
  987. HRESULT (STDMETHODCALLTYPE *GetAudioLanguage)(
  988. IDvdInfo *This,
  989. ULONG stream,
  990. LCID *language);
  991. HRESULT (STDMETHODCALLTYPE *GetSubpictureLanguage)(
  992. IDvdInfo *This,
  993. ULONG stream,
  994. LCID *language);
  995. HRESULT (STDMETHODCALLTYPE *GetTitleAttributes)(
  996. IDvdInfo *This,
  997. ULONG title,
  998. DVD_ATR *attr);
  999. HRESULT (STDMETHODCALLTYPE *GetVMGAttributes)(
  1000. IDvdInfo *This,
  1001. DVD_ATR *attr);
  1002. HRESULT (STDMETHODCALLTYPE *GetCurrentVideoAttributes)(
  1003. IDvdInfo *This,
  1004. DVD_VideoATR *attr);
  1005. HRESULT (STDMETHODCALLTYPE *GetCurrentAudioAttributes)(
  1006. IDvdInfo *This,
  1007. DVD_AudioATR *attr);
  1008. HRESULT (STDMETHODCALLTYPE *GetCurrentSubpictureAttributes)(
  1009. IDvdInfo *This,
  1010. DVD_SubpictureATR *attr);
  1011. HRESULT (STDMETHODCALLTYPE *GetCurrentVolumeInfo)(
  1012. IDvdInfo *This,
  1013. ULONG *volume_count,
  1014. ULONG *current,
  1015. DVD_DISC_SIDE *side,
  1016. ULONG *title_count);
  1017. HRESULT (STDMETHODCALLTYPE *GetDVDTextInfo)(
  1018. IDvdInfo *This,
  1019. BYTE *text_manager,
  1020. ULONG size,
  1021. ULONG *ret_size);
  1022. HRESULT (STDMETHODCALLTYPE *GetPlayerParentalLevel)(
  1023. IDvdInfo *This,
  1024. ULONG *level,
  1025. ULONG *country_code);
  1026. HRESULT (STDMETHODCALLTYPE *GetNumberOfChapters)(
  1027. IDvdInfo *This,
  1028. ULONG title,
  1029. ULONG *count);
  1030. HRESULT (STDMETHODCALLTYPE *GetTitleParentalLevels)(
  1031. IDvdInfo *This,
  1032. ULONG title,
  1033. ULONG *levels);
  1034. HRESULT (STDMETHODCALLTYPE *GetRoot)(
  1035. IDvdInfo *This,
  1036. char *path,
  1037. ULONG size,
  1038. ULONG *ret_size);
  1039. END_INTERFACE
  1040. } IDvdInfoVtbl;
  1041. interface IDvdInfo {
  1042. CONST_VTBL IDvdInfoVtbl* lpVtbl;
  1043. };
  1044. #ifdef COBJMACROS
  1045. #ifndef WIDL_C_INLINE_WRAPPERS
  1046. /*** IUnknown methods ***/
  1047. #define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1048. #define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  1049. #define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
  1050. /*** IDvdInfo methods ***/
  1051. #define IDvdInfo_GetCurrentDomain(This,domain) (This)->lpVtbl->GetCurrentDomain(This,domain)
  1052. #define IDvdInfo_GetCurrentLocation(This,location) (This)->lpVtbl->GetCurrentLocation(This,location)
  1053. #define IDvdInfo_GetTotalTitleTime(This,time) (This)->lpVtbl->GetTotalTitleTime(This,time)
  1054. #define IDvdInfo_GetCurrentButton(This,count,current) (This)->lpVtbl->GetCurrentButton(This,count,current)
  1055. #define IDvdInfo_GetCurrentAngle(This,count,current) (This)->lpVtbl->GetCurrentAngle(This,count,current)
  1056. #define IDvdInfo_GetCurrentAudio(This,count,current) (This)->lpVtbl->GetCurrentAudio(This,count,current)
  1057. #define IDvdInfo_GetCurrentSubpicture(This,count,current,enable) (This)->lpVtbl->GetCurrentSubpicture(This,count,current,enable)
  1058. #define IDvdInfo_GetCurrentUOPS(This,uops) (This)->lpVtbl->GetCurrentUOPS(This,uops)
  1059. #define IDvdInfo_GetAllSPRMs(This,regs) (This)->lpVtbl->GetAllSPRMs(This,regs)
  1060. #define IDvdInfo_GetAllGPRMs(This,regs) (This)->lpVtbl->GetAllGPRMs(This,regs)
  1061. #define IDvdInfo_GetAudioLanguage(This,stream,language) (This)->lpVtbl->GetAudioLanguage(This,stream,language)
  1062. #define IDvdInfo_GetSubpictureLanguage(This,stream,language) (This)->lpVtbl->GetSubpictureLanguage(This,stream,language)
  1063. #define IDvdInfo_GetTitleAttributes(This,title,attr) (This)->lpVtbl->GetTitleAttributes(This,title,attr)
  1064. #define IDvdInfo_GetVMGAttributes(This,attr) (This)->lpVtbl->GetVMGAttributes(This,attr)
  1065. #define IDvdInfo_GetCurrentVideoAttributes(This,attr) (This)->lpVtbl->GetCurrentVideoAttributes(This,attr)
  1066. #define IDvdInfo_GetCurrentAudioAttributes(This,attr) (This)->lpVtbl->GetCurrentAudioAttributes(This,attr)
  1067. #define IDvdInfo_GetCurrentSubpictureAttributes(This,attr) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,attr)
  1068. #define IDvdInfo_GetCurrentVolumeInfo(This,volume_count,current,side,title_count) (This)->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count)
  1069. #define IDvdInfo_GetDVDTextInfo(This,text_manager,size,ret_size) (This)->lpVtbl->GetDVDTextInfo(This,text_manager,size,ret_size)
  1070. #define IDvdInfo_GetPlayerParentalLevel(This,level,country_code) (This)->lpVtbl->GetPlayerParentalLevel(This,level,country_code)
  1071. #define IDvdInfo_GetNumberOfChapters(This,title,count) (This)->lpVtbl->GetNumberOfChapters(This,title,count)
  1072. #define IDvdInfo_GetTitleParentalLevels(This,title,levels) (This)->lpVtbl->GetTitleParentalLevels(This,title,levels)
  1073. #define IDvdInfo_GetRoot(This,path,size,ret_size) (This)->lpVtbl->GetRoot(This,path,size,ret_size)
  1074. #else
  1075. /*** IUnknown methods ***/
  1076. static FORCEINLINE HRESULT IDvdInfo_QueryInterface(IDvdInfo* This,REFIID riid,void **ppvObject) {
  1077. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1078. }
  1079. static FORCEINLINE ULONG IDvdInfo_AddRef(IDvdInfo* This) {
  1080. return This->lpVtbl->AddRef(This);
  1081. }
  1082. static FORCEINLINE ULONG IDvdInfo_Release(IDvdInfo* This) {
  1083. return This->lpVtbl->Release(This);
  1084. }
  1085. /*** IDvdInfo methods ***/
  1086. static FORCEINLINE HRESULT IDvdInfo_GetCurrentDomain(IDvdInfo* This,DVD_DOMAIN *domain) {
  1087. return This->lpVtbl->GetCurrentDomain(This,domain);
  1088. }
  1089. static FORCEINLINE HRESULT IDvdInfo_GetCurrentLocation(IDvdInfo* This,DVD_PLAYBACK_LOCATION *location) {
  1090. return This->lpVtbl->GetCurrentLocation(This,location);
  1091. }
  1092. static FORCEINLINE HRESULT IDvdInfo_GetTotalTitleTime(IDvdInfo* This,ULONG *time) {
  1093. return This->lpVtbl->GetTotalTitleTime(This,time);
  1094. }
  1095. static FORCEINLINE HRESULT IDvdInfo_GetCurrentButton(IDvdInfo* This,ULONG *count,ULONG *current) {
  1096. return This->lpVtbl->GetCurrentButton(This,count,current);
  1097. }
  1098. static FORCEINLINE HRESULT IDvdInfo_GetCurrentAngle(IDvdInfo* This,ULONG *count,ULONG *current) {
  1099. return This->lpVtbl->GetCurrentAngle(This,count,current);
  1100. }
  1101. static FORCEINLINE HRESULT IDvdInfo_GetCurrentAudio(IDvdInfo* This,ULONG *count,ULONG *current) {
  1102. return This->lpVtbl->GetCurrentAudio(This,count,current);
  1103. }
  1104. static FORCEINLINE HRESULT IDvdInfo_GetCurrentSubpicture(IDvdInfo* This,ULONG *count,ULONG *current,WINBOOL *enable) {
  1105. return This->lpVtbl->GetCurrentSubpicture(This,count,current,enable);
  1106. }
  1107. static FORCEINLINE HRESULT IDvdInfo_GetCurrentUOPS(IDvdInfo* This,VALID_UOP_SOMTHING_OR_OTHER *uops) {
  1108. return This->lpVtbl->GetCurrentUOPS(This,uops);
  1109. }
  1110. static FORCEINLINE HRESULT IDvdInfo_GetAllSPRMs(IDvdInfo* This,SPRMARRAY *regs) {
  1111. return This->lpVtbl->GetAllSPRMs(This,regs);
  1112. }
  1113. static FORCEINLINE HRESULT IDvdInfo_GetAllGPRMs(IDvdInfo* This,GPRMARRAY *regs) {
  1114. return This->lpVtbl->GetAllGPRMs(This,regs);
  1115. }
  1116. static FORCEINLINE HRESULT IDvdInfo_GetAudioLanguage(IDvdInfo* This,ULONG stream,LCID *language) {
  1117. return This->lpVtbl->GetAudioLanguage(This,stream,language);
  1118. }
  1119. static FORCEINLINE HRESULT IDvdInfo_GetSubpictureLanguage(IDvdInfo* This,ULONG stream,LCID *language) {
  1120. return This->lpVtbl->GetSubpictureLanguage(This,stream,language);
  1121. }
  1122. static FORCEINLINE HRESULT IDvdInfo_GetTitleAttributes(IDvdInfo* This,ULONG title,DVD_ATR *attr) {
  1123. return This->lpVtbl->GetTitleAttributes(This,title,attr);
  1124. }
  1125. static FORCEINLINE HRESULT IDvdInfo_GetVMGAttributes(IDvdInfo* This,DVD_ATR *attr) {
  1126. return This->lpVtbl->GetVMGAttributes(This,attr);
  1127. }
  1128. static FORCEINLINE HRESULT IDvdInfo_GetCurrentVideoAttributes(IDvdInfo* This,DVD_VideoATR *attr) {
  1129. return This->lpVtbl->GetCurrentVideoAttributes(This,attr);
  1130. }
  1131. static FORCEINLINE HRESULT IDvdInfo_GetCurrentAudioAttributes(IDvdInfo* This,DVD_AudioATR *attr) {
  1132. return This->lpVtbl->GetCurrentAudioAttributes(This,attr);
  1133. }
  1134. static FORCEINLINE HRESULT IDvdInfo_GetCurrentSubpictureAttributes(IDvdInfo* This,DVD_SubpictureATR *attr) {
  1135. return This->lpVtbl->GetCurrentSubpictureAttributes(This,attr);
  1136. }
  1137. static FORCEINLINE HRESULT IDvdInfo_GetCurrentVolumeInfo(IDvdInfo* This,ULONG *volume_count,ULONG *current,DVD_DISC_SIDE *side,ULONG *title_count) {
  1138. return This->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count);
  1139. }
  1140. static FORCEINLINE HRESULT IDvdInfo_GetDVDTextInfo(IDvdInfo* This,BYTE *text_manager,ULONG size,ULONG *ret_size) {
  1141. return This->lpVtbl->GetDVDTextInfo(This,text_manager,size,ret_size);
  1142. }
  1143. static FORCEINLINE HRESULT IDvdInfo_GetPlayerParentalLevel(IDvdInfo* This,ULONG *level,ULONG *country_code) {
  1144. return This->lpVtbl->GetPlayerParentalLevel(This,level,country_code);
  1145. }
  1146. static FORCEINLINE HRESULT IDvdInfo_GetNumberOfChapters(IDvdInfo* This,ULONG title,ULONG *count) {
  1147. return This->lpVtbl->GetNumberOfChapters(This,title,count);
  1148. }
  1149. static FORCEINLINE HRESULT IDvdInfo_GetTitleParentalLevels(IDvdInfo* This,ULONG title,ULONG *levels) {
  1150. return This->lpVtbl->GetTitleParentalLevels(This,title,levels);
  1151. }
  1152. static FORCEINLINE HRESULT IDvdInfo_GetRoot(IDvdInfo* This,char *path,ULONG size,ULONG *ret_size) {
  1153. return This->lpVtbl->GetRoot(This,path,size,ret_size);
  1154. }
  1155. #endif
  1156. #endif
  1157. #endif
  1158. #endif /* __IDvdInfo_INTERFACE_DEFINED__ */
  1159. /*****************************************************************************
  1160. * IDvdCmd interface
  1161. */
  1162. #ifndef __IDvdCmd_INTERFACE_DEFINED__
  1163. #define __IDvdCmd_INTERFACE_DEFINED__
  1164. DEFINE_GUID(IID_IDvdCmd, 0x5a4a97e4, 0x94ee, 0x4a55, 0x97,0x51, 0x74,0xb5,0x64,0x3a,0xa2,0x7d);
  1165. #if defined(__cplusplus) && !defined(CINTERFACE)
  1166. MIDL_INTERFACE("5a4a97e4-94ee-4a55-9751-74b5643aa27d")
  1167. IDvdCmd : public IUnknown
  1168. {
  1169. virtual HRESULT STDMETHODCALLTYPE WaitForStart(
  1170. ) = 0;
  1171. virtual HRESULT STDMETHODCALLTYPE WaitForEnd(
  1172. ) = 0;
  1173. };
  1174. #ifdef __CRT_UUID_DECL
  1175. __CRT_UUID_DECL(IDvdCmd, 0x5a4a97e4, 0x94ee, 0x4a55, 0x97,0x51, 0x74,0xb5,0x64,0x3a,0xa2,0x7d)
  1176. #endif
  1177. #else
  1178. typedef struct IDvdCmdVtbl {
  1179. BEGIN_INTERFACE
  1180. /*** IUnknown methods ***/
  1181. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1182. IDvdCmd *This,
  1183. REFIID riid,
  1184. void **ppvObject);
  1185. ULONG (STDMETHODCALLTYPE *AddRef)(
  1186. IDvdCmd *This);
  1187. ULONG (STDMETHODCALLTYPE *Release)(
  1188. IDvdCmd *This);
  1189. /*** IDvdCmd methods ***/
  1190. HRESULT (STDMETHODCALLTYPE *WaitForStart)(
  1191. IDvdCmd *This);
  1192. HRESULT (STDMETHODCALLTYPE *WaitForEnd)(
  1193. IDvdCmd *This);
  1194. END_INTERFACE
  1195. } IDvdCmdVtbl;
  1196. interface IDvdCmd {
  1197. CONST_VTBL IDvdCmdVtbl* lpVtbl;
  1198. };
  1199. #ifdef COBJMACROS
  1200. #ifndef WIDL_C_INLINE_WRAPPERS
  1201. /*** IUnknown methods ***/
  1202. #define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1203. #define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
  1204. #define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
  1205. /*** IDvdCmd methods ***/
  1206. #define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
  1207. #define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
  1208. #else
  1209. /*** IUnknown methods ***/
  1210. static FORCEINLINE HRESULT IDvdCmd_QueryInterface(IDvdCmd* This,REFIID riid,void **ppvObject) {
  1211. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1212. }
  1213. static FORCEINLINE ULONG IDvdCmd_AddRef(IDvdCmd* This) {
  1214. return This->lpVtbl->AddRef(This);
  1215. }
  1216. static FORCEINLINE ULONG IDvdCmd_Release(IDvdCmd* This) {
  1217. return This->lpVtbl->Release(This);
  1218. }
  1219. /*** IDvdCmd methods ***/
  1220. static FORCEINLINE HRESULT IDvdCmd_WaitForStart(IDvdCmd* This) {
  1221. return This->lpVtbl->WaitForStart(This);
  1222. }
  1223. static FORCEINLINE HRESULT IDvdCmd_WaitForEnd(IDvdCmd* This) {
  1224. return This->lpVtbl->WaitForEnd(This);
  1225. }
  1226. #endif
  1227. #endif
  1228. #endif
  1229. #endif /* __IDvdCmd_INTERFACE_DEFINED__ */
  1230. /*****************************************************************************
  1231. * IDvdState interface
  1232. */
  1233. #ifndef __IDvdState_INTERFACE_DEFINED__
  1234. #define __IDvdState_INTERFACE_DEFINED__
  1235. DEFINE_GUID(IID_IDvdState, 0x86303d6d, 0x1c4a, 0x4087, 0xab,0x42, 0xf7,0x11,0x16,0x70,0x48,0xef);
  1236. #if defined(__cplusplus) && !defined(CINTERFACE)
  1237. MIDL_INTERFACE("86303d6d-1c4a-4087-ab42-f711167048ef")
  1238. IDvdState : public IUnknown
  1239. {
  1240. virtual HRESULT STDMETHODCALLTYPE GetDiscID(
  1241. ULONGLONG *id) = 0;
  1242. virtual HRESULT STDMETHODCALLTYPE GetParentalLevel(
  1243. ULONG *level) = 0;
  1244. };
  1245. #ifdef __CRT_UUID_DECL
  1246. __CRT_UUID_DECL(IDvdState, 0x86303d6d, 0x1c4a, 0x4087, 0xab,0x42, 0xf7,0x11,0x16,0x70,0x48,0xef)
  1247. #endif
  1248. #else
  1249. typedef struct IDvdStateVtbl {
  1250. BEGIN_INTERFACE
  1251. /*** IUnknown methods ***/
  1252. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1253. IDvdState *This,
  1254. REFIID riid,
  1255. void **ppvObject);
  1256. ULONG (STDMETHODCALLTYPE *AddRef)(
  1257. IDvdState *This);
  1258. ULONG (STDMETHODCALLTYPE *Release)(
  1259. IDvdState *This);
  1260. /*** IDvdState methods ***/
  1261. HRESULT (STDMETHODCALLTYPE *GetDiscID)(
  1262. IDvdState *This,
  1263. ULONGLONG *id);
  1264. HRESULT (STDMETHODCALLTYPE *GetParentalLevel)(
  1265. IDvdState *This,
  1266. ULONG *level);
  1267. END_INTERFACE
  1268. } IDvdStateVtbl;
  1269. interface IDvdState {
  1270. CONST_VTBL IDvdStateVtbl* lpVtbl;
  1271. };
  1272. #ifdef COBJMACROS
  1273. #ifndef WIDL_C_INLINE_WRAPPERS
  1274. /*** IUnknown methods ***/
  1275. #define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1276. #define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
  1277. #define IDvdState_Release(This) (This)->lpVtbl->Release(This)
  1278. /*** IDvdState methods ***/
  1279. #define IDvdState_GetDiscID(This,id) (This)->lpVtbl->GetDiscID(This,id)
  1280. #define IDvdState_GetParentalLevel(This,level) (This)->lpVtbl->GetParentalLevel(This,level)
  1281. #else
  1282. /*** IUnknown methods ***/
  1283. static FORCEINLINE HRESULT IDvdState_QueryInterface(IDvdState* This,REFIID riid,void **ppvObject) {
  1284. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1285. }
  1286. static FORCEINLINE ULONG IDvdState_AddRef(IDvdState* This) {
  1287. return This->lpVtbl->AddRef(This);
  1288. }
  1289. static FORCEINLINE ULONG IDvdState_Release(IDvdState* This) {
  1290. return This->lpVtbl->Release(This);
  1291. }
  1292. /*** IDvdState methods ***/
  1293. static FORCEINLINE HRESULT IDvdState_GetDiscID(IDvdState* This,ULONGLONG *id) {
  1294. return This->lpVtbl->GetDiscID(This,id);
  1295. }
  1296. static FORCEINLINE HRESULT IDvdState_GetParentalLevel(IDvdState* This,ULONG *level) {
  1297. return This->lpVtbl->GetParentalLevel(This,level);
  1298. }
  1299. #endif
  1300. #endif
  1301. #endif
  1302. #endif /* __IDvdState_INTERFACE_DEFINED__ */
  1303. /*****************************************************************************
  1304. * IDvdControl2 interface
  1305. */
  1306. #ifndef __IDvdControl2_INTERFACE_DEFINED__
  1307. #define __IDvdControl2_INTERFACE_DEFINED__
  1308. DEFINE_GUID(IID_IDvdControl2, 0x33bc7430, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42);
  1309. #if defined(__cplusplus) && !defined(CINTERFACE)
  1310. MIDL_INTERFACE("33bc7430-eec0-11d2-8201-00a0c9d74842")
  1311. IDvdControl2 : public IUnknown
  1312. {
  1313. virtual HRESULT STDMETHODCALLTYPE PlayTitle(
  1314. ULONG title,
  1315. DWORD flags,
  1316. IDvdCmd **cmd) = 0;
  1317. virtual HRESULT STDMETHODCALLTYPE PlayChapterInTitle(
  1318. ULONG title,
  1319. ULONG chapter,
  1320. DWORD flags,
  1321. IDvdCmd **cmd) = 0;
  1322. virtual HRESULT STDMETHODCALLTYPE PlayTimeInTitle(
  1323. ULONG title,
  1324. DVD_HMSF_TIMECODE *time,
  1325. DWORD flags,
  1326. IDvdCmd **cmd) = 0;
  1327. virtual HRESULT STDMETHODCALLTYPE Stop(
  1328. ) = 0;
  1329. virtual HRESULT STDMETHODCALLTYPE ReturnFromSubmenu(
  1330. DWORD flags,
  1331. IDvdCmd **cmd) = 0;
  1332. virtual HRESULT STDMETHODCALLTYPE PlayAtTime(
  1333. DVD_HMSF_TIMECODE *time,
  1334. DWORD flags,
  1335. IDvdCmd **cmd) = 0;
  1336. virtual HRESULT STDMETHODCALLTYPE PlayChapter(
  1337. ULONG chapter,
  1338. DWORD flags,
  1339. IDvdCmd **cmd) = 0;
  1340. virtual HRESULT STDMETHODCALLTYPE PlayPrevChapter(
  1341. DWORD flags,
  1342. IDvdCmd **cmd) = 0;
  1343. virtual HRESULT STDMETHODCALLTYPE ReplayChapter(
  1344. DWORD flags,
  1345. IDvdCmd **cmd) = 0;
  1346. virtual HRESULT STDMETHODCALLTYPE PlayNextChapter(
  1347. DWORD flags,
  1348. IDvdCmd **cmd) = 0;
  1349. virtual HRESULT STDMETHODCALLTYPE PlayForwards(
  1350. double speed,
  1351. DWORD flags,
  1352. IDvdCmd **cmd) = 0;
  1353. virtual HRESULT STDMETHODCALLTYPE PlayBackwards(
  1354. double speed,
  1355. DWORD flags,
  1356. IDvdCmd **cmd) = 0;
  1357. virtual HRESULT STDMETHODCALLTYPE ShowMenu(
  1358. DVD_MENU_ID id,
  1359. DWORD flags,
  1360. IDvdCmd **cmd) = 0;
  1361. virtual HRESULT STDMETHODCALLTYPE Resume(
  1362. DWORD flags,
  1363. IDvdCmd **cmd) = 0;
  1364. virtual HRESULT STDMETHODCALLTYPE SelectRelativeButton(
  1365. DVD_RELATIVE_BUTTON button) = 0;
  1366. virtual HRESULT STDMETHODCALLTYPE ActivateButton(
  1367. ) = 0;
  1368. virtual HRESULT STDMETHODCALLTYPE SelectButton(
  1369. ULONG button) = 0;
  1370. virtual HRESULT STDMETHODCALLTYPE SelectAndActivateButton(
  1371. ULONG button) = 0;
  1372. virtual HRESULT STDMETHODCALLTYPE StillOff(
  1373. ) = 0;
  1374. virtual HRESULT STDMETHODCALLTYPE Pause(
  1375. WINBOOL enable) = 0;
  1376. virtual HRESULT STDMETHODCALLTYPE SelectAudioStream(
  1377. ULONG stream,
  1378. DWORD flags,
  1379. IDvdCmd **cmd) = 0;
  1380. virtual HRESULT STDMETHODCALLTYPE SelectSubpictureStream(
  1381. ULONG stream,
  1382. DWORD flags,
  1383. IDvdCmd **cmd) = 0;
  1384. virtual HRESULT STDMETHODCALLTYPE SetSubpictureState(
  1385. WINBOOL enable,
  1386. DWORD flags,
  1387. IDvdCmd **cmd) = 0;
  1388. virtual HRESULT STDMETHODCALLTYPE SelectAngle(
  1389. ULONG angle,
  1390. DWORD flags,
  1391. IDvdCmd **cmd) = 0;
  1392. virtual HRESULT STDMETHODCALLTYPE SelectParentalLevel(
  1393. ULONG level) = 0;
  1394. virtual HRESULT STDMETHODCALLTYPE SelectParentalCountry(
  1395. BYTE country[2]) = 0;
  1396. virtual HRESULT STDMETHODCALLTYPE SelectKaraokeAudioPresentationMode(
  1397. ULONG mode) = 0;
  1398. virtual HRESULT STDMETHODCALLTYPE SelectVideoModePreference(
  1399. ULONG mode) = 0;
  1400. virtual HRESULT STDMETHODCALLTYPE SetDVDDirectory(
  1401. const WCHAR *path) = 0;
  1402. virtual HRESULT STDMETHODCALLTYPE ActivateAtPosition(
  1403. POINT point) = 0;
  1404. virtual HRESULT STDMETHODCALLTYPE SelectAtPosition(
  1405. POINT point) = 0;
  1406. virtual HRESULT STDMETHODCALLTYPE PlayChaptersAutoStop(
  1407. ULONG title,
  1408. ULONG chapter,
  1409. ULONG count,
  1410. DWORD flags,
  1411. IDvdCmd **cmd) = 0;
  1412. virtual HRESULT STDMETHODCALLTYPE AcceptParentalLevelChange(
  1413. WINBOOL accept) = 0;
  1414. virtual HRESULT STDMETHODCALLTYPE SetOption(
  1415. DVD_OPTION_FLAG flag,
  1416. WINBOOL option) = 0;
  1417. virtual HRESULT STDMETHODCALLTYPE SetState(
  1418. IDvdState *state,
  1419. DWORD flags,
  1420. IDvdCmd **cmd) = 0;
  1421. virtual HRESULT STDMETHODCALLTYPE PlayPeriodInTitleAutoStop(
  1422. ULONG title,
  1423. DVD_HMSF_TIMECODE *start_time,
  1424. DVD_HMSF_TIMECODE *end_time,
  1425. DWORD flags,
  1426. IDvdCmd **cmd) = 0;
  1427. virtual HRESULT STDMETHODCALLTYPE SetGRPM(
  1428. ULONG index,
  1429. WORD value,
  1430. DWORD flags,
  1431. IDvdCmd **cmd) = 0;
  1432. virtual HRESULT STDMETHODCALLTYPE SelectDefaultMenuLanguage(
  1433. LCID language) = 0;
  1434. virtual HRESULT STDMETHODCALLTYPE SelectDefaultAudioLanguage(
  1435. LCID language,
  1436. DVD_AUDIO_LANG_EXT extension) = 0;
  1437. virtual HRESULT STDMETHODCALLTYPE SelectDefaultSubpictureLanguage(
  1438. LCID language,
  1439. DVD_SUBPICTURE_LANG_EXT extension) = 0;
  1440. };
  1441. #ifdef __CRT_UUID_DECL
  1442. __CRT_UUID_DECL(IDvdControl2, 0x33bc7430, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42)
  1443. #endif
  1444. #else
  1445. typedef struct IDvdControl2Vtbl {
  1446. BEGIN_INTERFACE
  1447. /*** IUnknown methods ***/
  1448. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1449. IDvdControl2 *This,
  1450. REFIID riid,
  1451. void **ppvObject);
  1452. ULONG (STDMETHODCALLTYPE *AddRef)(
  1453. IDvdControl2 *This);
  1454. ULONG (STDMETHODCALLTYPE *Release)(
  1455. IDvdControl2 *This);
  1456. /*** IDvdControl2 methods ***/
  1457. HRESULT (STDMETHODCALLTYPE *PlayTitle)(
  1458. IDvdControl2 *This,
  1459. ULONG title,
  1460. DWORD flags,
  1461. IDvdCmd **cmd);
  1462. HRESULT (STDMETHODCALLTYPE *PlayChapterInTitle)(
  1463. IDvdControl2 *This,
  1464. ULONG title,
  1465. ULONG chapter,
  1466. DWORD flags,
  1467. IDvdCmd **cmd);
  1468. HRESULT (STDMETHODCALLTYPE *PlayTimeInTitle)(
  1469. IDvdControl2 *This,
  1470. ULONG title,
  1471. DVD_HMSF_TIMECODE *time,
  1472. DWORD flags,
  1473. IDvdCmd **cmd);
  1474. HRESULT (STDMETHODCALLTYPE *Stop)(
  1475. IDvdControl2 *This);
  1476. HRESULT (STDMETHODCALLTYPE *ReturnFromSubmenu)(
  1477. IDvdControl2 *This,
  1478. DWORD flags,
  1479. IDvdCmd **cmd);
  1480. HRESULT (STDMETHODCALLTYPE *PlayAtTime)(
  1481. IDvdControl2 *This,
  1482. DVD_HMSF_TIMECODE *time,
  1483. DWORD flags,
  1484. IDvdCmd **cmd);
  1485. HRESULT (STDMETHODCALLTYPE *PlayChapter)(
  1486. IDvdControl2 *This,
  1487. ULONG chapter,
  1488. DWORD flags,
  1489. IDvdCmd **cmd);
  1490. HRESULT (STDMETHODCALLTYPE *PlayPrevChapter)(
  1491. IDvdControl2 *This,
  1492. DWORD flags,
  1493. IDvdCmd **cmd);
  1494. HRESULT (STDMETHODCALLTYPE *ReplayChapter)(
  1495. IDvdControl2 *This,
  1496. DWORD flags,
  1497. IDvdCmd **cmd);
  1498. HRESULT (STDMETHODCALLTYPE *PlayNextChapter)(
  1499. IDvdControl2 *This,
  1500. DWORD flags,
  1501. IDvdCmd **cmd);
  1502. HRESULT (STDMETHODCALLTYPE *PlayForwards)(
  1503. IDvdControl2 *This,
  1504. double speed,
  1505. DWORD flags,
  1506. IDvdCmd **cmd);
  1507. HRESULT (STDMETHODCALLTYPE *PlayBackwards)(
  1508. IDvdControl2 *This,
  1509. double speed,
  1510. DWORD flags,
  1511. IDvdCmd **cmd);
  1512. HRESULT (STDMETHODCALLTYPE *ShowMenu)(
  1513. IDvdControl2 *This,
  1514. DVD_MENU_ID id,
  1515. DWORD flags,
  1516. IDvdCmd **cmd);
  1517. HRESULT (STDMETHODCALLTYPE *Resume)(
  1518. IDvdControl2 *This,
  1519. DWORD flags,
  1520. IDvdCmd **cmd);
  1521. HRESULT (STDMETHODCALLTYPE *SelectRelativeButton)(
  1522. IDvdControl2 *This,
  1523. DVD_RELATIVE_BUTTON button);
  1524. HRESULT (STDMETHODCALLTYPE *ActivateButton)(
  1525. IDvdControl2 *This);
  1526. HRESULT (STDMETHODCALLTYPE *SelectButton)(
  1527. IDvdControl2 *This,
  1528. ULONG button);
  1529. HRESULT (STDMETHODCALLTYPE *SelectAndActivateButton)(
  1530. IDvdControl2 *This,
  1531. ULONG button);
  1532. HRESULT (STDMETHODCALLTYPE *StillOff)(
  1533. IDvdControl2 *This);
  1534. HRESULT (STDMETHODCALLTYPE *Pause)(
  1535. IDvdControl2 *This,
  1536. WINBOOL enable);
  1537. HRESULT (STDMETHODCALLTYPE *SelectAudioStream)(
  1538. IDvdControl2 *This,
  1539. ULONG stream,
  1540. DWORD flags,
  1541. IDvdCmd **cmd);
  1542. HRESULT (STDMETHODCALLTYPE *SelectSubpictureStream)(
  1543. IDvdControl2 *This,
  1544. ULONG stream,
  1545. DWORD flags,
  1546. IDvdCmd **cmd);
  1547. HRESULT (STDMETHODCALLTYPE *SetSubpictureState)(
  1548. IDvdControl2 *This,
  1549. WINBOOL enable,
  1550. DWORD flags,
  1551. IDvdCmd **cmd);
  1552. HRESULT (STDMETHODCALLTYPE *SelectAngle)(
  1553. IDvdControl2 *This,
  1554. ULONG angle,
  1555. DWORD flags,
  1556. IDvdCmd **cmd);
  1557. HRESULT (STDMETHODCALLTYPE *SelectParentalLevel)(
  1558. IDvdControl2 *This,
  1559. ULONG level);
  1560. HRESULT (STDMETHODCALLTYPE *SelectParentalCountry)(
  1561. IDvdControl2 *This,
  1562. BYTE country[2]);
  1563. HRESULT (STDMETHODCALLTYPE *SelectKaraokeAudioPresentationMode)(
  1564. IDvdControl2 *This,
  1565. ULONG mode);
  1566. HRESULT (STDMETHODCALLTYPE *SelectVideoModePreference)(
  1567. IDvdControl2 *This,
  1568. ULONG mode);
  1569. HRESULT (STDMETHODCALLTYPE *SetDVDDirectory)(
  1570. IDvdControl2 *This,
  1571. const WCHAR *path);
  1572. HRESULT (STDMETHODCALLTYPE *ActivateAtPosition)(
  1573. IDvdControl2 *This,
  1574. POINT point);
  1575. HRESULT (STDMETHODCALLTYPE *SelectAtPosition)(
  1576. IDvdControl2 *This,
  1577. POINT point);
  1578. HRESULT (STDMETHODCALLTYPE *PlayChaptersAutoStop)(
  1579. IDvdControl2 *This,
  1580. ULONG title,
  1581. ULONG chapter,
  1582. ULONG count,
  1583. DWORD flags,
  1584. IDvdCmd **cmd);
  1585. HRESULT (STDMETHODCALLTYPE *AcceptParentalLevelChange)(
  1586. IDvdControl2 *This,
  1587. WINBOOL accept);
  1588. HRESULT (STDMETHODCALLTYPE *SetOption)(
  1589. IDvdControl2 *This,
  1590. DVD_OPTION_FLAG flag,
  1591. WINBOOL option);
  1592. HRESULT (STDMETHODCALLTYPE *SetState)(
  1593. IDvdControl2 *This,
  1594. IDvdState *state,
  1595. DWORD flags,
  1596. IDvdCmd **cmd);
  1597. HRESULT (STDMETHODCALLTYPE *PlayPeriodInTitleAutoStop)(
  1598. IDvdControl2 *This,
  1599. ULONG title,
  1600. DVD_HMSF_TIMECODE *start_time,
  1601. DVD_HMSF_TIMECODE *end_time,
  1602. DWORD flags,
  1603. IDvdCmd **cmd);
  1604. HRESULT (STDMETHODCALLTYPE *SetGRPM)(
  1605. IDvdControl2 *This,
  1606. ULONG index,
  1607. WORD value,
  1608. DWORD flags,
  1609. IDvdCmd **cmd);
  1610. HRESULT (STDMETHODCALLTYPE *SelectDefaultMenuLanguage)(
  1611. IDvdControl2 *This,
  1612. LCID language);
  1613. HRESULT (STDMETHODCALLTYPE *SelectDefaultAudioLanguage)(
  1614. IDvdControl2 *This,
  1615. LCID language,
  1616. DVD_AUDIO_LANG_EXT extension);
  1617. HRESULT (STDMETHODCALLTYPE *SelectDefaultSubpictureLanguage)(
  1618. IDvdControl2 *This,
  1619. LCID language,
  1620. DVD_SUBPICTURE_LANG_EXT extension);
  1621. END_INTERFACE
  1622. } IDvdControl2Vtbl;
  1623. interface IDvdControl2 {
  1624. CONST_VTBL IDvdControl2Vtbl* lpVtbl;
  1625. };
  1626. #ifdef COBJMACROS
  1627. #ifndef WIDL_C_INLINE_WRAPPERS
  1628. /*** IUnknown methods ***/
  1629. #define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1630. #define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1631. #define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
  1632. /*** IDvdControl2 methods ***/
  1633. #define IDvdControl2_PlayTitle(This,title,flags,cmd) (This)->lpVtbl->PlayTitle(This,title,flags,cmd)
  1634. #define IDvdControl2_PlayChapterInTitle(This,title,chapter,flags,cmd) (This)->lpVtbl->PlayChapterInTitle(This,title,chapter,flags,cmd)
  1635. #define IDvdControl2_PlayTimeInTitle(This,title,time,flags,cmd) (This)->lpVtbl->PlayTimeInTitle(This,title,time,flags,cmd)
  1636. #define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
  1637. #define IDvdControl2_ReturnFromSubmenu(This,flags,cmd) (This)->lpVtbl->ReturnFromSubmenu(This,flags,cmd)
  1638. #define IDvdControl2_PlayAtTime(This,time,flags,cmd) (This)->lpVtbl->PlayAtTime(This,time,flags,cmd)
  1639. #define IDvdControl2_PlayChapter(This,chapter,flags,cmd) (This)->lpVtbl->PlayChapter(This,chapter,flags,cmd)
  1640. #define IDvdControl2_PlayPrevChapter(This,flags,cmd) (This)->lpVtbl->PlayPrevChapter(This,flags,cmd)
  1641. #define IDvdControl2_ReplayChapter(This,flags,cmd) (This)->lpVtbl->ReplayChapter(This,flags,cmd)
  1642. #define IDvdControl2_PlayNextChapter(This,flags,cmd) (This)->lpVtbl->PlayNextChapter(This,flags,cmd)
  1643. #define IDvdControl2_PlayForwards(This,speed,flags,cmd) (This)->lpVtbl->PlayForwards(This,speed,flags,cmd)
  1644. #define IDvdControl2_PlayBackwards(This,speed,flags,cmd) (This)->lpVtbl->PlayBackwards(This,speed,flags,cmd)
  1645. #define IDvdControl2_ShowMenu(This,id,flags,cmd) (This)->lpVtbl->ShowMenu(This,id,flags,cmd)
  1646. #define IDvdControl2_Resume(This,flags,cmd) (This)->lpVtbl->Resume(This,flags,cmd)
  1647. #define IDvdControl2_SelectRelativeButton(This,button) (This)->lpVtbl->SelectRelativeButton(This,button)
  1648. #define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
  1649. #define IDvdControl2_SelectButton(This,button) (This)->lpVtbl->SelectButton(This,button)
  1650. #define IDvdControl2_SelectAndActivateButton(This,button) (This)->lpVtbl->SelectAndActivateButton(This,button)
  1651. #define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
  1652. #define IDvdControl2_Pause(This,enable) (This)->lpVtbl->Pause(This,enable)
  1653. #define IDvdControl2_SelectAudioStream(This,stream,flags,cmd) (This)->lpVtbl->SelectAudioStream(This,stream,flags,cmd)
  1654. #define IDvdControl2_SelectSubpictureStream(This,stream,flags,cmd) (This)->lpVtbl->SelectSubpictureStream(This,stream,flags,cmd)
  1655. #define IDvdControl2_SetSubpictureState(This,enable,flags,cmd) (This)->lpVtbl->SetSubpictureState(This,enable,flags,cmd)
  1656. #define IDvdControl2_SelectAngle(This,angle,flags,cmd) (This)->lpVtbl->SelectAngle(This,angle,flags,cmd)
  1657. #define IDvdControl2_SelectParentalLevel(This,level) (This)->lpVtbl->SelectParentalLevel(This,level)
  1658. #define IDvdControl2_SelectParentalCountry(This,country) (This)->lpVtbl->SelectParentalCountry(This,country)
  1659. #define IDvdControl2_SelectKaraokeAudioPresentationMode(This,mode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,mode)
  1660. #define IDvdControl2_SelectVideoModePreference(This,mode) (This)->lpVtbl->SelectVideoModePreference(This,mode)
  1661. #define IDvdControl2_SetDVDDirectory(This,path) (This)->lpVtbl->SetDVDDirectory(This,path)
  1662. #define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
  1663. #define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
  1664. #define IDvdControl2_PlayChaptersAutoStop(This,title,chapter,count,flags,cmd) (This)->lpVtbl->PlayChaptersAutoStop(This,title,chapter,count,flags,cmd)
  1665. #define IDvdControl2_AcceptParentalLevelChange(This,accept) (This)->lpVtbl->AcceptParentalLevelChange(This,accept)
  1666. #define IDvdControl2_SetOption(This,flag,option) (This)->lpVtbl->SetOption(This,flag,option)
  1667. #define IDvdControl2_SetState(This,state,flags,cmd) (This)->lpVtbl->SetState(This,state,flags,cmd)
  1668. #define IDvdControl2_PlayPeriodInTitleAutoStop(This,title,start_time,end_time,flags,cmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,title,start_time,end_time,flags,cmd)
  1669. #define IDvdControl2_SetGRPM(This,index,value,flags,cmd) (This)->lpVtbl->SetGRPM(This,index,value,flags,cmd)
  1670. #define IDvdControl2_SelectDefaultMenuLanguage(This,language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,language)
  1671. #define IDvdControl2_SelectDefaultAudioLanguage(This,language,extension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,language,extension)
  1672. #define IDvdControl2_SelectDefaultSubpictureLanguage(This,language,extension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension)
  1673. #else
  1674. /*** IUnknown methods ***/
  1675. static FORCEINLINE HRESULT IDvdControl2_QueryInterface(IDvdControl2* This,REFIID riid,void **ppvObject) {
  1676. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1677. }
  1678. static FORCEINLINE ULONG IDvdControl2_AddRef(IDvdControl2* This) {
  1679. return This->lpVtbl->AddRef(This);
  1680. }
  1681. static FORCEINLINE ULONG IDvdControl2_Release(IDvdControl2* This) {
  1682. return This->lpVtbl->Release(This);
  1683. }
  1684. /*** IDvdControl2 methods ***/
  1685. static FORCEINLINE HRESULT IDvdControl2_PlayTitle(IDvdControl2* This,ULONG title,DWORD flags,IDvdCmd **cmd) {
  1686. return This->lpVtbl->PlayTitle(This,title,flags,cmd);
  1687. }
  1688. static FORCEINLINE HRESULT IDvdControl2_PlayChapterInTitle(IDvdControl2* This,ULONG title,ULONG chapter,DWORD flags,IDvdCmd **cmd) {
  1689. return This->lpVtbl->PlayChapterInTitle(This,title,chapter,flags,cmd);
  1690. }
  1691. static FORCEINLINE HRESULT IDvdControl2_PlayTimeInTitle(IDvdControl2* This,ULONG title,DVD_HMSF_TIMECODE *time,DWORD flags,IDvdCmd **cmd) {
  1692. return This->lpVtbl->PlayTimeInTitle(This,title,time,flags,cmd);
  1693. }
  1694. static FORCEINLINE HRESULT IDvdControl2_Stop(IDvdControl2* This) {
  1695. return This->lpVtbl->Stop(This);
  1696. }
  1697. static FORCEINLINE HRESULT IDvdControl2_ReturnFromSubmenu(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) {
  1698. return This->lpVtbl->ReturnFromSubmenu(This,flags,cmd);
  1699. }
  1700. static FORCEINLINE HRESULT IDvdControl2_PlayAtTime(IDvdControl2* This,DVD_HMSF_TIMECODE *time,DWORD flags,IDvdCmd **cmd) {
  1701. return This->lpVtbl->PlayAtTime(This,time,flags,cmd);
  1702. }
  1703. static FORCEINLINE HRESULT IDvdControl2_PlayChapter(IDvdControl2* This,ULONG chapter,DWORD flags,IDvdCmd **cmd) {
  1704. return This->lpVtbl->PlayChapter(This,chapter,flags,cmd);
  1705. }
  1706. static FORCEINLINE HRESULT IDvdControl2_PlayPrevChapter(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) {
  1707. return This->lpVtbl->PlayPrevChapter(This,flags,cmd);
  1708. }
  1709. static FORCEINLINE HRESULT IDvdControl2_ReplayChapter(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) {
  1710. return This->lpVtbl->ReplayChapter(This,flags,cmd);
  1711. }
  1712. static FORCEINLINE HRESULT IDvdControl2_PlayNextChapter(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) {
  1713. return This->lpVtbl->PlayNextChapter(This,flags,cmd);
  1714. }
  1715. static FORCEINLINE HRESULT IDvdControl2_PlayForwards(IDvdControl2* This,double speed,DWORD flags,IDvdCmd **cmd) {
  1716. return This->lpVtbl->PlayForwards(This,speed,flags,cmd);
  1717. }
  1718. static FORCEINLINE HRESULT IDvdControl2_PlayBackwards(IDvdControl2* This,double speed,DWORD flags,IDvdCmd **cmd) {
  1719. return This->lpVtbl->PlayBackwards(This,speed,flags,cmd);
  1720. }
  1721. static FORCEINLINE HRESULT IDvdControl2_ShowMenu(IDvdControl2* This,DVD_MENU_ID id,DWORD flags,IDvdCmd **cmd) {
  1722. return This->lpVtbl->ShowMenu(This,id,flags,cmd);
  1723. }
  1724. static FORCEINLINE HRESULT IDvdControl2_Resume(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) {
  1725. return This->lpVtbl->Resume(This,flags,cmd);
  1726. }
  1727. static FORCEINLINE HRESULT IDvdControl2_SelectRelativeButton(IDvdControl2* This,DVD_RELATIVE_BUTTON button) {
  1728. return This->lpVtbl->SelectRelativeButton(This,button);
  1729. }
  1730. static FORCEINLINE HRESULT IDvdControl2_ActivateButton(IDvdControl2* This) {
  1731. return This->lpVtbl->ActivateButton(This);
  1732. }
  1733. static FORCEINLINE HRESULT IDvdControl2_SelectButton(IDvdControl2* This,ULONG button) {
  1734. return This->lpVtbl->SelectButton(This,button);
  1735. }
  1736. static FORCEINLINE HRESULT IDvdControl2_SelectAndActivateButton(IDvdControl2* This,ULONG button) {
  1737. return This->lpVtbl->SelectAndActivateButton(This,button);
  1738. }
  1739. static FORCEINLINE HRESULT IDvdControl2_StillOff(IDvdControl2* This) {
  1740. return This->lpVtbl->StillOff(This);
  1741. }
  1742. static FORCEINLINE HRESULT IDvdControl2_Pause(IDvdControl2* This,WINBOOL enable) {
  1743. return This->lpVtbl->Pause(This,enable);
  1744. }
  1745. static FORCEINLINE HRESULT IDvdControl2_SelectAudioStream(IDvdControl2* This,ULONG stream,DWORD flags,IDvdCmd **cmd) {
  1746. return This->lpVtbl->SelectAudioStream(This,stream,flags,cmd);
  1747. }
  1748. static FORCEINLINE HRESULT IDvdControl2_SelectSubpictureStream(IDvdControl2* This,ULONG stream,DWORD flags,IDvdCmd **cmd) {
  1749. return This->lpVtbl->SelectSubpictureStream(This,stream,flags,cmd);
  1750. }
  1751. static FORCEINLINE HRESULT IDvdControl2_SetSubpictureState(IDvdControl2* This,WINBOOL enable,DWORD flags,IDvdCmd **cmd) {
  1752. return This->lpVtbl->SetSubpictureState(This,enable,flags,cmd);
  1753. }
  1754. static FORCEINLINE HRESULT IDvdControl2_SelectAngle(IDvdControl2* This,ULONG angle,DWORD flags,IDvdCmd **cmd) {
  1755. return This->lpVtbl->SelectAngle(This,angle,flags,cmd);
  1756. }
  1757. static FORCEINLINE HRESULT IDvdControl2_SelectParentalLevel(IDvdControl2* This,ULONG level) {
  1758. return This->lpVtbl->SelectParentalLevel(This,level);
  1759. }
  1760. static FORCEINLINE HRESULT IDvdControl2_SelectParentalCountry(IDvdControl2* This,BYTE country[2]) {
  1761. return This->lpVtbl->SelectParentalCountry(This,country);
  1762. }
  1763. static FORCEINLINE HRESULT IDvdControl2_SelectKaraokeAudioPresentationMode(IDvdControl2* This,ULONG mode) {
  1764. return This->lpVtbl->SelectKaraokeAudioPresentationMode(This,mode);
  1765. }
  1766. static FORCEINLINE HRESULT IDvdControl2_SelectVideoModePreference(IDvdControl2* This,ULONG mode) {
  1767. return This->lpVtbl->SelectVideoModePreference(This,mode);
  1768. }
  1769. static FORCEINLINE HRESULT IDvdControl2_SetDVDDirectory(IDvdControl2* This,const WCHAR *path) {
  1770. return This->lpVtbl->SetDVDDirectory(This,path);
  1771. }
  1772. static FORCEINLINE HRESULT IDvdControl2_ActivateAtPosition(IDvdControl2* This,POINT point) {
  1773. return This->lpVtbl->ActivateAtPosition(This,point);
  1774. }
  1775. static FORCEINLINE HRESULT IDvdControl2_SelectAtPosition(IDvdControl2* This,POINT point) {
  1776. return This->lpVtbl->SelectAtPosition(This,point);
  1777. }
  1778. static FORCEINLINE HRESULT IDvdControl2_PlayChaptersAutoStop(IDvdControl2* This,ULONG title,ULONG chapter,ULONG count,DWORD flags,IDvdCmd **cmd) {
  1779. return This->lpVtbl->PlayChaptersAutoStop(This,title,chapter,count,flags,cmd);
  1780. }
  1781. static FORCEINLINE HRESULT IDvdControl2_AcceptParentalLevelChange(IDvdControl2* This,WINBOOL accept) {
  1782. return This->lpVtbl->AcceptParentalLevelChange(This,accept);
  1783. }
  1784. static FORCEINLINE HRESULT IDvdControl2_SetOption(IDvdControl2* This,DVD_OPTION_FLAG flag,WINBOOL option) {
  1785. return This->lpVtbl->SetOption(This,flag,option);
  1786. }
  1787. static FORCEINLINE HRESULT IDvdControl2_SetState(IDvdControl2* This,IDvdState *state,DWORD flags,IDvdCmd **cmd) {
  1788. return This->lpVtbl->SetState(This,state,flags,cmd);
  1789. }
  1790. static FORCEINLINE HRESULT IDvdControl2_PlayPeriodInTitleAutoStop(IDvdControl2* This,ULONG title,DVD_HMSF_TIMECODE *start_time,DVD_HMSF_TIMECODE *end_time,DWORD flags,IDvdCmd **cmd) {
  1791. return This->lpVtbl->PlayPeriodInTitleAutoStop(This,title,start_time,end_time,flags,cmd);
  1792. }
  1793. static FORCEINLINE HRESULT IDvdControl2_SetGRPM(IDvdControl2* This,ULONG index,WORD value,DWORD flags,IDvdCmd **cmd) {
  1794. return This->lpVtbl->SetGRPM(This,index,value,flags,cmd);
  1795. }
  1796. static FORCEINLINE HRESULT IDvdControl2_SelectDefaultMenuLanguage(IDvdControl2* This,LCID language) {
  1797. return This->lpVtbl->SelectDefaultMenuLanguage(This,language);
  1798. }
  1799. static FORCEINLINE HRESULT IDvdControl2_SelectDefaultAudioLanguage(IDvdControl2* This,LCID language,DVD_AUDIO_LANG_EXT extension) {
  1800. return This->lpVtbl->SelectDefaultAudioLanguage(This,language,extension);
  1801. }
  1802. static FORCEINLINE HRESULT IDvdControl2_SelectDefaultSubpictureLanguage(IDvdControl2* This,LCID language,DVD_SUBPICTURE_LANG_EXT extension) {
  1803. return This->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension);
  1804. }
  1805. #endif
  1806. #endif
  1807. #endif
  1808. #endif /* __IDvdControl2_INTERFACE_DEFINED__ */
  1809. /*****************************************************************************
  1810. * IDvdInfo2 interface
  1811. */
  1812. #ifndef __IDvdInfo2_INTERFACE_DEFINED__
  1813. #define __IDvdInfo2_INTERFACE_DEFINED__
  1814. DEFINE_GUID(IID_IDvdInfo2, 0x34151510, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42);
  1815. #if defined(__cplusplus) && !defined(CINTERFACE)
  1816. MIDL_INTERFACE("34151510-eec0-11d2-8201-00a0c9d74842")
  1817. IDvdInfo2 : public IUnknown
  1818. {
  1819. virtual HRESULT STDMETHODCALLTYPE GetCurrentDomain(
  1820. DVD_DOMAIN *domain) = 0;
  1821. virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation(
  1822. DVD_PLAYBACK_LOCATION2 *location) = 0;
  1823. virtual HRESULT STDMETHODCALLTYPE GetTotalTitleTime(
  1824. DVD_HMSF_TIMECODE *time,
  1825. ULONG *flags) = 0;
  1826. virtual HRESULT STDMETHODCALLTYPE GetCurrentButton(
  1827. ULONG *count,
  1828. ULONG *current) = 0;
  1829. virtual HRESULT STDMETHODCALLTYPE GetCurrentAngle(
  1830. ULONG *count,
  1831. ULONG *current) = 0;
  1832. virtual HRESULT STDMETHODCALLTYPE GetCurrentAudio(
  1833. ULONG *count,
  1834. ULONG *current) = 0;
  1835. virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpicture(
  1836. ULONG *count,
  1837. ULONG *current,
  1838. WINBOOL *enable) = 0;
  1839. virtual HRESULT STDMETHODCALLTYPE GetCurrentUOPS(
  1840. ULONG *uops) = 0;
  1841. virtual HRESULT STDMETHODCALLTYPE GetAllSPRMs(
  1842. SPRMARRAY *regs) = 0;
  1843. virtual HRESULT STDMETHODCALLTYPE GetAllGPRMs(
  1844. GPRMARRAY *regs) = 0;
  1845. virtual HRESULT STDMETHODCALLTYPE GetAudioLanguage(
  1846. ULONG stream,
  1847. LCID *language) = 0;
  1848. virtual HRESULT STDMETHODCALLTYPE GetSubpictureLanguage(
  1849. ULONG stream,
  1850. LCID *language) = 0;
  1851. virtual HRESULT STDMETHODCALLTYPE GetTitleAttributes(
  1852. ULONG index,
  1853. DVD_MenuAttributes *menu,
  1854. DVD_TitleAttributes *title) = 0;
  1855. virtual HRESULT STDMETHODCALLTYPE GetVMGAttributes(
  1856. DVD_MenuAttributes *attr) = 0;
  1857. virtual HRESULT STDMETHODCALLTYPE GetVideoAttributes(
  1858. DVD_VideoAttributes *attr) = 0;
  1859. virtual HRESULT STDMETHODCALLTYPE GetAudioAttributes(
  1860. ULONG stream,
  1861. DVD_AudioAttributes *attr) = 0;
  1862. virtual HRESULT STDMETHODCALLTYPE GetKaraokeAttributes(
  1863. ULONG stream,
  1864. DVD_KaraokeAttributes *attr) = 0;
  1865. virtual HRESULT STDMETHODCALLTYPE GetSubpictureAttributes(
  1866. ULONG stream,
  1867. DVD_SubpictureAttributes *attr) = 0;
  1868. virtual HRESULT STDMETHODCALLTYPE GetCurrentVolumeInfo(
  1869. ULONG *volume_count,
  1870. ULONG *current,
  1871. DVD_DISC_SIDE *side,
  1872. ULONG *title_count) = 0;
  1873. virtual HRESULT STDMETHODCALLTYPE GetDVDTextNumberOfLanguages(
  1874. ULONG *count) = 0;
  1875. virtual HRESULT STDMETHODCALLTYPE GetDVDTextLanguageInfo(
  1876. ULONG index,
  1877. ULONG *string_count,
  1878. LCID *language,
  1879. enum DVD_TextCharSet *character_set) = 0;
  1880. virtual HRESULT STDMETHODCALLTYPE GetDVDTextStringAsNative(
  1881. ULONG lang_index,
  1882. ULONG string_index,
  1883. BYTE *string,
  1884. ULONG size,
  1885. ULONG *ret_size,
  1886. enum DVD_TextStringType *type) = 0;
  1887. virtual HRESULT STDMETHODCALLTYPE GetDVDTextStringAsUnicode(
  1888. ULONG lang_index,
  1889. ULONG string_index,
  1890. WCHAR *string,
  1891. ULONG size,
  1892. ULONG *ret_size,
  1893. enum DVD_TextStringType *type) = 0;
  1894. virtual HRESULT STDMETHODCALLTYPE GetPlayerParentalLevel(
  1895. ULONG *level,
  1896. BYTE country_code[2]) = 0;
  1897. virtual HRESULT STDMETHODCALLTYPE GetNumberOfChapters(
  1898. ULONG title,
  1899. ULONG *count) = 0;
  1900. virtual HRESULT STDMETHODCALLTYPE GetTitleParentalLevels(
  1901. ULONG title,
  1902. ULONG *levels) = 0;
  1903. virtual HRESULT STDMETHODCALLTYPE GetDVDDirectory(
  1904. WCHAR *path,
  1905. ULONG size,
  1906. ULONG *ret_size) = 0;
  1907. virtual HRESULT STDMETHODCALLTYPE IsAudioStreamEnabled(
  1908. ULONG stream,
  1909. WINBOOL *enable) = 0;
  1910. virtual HRESULT STDMETHODCALLTYPE GetDiscID(
  1911. const WCHAR *path,
  1912. ULONGLONG *id) = 0;
  1913. virtual HRESULT STDMETHODCALLTYPE GetState(
  1914. IDvdState **state) = 0;
  1915. virtual HRESULT STDMETHODCALLTYPE GetMenuLanguages(
  1916. LCID *languages,
  1917. ULONG count,
  1918. ULONG *ret_count) = 0;
  1919. virtual HRESULT STDMETHODCALLTYPE GetButtonAtPosition(
  1920. POINT point,
  1921. ULONG *button) = 0;
  1922. virtual HRESULT STDMETHODCALLTYPE GetCmdFromEvent(
  1923. LONG_PTR param,
  1924. IDvdCmd **cmd) = 0;
  1925. virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuLanguage(
  1926. LCID *language) = 0;
  1927. virtual HRESULT STDMETHODCALLTYPE GetDefaultAudioLanguage(
  1928. LCID *language,
  1929. DVD_AUDIO_LANG_EXT *extension) = 0;
  1930. virtual HRESULT STDMETHODCALLTYPE SelectDefaultSubpictureLanguage(
  1931. LCID *language,
  1932. DVD_SUBPICTURE_LANG_EXT *extension) = 0;
  1933. virtual HRESULT STDMETHODCALLTYPE GetDecoderCaps(
  1934. DVD_DECODER_CAPS *caps) = 0;
  1935. virtual HRESULT STDMETHODCALLTYPE GetButtonRect(
  1936. ULONG button,
  1937. RECT *rect) = 0;
  1938. virtual HRESULT STDMETHODCALLTYPE IsSubpictureStreamEnabled(
  1939. ULONG stream,
  1940. WINBOOL *enable) = 0;
  1941. };
  1942. #ifdef __CRT_UUID_DECL
  1943. __CRT_UUID_DECL(IDvdInfo2, 0x34151510, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42)
  1944. #endif
  1945. #else
  1946. typedef struct IDvdInfo2Vtbl {
  1947. BEGIN_INTERFACE
  1948. /*** IUnknown methods ***/
  1949. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1950. IDvdInfo2 *This,
  1951. REFIID riid,
  1952. void **ppvObject);
  1953. ULONG (STDMETHODCALLTYPE *AddRef)(
  1954. IDvdInfo2 *This);
  1955. ULONG (STDMETHODCALLTYPE *Release)(
  1956. IDvdInfo2 *This);
  1957. /*** IDvdInfo2 methods ***/
  1958. HRESULT (STDMETHODCALLTYPE *GetCurrentDomain)(
  1959. IDvdInfo2 *This,
  1960. DVD_DOMAIN *domain);
  1961. HRESULT (STDMETHODCALLTYPE *GetCurrentLocation)(
  1962. IDvdInfo2 *This,
  1963. DVD_PLAYBACK_LOCATION2 *location);
  1964. HRESULT (STDMETHODCALLTYPE *GetTotalTitleTime)(
  1965. IDvdInfo2 *This,
  1966. DVD_HMSF_TIMECODE *time,
  1967. ULONG *flags);
  1968. HRESULT (STDMETHODCALLTYPE *GetCurrentButton)(
  1969. IDvdInfo2 *This,
  1970. ULONG *count,
  1971. ULONG *current);
  1972. HRESULT (STDMETHODCALLTYPE *GetCurrentAngle)(
  1973. IDvdInfo2 *This,
  1974. ULONG *count,
  1975. ULONG *current);
  1976. HRESULT (STDMETHODCALLTYPE *GetCurrentAudio)(
  1977. IDvdInfo2 *This,
  1978. ULONG *count,
  1979. ULONG *current);
  1980. HRESULT (STDMETHODCALLTYPE *GetCurrentSubpicture)(
  1981. IDvdInfo2 *This,
  1982. ULONG *count,
  1983. ULONG *current,
  1984. WINBOOL *enable);
  1985. HRESULT (STDMETHODCALLTYPE *GetCurrentUOPS)(
  1986. IDvdInfo2 *This,
  1987. ULONG *uops);
  1988. HRESULT (STDMETHODCALLTYPE *GetAllSPRMs)(
  1989. IDvdInfo2 *This,
  1990. SPRMARRAY *regs);
  1991. HRESULT (STDMETHODCALLTYPE *GetAllGPRMs)(
  1992. IDvdInfo2 *This,
  1993. GPRMARRAY *regs);
  1994. HRESULT (STDMETHODCALLTYPE *GetAudioLanguage)(
  1995. IDvdInfo2 *This,
  1996. ULONG stream,
  1997. LCID *language);
  1998. HRESULT (STDMETHODCALLTYPE *GetSubpictureLanguage)(
  1999. IDvdInfo2 *This,
  2000. ULONG stream,
  2001. LCID *language);
  2002. HRESULT (STDMETHODCALLTYPE *GetTitleAttributes)(
  2003. IDvdInfo2 *This,
  2004. ULONG index,
  2005. DVD_MenuAttributes *menu,
  2006. DVD_TitleAttributes *title);
  2007. HRESULT (STDMETHODCALLTYPE *GetVMGAttributes)(
  2008. IDvdInfo2 *This,
  2009. DVD_MenuAttributes *attr);
  2010. HRESULT (STDMETHODCALLTYPE *GetVideoAttributes)(
  2011. IDvdInfo2 *This,
  2012. DVD_VideoAttributes *attr);
  2013. HRESULT (STDMETHODCALLTYPE *GetAudioAttributes)(
  2014. IDvdInfo2 *This,
  2015. ULONG stream,
  2016. DVD_AudioAttributes *attr);
  2017. HRESULT (STDMETHODCALLTYPE *GetKaraokeAttributes)(
  2018. IDvdInfo2 *This,
  2019. ULONG stream,
  2020. DVD_KaraokeAttributes *attr);
  2021. HRESULT (STDMETHODCALLTYPE *GetSubpictureAttributes)(
  2022. IDvdInfo2 *This,
  2023. ULONG stream,
  2024. DVD_SubpictureAttributes *attr);
  2025. HRESULT (STDMETHODCALLTYPE *GetCurrentVolumeInfo)(
  2026. IDvdInfo2 *This,
  2027. ULONG *volume_count,
  2028. ULONG *current,
  2029. DVD_DISC_SIDE *side,
  2030. ULONG *title_count);
  2031. HRESULT (STDMETHODCALLTYPE *GetDVDTextNumberOfLanguages)(
  2032. IDvdInfo2 *This,
  2033. ULONG *count);
  2034. HRESULT (STDMETHODCALLTYPE *GetDVDTextLanguageInfo)(
  2035. IDvdInfo2 *This,
  2036. ULONG index,
  2037. ULONG *string_count,
  2038. LCID *language,
  2039. enum DVD_TextCharSet *character_set);
  2040. HRESULT (STDMETHODCALLTYPE *GetDVDTextStringAsNative)(
  2041. IDvdInfo2 *This,
  2042. ULONG lang_index,
  2043. ULONG string_index,
  2044. BYTE *string,
  2045. ULONG size,
  2046. ULONG *ret_size,
  2047. enum DVD_TextStringType *type);
  2048. HRESULT (STDMETHODCALLTYPE *GetDVDTextStringAsUnicode)(
  2049. IDvdInfo2 *This,
  2050. ULONG lang_index,
  2051. ULONG string_index,
  2052. WCHAR *string,
  2053. ULONG size,
  2054. ULONG *ret_size,
  2055. enum DVD_TextStringType *type);
  2056. HRESULT (STDMETHODCALLTYPE *GetPlayerParentalLevel)(
  2057. IDvdInfo2 *This,
  2058. ULONG *level,
  2059. BYTE country_code[2]);
  2060. HRESULT (STDMETHODCALLTYPE *GetNumberOfChapters)(
  2061. IDvdInfo2 *This,
  2062. ULONG title,
  2063. ULONG *count);
  2064. HRESULT (STDMETHODCALLTYPE *GetTitleParentalLevels)(
  2065. IDvdInfo2 *This,
  2066. ULONG title,
  2067. ULONG *levels);
  2068. HRESULT (STDMETHODCALLTYPE *GetDVDDirectory)(
  2069. IDvdInfo2 *This,
  2070. WCHAR *path,
  2071. ULONG size,
  2072. ULONG *ret_size);
  2073. HRESULT (STDMETHODCALLTYPE *IsAudioStreamEnabled)(
  2074. IDvdInfo2 *This,
  2075. ULONG stream,
  2076. WINBOOL *enable);
  2077. HRESULT (STDMETHODCALLTYPE *GetDiscID)(
  2078. IDvdInfo2 *This,
  2079. const WCHAR *path,
  2080. ULONGLONG *id);
  2081. HRESULT (STDMETHODCALLTYPE *GetState)(
  2082. IDvdInfo2 *This,
  2083. IDvdState **state);
  2084. HRESULT (STDMETHODCALLTYPE *GetMenuLanguages)(
  2085. IDvdInfo2 *This,
  2086. LCID *languages,
  2087. ULONG count,
  2088. ULONG *ret_count);
  2089. HRESULT (STDMETHODCALLTYPE *GetButtonAtPosition)(
  2090. IDvdInfo2 *This,
  2091. POINT point,
  2092. ULONG *button);
  2093. HRESULT (STDMETHODCALLTYPE *GetCmdFromEvent)(
  2094. IDvdInfo2 *This,
  2095. LONG_PTR param,
  2096. IDvdCmd **cmd);
  2097. HRESULT (STDMETHODCALLTYPE *GetDefaultMenuLanguage)(
  2098. IDvdInfo2 *This,
  2099. LCID *language);
  2100. HRESULT (STDMETHODCALLTYPE *GetDefaultAudioLanguage)(
  2101. IDvdInfo2 *This,
  2102. LCID *language,
  2103. DVD_AUDIO_LANG_EXT *extension);
  2104. HRESULT (STDMETHODCALLTYPE *SelectDefaultSubpictureLanguage)(
  2105. IDvdInfo2 *This,
  2106. LCID *language,
  2107. DVD_SUBPICTURE_LANG_EXT *extension);
  2108. HRESULT (STDMETHODCALLTYPE *GetDecoderCaps)(
  2109. IDvdInfo2 *This,
  2110. DVD_DECODER_CAPS *caps);
  2111. HRESULT (STDMETHODCALLTYPE *GetButtonRect)(
  2112. IDvdInfo2 *This,
  2113. ULONG button,
  2114. RECT *rect);
  2115. HRESULT (STDMETHODCALLTYPE *IsSubpictureStreamEnabled)(
  2116. IDvdInfo2 *This,
  2117. ULONG stream,
  2118. WINBOOL *enable);
  2119. END_INTERFACE
  2120. } IDvdInfo2Vtbl;
  2121. interface IDvdInfo2 {
  2122. CONST_VTBL IDvdInfo2Vtbl* lpVtbl;
  2123. };
  2124. #ifdef COBJMACROS
  2125. #ifndef WIDL_C_INLINE_WRAPPERS
  2126. /*** IUnknown methods ***/
  2127. #define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2128. #define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
  2129. #define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
  2130. /*** IDvdInfo2 methods ***/
  2131. #define IDvdInfo2_GetCurrentDomain(This,domain) (This)->lpVtbl->GetCurrentDomain(This,domain)
  2132. #define IDvdInfo2_GetCurrentLocation(This,location) (This)->lpVtbl->GetCurrentLocation(This,location)
  2133. #define IDvdInfo2_GetTotalTitleTime(This,time,flags) (This)->lpVtbl->GetTotalTitleTime(This,time,flags)
  2134. #define IDvdInfo2_GetCurrentButton(This,count,current) (This)->lpVtbl->GetCurrentButton(This,count,current)
  2135. #define IDvdInfo2_GetCurrentAngle(This,count,current) (This)->lpVtbl->GetCurrentAngle(This,count,current)
  2136. #define IDvdInfo2_GetCurrentAudio(This,count,current) (This)->lpVtbl->GetCurrentAudio(This,count,current)
  2137. #define IDvdInfo2_GetCurrentSubpicture(This,count,current,enable) (This)->lpVtbl->GetCurrentSubpicture(This,count,current,enable)
  2138. #define IDvdInfo2_GetCurrentUOPS(This,uops) (This)->lpVtbl->GetCurrentUOPS(This,uops)
  2139. #define IDvdInfo2_GetAllSPRMs(This,regs) (This)->lpVtbl->GetAllSPRMs(This,regs)
  2140. #define IDvdInfo2_GetAllGPRMs(This,regs) (This)->lpVtbl->GetAllGPRMs(This,regs)
  2141. #define IDvdInfo2_GetAudioLanguage(This,stream,language) (This)->lpVtbl->GetAudioLanguage(This,stream,language)
  2142. #define IDvdInfo2_GetSubpictureLanguage(This,stream,language) (This)->lpVtbl->GetSubpictureLanguage(This,stream,language)
  2143. #define IDvdInfo2_GetTitleAttributes(This,index,menu,title) (This)->lpVtbl->GetTitleAttributes(This,index,menu,title)
  2144. #define IDvdInfo2_GetVMGAttributes(This,attr) (This)->lpVtbl->GetVMGAttributes(This,attr)
  2145. #define IDvdInfo2_GetVideoAttributes(This,attr) (This)->lpVtbl->GetVideoAttributes(This,attr)
  2146. #define IDvdInfo2_GetAudioAttributes(This,stream,attr) (This)->lpVtbl->GetAudioAttributes(This,stream,attr)
  2147. #define IDvdInfo2_GetKaraokeAttributes(This,stream,attr) (This)->lpVtbl->GetKaraokeAttributes(This,stream,attr)
  2148. #define IDvdInfo2_GetSubpictureAttributes(This,stream,attr) (This)->lpVtbl->GetSubpictureAttributes(This,stream,attr)
  2149. #define IDvdInfo2_GetCurrentVolumeInfo(This,volume_count,current,side,title_count) (This)->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count)
  2150. #define IDvdInfo2_GetDVDTextNumberOfLanguages(This,count) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,count)
  2151. #define IDvdInfo2_GetDVDTextLanguageInfo(This,index,string_count,language,character_set) (This)->lpVtbl->GetDVDTextLanguageInfo(This,index,string_count,language,character_set)
  2152. #define IDvdInfo2_GetDVDTextStringAsNative(This,lang_index,string_index,string,size,ret_size,type) (This)->lpVtbl->GetDVDTextStringAsNative(This,lang_index,string_index,string,size,ret_size,type)
  2153. #define IDvdInfo2_GetDVDTextStringAsUnicode(This,lang_index,string_index,string,size,ret_size,type) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,lang_index,string_index,string,size,ret_size,type)
  2154. #define IDvdInfo2_GetPlayerParentalLevel(This,level,country_code) (This)->lpVtbl->GetPlayerParentalLevel(This,level,country_code)
  2155. #define IDvdInfo2_GetNumberOfChapters(This,title,count) (This)->lpVtbl->GetNumberOfChapters(This,title,count)
  2156. #define IDvdInfo2_GetTitleParentalLevels(This,title,levels) (This)->lpVtbl->GetTitleParentalLevels(This,title,levels)
  2157. #define IDvdInfo2_GetDVDDirectory(This,path,size,ret_size) (This)->lpVtbl->GetDVDDirectory(This,path,size,ret_size)
  2158. #define IDvdInfo2_IsAudioStreamEnabled(This,stream,enable) (This)->lpVtbl->IsAudioStreamEnabled(This,stream,enable)
  2159. #define IDvdInfo2_GetDiscID(This,path,id) (This)->lpVtbl->GetDiscID(This,path,id)
  2160. #define IDvdInfo2_GetState(This,state) (This)->lpVtbl->GetState(This,state)
  2161. #define IDvdInfo2_GetMenuLanguages(This,languages,count,ret_count) (This)->lpVtbl->GetMenuLanguages(This,languages,count,ret_count)
  2162. #define IDvdInfo2_GetButtonAtPosition(This,point,button) (This)->lpVtbl->GetButtonAtPosition(This,point,button)
  2163. #define IDvdInfo2_GetCmdFromEvent(This,param,cmd) (This)->lpVtbl->GetCmdFromEvent(This,param,cmd)
  2164. #define IDvdInfo2_GetDefaultMenuLanguage(This,language) (This)->lpVtbl->GetDefaultMenuLanguage(This,language)
  2165. #define IDvdInfo2_GetDefaultAudioLanguage(This,language,extension) (This)->lpVtbl->GetDefaultAudioLanguage(This,language,extension)
  2166. #define IDvdInfo2_SelectDefaultSubpictureLanguage(This,language,extension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension)
  2167. #define IDvdInfo2_GetDecoderCaps(This,caps) (This)->lpVtbl->GetDecoderCaps(This,caps)
  2168. #define IDvdInfo2_GetButtonRect(This,button,rect) (This)->lpVtbl->GetButtonRect(This,button,rect)
  2169. #define IDvdInfo2_IsSubpictureStreamEnabled(This,stream,enable) (This)->lpVtbl->IsSubpictureStreamEnabled(This,stream,enable)
  2170. #else
  2171. /*** IUnknown methods ***/
  2172. static FORCEINLINE HRESULT IDvdInfo2_QueryInterface(IDvdInfo2* This,REFIID riid,void **ppvObject) {
  2173. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2174. }
  2175. static FORCEINLINE ULONG IDvdInfo2_AddRef(IDvdInfo2* This) {
  2176. return This->lpVtbl->AddRef(This);
  2177. }
  2178. static FORCEINLINE ULONG IDvdInfo2_Release(IDvdInfo2* This) {
  2179. return This->lpVtbl->Release(This);
  2180. }
  2181. /*** IDvdInfo2 methods ***/
  2182. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentDomain(IDvdInfo2* This,DVD_DOMAIN *domain) {
  2183. return This->lpVtbl->GetCurrentDomain(This,domain);
  2184. }
  2185. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentLocation(IDvdInfo2* This,DVD_PLAYBACK_LOCATION2 *location) {
  2186. return This->lpVtbl->GetCurrentLocation(This,location);
  2187. }
  2188. static FORCEINLINE HRESULT IDvdInfo2_GetTotalTitleTime(IDvdInfo2* This,DVD_HMSF_TIMECODE *time,ULONG *flags) {
  2189. return This->lpVtbl->GetTotalTitleTime(This,time,flags);
  2190. }
  2191. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentButton(IDvdInfo2* This,ULONG *count,ULONG *current) {
  2192. return This->lpVtbl->GetCurrentButton(This,count,current);
  2193. }
  2194. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentAngle(IDvdInfo2* This,ULONG *count,ULONG *current) {
  2195. return This->lpVtbl->GetCurrentAngle(This,count,current);
  2196. }
  2197. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentAudio(IDvdInfo2* This,ULONG *count,ULONG *current) {
  2198. return This->lpVtbl->GetCurrentAudio(This,count,current);
  2199. }
  2200. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentSubpicture(IDvdInfo2* This,ULONG *count,ULONG *current,WINBOOL *enable) {
  2201. return This->lpVtbl->GetCurrentSubpicture(This,count,current,enable);
  2202. }
  2203. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentUOPS(IDvdInfo2* This,ULONG *uops) {
  2204. return This->lpVtbl->GetCurrentUOPS(This,uops);
  2205. }
  2206. static FORCEINLINE HRESULT IDvdInfo2_GetAllSPRMs(IDvdInfo2* This,SPRMARRAY *regs) {
  2207. return This->lpVtbl->GetAllSPRMs(This,regs);
  2208. }
  2209. static FORCEINLINE HRESULT IDvdInfo2_GetAllGPRMs(IDvdInfo2* This,GPRMARRAY *regs) {
  2210. return This->lpVtbl->GetAllGPRMs(This,regs);
  2211. }
  2212. static FORCEINLINE HRESULT IDvdInfo2_GetAudioLanguage(IDvdInfo2* This,ULONG stream,LCID *language) {
  2213. return This->lpVtbl->GetAudioLanguage(This,stream,language);
  2214. }
  2215. static FORCEINLINE HRESULT IDvdInfo2_GetSubpictureLanguage(IDvdInfo2* This,ULONG stream,LCID *language) {
  2216. return This->lpVtbl->GetSubpictureLanguage(This,stream,language);
  2217. }
  2218. static FORCEINLINE HRESULT IDvdInfo2_GetTitleAttributes(IDvdInfo2* This,ULONG index,DVD_MenuAttributes *menu,DVD_TitleAttributes *title) {
  2219. return This->lpVtbl->GetTitleAttributes(This,index,menu,title);
  2220. }
  2221. static FORCEINLINE HRESULT IDvdInfo2_GetVMGAttributes(IDvdInfo2* This,DVD_MenuAttributes *attr) {
  2222. return This->lpVtbl->GetVMGAttributes(This,attr);
  2223. }
  2224. static FORCEINLINE HRESULT IDvdInfo2_GetVideoAttributes(IDvdInfo2* This,DVD_VideoAttributes *attr) {
  2225. return This->lpVtbl->GetVideoAttributes(This,attr);
  2226. }
  2227. static FORCEINLINE HRESULT IDvdInfo2_GetAudioAttributes(IDvdInfo2* This,ULONG stream,DVD_AudioAttributes *attr) {
  2228. return This->lpVtbl->GetAudioAttributes(This,stream,attr);
  2229. }
  2230. static FORCEINLINE HRESULT IDvdInfo2_GetKaraokeAttributes(IDvdInfo2* This,ULONG stream,DVD_KaraokeAttributes *attr) {
  2231. return This->lpVtbl->GetKaraokeAttributes(This,stream,attr);
  2232. }
  2233. static FORCEINLINE HRESULT IDvdInfo2_GetSubpictureAttributes(IDvdInfo2* This,ULONG stream,DVD_SubpictureAttributes *attr) {
  2234. return This->lpVtbl->GetSubpictureAttributes(This,stream,attr);
  2235. }
  2236. static FORCEINLINE HRESULT IDvdInfo2_GetCurrentVolumeInfo(IDvdInfo2* This,ULONG *volume_count,ULONG *current,DVD_DISC_SIDE *side,ULONG *title_count) {
  2237. return This->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count);
  2238. }
  2239. static FORCEINLINE HRESULT IDvdInfo2_GetDVDTextNumberOfLanguages(IDvdInfo2* This,ULONG *count) {
  2240. return This->lpVtbl->GetDVDTextNumberOfLanguages(This,count);
  2241. }
  2242. static FORCEINLINE HRESULT IDvdInfo2_GetDVDTextLanguageInfo(IDvdInfo2* This,ULONG index,ULONG *string_count,LCID *language,enum DVD_TextCharSet *character_set) {
  2243. return This->lpVtbl->GetDVDTextLanguageInfo(This,index,string_count,language,character_set);
  2244. }
  2245. static FORCEINLINE HRESULT IDvdInfo2_GetDVDTextStringAsNative(IDvdInfo2* This,ULONG lang_index,ULONG string_index,BYTE *string,ULONG size,ULONG *ret_size,enum DVD_TextStringType *type) {
  2246. return This->lpVtbl->GetDVDTextStringAsNative(This,lang_index,string_index,string,size,ret_size,type);
  2247. }
  2248. static FORCEINLINE HRESULT IDvdInfo2_GetDVDTextStringAsUnicode(IDvdInfo2* This,ULONG lang_index,ULONG string_index,WCHAR *string,ULONG size,ULONG *ret_size,enum DVD_TextStringType *type) {
  2249. return This->lpVtbl->GetDVDTextStringAsUnicode(This,lang_index,string_index,string,size,ret_size,type);
  2250. }
  2251. static FORCEINLINE HRESULT IDvdInfo2_GetPlayerParentalLevel(IDvdInfo2* This,ULONG *level,BYTE country_code[2]) {
  2252. return This->lpVtbl->GetPlayerParentalLevel(This,level,country_code);
  2253. }
  2254. static FORCEINLINE HRESULT IDvdInfo2_GetNumberOfChapters(IDvdInfo2* This,ULONG title,ULONG *count) {
  2255. return This->lpVtbl->GetNumberOfChapters(This,title,count);
  2256. }
  2257. static FORCEINLINE HRESULT IDvdInfo2_GetTitleParentalLevels(IDvdInfo2* This,ULONG title,ULONG *levels) {
  2258. return This->lpVtbl->GetTitleParentalLevels(This,title,levels);
  2259. }
  2260. static FORCEINLINE HRESULT IDvdInfo2_GetDVDDirectory(IDvdInfo2* This,WCHAR *path,ULONG size,ULONG *ret_size) {
  2261. return This->lpVtbl->GetDVDDirectory(This,path,size,ret_size);
  2262. }
  2263. static FORCEINLINE HRESULT IDvdInfo2_IsAudioStreamEnabled(IDvdInfo2* This,ULONG stream,WINBOOL *enable) {
  2264. return This->lpVtbl->IsAudioStreamEnabled(This,stream,enable);
  2265. }
  2266. static FORCEINLINE HRESULT IDvdInfo2_GetDiscID(IDvdInfo2* This,const WCHAR *path,ULONGLONG *id) {
  2267. return This->lpVtbl->GetDiscID(This,path,id);
  2268. }
  2269. static FORCEINLINE HRESULT IDvdInfo2_GetState(IDvdInfo2* This,IDvdState **state) {
  2270. return This->lpVtbl->GetState(This,state);
  2271. }
  2272. static FORCEINLINE HRESULT IDvdInfo2_GetMenuLanguages(IDvdInfo2* This,LCID *languages,ULONG count,ULONG *ret_count) {
  2273. return This->lpVtbl->GetMenuLanguages(This,languages,count,ret_count);
  2274. }
  2275. static FORCEINLINE HRESULT IDvdInfo2_GetButtonAtPosition(IDvdInfo2* This,POINT point,ULONG *button) {
  2276. return This->lpVtbl->GetButtonAtPosition(This,point,button);
  2277. }
  2278. static FORCEINLINE HRESULT IDvdInfo2_GetCmdFromEvent(IDvdInfo2* This,LONG_PTR param,IDvdCmd **cmd) {
  2279. return This->lpVtbl->GetCmdFromEvent(This,param,cmd);
  2280. }
  2281. static FORCEINLINE HRESULT IDvdInfo2_GetDefaultMenuLanguage(IDvdInfo2* This,LCID *language) {
  2282. return This->lpVtbl->GetDefaultMenuLanguage(This,language);
  2283. }
  2284. static FORCEINLINE HRESULT IDvdInfo2_GetDefaultAudioLanguage(IDvdInfo2* This,LCID *language,DVD_AUDIO_LANG_EXT *extension) {
  2285. return This->lpVtbl->GetDefaultAudioLanguage(This,language,extension);
  2286. }
  2287. static FORCEINLINE HRESULT IDvdInfo2_SelectDefaultSubpictureLanguage(IDvdInfo2* This,LCID *language,DVD_SUBPICTURE_LANG_EXT *extension) {
  2288. return This->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension);
  2289. }
  2290. static FORCEINLINE HRESULT IDvdInfo2_GetDecoderCaps(IDvdInfo2* This,DVD_DECODER_CAPS *caps) {
  2291. return This->lpVtbl->GetDecoderCaps(This,caps);
  2292. }
  2293. static FORCEINLINE HRESULT IDvdInfo2_GetButtonRect(IDvdInfo2* This,ULONG button,RECT *rect) {
  2294. return This->lpVtbl->GetButtonRect(This,button,rect);
  2295. }
  2296. static FORCEINLINE HRESULT IDvdInfo2_IsSubpictureStreamEnabled(IDvdInfo2* This,ULONG stream,WINBOOL *enable) {
  2297. return This->lpVtbl->IsSubpictureStreamEnabled(This,stream,enable);
  2298. }
  2299. #endif
  2300. #endif
  2301. #endif
  2302. #endif /* __IDvdInfo2_INTERFACE_DEFINED__ */
  2303. /*****************************************************************************
  2304. * IDvdGraphBuilder interface
  2305. */
  2306. #ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
  2307. #define __IDvdGraphBuilder_INTERFACE_DEFINED__
  2308. DEFINE_GUID(IID_IDvdGraphBuilder, 0xfcc152b6, 0xf372, 0x11d0, 0x8e,0x00, 0x00,0xc0,0x4f,0xd7,0xc0,0x8b);
  2309. #if defined(__cplusplus) && !defined(CINTERFACE)
  2310. MIDL_INTERFACE("fcc152b6-f372-11d0-8e00-00c04fd7c08b")
  2311. IDvdGraphBuilder : public IUnknown
  2312. {
  2313. virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
  2314. IGraphBuilder **graph) = 0;
  2315. virtual HRESULT STDMETHODCALLTYPE GetDvdInterface(
  2316. REFIID iid,
  2317. void **out) = 0;
  2318. virtual HRESULT STDMETHODCALLTYPE RenderDvdVideoVolume(
  2319. const WCHAR *path,
  2320. DWORD flags,
  2321. AM_DVD_RENDERSTATUS *status) = 0;
  2322. };
  2323. #ifdef __CRT_UUID_DECL
  2324. __CRT_UUID_DECL(IDvdGraphBuilder, 0xfcc152b6, 0xf372, 0x11d0, 0x8e,0x00, 0x00,0xc0,0x4f,0xd7,0xc0,0x8b)
  2325. #endif
  2326. #else
  2327. typedef struct IDvdGraphBuilderVtbl {
  2328. BEGIN_INTERFACE
  2329. /*** IUnknown methods ***/
  2330. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2331. IDvdGraphBuilder *This,
  2332. REFIID riid,
  2333. void **ppvObject);
  2334. ULONG (STDMETHODCALLTYPE *AddRef)(
  2335. IDvdGraphBuilder *This);
  2336. ULONG (STDMETHODCALLTYPE *Release)(
  2337. IDvdGraphBuilder *This);
  2338. /*** IDvdGraphBuilder methods ***/
  2339. HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
  2340. IDvdGraphBuilder *This,
  2341. IGraphBuilder **graph);
  2342. HRESULT (STDMETHODCALLTYPE *GetDvdInterface)(
  2343. IDvdGraphBuilder *This,
  2344. REFIID iid,
  2345. void **out);
  2346. HRESULT (STDMETHODCALLTYPE *RenderDvdVideoVolume)(
  2347. IDvdGraphBuilder *This,
  2348. const WCHAR *path,
  2349. DWORD flags,
  2350. AM_DVD_RENDERSTATUS *status);
  2351. END_INTERFACE
  2352. } IDvdGraphBuilderVtbl;
  2353. interface IDvdGraphBuilder {
  2354. CONST_VTBL IDvdGraphBuilderVtbl* lpVtbl;
  2355. };
  2356. #ifdef COBJMACROS
  2357. #ifndef WIDL_C_INLINE_WRAPPERS
  2358. /*** IUnknown methods ***/
  2359. #define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2360. #define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
  2361. #define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
  2362. /*** IDvdGraphBuilder methods ***/
  2363. #define IDvdGraphBuilder_GetFiltergraph(This,graph) (This)->lpVtbl->GetFiltergraph(This,graph)
  2364. #define IDvdGraphBuilder_GetDvdInterface(This,iid,out) (This)->lpVtbl->GetDvdInterface(This,iid,out)
  2365. #define IDvdGraphBuilder_RenderDvdVideoVolume(This,path,flags,status) (This)->lpVtbl->RenderDvdVideoVolume(This,path,flags,status)
  2366. #else
  2367. /*** IUnknown methods ***/
  2368. static FORCEINLINE HRESULT IDvdGraphBuilder_QueryInterface(IDvdGraphBuilder* This,REFIID riid,void **ppvObject) {
  2369. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2370. }
  2371. static FORCEINLINE ULONG IDvdGraphBuilder_AddRef(IDvdGraphBuilder* This) {
  2372. return This->lpVtbl->AddRef(This);
  2373. }
  2374. static FORCEINLINE ULONG IDvdGraphBuilder_Release(IDvdGraphBuilder* This) {
  2375. return This->lpVtbl->Release(This);
  2376. }
  2377. /*** IDvdGraphBuilder methods ***/
  2378. static FORCEINLINE HRESULT IDvdGraphBuilder_GetFiltergraph(IDvdGraphBuilder* This,IGraphBuilder **graph) {
  2379. return This->lpVtbl->GetFiltergraph(This,graph);
  2380. }
  2381. static FORCEINLINE HRESULT IDvdGraphBuilder_GetDvdInterface(IDvdGraphBuilder* This,REFIID iid,void **out) {
  2382. return This->lpVtbl->GetDvdInterface(This,iid,out);
  2383. }
  2384. static FORCEINLINE HRESULT IDvdGraphBuilder_RenderDvdVideoVolume(IDvdGraphBuilder* This,const WCHAR *path,DWORD flags,AM_DVD_RENDERSTATUS *status) {
  2385. return This->lpVtbl->RenderDvdVideoVolume(This,path,flags,status);
  2386. }
  2387. #endif
  2388. #endif
  2389. #endif
  2390. #endif /* __IDvdGraphBuilder_INTERFACE_DEFINED__ */
  2391. /* Begin additional prototypes for all interfaces */
  2392. /* End additional prototypes */
  2393. #ifdef __cplusplus
  2394. }
  2395. #endif
  2396. #endif /* __dvdif_h__ */