strmif.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:843k
源码类别:

模拟服务器

开发平台:

C/C++

  1.     }  DVD_TITLE_APPMODE;
  2. typedef struct tagDVD_TitleMainAttributes
  3.     {
  4.     DVD_TITLE_APPMODE AppMode;
  5.     DVD_VideoAttributes VideoAttributes;
  6.     ULONG ulNumberOfAudioStreams;
  7.     DVD_AudioAttributes AudioAttributes[ 8 ];
  8.     DVD_MultichannelAudioAttributes MultichannelAudioAttributes[ 8 ];
  9.     ULONG ulNumberOfSubpictureStreams;
  10.     DVD_SubpictureAttributes SubpictureAttributes[ 32 ];
  11.     }  DVD_TitleAttributes;
  12. typedef struct tagDVD_MenuAttributes
  13.     {
  14.     BOOL fCompatibleRegion[ 8 ];
  15.     DVD_VideoAttributes VideoAttributes;
  16.     BOOL fAudioPresent;
  17.     DVD_AudioAttributes AudioAttributes;
  18.     BOOL fSubpicturePresent;
  19.     DVD_SubpictureAttributes SubpictureAttributes;
  20.     }  DVD_MenuAttributes;
  21. extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
  22. extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
  23. #ifndef __IDvdControl_INTERFACE_DEFINED__
  24. #define __IDvdControl_INTERFACE_DEFINED__
  25. /* interface IDvdControl */
  26. /* [unique][uuid][object] */ 
  27. EXTERN_C const IID IID_IDvdControl;
  28. #if defined(__cplusplus) && !defined(CINTERFACE)
  29.     
  30.     MIDL_INTERFACE("A70EFE61-E2A3-11d0-A9BE-00AA0061BE93")
  31.     IDvdControl : public IUnknown
  32.     {
  33.     public:
  34.         virtual HRESULT STDMETHODCALLTYPE TitlePlay( 
  35.             /* [in] */ ULONG ulTitle) = 0;
  36.         
  37.         virtual HRESULT STDMETHODCALLTYPE ChapterPlay( 
  38.             /* [in] */ ULONG ulTitle,
  39.             /* [in] */ ULONG ulChapter) = 0;
  40.         
  41.         virtual HRESULT STDMETHODCALLTYPE TimePlay( 
  42.             /* [in] */ ULONG ulTitle,
  43.             /* [in] */ ULONG bcdTime) = 0;
  44.         
  45.         virtual HRESULT STDMETHODCALLTYPE StopForResume( void) = 0;
  46.         
  47.         virtual HRESULT STDMETHODCALLTYPE GoUp( void) = 0;
  48.         
  49.         virtual HRESULT STDMETHODCALLTYPE TimeSearch( 
  50.             /* [in] */ ULONG bcdTime) = 0;
  51.         
  52.         virtual HRESULT STDMETHODCALLTYPE ChapterSearch( 
  53.             /* [in] */ ULONG ulChapter) = 0;
  54.         
  55.         virtual HRESULT STDMETHODCALLTYPE PrevPGSearch( void) = 0;
  56.         
  57.         virtual HRESULT STDMETHODCALLTYPE TopPGSearch( void) = 0;
  58.         
  59.         virtual HRESULT STDMETHODCALLTYPE NextPGSearch( void) = 0;
  60.         
  61.         virtual HRESULT STDMETHODCALLTYPE ForwardScan( 
  62.             /* [in] */ double dwSpeed) = 0;
  63.         
  64.         virtual HRESULT STDMETHODCALLTYPE BackwardScan( 
  65.             /* [in] */ double dwSpeed) = 0;
  66.         
  67.         virtual HRESULT STDMETHODCALLTYPE MenuCall( 
  68.             /* [in] */ DVD_MENU_ID MenuID) = 0;
  69.         
  70.         virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
  71.         
  72.         virtual HRESULT STDMETHODCALLTYPE UpperButtonSelect( void) = 0;
  73.         
  74.         virtual HRESULT STDMETHODCALLTYPE LowerButtonSelect( void) = 0;
  75.         
  76.         virtual HRESULT STDMETHODCALLTYPE LeftButtonSelect( void) = 0;
  77.         
  78.         virtual HRESULT STDMETHODCALLTYPE RightButtonSelect( void) = 0;
  79.         
  80.         virtual HRESULT STDMETHODCALLTYPE ButtonActivate( void) = 0;
  81.         
  82.         virtual HRESULT STDMETHODCALLTYPE ButtonSelectAndActivate( 
  83.             /* [in] */ ULONG ulButton) = 0;
  84.         
  85.         virtual HRESULT STDMETHODCALLTYPE StillOff( void) = 0;
  86.         
  87.         virtual HRESULT STDMETHODCALLTYPE PauseOn( void) = 0;
  88.         
  89.         virtual HRESULT STDMETHODCALLTYPE PauseOff( void) = 0;
  90.         
  91.         virtual HRESULT STDMETHODCALLTYPE MenuLanguageSelect( 
  92.             /* [in] */ LCID Language) = 0;
  93.         
  94.         virtual HRESULT STDMETHODCALLTYPE AudioStreamChange( 
  95.             /* [in] */ ULONG ulAudio) = 0;
  96.         
  97.         virtual HRESULT STDMETHODCALLTYPE SubpictureStreamChange( 
  98.             /* [in] */ ULONG ulSubPicture,
  99.             /* [in] */ BOOL bDisplay) = 0;
  100.         
  101.         virtual HRESULT STDMETHODCALLTYPE AngleChange( 
  102.             /* [in] */ ULONG ulAngle) = 0;
  103.         
  104.         virtual HRESULT STDMETHODCALLTYPE ParentalLevelSelect( 
  105.             /* [in] */ ULONG ulParentalLevel) = 0;
  106.         
  107.         virtual HRESULT STDMETHODCALLTYPE ParentalCountrySelect( 
  108.             /* [in] */ WORD wCountry) = 0;
  109.         
  110.         virtual HRESULT STDMETHODCALLTYPE KaraokeAudioPresentationModeChange( 
  111.             /* [in] */ ULONG ulMode) = 0;
  112.         
  113.         virtual HRESULT STDMETHODCALLTYPE VideoModePreferrence( 
  114.             /* [in] */ ULONG ulPreferredDisplayMode) = 0;
  115.         
  116.         virtual HRESULT STDMETHODCALLTYPE SetRoot( 
  117.             /* [in] */ LPCWSTR pszPath) = 0;
  118.         
  119.         virtual HRESULT STDMETHODCALLTYPE MouseActivate( 
  120.             /* [in] */ POINT point) = 0;
  121.         
  122.         virtual HRESULT STDMETHODCALLTYPE MouseSelect( 
  123.             /* [in] */ POINT point) = 0;
  124.         
  125.         virtual HRESULT STDMETHODCALLTYPE ChapterPlayAutoStop( 
  126.             /* [in] */ ULONG ulTitle,
  127.             /* [in] */ ULONG ulChapter,
  128.             /* [in] */ ULONG ulChaptersToPlay) = 0;
  129.         
  130.     };
  131.     
  132. #else  /* C style interface */
  133.     typedef struct IDvdControlVtbl
  134.     {
  135.         BEGIN_INTERFACE
  136.         
  137.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  138.             IDvdControl * This,
  139.             /* [in] */ REFIID riid,
  140.             /* [iid_is][out] */ void **ppvObject);
  141.         
  142.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  143.             IDvdControl * This);
  144.         
  145.         ULONG ( STDMETHODCALLTYPE *Release )( 
  146.             IDvdControl * This);
  147.         
  148.         HRESULT ( STDMETHODCALLTYPE *TitlePlay )( 
  149.             IDvdControl * This,
  150.             /* [in] */ ULONG ulTitle);
  151.         
  152.         HRESULT ( STDMETHODCALLTYPE *ChapterPlay )( 
  153.             IDvdControl * This,
  154.             /* [in] */ ULONG ulTitle,
  155.             /* [in] */ ULONG ulChapter);
  156.         
  157.         HRESULT ( STDMETHODCALLTYPE *TimePlay )( 
  158.             IDvdControl * This,
  159.             /* [in] */ ULONG ulTitle,
  160.             /* [in] */ ULONG bcdTime);
  161.         
  162.         HRESULT ( STDMETHODCALLTYPE *StopForResume )( 
  163.             IDvdControl * This);
  164.         
  165.         HRESULT ( STDMETHODCALLTYPE *GoUp )( 
  166.             IDvdControl * This);
  167.         
  168.         HRESULT ( STDMETHODCALLTYPE *TimeSearch )( 
  169.             IDvdControl * This,
  170.             /* [in] */ ULONG bcdTime);
  171.         
  172.         HRESULT ( STDMETHODCALLTYPE *ChapterSearch )( 
  173.             IDvdControl * This,
  174.             /* [in] */ ULONG ulChapter);
  175.         
  176.         HRESULT ( STDMETHODCALLTYPE *PrevPGSearch )( 
  177.             IDvdControl * This);
  178.         
  179.         HRESULT ( STDMETHODCALLTYPE *TopPGSearch )( 
  180.             IDvdControl * This);
  181.         
  182.         HRESULT ( STDMETHODCALLTYPE *NextPGSearch )( 
  183.             IDvdControl * This);
  184.         
  185.         HRESULT ( STDMETHODCALLTYPE *ForwardScan )( 
  186.             IDvdControl * This,
  187.             /* [in] */ double dwSpeed);
  188.         
  189.         HRESULT ( STDMETHODCALLTYPE *BackwardScan )( 
  190.             IDvdControl * This,
  191.             /* [in] */ double dwSpeed);
  192.         
  193.         HRESULT ( STDMETHODCALLTYPE *MenuCall )( 
  194.             IDvdControl * This,
  195.             /* [in] */ DVD_MENU_ID MenuID);
  196.         
  197.         HRESULT ( STDMETHODCALLTYPE *Resume )( 
  198.             IDvdControl * This);
  199.         
  200.         HRESULT ( STDMETHODCALLTYPE *UpperButtonSelect )( 
  201.             IDvdControl * This);
  202.         
  203.         HRESULT ( STDMETHODCALLTYPE *LowerButtonSelect )( 
  204.             IDvdControl * This);
  205.         
  206.         HRESULT ( STDMETHODCALLTYPE *LeftButtonSelect )( 
  207.             IDvdControl * This);
  208.         
  209.         HRESULT ( STDMETHODCALLTYPE *RightButtonSelect )( 
  210.             IDvdControl * This);
  211.         
  212.         HRESULT ( STDMETHODCALLTYPE *ButtonActivate )( 
  213.             IDvdControl * This);
  214.         
  215.         HRESULT ( STDMETHODCALLTYPE *ButtonSelectAndActivate )( 
  216.             IDvdControl * This,
  217.             /* [in] */ ULONG ulButton);
  218.         
  219.         HRESULT ( STDMETHODCALLTYPE *StillOff )( 
  220.             IDvdControl * This);
  221.         
  222.         HRESULT ( STDMETHODCALLTYPE *PauseOn )( 
  223.             IDvdControl * This);
  224.         
  225.         HRESULT ( STDMETHODCALLTYPE *PauseOff )( 
  226.             IDvdControl * This);
  227.         
  228.         HRESULT ( STDMETHODCALLTYPE *MenuLanguageSelect )( 
  229.             IDvdControl * This,
  230.             /* [in] */ LCID Language);
  231.         
  232.         HRESULT ( STDMETHODCALLTYPE *AudioStreamChange )( 
  233.             IDvdControl * This,
  234.             /* [in] */ ULONG ulAudio);
  235.         
  236.         HRESULT ( STDMETHODCALLTYPE *SubpictureStreamChange )( 
  237.             IDvdControl * This,
  238.             /* [in] */ ULONG ulSubPicture,
  239.             /* [in] */ BOOL bDisplay);
  240.         
  241.         HRESULT ( STDMETHODCALLTYPE *AngleChange )( 
  242.             IDvdControl * This,
  243.             /* [in] */ ULONG ulAngle);
  244.         
  245.         HRESULT ( STDMETHODCALLTYPE *ParentalLevelSelect )( 
  246.             IDvdControl * This,
  247.             /* [in] */ ULONG ulParentalLevel);
  248.         
  249.         HRESULT ( STDMETHODCALLTYPE *ParentalCountrySelect )( 
  250.             IDvdControl * This,
  251.             /* [in] */ WORD wCountry);
  252.         
  253.         HRESULT ( STDMETHODCALLTYPE *KaraokeAudioPresentationModeChange )( 
  254.             IDvdControl * This,
  255.             /* [in] */ ULONG ulMode);
  256.         
  257.         HRESULT ( STDMETHODCALLTYPE *VideoModePreferrence )( 
  258.             IDvdControl * This,
  259.             /* [in] */ ULONG ulPreferredDisplayMode);
  260.         
  261.         HRESULT ( STDMETHODCALLTYPE *SetRoot )( 
  262.             IDvdControl * This,
  263.             /* [in] */ LPCWSTR pszPath);
  264.         
  265.         HRESULT ( STDMETHODCALLTYPE *MouseActivate )( 
  266.             IDvdControl * This,
  267.             /* [in] */ POINT point);
  268.         
  269.         HRESULT ( STDMETHODCALLTYPE *MouseSelect )( 
  270.             IDvdControl * This,
  271.             /* [in] */ POINT point);
  272.         
  273.         HRESULT ( STDMETHODCALLTYPE *ChapterPlayAutoStop )( 
  274.             IDvdControl * This,
  275.             /* [in] */ ULONG ulTitle,
  276.             /* [in] */ ULONG ulChapter,
  277.             /* [in] */ ULONG ulChaptersToPlay);
  278.         
  279.         END_INTERFACE
  280.     } IDvdControlVtbl;
  281.     interface IDvdControl
  282.     {
  283.         CONST_VTBL struct IDvdControlVtbl *lpVtbl;
  284.     };
  285.     
  286. #ifdef COBJMACROS
  287. #define IDvdControl_QueryInterface(This,riid,ppvObject)
  288.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  289. #define IDvdControl_AddRef(This)
  290.     (This)->lpVtbl -> AddRef(This)
  291. #define IDvdControl_Release(This)
  292.     (This)->lpVtbl -> Release(This)
  293. #define IDvdControl_TitlePlay(This,ulTitle)
  294.     (This)->lpVtbl -> TitlePlay(This,ulTitle)
  295. #define IDvdControl_ChapterPlay(This,ulTitle,ulChapter)
  296.     (This)->lpVtbl -> ChapterPlay(This,ulTitle,ulChapter)
  297. #define IDvdControl_TimePlay(This,ulTitle,bcdTime)
  298.     (This)->lpVtbl -> TimePlay(This,ulTitle,bcdTime)
  299. #define IDvdControl_StopForResume(This)
  300.     (This)->lpVtbl -> StopForResume(This)
  301. #define IDvdControl_GoUp(This)
  302.     (This)->lpVtbl -> GoUp(This)
  303. #define IDvdControl_TimeSearch(This,bcdTime)
  304.     (This)->lpVtbl -> TimeSearch(This,bcdTime)
  305. #define IDvdControl_ChapterSearch(This,ulChapter)
  306.     (This)->lpVtbl -> ChapterSearch(This,ulChapter)
  307. #define IDvdControl_PrevPGSearch(This)
  308.     (This)->lpVtbl -> PrevPGSearch(This)
  309. #define IDvdControl_TopPGSearch(This)
  310.     (This)->lpVtbl -> TopPGSearch(This)
  311. #define IDvdControl_NextPGSearch(This)
  312.     (This)->lpVtbl -> NextPGSearch(This)
  313. #define IDvdControl_ForwardScan(This,dwSpeed)
  314.     (This)->lpVtbl -> ForwardScan(This,dwSpeed)
  315. #define IDvdControl_BackwardScan(This,dwSpeed)
  316.     (This)->lpVtbl -> BackwardScan(This,dwSpeed)
  317. #define IDvdControl_MenuCall(This,MenuID)
  318.     (This)->lpVtbl -> MenuCall(This,MenuID)
  319. #define IDvdControl_Resume(This)
  320.     (This)->lpVtbl -> Resume(This)
  321. #define IDvdControl_UpperButtonSelect(This)
  322.     (This)->lpVtbl -> UpperButtonSelect(This)
  323. #define IDvdControl_LowerButtonSelect(This)
  324.     (This)->lpVtbl -> LowerButtonSelect(This)
  325. #define IDvdControl_LeftButtonSelect(This)
  326.     (This)->lpVtbl -> LeftButtonSelect(This)
  327. #define IDvdControl_RightButtonSelect(This)
  328.     (This)->lpVtbl -> RightButtonSelect(This)
  329. #define IDvdControl_ButtonActivate(This)
  330.     (This)->lpVtbl -> ButtonActivate(This)
  331. #define IDvdControl_ButtonSelectAndActivate(This,ulButton)
  332.     (This)->lpVtbl -> ButtonSelectAndActivate(This,ulButton)
  333. #define IDvdControl_StillOff(This)
  334.     (This)->lpVtbl -> StillOff(This)
  335. #define IDvdControl_PauseOn(This)
  336.     (This)->lpVtbl -> PauseOn(This)
  337. #define IDvdControl_PauseOff(This)
  338.     (This)->lpVtbl -> PauseOff(This)
  339. #define IDvdControl_MenuLanguageSelect(This,Language)
  340.     (This)->lpVtbl -> MenuLanguageSelect(This,Language)
  341. #define IDvdControl_AudioStreamChange(This,ulAudio)
  342.     (This)->lpVtbl -> AudioStreamChange(This,ulAudio)
  343. #define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay)
  344.     (This)->lpVtbl -> SubpictureStreamChange(This,ulSubPicture,bDisplay)
  345. #define IDvdControl_AngleChange(This,ulAngle)
  346.     (This)->lpVtbl -> AngleChange(This,ulAngle)
  347. #define IDvdControl_ParentalLevelSelect(This,ulParentalLevel)
  348.     (This)->lpVtbl -> ParentalLevelSelect(This,ulParentalLevel)
  349. #define IDvdControl_ParentalCountrySelect(This,wCountry)
  350.     (This)->lpVtbl -> ParentalCountrySelect(This,wCountry)
  351. #define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode)
  352.     (This)->lpVtbl -> KaraokeAudioPresentationModeChange(This,ulMode)
  353. #define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode)
  354.     (This)->lpVtbl -> VideoModePreferrence(This,ulPreferredDisplayMode)
  355. #define IDvdControl_SetRoot(This,pszPath)
  356.     (This)->lpVtbl -> SetRoot(This,pszPath)
  357. #define IDvdControl_MouseActivate(This,point)
  358.     (This)->lpVtbl -> MouseActivate(This,point)
  359. #define IDvdControl_MouseSelect(This,point)
  360.     (This)->lpVtbl -> MouseSelect(This,point)
  361. #define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
  362.     (This)->lpVtbl -> ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
  363. #endif /* COBJMACROS */
  364. #endif  /* C style interface */
  365. HRESULT STDMETHODCALLTYPE IDvdControl_TitlePlay_Proxy( 
  366.     IDvdControl * This,
  367.     /* [in] */ ULONG ulTitle);
  368. void __RPC_STUB IDvdControl_TitlePlay_Stub(
  369.     IRpcStubBuffer *This,
  370.     IRpcChannelBuffer *_pRpcChannelBuffer,
  371.     PRPC_MESSAGE _pRpcMessage,
  372.     DWORD *_pdwStubPhase);
  373. HRESULT STDMETHODCALLTYPE IDvdControl_ChapterPlay_Proxy( 
  374.     IDvdControl * This,
  375.     /* [in] */ ULONG ulTitle,
  376.     /* [in] */ ULONG ulChapter);
  377. void __RPC_STUB IDvdControl_ChapterPlay_Stub(
  378.     IRpcStubBuffer *This,
  379.     IRpcChannelBuffer *_pRpcChannelBuffer,
  380.     PRPC_MESSAGE _pRpcMessage,
  381.     DWORD *_pdwStubPhase);
  382. HRESULT STDMETHODCALLTYPE IDvdControl_TimePlay_Proxy( 
  383.     IDvdControl * This,
  384.     /* [in] */ ULONG ulTitle,
  385.     /* [in] */ ULONG bcdTime);
  386. void __RPC_STUB IDvdControl_TimePlay_Stub(
  387.     IRpcStubBuffer *This,
  388.     IRpcChannelBuffer *_pRpcChannelBuffer,
  389.     PRPC_MESSAGE _pRpcMessage,
  390.     DWORD *_pdwStubPhase);
  391. HRESULT STDMETHODCALLTYPE IDvdControl_StopForResume_Proxy( 
  392.     IDvdControl * This);
  393. void __RPC_STUB IDvdControl_StopForResume_Stub(
  394.     IRpcStubBuffer *This,
  395.     IRpcChannelBuffer *_pRpcChannelBuffer,
  396.     PRPC_MESSAGE _pRpcMessage,
  397.     DWORD *_pdwStubPhase);
  398. HRESULT STDMETHODCALLTYPE IDvdControl_GoUp_Proxy( 
  399.     IDvdControl * This);
  400. void __RPC_STUB IDvdControl_GoUp_Stub(
  401.     IRpcStubBuffer *This,
  402.     IRpcChannelBuffer *_pRpcChannelBuffer,
  403.     PRPC_MESSAGE _pRpcMessage,
  404.     DWORD *_pdwStubPhase);
  405. HRESULT STDMETHODCALLTYPE IDvdControl_TimeSearch_Proxy( 
  406.     IDvdControl * This,
  407.     /* [in] */ ULONG bcdTime);
  408. void __RPC_STUB IDvdControl_TimeSearch_Stub(
  409.     IRpcStubBuffer *This,
  410.     IRpcChannelBuffer *_pRpcChannelBuffer,
  411.     PRPC_MESSAGE _pRpcMessage,
  412.     DWORD *_pdwStubPhase);
  413. HRESULT STDMETHODCALLTYPE IDvdControl_ChapterSearch_Proxy( 
  414.     IDvdControl * This,
  415.     /* [in] */ ULONG ulChapter);
  416. void __RPC_STUB IDvdControl_ChapterSearch_Stub(
  417.     IRpcStubBuffer *This,
  418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  419.     PRPC_MESSAGE _pRpcMessage,
  420.     DWORD *_pdwStubPhase);
  421. HRESULT STDMETHODCALLTYPE IDvdControl_PrevPGSearch_Proxy( 
  422.     IDvdControl * This);
  423. void __RPC_STUB IDvdControl_PrevPGSearch_Stub(
  424.     IRpcStubBuffer *This,
  425.     IRpcChannelBuffer *_pRpcChannelBuffer,
  426.     PRPC_MESSAGE _pRpcMessage,
  427.     DWORD *_pdwStubPhase);
  428. HRESULT STDMETHODCALLTYPE IDvdControl_TopPGSearch_Proxy( 
  429.     IDvdControl * This);
  430. void __RPC_STUB IDvdControl_TopPGSearch_Stub(
  431.     IRpcStubBuffer *This,
  432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  433.     PRPC_MESSAGE _pRpcMessage,
  434.     DWORD *_pdwStubPhase);
  435. HRESULT STDMETHODCALLTYPE IDvdControl_NextPGSearch_Proxy( 
  436.     IDvdControl * This);
  437. void __RPC_STUB IDvdControl_NextPGSearch_Stub(
  438.     IRpcStubBuffer *This,
  439.     IRpcChannelBuffer *_pRpcChannelBuffer,
  440.     PRPC_MESSAGE _pRpcMessage,
  441.     DWORD *_pdwStubPhase);
  442. HRESULT STDMETHODCALLTYPE IDvdControl_ForwardScan_Proxy( 
  443.     IDvdControl * This,
  444.     /* [in] */ double dwSpeed);
  445. void __RPC_STUB IDvdControl_ForwardScan_Stub(
  446.     IRpcStubBuffer *This,
  447.     IRpcChannelBuffer *_pRpcChannelBuffer,
  448.     PRPC_MESSAGE _pRpcMessage,
  449.     DWORD *_pdwStubPhase);
  450. HRESULT STDMETHODCALLTYPE IDvdControl_BackwardScan_Proxy( 
  451.     IDvdControl * This,
  452.     /* [in] */ double dwSpeed);
  453. void __RPC_STUB IDvdControl_BackwardScan_Stub(
  454.     IRpcStubBuffer *This,
  455.     IRpcChannelBuffer *_pRpcChannelBuffer,
  456.     PRPC_MESSAGE _pRpcMessage,
  457.     DWORD *_pdwStubPhase);
  458. HRESULT STDMETHODCALLTYPE IDvdControl_MenuCall_Proxy( 
  459.     IDvdControl * This,
  460.     /* [in] */ DVD_MENU_ID MenuID);
  461. void __RPC_STUB IDvdControl_MenuCall_Stub(
  462.     IRpcStubBuffer *This,
  463.     IRpcChannelBuffer *_pRpcChannelBuffer,
  464.     PRPC_MESSAGE _pRpcMessage,
  465.     DWORD *_pdwStubPhase);
  466. HRESULT STDMETHODCALLTYPE IDvdControl_Resume_Proxy( 
  467.     IDvdControl * This);
  468. void __RPC_STUB IDvdControl_Resume_Stub(
  469.     IRpcStubBuffer *This,
  470.     IRpcChannelBuffer *_pRpcChannelBuffer,
  471.     PRPC_MESSAGE _pRpcMessage,
  472.     DWORD *_pdwStubPhase);
  473. HRESULT STDMETHODCALLTYPE IDvdControl_UpperButtonSelect_Proxy( 
  474.     IDvdControl * This);
  475. void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(
  476.     IRpcStubBuffer *This,
  477.     IRpcChannelBuffer *_pRpcChannelBuffer,
  478.     PRPC_MESSAGE _pRpcMessage,
  479.     DWORD *_pdwStubPhase);
  480. HRESULT STDMETHODCALLTYPE IDvdControl_LowerButtonSelect_Proxy( 
  481.     IDvdControl * This);
  482. void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(
  483.     IRpcStubBuffer *This,
  484.     IRpcChannelBuffer *_pRpcChannelBuffer,
  485.     PRPC_MESSAGE _pRpcMessage,
  486.     DWORD *_pdwStubPhase);
  487. HRESULT STDMETHODCALLTYPE IDvdControl_LeftButtonSelect_Proxy( 
  488.     IDvdControl * This);
  489. void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(
  490.     IRpcStubBuffer *This,
  491.     IRpcChannelBuffer *_pRpcChannelBuffer,
  492.     PRPC_MESSAGE _pRpcMessage,
  493.     DWORD *_pdwStubPhase);
  494. HRESULT STDMETHODCALLTYPE IDvdControl_RightButtonSelect_Proxy( 
  495.     IDvdControl * This);
  496. void __RPC_STUB IDvdControl_RightButtonSelect_Stub(
  497.     IRpcStubBuffer *This,
  498.     IRpcChannelBuffer *_pRpcChannelBuffer,
  499.     PRPC_MESSAGE _pRpcMessage,
  500.     DWORD *_pdwStubPhase);
  501. HRESULT STDMETHODCALLTYPE IDvdControl_ButtonActivate_Proxy( 
  502.     IDvdControl * This);
  503. void __RPC_STUB IDvdControl_ButtonActivate_Stub(
  504.     IRpcStubBuffer *This,
  505.     IRpcChannelBuffer *_pRpcChannelBuffer,
  506.     PRPC_MESSAGE _pRpcMessage,
  507.     DWORD *_pdwStubPhase);
  508. HRESULT STDMETHODCALLTYPE IDvdControl_ButtonSelectAndActivate_Proxy( 
  509.     IDvdControl * This,
  510.     /* [in] */ ULONG ulButton);
  511. void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(
  512.     IRpcStubBuffer *This,
  513.     IRpcChannelBuffer *_pRpcChannelBuffer,
  514.     PRPC_MESSAGE _pRpcMessage,
  515.     DWORD *_pdwStubPhase);
  516. HRESULT STDMETHODCALLTYPE IDvdControl_StillOff_Proxy( 
  517.     IDvdControl * This);
  518. void __RPC_STUB IDvdControl_StillOff_Stub(
  519.     IRpcStubBuffer *This,
  520.     IRpcChannelBuffer *_pRpcChannelBuffer,
  521.     PRPC_MESSAGE _pRpcMessage,
  522.     DWORD *_pdwStubPhase);
  523. HRESULT STDMETHODCALLTYPE IDvdControl_PauseOn_Proxy( 
  524.     IDvdControl * This);
  525. void __RPC_STUB IDvdControl_PauseOn_Stub(
  526.     IRpcStubBuffer *This,
  527.     IRpcChannelBuffer *_pRpcChannelBuffer,
  528.     PRPC_MESSAGE _pRpcMessage,
  529.     DWORD *_pdwStubPhase);
  530. HRESULT STDMETHODCALLTYPE IDvdControl_PauseOff_Proxy( 
  531.     IDvdControl * This);
  532. void __RPC_STUB IDvdControl_PauseOff_Stub(
  533.     IRpcStubBuffer *This,
  534.     IRpcChannelBuffer *_pRpcChannelBuffer,
  535.     PRPC_MESSAGE _pRpcMessage,
  536.     DWORD *_pdwStubPhase);
  537. HRESULT STDMETHODCALLTYPE IDvdControl_MenuLanguageSelect_Proxy( 
  538.     IDvdControl * This,
  539.     /* [in] */ LCID Language);
  540. void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(
  541.     IRpcStubBuffer *This,
  542.     IRpcChannelBuffer *_pRpcChannelBuffer,
  543.     PRPC_MESSAGE _pRpcMessage,
  544.     DWORD *_pdwStubPhase);
  545. HRESULT STDMETHODCALLTYPE IDvdControl_AudioStreamChange_Proxy( 
  546.     IDvdControl * This,
  547.     /* [in] */ ULONG ulAudio);
  548. void __RPC_STUB IDvdControl_AudioStreamChange_Stub(
  549.     IRpcStubBuffer *This,
  550.     IRpcChannelBuffer *_pRpcChannelBuffer,
  551.     PRPC_MESSAGE _pRpcMessage,
  552.     DWORD *_pdwStubPhase);
  553. HRESULT STDMETHODCALLTYPE IDvdControl_SubpictureStreamChange_Proxy( 
  554.     IDvdControl * This,
  555.     /* [in] */ ULONG ulSubPicture,
  556.     /* [in] */ BOOL bDisplay);
  557. void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(
  558.     IRpcStubBuffer *This,
  559.     IRpcChannelBuffer *_pRpcChannelBuffer,
  560.     PRPC_MESSAGE _pRpcMessage,
  561.     DWORD *_pdwStubPhase);
  562. HRESULT STDMETHODCALLTYPE IDvdControl_AngleChange_Proxy( 
  563.     IDvdControl * This,
  564.     /* [in] */ ULONG ulAngle);
  565. void __RPC_STUB IDvdControl_AngleChange_Stub(
  566.     IRpcStubBuffer *This,
  567.     IRpcChannelBuffer *_pRpcChannelBuffer,
  568.     PRPC_MESSAGE _pRpcMessage,
  569.     DWORD *_pdwStubPhase);
  570. HRESULT STDMETHODCALLTYPE IDvdControl_ParentalLevelSelect_Proxy( 
  571.     IDvdControl * This,
  572.     /* [in] */ ULONG ulParentalLevel);
  573. void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(
  574.     IRpcStubBuffer *This,
  575.     IRpcChannelBuffer *_pRpcChannelBuffer,
  576.     PRPC_MESSAGE _pRpcMessage,
  577.     DWORD *_pdwStubPhase);
  578. HRESULT STDMETHODCALLTYPE IDvdControl_ParentalCountrySelect_Proxy( 
  579.     IDvdControl * This,
  580.     /* [in] */ WORD wCountry);
  581. void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(
  582.     IRpcStubBuffer *This,
  583.     IRpcChannelBuffer *_pRpcChannelBuffer,
  584.     PRPC_MESSAGE _pRpcMessage,
  585.     DWORD *_pdwStubPhase);
  586. HRESULT STDMETHODCALLTYPE IDvdControl_KaraokeAudioPresentationModeChange_Proxy( 
  587.     IDvdControl * This,
  588.     /* [in] */ ULONG ulMode);
  589. void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(
  590.     IRpcStubBuffer *This,
  591.     IRpcChannelBuffer *_pRpcChannelBuffer,
  592.     PRPC_MESSAGE _pRpcMessage,
  593.     DWORD *_pdwStubPhase);
  594. HRESULT STDMETHODCALLTYPE IDvdControl_VideoModePreferrence_Proxy( 
  595.     IDvdControl * This,
  596.     /* [in] */ ULONG ulPreferredDisplayMode);
  597. void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(
  598.     IRpcStubBuffer *This,
  599.     IRpcChannelBuffer *_pRpcChannelBuffer,
  600.     PRPC_MESSAGE _pRpcMessage,
  601.     DWORD *_pdwStubPhase);
  602. HRESULT STDMETHODCALLTYPE IDvdControl_SetRoot_Proxy( 
  603.     IDvdControl * This,
  604.     /* [in] */ LPCWSTR pszPath);
  605. void __RPC_STUB IDvdControl_SetRoot_Stub(
  606.     IRpcStubBuffer *This,
  607.     IRpcChannelBuffer *_pRpcChannelBuffer,
  608.     PRPC_MESSAGE _pRpcMessage,
  609.     DWORD *_pdwStubPhase);
  610. HRESULT STDMETHODCALLTYPE IDvdControl_MouseActivate_Proxy( 
  611.     IDvdControl * This,
  612.     /* [in] */ POINT point);
  613. void __RPC_STUB IDvdControl_MouseActivate_Stub(
  614.     IRpcStubBuffer *This,
  615.     IRpcChannelBuffer *_pRpcChannelBuffer,
  616.     PRPC_MESSAGE _pRpcMessage,
  617.     DWORD *_pdwStubPhase);
  618. HRESULT STDMETHODCALLTYPE IDvdControl_MouseSelect_Proxy( 
  619.     IDvdControl * This,
  620.     /* [in] */ POINT point);
  621. void __RPC_STUB IDvdControl_MouseSelect_Stub(
  622.     IRpcStubBuffer *This,
  623.     IRpcChannelBuffer *_pRpcChannelBuffer,
  624.     PRPC_MESSAGE _pRpcMessage,
  625.     DWORD *_pdwStubPhase);
  626. HRESULT STDMETHODCALLTYPE IDvdControl_ChapterPlayAutoStop_Proxy( 
  627.     IDvdControl * This,
  628.     /* [in] */ ULONG ulTitle,
  629.     /* [in] */ ULONG ulChapter,
  630.     /* [in] */ ULONG ulChaptersToPlay);
  631. void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(
  632.     IRpcStubBuffer *This,
  633.     IRpcChannelBuffer *_pRpcChannelBuffer,
  634.     PRPC_MESSAGE _pRpcMessage,
  635.     DWORD *_pdwStubPhase);
  636. #endif  /* __IDvdControl_INTERFACE_DEFINED__ */
  637. #ifndef __IDvdInfo_INTERFACE_DEFINED__
  638. #define __IDvdInfo_INTERFACE_DEFINED__
  639. /* interface IDvdInfo */
  640. /* [unique][uuid][object] */ 
  641. EXTERN_C const IID IID_IDvdInfo;
  642. #if defined(__cplusplus) && !defined(CINTERFACE)
  643.     
  644.     MIDL_INTERFACE("A70EFE60-E2A3-11d0-A9BE-00AA0061BE93")
  645.     IDvdInfo : public IUnknown
  646.     {
  647.     public:
  648.         virtual HRESULT STDMETHODCALLTYPE GetCurrentDomain( 
  649.             /* [out] */ DVD_DOMAIN *pDomain) = 0;
  650.         
  651.         virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation( 
  652.             /* [out] */ DVD_PLAYBACK_LOCATION *pLocation) = 0;
  653.         
  654.         virtual HRESULT STDMETHODCALLTYPE GetTotalTitleTime( 
  655.             /* [out] */ ULONG *pulTotalTime) = 0;
  656.         
  657.         virtual HRESULT STDMETHODCALLTYPE GetCurrentButton( 
  658.             /* [out] */ ULONG *pulButtonsAvailable,
  659.             /* [out] */ ULONG *pulCurrentButton) = 0;
  660.         
  661.         virtual HRESULT STDMETHODCALLTYPE GetCurrentAngle( 
  662.             /* [out] */ ULONG *pulAnglesAvailable,
  663.             /* [out] */ ULONG *pulCurrentAngle) = 0;
  664.         
  665.         virtual HRESULT STDMETHODCALLTYPE GetCurrentAudio( 
  666.             /* [out] */ ULONG *pulStreamsAvailable,
  667.             /* [out] */ ULONG *pulCurrentStream) = 0;
  668.         
  669.         virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpicture( 
  670.             /* [out] */ ULONG *pulStreamsAvailable,
  671.             /* [out] */ ULONG *pulCurrentStream,
  672.             /* [out] */ BOOL *pIsDisabled) = 0;
  673.         
  674.         virtual HRESULT STDMETHODCALLTYPE GetCurrentUOPS( 
  675.             /* [out] */ VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
  676.         
  677.         virtual HRESULT STDMETHODCALLTYPE GetAllSPRMs( 
  678.             /* [out] */ SPRMARRAY *pRegisterArray) = 0;
  679.         
  680.         virtual HRESULT STDMETHODCALLTYPE GetAllGPRMs( 
  681.             /* [out] */ GPRMARRAY *pRegisterArray) = 0;
  682.         
  683.         virtual HRESULT STDMETHODCALLTYPE GetAudioLanguage( 
  684.             /* [in] */ ULONG ulStream,
  685.             /* [out] */ LCID *pLanguage) = 0;
  686.         
  687.         virtual HRESULT STDMETHODCALLTYPE GetSubpictureLanguage( 
  688.             /* [in] */ ULONG ulStream,
  689.             /* [out] */ LCID *pLanguage) = 0;
  690.         
  691.         virtual HRESULT STDMETHODCALLTYPE GetTitleAttributes( 
  692.             /* [in] */ ULONG ulTitle,
  693.             /* [out] */ DVD_ATR *pATR) = 0;
  694.         
  695.         virtual HRESULT STDMETHODCALLTYPE GetVMGAttributes( 
  696.             /* [out] */ DVD_ATR *pATR) = 0;
  697.         
  698.         virtual HRESULT STDMETHODCALLTYPE GetCurrentVideoAttributes( 
  699.             /* [out] */ DVD_VideoATR *pATR) = 0;
  700.         
  701.         virtual HRESULT STDMETHODCALLTYPE GetCurrentAudioAttributes( 
  702.             /* [out] */ DVD_AudioATR *pATR) = 0;
  703.         
  704.         virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpictureAttributes( 
  705.             /* [out] */ DVD_SubpictureATR *pATR) = 0;
  706.         
  707.         virtual HRESULT STDMETHODCALLTYPE GetCurrentVolumeInfo( 
  708.             /* [out] */ ULONG *pulNumOfVol,
  709.             /* [out] */ ULONG *pulThisVolNum,
  710.             /* [out] */ DVD_DISC_SIDE *pSide,
  711.             /* [out] */ ULONG *pulNumOfTitles) = 0;
  712.         
  713.         virtual HRESULT STDMETHODCALLTYPE GetDVDTextInfo( 
  714.             /* [size_is][out] */ BYTE *pTextManager,
  715.             /* [in] */ ULONG ulBufSize,
  716.             /* [out] */ ULONG *pulActualSize) = 0;
  717.         
  718.         virtual HRESULT STDMETHODCALLTYPE GetPlayerParentalLevel( 
  719.             /* [out] */ ULONG *pulParentalLevel,
  720.             /* [out] */ ULONG *pulCountryCode) = 0;
  721.         
  722.         virtual HRESULT STDMETHODCALLTYPE GetNumberOfChapters( 
  723.             /* [in] */ ULONG ulTitle,
  724.             /* [out] */ ULONG *pulNumberOfChapters) = 0;
  725.         
  726.         virtual HRESULT STDMETHODCALLTYPE GetTitleParentalLevels( 
  727.             /* [in] */ ULONG ulTitle,
  728.             /* [out] */ ULONG *pulParentalLevels) = 0;
  729.         
  730.         virtual HRESULT STDMETHODCALLTYPE GetRoot( 
  731.             /* [size_is][out] */ LPSTR pRoot,
  732.             /* [in] */ ULONG ulBufSize,
  733.             /* [out] */ ULONG *pulActualSize) = 0;
  734.         
  735.     };
  736.     
  737. #else  /* C style interface */
  738.     typedef struct IDvdInfoVtbl
  739.     {
  740.         BEGIN_INTERFACE
  741.         
  742.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  743.             IDvdInfo * This,
  744.             /* [in] */ REFIID riid,
  745.             /* [iid_is][out] */ void **ppvObject);
  746.         
  747.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  748.             IDvdInfo * This);
  749.         
  750.         ULONG ( STDMETHODCALLTYPE *Release )( 
  751.             IDvdInfo * This);
  752.         
  753.         HRESULT ( STDMETHODCALLTYPE *GetCurrentDomain )( 
  754.             IDvdInfo * This,
  755.             /* [out] */ DVD_DOMAIN *pDomain);
  756.         
  757.         HRESULT ( STDMETHODCALLTYPE *GetCurrentLocation )( 
  758.             IDvdInfo * This,
  759.             /* [out] */ DVD_PLAYBACK_LOCATION *pLocation);
  760.         
  761.         HRESULT ( STDMETHODCALLTYPE *GetTotalTitleTime )( 
  762.             IDvdInfo * This,
  763.             /* [out] */ ULONG *pulTotalTime);
  764.         
  765.         HRESULT ( STDMETHODCALLTYPE *GetCurrentButton )( 
  766.             IDvdInfo * This,
  767.             /* [out] */ ULONG *pulButtonsAvailable,
  768.             /* [out] */ ULONG *pulCurrentButton);
  769.         
  770.         HRESULT ( STDMETHODCALLTYPE *GetCurrentAngle )( 
  771.             IDvdInfo * This,
  772.             /* [out] */ ULONG *pulAnglesAvailable,
  773.             /* [out] */ ULONG *pulCurrentAngle);
  774.         
  775.         HRESULT ( STDMETHODCALLTYPE *GetCurrentAudio )( 
  776.             IDvdInfo * This,
  777.             /* [out] */ ULONG *pulStreamsAvailable,
  778.             /* [out] */ ULONG *pulCurrentStream);
  779.         
  780.         HRESULT ( STDMETHODCALLTYPE *GetCurrentSubpicture )( 
  781.             IDvdInfo * This,
  782.             /* [out] */ ULONG *pulStreamsAvailable,
  783.             /* [out] */ ULONG *pulCurrentStream,
  784.             /* [out] */ BOOL *pIsDisabled);
  785.         
  786.         HRESULT ( STDMETHODCALLTYPE *GetCurrentUOPS )( 
  787.             IDvdInfo * This,
  788.             /* [out] */ VALID_UOP_SOMTHING_OR_OTHER *pUOP);
  789.         
  790.         HRESULT ( STDMETHODCALLTYPE *GetAllSPRMs )( 
  791.             IDvdInfo * This,
  792.             /* [out] */ SPRMARRAY *pRegisterArray);
  793.         
  794.         HRESULT ( STDMETHODCALLTYPE *GetAllGPRMs )( 
  795.             IDvdInfo * This,
  796.             /* [out] */ GPRMARRAY *pRegisterArray);
  797.         
  798.         HRESULT ( STDMETHODCALLTYPE *GetAudioLanguage )( 
  799.             IDvdInfo * This,
  800.             /* [in] */ ULONG ulStream,
  801.             /* [out] */ LCID *pLanguage);
  802.         
  803.         HRESULT ( STDMETHODCALLTYPE *GetSubpictureLanguage )( 
  804.             IDvdInfo * This,
  805.             /* [in] */ ULONG ulStream,
  806.             /* [out] */ LCID *pLanguage);
  807.         
  808.         HRESULT ( STDMETHODCALLTYPE *GetTitleAttributes )( 
  809.             IDvdInfo * This,
  810.             /* [in] */ ULONG ulTitle,
  811.             /* [out] */ DVD_ATR *pATR);
  812.         
  813.         HRESULT ( STDMETHODCALLTYPE *GetVMGAttributes )( 
  814.             IDvdInfo * This,
  815.             /* [out] */ DVD_ATR *pATR);
  816.         
  817.         HRESULT ( STDMETHODCALLTYPE *GetCurrentVideoAttributes )( 
  818.             IDvdInfo * This,
  819.             /* [out] */ DVD_VideoATR *pATR);
  820.         
  821.         HRESULT ( STDMETHODCALLTYPE *GetCurrentAudioAttributes )( 
  822.             IDvdInfo * This,
  823.             /* [out] */ DVD_AudioATR *pATR);
  824.         
  825.         HRESULT ( STDMETHODCALLTYPE *GetCurrentSubpictureAttributes )( 
  826.             IDvdInfo * This,
  827.             /* [out] */ DVD_SubpictureATR *pATR);
  828.         
  829.         HRESULT ( STDMETHODCALLTYPE *GetCurrentVolumeInfo )( 
  830.             IDvdInfo * This,
  831.             /* [out] */ ULONG *pulNumOfVol,
  832.             /* [out] */ ULONG *pulThisVolNum,
  833.             /* [out] */ DVD_DISC_SIDE *pSide,
  834.             /* [out] */ ULONG *pulNumOfTitles);
  835.         
  836.         HRESULT ( STDMETHODCALLTYPE *GetDVDTextInfo )( 
  837.             IDvdInfo * This,
  838.             /* [size_is][out] */ BYTE *pTextManager,
  839.             /* [in] */ ULONG ulBufSize,
  840.             /* [out] */ ULONG *pulActualSize);
  841.         
  842.         HRESULT ( STDMETHODCALLTYPE *GetPlayerParentalLevel )( 
  843.             IDvdInfo * This,
  844.             /* [out] */ ULONG *pulParentalLevel,
  845.             /* [out] */ ULONG *pulCountryCode);
  846.         
  847.         HRESULT ( STDMETHODCALLTYPE *GetNumberOfChapters )( 
  848.             IDvdInfo * This,
  849.             /* [in] */ ULONG ulTitle,
  850.             /* [out] */ ULONG *pulNumberOfChapters);
  851.         
  852.         HRESULT ( STDMETHODCALLTYPE *GetTitleParentalLevels )( 
  853.             IDvdInfo * This,
  854.             /* [in] */ ULONG ulTitle,
  855.             /* [out] */ ULONG *pulParentalLevels);
  856.         
  857.         HRESULT ( STDMETHODCALLTYPE *GetRoot )( 
  858.             IDvdInfo * This,
  859.             /* [size_is][out] */ LPSTR pRoot,
  860.             /* [in] */ ULONG ulBufSize,
  861.             /* [out] */ ULONG *pulActualSize);
  862.         
  863.         END_INTERFACE
  864.     } IDvdInfoVtbl;
  865.     interface IDvdInfo
  866.     {
  867.         CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
  868.     };
  869.     
  870. #ifdef COBJMACROS
  871. #define IDvdInfo_QueryInterface(This,riid,ppvObject)
  872.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  873. #define IDvdInfo_AddRef(This)
  874.     (This)->lpVtbl -> AddRef(This)
  875. #define IDvdInfo_Release(This)
  876.     (This)->lpVtbl -> Release(This)
  877. #define IDvdInfo_GetCurrentDomain(This,pDomain)
  878.     (This)->lpVtbl -> GetCurrentDomain(This,pDomain)
  879. #define IDvdInfo_GetCurrentLocation(This,pLocation)
  880.     (This)->lpVtbl -> GetCurrentLocation(This,pLocation)
  881. #define IDvdInfo_GetTotalTitleTime(This,pulTotalTime)
  882.     (This)->lpVtbl -> GetTotalTitleTime(This,pulTotalTime)
  883. #define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
  884.     (This)->lpVtbl -> GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
  885. #define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
  886.     (This)->lpVtbl -> GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
  887. #define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
  888.     (This)->lpVtbl -> GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
  889. #define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
  890.     (This)->lpVtbl -> GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
  891. #define IDvdInfo_GetCurrentUOPS(This,pUOP)
  892.     (This)->lpVtbl -> GetCurrentUOPS(This,pUOP)
  893. #define IDvdInfo_GetAllSPRMs(This,pRegisterArray)
  894.     (This)->lpVtbl -> GetAllSPRMs(This,pRegisterArray)
  895. #define IDvdInfo_GetAllGPRMs(This,pRegisterArray)
  896.     (This)->lpVtbl -> GetAllGPRMs(This,pRegisterArray)
  897. #define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage)
  898.     (This)->lpVtbl -> GetAudioLanguage(This,ulStream,pLanguage)
  899. #define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage)
  900.     (This)->lpVtbl -> GetSubpictureLanguage(This,ulStream,pLanguage)
  901. #define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR)
  902.     (This)->lpVtbl -> GetTitleAttributes(This,ulTitle,pATR)
  903. #define IDvdInfo_GetVMGAttributes(This,pATR)
  904.     (This)->lpVtbl -> GetVMGAttributes(This,pATR)
  905. #define IDvdInfo_GetCurrentVideoAttributes(This,pATR)
  906.     (This)->lpVtbl -> GetCurrentVideoAttributes(This,pATR)
  907. #define IDvdInfo_GetCurrentAudioAttributes(This,pATR)
  908.     (This)->lpVtbl -> GetCurrentAudioAttributes(This,pATR)
  909. #define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR)
  910.     (This)->lpVtbl -> GetCurrentSubpictureAttributes(This,pATR)
  911. #define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
  912.     (This)->lpVtbl -> GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
  913. #define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
  914.     (This)->lpVtbl -> GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
  915. #define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
  916.     (This)->lpVtbl -> GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
  917. #define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
  918.     (This)->lpVtbl -> GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
  919. #define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
  920.     (This)->lpVtbl -> GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
  921. #define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize)
  922.     (This)->lpVtbl -> GetRoot(This,pRoot,ulBufSize,pulActualSize)
  923. #endif /* COBJMACROS */
  924. #endif  /* C style interface */
  925. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentDomain_Proxy( 
  926.     IDvdInfo * This,
  927.     /* [out] */ DVD_DOMAIN *pDomain);
  928. void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(
  929.     IRpcStubBuffer *This,
  930.     IRpcChannelBuffer *_pRpcChannelBuffer,
  931.     PRPC_MESSAGE _pRpcMessage,
  932.     DWORD *_pdwStubPhase);
  933. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentLocation_Proxy( 
  934.     IDvdInfo * This,
  935.     /* [out] */ DVD_PLAYBACK_LOCATION *pLocation);
  936. void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(
  937.     IRpcStubBuffer *This,
  938.     IRpcChannelBuffer *_pRpcChannelBuffer,
  939.     PRPC_MESSAGE _pRpcMessage,
  940.     DWORD *_pdwStubPhase);
  941. HRESULT STDMETHODCALLTYPE IDvdInfo_GetTotalTitleTime_Proxy( 
  942.     IDvdInfo * This,
  943.     /* [out] */ ULONG *pulTotalTime);
  944. void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(
  945.     IRpcStubBuffer *This,
  946.     IRpcChannelBuffer *_pRpcChannelBuffer,
  947.     PRPC_MESSAGE _pRpcMessage,
  948.     DWORD *_pdwStubPhase);
  949. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentButton_Proxy( 
  950.     IDvdInfo * This,
  951.     /* [out] */ ULONG *pulButtonsAvailable,
  952.     /* [out] */ ULONG *pulCurrentButton);
  953. void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(
  954.     IRpcStubBuffer *This,
  955.     IRpcChannelBuffer *_pRpcChannelBuffer,
  956.     PRPC_MESSAGE _pRpcMessage,
  957.     DWORD *_pdwStubPhase);
  958. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentAngle_Proxy( 
  959.     IDvdInfo * This,
  960.     /* [out] */ ULONG *pulAnglesAvailable,
  961.     /* [out] */ ULONG *pulCurrentAngle);
  962. void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(
  963.     IRpcStubBuffer *This,
  964.     IRpcChannelBuffer *_pRpcChannelBuffer,
  965.     PRPC_MESSAGE _pRpcMessage,
  966.     DWORD *_pdwStubPhase);
  967. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentAudio_Proxy( 
  968.     IDvdInfo * This,
  969.     /* [out] */ ULONG *pulStreamsAvailable,
  970.     /* [out] */ ULONG *pulCurrentStream);
  971. void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(
  972.     IRpcStubBuffer *This,
  973.     IRpcChannelBuffer *_pRpcChannelBuffer,
  974.     PRPC_MESSAGE _pRpcMessage,
  975.     DWORD *_pdwStubPhase);
  976. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentSubpicture_Proxy( 
  977.     IDvdInfo * This,
  978.     /* [out] */ ULONG *pulStreamsAvailable,
  979.     /* [out] */ ULONG *pulCurrentStream,
  980.     /* [out] */ BOOL *pIsDisabled);
  981. void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(
  982.     IRpcStubBuffer *This,
  983.     IRpcChannelBuffer *_pRpcChannelBuffer,
  984.     PRPC_MESSAGE _pRpcMessage,
  985.     DWORD *_pdwStubPhase);
  986. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentUOPS_Proxy( 
  987.     IDvdInfo * This,
  988.     /* [out] */ VALID_UOP_SOMTHING_OR_OTHER *pUOP);
  989. void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(
  990.     IRpcStubBuffer *This,
  991.     IRpcChannelBuffer *_pRpcChannelBuffer,
  992.     PRPC_MESSAGE _pRpcMessage,
  993.     DWORD *_pdwStubPhase);
  994. HRESULT STDMETHODCALLTYPE IDvdInfo_GetAllSPRMs_Proxy( 
  995.     IDvdInfo * This,
  996.     /* [out] */ SPRMARRAY *pRegisterArray);
  997. void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(
  998.     IRpcStubBuffer *This,
  999.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1000.     PRPC_MESSAGE _pRpcMessage,
  1001.     DWORD *_pdwStubPhase);
  1002. HRESULT STDMETHODCALLTYPE IDvdInfo_GetAllGPRMs_Proxy( 
  1003.     IDvdInfo * This,
  1004.     /* [out] */ GPRMARRAY *pRegisterArray);
  1005. void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(
  1006.     IRpcStubBuffer *This,
  1007.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1008.     PRPC_MESSAGE _pRpcMessage,
  1009.     DWORD *_pdwStubPhase);
  1010. HRESULT STDMETHODCALLTYPE IDvdInfo_GetAudioLanguage_Proxy( 
  1011.     IDvdInfo * This,
  1012.     /* [in] */ ULONG ulStream,
  1013.     /* [out] */ LCID *pLanguage);
  1014. void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(
  1015.     IRpcStubBuffer *This,
  1016.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1017.     PRPC_MESSAGE _pRpcMessage,
  1018.     DWORD *_pdwStubPhase);
  1019. HRESULT STDMETHODCALLTYPE IDvdInfo_GetSubpictureLanguage_Proxy( 
  1020.     IDvdInfo * This,
  1021.     /* [in] */ ULONG ulStream,
  1022.     /* [out] */ LCID *pLanguage);
  1023. void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(
  1024.     IRpcStubBuffer *This,
  1025.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1026.     PRPC_MESSAGE _pRpcMessage,
  1027.     DWORD *_pdwStubPhase);
  1028. HRESULT STDMETHODCALLTYPE IDvdInfo_GetTitleAttributes_Proxy( 
  1029.     IDvdInfo * This,
  1030.     /* [in] */ ULONG ulTitle,
  1031.     /* [out] */ DVD_ATR *pATR);
  1032. void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(
  1033.     IRpcStubBuffer *This,
  1034.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1035.     PRPC_MESSAGE _pRpcMessage,
  1036.     DWORD *_pdwStubPhase);
  1037. HRESULT STDMETHODCALLTYPE IDvdInfo_GetVMGAttributes_Proxy( 
  1038.     IDvdInfo * This,
  1039.     /* [out] */ DVD_ATR *pATR);
  1040. void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(
  1041.     IRpcStubBuffer *This,
  1042.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1043.     PRPC_MESSAGE _pRpcMessage,
  1044.     DWORD *_pdwStubPhase);
  1045. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentVideoAttributes_Proxy( 
  1046.     IDvdInfo * This,
  1047.     /* [out] */ DVD_VideoATR *pATR);
  1048. void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(
  1049.     IRpcStubBuffer *This,
  1050.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1051.     PRPC_MESSAGE _pRpcMessage,
  1052.     DWORD *_pdwStubPhase);
  1053. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentAudioAttributes_Proxy( 
  1054.     IDvdInfo * This,
  1055.     /* [out] */ DVD_AudioATR *pATR);
  1056. void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(
  1057.     IRpcStubBuffer *This,
  1058.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1059.     PRPC_MESSAGE _pRpcMessage,
  1060.     DWORD *_pdwStubPhase);
  1061. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentSubpictureAttributes_Proxy( 
  1062.     IDvdInfo * This,
  1063.     /* [out] */ DVD_SubpictureATR *pATR);
  1064. void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(
  1065.     IRpcStubBuffer *This,
  1066.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1067.     PRPC_MESSAGE _pRpcMessage,
  1068.     DWORD *_pdwStubPhase);
  1069. HRESULT STDMETHODCALLTYPE IDvdInfo_GetCurrentVolumeInfo_Proxy( 
  1070.     IDvdInfo * This,
  1071.     /* [out] */ ULONG *pulNumOfVol,
  1072.     /* [out] */ ULONG *pulThisVolNum,
  1073.     /* [out] */ DVD_DISC_SIDE *pSide,
  1074.     /* [out] */ ULONG *pulNumOfTitles);
  1075. void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(
  1076.     IRpcStubBuffer *This,
  1077.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1078.     PRPC_MESSAGE _pRpcMessage,
  1079.     DWORD *_pdwStubPhase);
  1080. HRESULT STDMETHODCALLTYPE IDvdInfo_GetDVDTextInfo_Proxy( 
  1081.     IDvdInfo * This,
  1082.     /* [size_is][out] */ BYTE *pTextManager,
  1083.     /* [in] */ ULONG ulBufSize,
  1084.     /* [out] */ ULONG *pulActualSize);
  1085. void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(
  1086.     IRpcStubBuffer *This,
  1087.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1088.     PRPC_MESSAGE _pRpcMessage,
  1089.     DWORD *_pdwStubPhase);
  1090. HRESULT STDMETHODCALLTYPE IDvdInfo_GetPlayerParentalLevel_Proxy( 
  1091.     IDvdInfo * This,
  1092.     /* [out] */ ULONG *pulParentalLevel,
  1093.     /* [out] */ ULONG *pulCountryCode);
  1094. void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(
  1095.     IRpcStubBuffer *This,
  1096.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1097.     PRPC_MESSAGE _pRpcMessage,
  1098.     DWORD *_pdwStubPhase);
  1099. HRESULT STDMETHODCALLTYPE IDvdInfo_GetNumberOfChapters_Proxy( 
  1100.     IDvdInfo * This,
  1101.     /* [in] */ ULONG ulTitle,
  1102.     /* [out] */ ULONG *pulNumberOfChapters);
  1103. void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(
  1104.     IRpcStubBuffer *This,
  1105.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1106.     PRPC_MESSAGE _pRpcMessage,
  1107.     DWORD *_pdwStubPhase);
  1108. HRESULT STDMETHODCALLTYPE IDvdInfo_GetTitleParentalLevels_Proxy( 
  1109.     IDvdInfo * This,
  1110.     /* [in] */ ULONG ulTitle,
  1111.     /* [out] */ ULONG *pulParentalLevels);
  1112. void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(
  1113.     IRpcStubBuffer *This,
  1114.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1115.     PRPC_MESSAGE _pRpcMessage,
  1116.     DWORD *_pdwStubPhase);
  1117. HRESULT STDMETHODCALLTYPE IDvdInfo_GetRoot_Proxy( 
  1118.     IDvdInfo * This,
  1119.     /* [size_is][out] */ LPSTR pRoot,
  1120.     /* [in] */ ULONG ulBufSize,
  1121.     /* [out] */ ULONG *pulActualSize);
  1122. void __RPC_STUB IDvdInfo_GetRoot_Stub(
  1123.     IRpcStubBuffer *This,
  1124.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1125.     PRPC_MESSAGE _pRpcMessage,
  1126.     DWORD *_pdwStubPhase);
  1127. #endif  /* __IDvdInfo_INTERFACE_DEFINED__ */
  1128. #ifndef __IDvdCmd_INTERFACE_DEFINED__
  1129. #define __IDvdCmd_INTERFACE_DEFINED__
  1130. /* interface IDvdCmd */
  1131. /* [unique][uuid][object] */ 
  1132. EXTERN_C const IID IID_IDvdCmd;
  1133. #if defined(__cplusplus) && !defined(CINTERFACE)
  1134.     
  1135.     MIDL_INTERFACE("5a4a97e4-94ee-4a55-9751-74b5643aa27d")
  1136.     IDvdCmd : public IUnknown
  1137.     {
  1138.     public:
  1139.         virtual HRESULT STDMETHODCALLTYPE WaitForStart( void) = 0;
  1140.         
  1141.         virtual HRESULT STDMETHODCALLTYPE WaitForEnd( void) = 0;
  1142.         
  1143.     };
  1144.     
  1145. #else  /* C style interface */
  1146.     typedef struct IDvdCmdVtbl
  1147.     {
  1148.         BEGIN_INTERFACE
  1149.         
  1150.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1151.             IDvdCmd * This,
  1152.             /* [in] */ REFIID riid,
  1153.             /* [iid_is][out] */ void **ppvObject);
  1154.         
  1155.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1156.             IDvdCmd * This);
  1157.         
  1158.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1159.             IDvdCmd * This);
  1160.         
  1161.         HRESULT ( STDMETHODCALLTYPE *WaitForStart )( 
  1162.             IDvdCmd * This);
  1163.         
  1164.         HRESULT ( STDMETHODCALLTYPE *WaitForEnd )( 
  1165.             IDvdCmd * This);
  1166.         
  1167.         END_INTERFACE
  1168.     } IDvdCmdVtbl;
  1169.     interface IDvdCmd
  1170.     {
  1171.         CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
  1172.     };
  1173.     
  1174. #ifdef COBJMACROS
  1175. #define IDvdCmd_QueryInterface(This,riid,ppvObject)
  1176.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1177. #define IDvdCmd_AddRef(This)
  1178.     (This)->lpVtbl -> AddRef(This)
  1179. #define IDvdCmd_Release(This)
  1180.     (This)->lpVtbl -> Release(This)
  1181. #define IDvdCmd_WaitForStart(This)
  1182.     (This)->lpVtbl -> WaitForStart(This)
  1183. #define IDvdCmd_WaitForEnd(This)
  1184.     (This)->lpVtbl -> WaitForEnd(This)
  1185. #endif /* COBJMACROS */
  1186. #endif  /* C style interface */
  1187. HRESULT STDMETHODCALLTYPE IDvdCmd_WaitForStart_Proxy( 
  1188.     IDvdCmd * This);
  1189. void __RPC_STUB IDvdCmd_WaitForStart_Stub(
  1190.     IRpcStubBuffer *This,
  1191.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1192.     PRPC_MESSAGE _pRpcMessage,
  1193.     DWORD *_pdwStubPhase);
  1194. HRESULT STDMETHODCALLTYPE IDvdCmd_WaitForEnd_Proxy( 
  1195.     IDvdCmd * This);
  1196. void __RPC_STUB IDvdCmd_WaitForEnd_Stub(
  1197.     IRpcStubBuffer *This,
  1198.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1199.     PRPC_MESSAGE _pRpcMessage,
  1200.     DWORD *_pdwStubPhase);
  1201. #endif  /* __IDvdCmd_INTERFACE_DEFINED__ */
  1202. #ifndef __IDvdState_INTERFACE_DEFINED__
  1203. #define __IDvdState_INTERFACE_DEFINED__
  1204. /* interface IDvdState */
  1205. /* [unique][uuid][object] */ 
  1206. EXTERN_C const IID IID_IDvdState;
  1207. #if defined(__cplusplus) && !defined(CINTERFACE)
  1208.     
  1209.     MIDL_INTERFACE("86303d6d-1c4a-4087-ab42-f711167048ef")
  1210.     IDvdState : public IUnknown
  1211.     {
  1212.     public:
  1213.         virtual HRESULT STDMETHODCALLTYPE GetDiscID( 
  1214.             /* [out] */ ULONGLONG *pullUniqueID) = 0;
  1215.         
  1216.         virtual HRESULT STDMETHODCALLTYPE GetParentalLevel( 
  1217.             /* [out] */ ULONG *pulParentalLevel) = 0;
  1218.         
  1219.     };
  1220.     
  1221. #else  /* C style interface */
  1222.     typedef struct IDvdStateVtbl
  1223.     {
  1224.         BEGIN_INTERFACE
  1225.         
  1226.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1227.             IDvdState * This,
  1228.             /* [in] */ REFIID riid,
  1229.             /* [iid_is][out] */ void **ppvObject);
  1230.         
  1231.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1232.             IDvdState * This);
  1233.         
  1234.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1235.             IDvdState * This);
  1236.         
  1237.         HRESULT ( STDMETHODCALLTYPE *GetDiscID )( 
  1238.             IDvdState * This,
  1239.             /* [out] */ ULONGLONG *pullUniqueID);
  1240.         
  1241.         HRESULT ( STDMETHODCALLTYPE *GetParentalLevel )( 
  1242.             IDvdState * This,
  1243.             /* [out] */ ULONG *pulParentalLevel);
  1244.         
  1245.         END_INTERFACE
  1246.     } IDvdStateVtbl;
  1247.     interface IDvdState
  1248.     {
  1249.         CONST_VTBL struct IDvdStateVtbl *lpVtbl;
  1250.     };
  1251.     
  1252. #ifdef COBJMACROS
  1253. #define IDvdState_QueryInterface(This,riid,ppvObject)
  1254.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1255. #define IDvdState_AddRef(This)
  1256.     (This)->lpVtbl -> AddRef(This)
  1257. #define IDvdState_Release(This)
  1258.     (This)->lpVtbl -> Release(This)
  1259. #define IDvdState_GetDiscID(This,pullUniqueID)
  1260.     (This)->lpVtbl -> GetDiscID(This,pullUniqueID)
  1261. #define IDvdState_GetParentalLevel(This,pulParentalLevel)
  1262.     (This)->lpVtbl -> GetParentalLevel(This,pulParentalLevel)
  1263. #endif /* COBJMACROS */
  1264. #endif  /* C style interface */
  1265. HRESULT STDMETHODCALLTYPE IDvdState_GetDiscID_Proxy( 
  1266.     IDvdState * This,
  1267.     /* [out] */ ULONGLONG *pullUniqueID);
  1268. void __RPC_STUB IDvdState_GetDiscID_Stub(
  1269.     IRpcStubBuffer *This,
  1270.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1271.     PRPC_MESSAGE _pRpcMessage,
  1272.     DWORD *_pdwStubPhase);
  1273. HRESULT STDMETHODCALLTYPE IDvdState_GetParentalLevel_Proxy( 
  1274.     IDvdState * This,
  1275.     /* [out] */ ULONG *pulParentalLevel);
  1276. void __RPC_STUB IDvdState_GetParentalLevel_Stub(
  1277.     IRpcStubBuffer *This,
  1278.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1279.     PRPC_MESSAGE _pRpcMessage,
  1280.     DWORD *_pdwStubPhase);
  1281. #endif  /* __IDvdState_INTERFACE_DEFINED__ */
  1282. #ifndef __IDvdControl2_INTERFACE_DEFINED__
  1283. #define __IDvdControl2_INTERFACE_DEFINED__
  1284. /* interface IDvdControl2 */
  1285. /* [unique][uuid][object] */ 
  1286. EXTERN_C const IID IID_IDvdControl2;
  1287. #if defined(__cplusplus) && !defined(CINTERFACE)
  1288.     
  1289.     MIDL_INTERFACE("33BC7430-EEC0-11D2-8201-00A0C9D74842")
  1290.     IDvdControl2 : public IUnknown
  1291.     {
  1292.     public:
  1293.         virtual HRESULT STDMETHODCALLTYPE PlayTitle( 
  1294.             /* [in] */ ULONG ulTitle,
  1295.             /* [in] */ DWORD dwFlags,
  1296.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1297.         
  1298.         virtual HRESULT STDMETHODCALLTYPE PlayChapterInTitle( 
  1299.             /* [in] */ ULONG ulTitle,
  1300.             /* [in] */ ULONG ulChapter,
  1301.             /* [in] */ DWORD dwFlags,
  1302.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1303.         
  1304.         virtual HRESULT STDMETHODCALLTYPE PlayAtTimeInTitle( 
  1305.             /* [in] */ ULONG ulTitle,
  1306.             /* [in] */ DVD_HMSF_TIMECODE *pStartTime,
  1307.             /* [in] */ DWORD dwFlags,
  1308.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1309.         
  1310.         virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
  1311.         
  1312.         virtual HRESULT STDMETHODCALLTYPE ReturnFromSubmenu( 
  1313.             /* [in] */ DWORD dwFlags,
  1314.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1315.         
  1316.         virtual HRESULT STDMETHODCALLTYPE PlayAtTime( 
  1317.             /* [in] */ DVD_HMSF_TIMECODE *pTime,
  1318.             /* [in] */ DWORD dwFlags,
  1319.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1320.         
  1321.         virtual HRESULT STDMETHODCALLTYPE PlayChapter( 
  1322.             /* [in] */ ULONG ulChapter,
  1323.             /* [in] */ DWORD dwFlags,
  1324.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1325.         
  1326.         virtual HRESULT STDMETHODCALLTYPE PlayPrevChapter( 
  1327.             /* [in] */ DWORD dwFlags,
  1328.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1329.         
  1330.         virtual HRESULT STDMETHODCALLTYPE ReplayChapter( 
  1331.             /* [in] */ DWORD dwFlags,
  1332.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1333.         
  1334.         virtual HRESULT STDMETHODCALLTYPE PlayNextChapter( 
  1335.             /* [in] */ DWORD dwFlags,
  1336.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1337.         
  1338.         virtual HRESULT STDMETHODCALLTYPE PlayForwards( 
  1339.             /* [in] */ double dSpeed,
  1340.             /* [in] */ DWORD dwFlags,
  1341.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1342.         
  1343.         virtual HRESULT STDMETHODCALLTYPE PlayBackwards( 
  1344.             /* [in] */ double dSpeed,
  1345.             /* [in] */ DWORD dwFlags,
  1346.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1347.         
  1348.         virtual HRESULT STDMETHODCALLTYPE ShowMenu( 
  1349.             /* [in] */ DVD_MENU_ID MenuID,
  1350.             /* [in] */ DWORD dwFlags,
  1351.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1352.         
  1353.         virtual HRESULT STDMETHODCALLTYPE Resume( 
  1354.             /* [in] */ DWORD dwFlags,
  1355.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1356.         
  1357.         virtual HRESULT STDMETHODCALLTYPE SelectRelativeButton( 
  1358.             DVD_RELATIVE_BUTTON buttonDir) = 0;
  1359.         
  1360.         virtual HRESULT STDMETHODCALLTYPE ActivateButton( void) = 0;
  1361.         
  1362.         virtual HRESULT STDMETHODCALLTYPE SelectButton( 
  1363.             /* [in] */ ULONG ulButton) = 0;
  1364.         
  1365.         virtual HRESULT STDMETHODCALLTYPE SelectAndActivateButton( 
  1366.             /* [in] */ ULONG ulButton) = 0;
  1367.         
  1368.         virtual HRESULT STDMETHODCALLTYPE StillOff( void) = 0;
  1369.         
  1370.         virtual HRESULT STDMETHODCALLTYPE Pause( 
  1371.             /* [in] */ BOOL bState) = 0;
  1372.         
  1373.         virtual HRESULT STDMETHODCALLTYPE SelectAudioStream( 
  1374.             /* [in] */ ULONG ulAudio,
  1375.             /* [in] */ DWORD dwFlags,
  1376.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1377.         
  1378.         virtual HRESULT STDMETHODCALLTYPE SelectSubpictureStream( 
  1379.             /* [in] */ ULONG ulSubPicture,
  1380.             /* [in] */ DWORD dwFlags,
  1381.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1382.         
  1383.         virtual HRESULT STDMETHODCALLTYPE SetSubpictureState( 
  1384.             /* [in] */ BOOL bState,
  1385.             /* [in] */ DWORD dwFlags,
  1386.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1387.         
  1388.         virtual HRESULT STDMETHODCALLTYPE SelectAngle( 
  1389.             /* [in] */ ULONG ulAngle,
  1390.             /* [in] */ DWORD dwFlags,
  1391.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1392.         
  1393.         virtual HRESULT STDMETHODCALLTYPE SelectParentalLevel( 
  1394.             /* [in] */ ULONG ulParentalLevel) = 0;
  1395.         
  1396.         virtual HRESULT STDMETHODCALLTYPE SelectParentalCountry( 
  1397.             /* [in] */ BYTE bCountry[ 2 ]) = 0;
  1398.         
  1399.         virtual HRESULT STDMETHODCALLTYPE SelectKaraokeAudioPresentationMode( 
  1400.             /* [in] */ ULONG ulMode) = 0;
  1401.         
  1402.         virtual HRESULT STDMETHODCALLTYPE SelectVideoModePreference( 
  1403.             /* [in] */ ULONG ulPreferredDisplayMode) = 0;
  1404.         
  1405.         virtual HRESULT STDMETHODCALLTYPE SetDVDDirectory( 
  1406.             /* [in] */ LPCWSTR pszwPath) = 0;
  1407.         
  1408.         virtual HRESULT STDMETHODCALLTYPE ActivateAtPosition( 
  1409.             /* [in] */ POINT point) = 0;
  1410.         
  1411.         virtual HRESULT STDMETHODCALLTYPE SelectAtPosition( 
  1412.             /* [in] */ POINT point) = 0;
  1413.         
  1414.         virtual HRESULT STDMETHODCALLTYPE PlayChaptersAutoStop( 
  1415.             /* [in] */ ULONG ulTitle,
  1416.             /* [in] */ ULONG ulChapter,
  1417.             /* [in] */ ULONG ulChaptersToPlay,
  1418.             /* [in] */ DWORD dwFlags,
  1419.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1420.         
  1421.         virtual HRESULT STDMETHODCALLTYPE AcceptParentalLevelChange( 
  1422.             /* [in] */ BOOL bAccept) = 0;
  1423.         
  1424.         virtual HRESULT STDMETHODCALLTYPE SetOption( 
  1425.             /* [in] */ DVD_OPTION_FLAG flag,
  1426.             /* [in] */ BOOL fState) = 0;
  1427.         
  1428.         virtual HRESULT STDMETHODCALLTYPE SetState( 
  1429.             /* [in] */ IDvdState *pState,
  1430.             /* [in] */ DWORD dwFlags,
  1431.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1432.         
  1433.         virtual HRESULT STDMETHODCALLTYPE PlayPeriodInTitleAutoStop( 
  1434.             /* [in] */ ULONG ulTitle,
  1435.             /* [in] */ DVD_HMSF_TIMECODE *pStartTime,
  1436.             /* [in] */ DVD_HMSF_TIMECODE *pEndTime,
  1437.             /* [in] */ DWORD dwFlags,
  1438.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1439.         
  1440.         virtual HRESULT STDMETHODCALLTYPE SetGPRM( 
  1441.             /* [in] */ ULONG ulIndex,
  1442.             /* [in] */ WORD wValue,
  1443.             /* [in] */ DWORD dwFlags,
  1444.             /* [out] */ IDvdCmd **ppCmd) = 0;
  1445.         
  1446.         virtual HRESULT STDMETHODCALLTYPE SelectDefaultMenuLanguage( 
  1447.             /* [in] */ LCID Language) = 0;
  1448.         
  1449.         virtual HRESULT STDMETHODCALLTYPE SelectDefaultAudioLanguage( 
  1450.             /* [in] */ LCID Language,
  1451.             /* [in] */ DVD_AUDIO_LANG_EXT audioExtension) = 0;
  1452.         
  1453.         virtual HRESULT STDMETHODCALLTYPE SelectDefaultSubpictureLanguage( 
  1454.             /* [in] */ LCID Language,
  1455.             /* [in] */ DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
  1456.         
  1457.     };
  1458.     
  1459. #else  /* C style interface */
  1460.     typedef struct IDvdControl2Vtbl
  1461.     {
  1462.         BEGIN_INTERFACE
  1463.         
  1464.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1465.             IDvdControl2 * This,
  1466.             /* [in] */ REFIID riid,
  1467.             /* [iid_is][out] */ void **ppvObject);
  1468.         
  1469.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1470.             IDvdControl2 * This);
  1471.         
  1472.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1473.             IDvdControl2 * This);
  1474.         
  1475.         HRESULT ( STDMETHODCALLTYPE *PlayTitle )( 
  1476.             IDvdControl2 * This,
  1477.             /* [in] */ ULONG ulTitle,
  1478.             /* [in] */ DWORD dwFlags,
  1479.             /* [out] */ IDvdCmd **ppCmd);
  1480.         
  1481.         HRESULT ( STDMETHODCALLTYPE *PlayChapterInTitle )( 
  1482.             IDvdControl2 * This,
  1483.             /* [in] */ ULONG ulTitle,
  1484.             /* [in] */ ULONG ulChapter,
  1485.             /* [in] */ DWORD dwFlags,
  1486.             /* [out] */ IDvdCmd **ppCmd);
  1487.         
  1488.         HRESULT ( STDMETHODCALLTYPE *PlayAtTimeInTitle )( 
  1489.             IDvdControl2 * This,
  1490.             /* [in] */ ULONG ulTitle,
  1491.             /* [in] */ DVD_HMSF_TIMECODE *pStartTime,
  1492.             /* [in] */ DWORD dwFlags,
  1493.             /* [out] */ IDvdCmd **ppCmd);
  1494.         
  1495.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  1496.             IDvdControl2 * This);
  1497.         
  1498.         HRESULT ( STDMETHODCALLTYPE *ReturnFromSubmenu )( 
  1499.             IDvdControl2 * This,
  1500.             /* [in] */ DWORD dwFlags,
  1501.             /* [out] */ IDvdCmd **ppCmd);
  1502.         
  1503.         HRESULT ( STDMETHODCALLTYPE *PlayAtTime )( 
  1504.             IDvdControl2 * This,
  1505.             /* [in] */ DVD_HMSF_TIMECODE *pTime,
  1506.             /* [in] */ DWORD dwFlags,
  1507.             /* [out] */ IDvdCmd **ppCmd);
  1508.         
  1509.         HRESULT ( STDMETHODCALLTYPE *PlayChapter )( 
  1510.             IDvdControl2 * This,
  1511.             /* [in] */ ULONG ulChapter,
  1512.             /* [in] */ DWORD dwFlags,
  1513.             /* [out] */ IDvdCmd **ppCmd);
  1514.         
  1515.         HRESULT ( STDMETHODCALLTYPE *PlayPrevChapter )( 
  1516.             IDvdControl2 * This,
  1517.             /* [in] */ DWORD dwFlags,
  1518.             /* [out] */ IDvdCmd **ppCmd);
  1519.         
  1520.         HRESULT ( STDMETHODCALLTYPE *ReplayChapter )( 
  1521.             IDvdControl2 * This,
  1522.             /* [in] */ DWORD dwFlags,
  1523.             /* [out] */ IDvdCmd **ppCmd);
  1524.         
  1525.         HRESULT ( STDMETHODCALLTYPE *PlayNextChapter )( 
  1526.             IDvdControl2 * This,
  1527.             /* [in] */ DWORD dwFlags,
  1528.             /* [out] */ IDvdCmd **ppCmd);
  1529.         
  1530.         HRESULT ( STDMETHODCALLTYPE *PlayForwards )( 
  1531.             IDvdControl2 * This,
  1532.             /* [in] */ double dSpeed,
  1533.             /* [in] */ DWORD dwFlags,
  1534.             /* [out] */ IDvdCmd **ppCmd);
  1535.         
  1536.         HRESULT ( STDMETHODCALLTYPE *PlayBackwards )( 
  1537.             IDvdControl2 * This,
  1538.             /* [in] */ double dSpeed,
  1539.             /* [in] */ DWORD dwFlags,
  1540.             /* [out] */ IDvdCmd **ppCmd);
  1541.         
  1542.         HRESULT ( STDMETHODCALLTYPE *ShowMenu )( 
  1543.             IDvdControl2 * This,
  1544.             /* [in] */ DVD_MENU_ID MenuID,
  1545.             /* [in] */ DWORD dwFlags,
  1546.             /* [out] */ IDvdCmd **ppCmd);
  1547.         
  1548.         HRESULT ( STDMETHODCALLTYPE *Resume )( 
  1549.             IDvdControl2 * This,
  1550.             /* [in] */ DWORD dwFlags,
  1551.             /* [out] */ IDvdCmd **ppCmd);
  1552.         
  1553.         HRESULT ( STDMETHODCALLTYPE *SelectRelativeButton )( 
  1554.             IDvdControl2 * This,
  1555.             DVD_RELATIVE_BUTTON buttonDir);
  1556.         
  1557.         HRESULT ( STDMETHODCALLTYPE *ActivateButton )( 
  1558.             IDvdControl2 * This);
  1559.         
  1560.         HRESULT ( STDMETHODCALLTYPE *SelectButton )( 
  1561.             IDvdControl2 * This,
  1562.             /* [in] */ ULONG ulButton);
  1563.         
  1564.         HRESULT ( STDMETHODCALLTYPE *SelectAndActivateButton )( 
  1565.             IDvdControl2 * This,
  1566.             /* [in] */ ULONG ulButton);
  1567.         
  1568.         HRESULT ( STDMETHODCALLTYPE *StillOff )( 
  1569.             IDvdControl2 * This);
  1570.         
  1571.         HRESULT ( STDMETHODCALLTYPE *Pause )( 
  1572.             IDvdControl2 * This,
  1573.             /* [in] */ BOOL bState);
  1574.         
  1575.         HRESULT ( STDMETHODCALLTYPE *SelectAudioStream )( 
  1576.             IDvdControl2 * This,
  1577.             /* [in] */ ULONG ulAudio,
  1578.             /* [in] */ DWORD dwFlags,
  1579.             /* [out] */ IDvdCmd **ppCmd);
  1580.         
  1581.         HRESULT ( STDMETHODCALLTYPE *SelectSubpictureStream )( 
  1582.             IDvdControl2 * This,
  1583.             /* [in] */ ULONG ulSubPicture,
  1584.             /* [in] */ DWORD dwFlags,
  1585.             /* [out] */ IDvdCmd **ppCmd);
  1586.         
  1587.         HRESULT ( STDMETHODCALLTYPE *SetSubpictureState )( 
  1588.             IDvdControl2 * This,
  1589.             /* [in] */ BOOL bState,
  1590.             /* [in] */ DWORD dwFlags,
  1591.             /* [out] */ IDvdCmd **ppCmd);
  1592.         
  1593.         HRESULT ( STDMETHODCALLTYPE *SelectAngle )( 
  1594.             IDvdControl2 * This,
  1595.             /* [in] */ ULONG ulAngle,
  1596.             /* [in] */ DWORD dwFlags,
  1597.             /* [out] */ IDvdCmd **ppCmd);
  1598.         
  1599.         HRESULT ( STDMETHODCALLTYPE *SelectParentalLevel )( 
  1600.             IDvdControl2 * This,
  1601.             /* [in] */ ULONG ulParentalLevel);
  1602.         
  1603.         HRESULT ( STDMETHODCALLTYPE *SelectParentalCountry )( 
  1604.             IDvdControl2 * This,
  1605.             /* [in] */ BYTE bCountry[ 2 ]);
  1606.         
  1607.         HRESULT ( STDMETHODCALLTYPE *SelectKaraokeAudioPresentationMode )( 
  1608.             IDvdControl2 * This,
  1609.             /* [in] */ ULONG ulMode);
  1610.         
  1611.         HRESULT ( STDMETHODCALLTYPE *SelectVideoModePreference )( 
  1612.             IDvdControl2 * This,
  1613.             /* [in] */ ULONG ulPreferredDisplayMode);
  1614.         
  1615.         HRESULT ( STDMETHODCALLTYPE *SetDVDDirectory )( 
  1616.             IDvdControl2 * This,
  1617.             /* [in] */ LPCWSTR pszwPath);
  1618.         
  1619.         HRESULT ( STDMETHODCALLTYPE *ActivateAtPosition )( 
  1620.             IDvdControl2 * This,
  1621.             /* [in] */ POINT point);
  1622.         
  1623.         HRESULT ( STDMETHODCALLTYPE *SelectAtPosition )( 
  1624.             IDvdControl2 * This,
  1625.             /* [in] */ POINT point);
  1626.         
  1627.         HRESULT ( STDMETHODCALLTYPE *PlayChaptersAutoStop )( 
  1628.             IDvdControl2 * This,
  1629.             /* [in] */ ULONG ulTitle,
  1630.             /* [in] */ ULONG ulChapter,
  1631.             /* [in] */ ULONG ulChaptersToPlay,
  1632.             /* [in] */ DWORD dwFlags,
  1633.             /* [out] */ IDvdCmd **ppCmd);
  1634.         
  1635.         HRESULT ( STDMETHODCALLTYPE *AcceptParentalLevelChange )( 
  1636.             IDvdControl2 * This,
  1637.             /* [in] */ BOOL bAccept);
  1638.         
  1639.         HRESULT ( STDMETHODCALLTYPE *SetOption )( 
  1640.             IDvdControl2 * This,
  1641.             /* [in] */ DVD_OPTION_FLAG flag,
  1642.             /* [in] */ BOOL fState);
  1643.         
  1644.         HRESULT ( STDMETHODCALLTYPE *SetState )( 
  1645.             IDvdControl2 * This,
  1646.             /* [in] */ IDvdState *pState,
  1647.             /* [in] */ DWORD dwFlags,
  1648.             /* [out] */ IDvdCmd **ppCmd);
  1649.         
  1650.         HRESULT ( STDMETHODCALLTYPE *PlayPeriodInTitleAutoStop )( 
  1651.             IDvdControl2 * This,
  1652.             /* [in] */ ULONG ulTitle,
  1653.             /* [in] */ DVD_HMSF_TIMECODE *pStartTime,
  1654.             /* [in] */ DVD_HMSF_TIMECODE *pEndTime,
  1655.             /* [in] */ DWORD dwFlags,
  1656.             /* [out] */ IDvdCmd **ppCmd);
  1657.         
  1658.         HRESULT ( STDMETHODCALLTYPE *SetGPRM )( 
  1659.             IDvdControl2 * This,
  1660.             /* [in] */ ULONG ulIndex,
  1661.             /* [in] */ WORD wValue,
  1662.             /* [in] */ DWORD dwFlags,
  1663.             /* [out] */ IDvdCmd **ppCmd);
  1664.         
  1665.         HRESULT ( STDMETHODCALLTYPE *SelectDefaultMenuLanguage )( 
  1666.             IDvdControl2 * This,
  1667.             /* [in] */ LCID Language);
  1668.         
  1669.         HRESULT ( STDMETHODCALLTYPE *SelectDefaultAudioLanguage )( 
  1670.             IDvdControl2 * This,
  1671.             /* [in] */ LCID Language,
  1672.             /* [in] */ DVD_AUDIO_LANG_EXT audioExtension);
  1673.         
  1674.         HRESULT ( STDMETHODCALLTYPE *SelectDefaultSubpictureLanguage )( 
  1675.             IDvdControl2 * This,
  1676.             /* [in] */ LCID Language,
  1677.             /* [in] */ DVD_SUBPICTURE_LANG_EXT subpictureExtension);
  1678.         
  1679.         END_INTERFACE
  1680.     } IDvdControl2Vtbl;
  1681.     interface IDvdControl2
  1682.     {
  1683.         CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
  1684.     };
  1685.     
  1686. #ifdef COBJMACROS
  1687. #define IDvdControl2_QueryInterface(This,riid,ppvObject)
  1688.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1689. #define IDvdControl2_AddRef(This)
  1690.     (This)->lpVtbl -> AddRef(This)
  1691. #define IDvdControl2_Release(This)
  1692.     (This)->lpVtbl -> Release(This)
  1693. #define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd)
  1694.     (This)->lpVtbl -> PlayTitle(This,ulTitle,dwFlags,ppCmd)
  1695. #define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
  1696.     (This)->lpVtbl -> PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
  1697. #define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
  1698.     (This)->lpVtbl -> PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
  1699. #define IDvdControl2_Stop(This)
  1700.     (This)->lpVtbl -> Stop(This)
  1701. #define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd)
  1702.     (This)->lpVtbl -> ReturnFromSubmenu(This,dwFlags,ppCmd)
  1703. #define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd)
  1704.     (This)->lpVtbl -> PlayAtTime(This,pTime,dwFlags,ppCmd)
  1705. #define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd)
  1706.     (This)->lpVtbl -> PlayChapter(This,ulChapter,dwFlags,ppCmd)
  1707. #define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd)
  1708.     (This)->lpVtbl -> PlayPrevChapter(This,dwFlags,ppCmd)
  1709. #define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd)
  1710.     (This)->lpVtbl -> ReplayChapter(This,dwFlags,ppCmd)
  1711. #define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd)
  1712.     (This)->lpVtbl -> PlayNextChapter(This,dwFlags,ppCmd)
  1713. #define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd)
  1714.     (This)->lpVtbl -> PlayForwards(This,dSpeed,dwFlags,ppCmd)
  1715. #define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd)
  1716.     (This)->lpVtbl -> PlayBackwards(This,dSpeed,dwFlags,ppCmd)
  1717. #define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd)
  1718.     (This)->lpVtbl -> ShowMenu(This,MenuID,dwFlags,ppCmd)
  1719. #define IDvdControl2_Resume(This,dwFlags,ppCmd)
  1720.     (This)->lpVtbl -> Resume(This,dwFlags,ppCmd)
  1721. #define IDvdControl2_SelectRelativeButton(This,buttonDir)
  1722.     (This)->lpVtbl -> SelectRelativeButton(This,buttonDir)
  1723. #define IDvdControl2_ActivateButton(This)
  1724.     (This)->lpVtbl -> ActivateButton(This)
  1725. #define IDvdControl2_SelectButton(This,ulButton)
  1726.     (This)->lpVtbl -> SelectButton(This,ulButton)
  1727. #define IDvdControl2_SelectAndActivateButton(This,ulButton)
  1728.     (This)->lpVtbl -> SelectAndActivateButton(This,ulButton)
  1729. #define IDvdControl2_StillOff(This)
  1730.     (This)->lpVtbl -> StillOff(This)
  1731. #define IDvdControl2_Pause(This,bState)
  1732.     (This)->lpVtbl -> Pause(This,bState)
  1733. #define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
  1734.     (This)->lpVtbl -> SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
  1735. #define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
  1736.     (This)->lpVtbl -> SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
  1737. #define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd)
  1738.     (This)->lpVtbl -> SetSubpictureState(This,bState,dwFlags,ppCmd)
  1739. #define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd)
  1740.     (This)->lpVtbl -> SelectAngle(This,ulAngle,dwFlags,ppCmd)
  1741. #define IDvdControl2_SelectParentalLevel(This,ulParentalLevel)
  1742.     (This)->lpVtbl -> SelectParentalLevel(This,ulParentalLevel)
  1743. #define IDvdControl2_SelectParentalCountry(This,bCountry)
  1744.     (This)->lpVtbl -> SelectParentalCountry(This,bCountry)
  1745. #define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode)
  1746.     (This)->lpVtbl -> SelectKaraokeAudioPresentationMode(This,ulMode)
  1747. #define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode)
  1748.     (This)->lpVtbl -> SelectVideoModePreference(This,ulPreferredDisplayMode)
  1749. #define IDvdControl2_SetDVDDirectory(This,pszwPath)
  1750.     (This)->lpVtbl -> SetDVDDirectory(This,pszwPath)
  1751. #define IDvdControl2_ActivateAtPosition(This,point)
  1752.     (This)->lpVtbl -> ActivateAtPosition(This,point)
  1753. #define IDvdControl2_SelectAtPosition(This,point)
  1754.     (This)->lpVtbl -> SelectAtPosition(This,point)
  1755. #define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
  1756.     (This)->lpVtbl -> PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
  1757. #define IDvdControl2_AcceptParentalLevelChange(This,bAccept)
  1758.     (This)->lpVtbl -> AcceptParentalLevelChange(This,bAccept)
  1759. #define IDvdControl2_SetOption(This,flag,fState)
  1760.     (This)->lpVtbl -> SetOption(This,flag,fState)
  1761. #define IDvdControl2_SetState(This,pState,dwFlags,ppCmd)
  1762.     (This)->lpVtbl -> SetState(This,pState,dwFlags,ppCmd)
  1763. #define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
  1764.     (This)->lpVtbl -> PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
  1765. #define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
  1766.     (This)->lpVtbl -> SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
  1767. #define IDvdControl2_SelectDefaultMenuLanguage(This,Language)
  1768.     (This)->lpVtbl -> SelectDefaultMenuLanguage(This,Language)
  1769. #define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension)
  1770.     (This)->lpVtbl -> SelectDefaultAudioLanguage(This,Language,audioExtension)
  1771. #define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
  1772.     (This)->lpVtbl -> SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
  1773. #endif /* COBJMACROS */
  1774. #endif  /* C style interface */
  1775. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayTitle_Proxy( 
  1776.     IDvdControl2 * This,
  1777.     /* [in] */ ULONG ulTitle,
  1778.     /* [in] */ DWORD dwFlags,
  1779.     /* [out] */ IDvdCmd **ppCmd);
  1780. void __RPC_STUB IDvdControl2_PlayTitle_Stub(
  1781.     IRpcStubBuffer *This,
  1782.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1783.     PRPC_MESSAGE _pRpcMessage,
  1784.     DWORD *_pdwStubPhase);
  1785. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayChapterInTitle_Proxy( 
  1786.     IDvdControl2 * This,
  1787.     /* [in] */ ULONG ulTitle,
  1788.     /* [in] */ ULONG ulChapter,
  1789.     /* [in] */ DWORD dwFlags,
  1790.     /* [out] */ IDvdCmd **ppCmd);
  1791. void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(
  1792.     IRpcStubBuffer *This,
  1793.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1794.     PRPC_MESSAGE _pRpcMessage,
  1795.     DWORD *_pdwStubPhase);
  1796. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayAtTimeInTitle_Proxy( 
  1797.     IDvdControl2 * This,
  1798.     /* [in] */ ULONG ulTitle,
  1799.     /* [in] */ DVD_HMSF_TIMECODE *pStartTime,
  1800.     /* [in] */ DWORD dwFlags,
  1801.     /* [out] */ IDvdCmd **ppCmd);
  1802. void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(
  1803.     IRpcStubBuffer *This,
  1804.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1805.     PRPC_MESSAGE _pRpcMessage,
  1806.     DWORD *_pdwStubPhase);
  1807. HRESULT STDMETHODCALLTYPE IDvdControl2_Stop_Proxy( 
  1808.     IDvdControl2 * This);
  1809. void __RPC_STUB IDvdControl2_Stop_Stub(
  1810.     IRpcStubBuffer *This,
  1811.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1812.     PRPC_MESSAGE _pRpcMessage,
  1813.     DWORD *_pdwStubPhase);
  1814. HRESULT STDMETHODCALLTYPE IDvdControl2_ReturnFromSubmenu_Proxy( 
  1815.     IDvdControl2 * This,
  1816.     /* [in] */ DWORD dwFlags,
  1817.     /* [out] */ IDvdCmd **ppCmd);
  1818. void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(
  1819.     IRpcStubBuffer *This,
  1820.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1821.     PRPC_MESSAGE _pRpcMessage,
  1822.     DWORD *_pdwStubPhase);
  1823. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayAtTime_Proxy( 
  1824.     IDvdControl2 * This,
  1825.     /* [in] */ DVD_HMSF_TIMECODE *pTime,
  1826.     /* [in] */ DWORD dwFlags,
  1827.     /* [out] */ IDvdCmd **ppCmd);
  1828. void __RPC_STUB IDvdControl2_PlayAtTime_Stub(
  1829.     IRpcStubBuffer *This,
  1830.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1831.     PRPC_MESSAGE _pRpcMessage,
  1832.     DWORD *_pdwStubPhase);
  1833. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayChapter_Proxy( 
  1834.     IDvdControl2 * This,
  1835.     /* [in] */ ULONG ulChapter,
  1836.     /* [in] */ DWORD dwFlags,
  1837.     /* [out] */ IDvdCmd **ppCmd);
  1838. void __RPC_STUB IDvdControl2_PlayChapter_Stub(
  1839.     IRpcStubBuffer *This,
  1840.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1841.     PRPC_MESSAGE _pRpcMessage,
  1842.     DWORD *_pdwStubPhase);
  1843. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayPrevChapter_Proxy( 
  1844.     IDvdControl2 * This,
  1845.     /* [in] */ DWORD dwFlags,
  1846.     /* [out] */ IDvdCmd **ppCmd);
  1847. void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(
  1848.     IRpcStubBuffer *This,
  1849.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1850.     PRPC_MESSAGE _pRpcMessage,
  1851.     DWORD *_pdwStubPhase);
  1852. HRESULT STDMETHODCALLTYPE IDvdControl2_ReplayChapter_Proxy( 
  1853.     IDvdControl2 * This,
  1854.     /* [in] */ DWORD dwFlags,
  1855.     /* [out] */ IDvdCmd **ppCmd);
  1856. void __RPC_STUB IDvdControl2_ReplayChapter_Stub(
  1857.     IRpcStubBuffer *This,
  1858.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1859.     PRPC_MESSAGE _pRpcMessage,
  1860.     DWORD *_pdwStubPhase);
  1861. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayNextChapter_Proxy( 
  1862.     IDvdControl2 * This,
  1863.     /* [in] */ DWORD dwFlags,
  1864.     /* [out] */ IDvdCmd **ppCmd);
  1865. void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(
  1866.     IRpcStubBuffer *This,
  1867.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1868.     PRPC_MESSAGE _pRpcMessage,
  1869.     DWORD *_pdwStubPhase);
  1870. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayForwards_Proxy( 
  1871.     IDvdControl2 * This,
  1872.     /* [in] */ double dSpeed,
  1873.     /* [in] */ DWORD dwFlags,
  1874.     /* [out] */ IDvdCmd **ppCmd);
  1875. void __RPC_STUB IDvdControl2_PlayForwards_Stub(
  1876.     IRpcStubBuffer *This,
  1877.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1878.     PRPC_MESSAGE _pRpcMessage,
  1879.     DWORD *_pdwStubPhase);
  1880. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayBackwards_Proxy( 
  1881.     IDvdControl2 * This,
  1882.     /* [in] */ double dSpeed,
  1883.     /* [in] */ DWORD dwFlags,
  1884.     /* [out] */ IDvdCmd **ppCmd);
  1885. void __RPC_STUB IDvdControl2_PlayBackwards_Stub(
  1886.     IRpcStubBuffer *This,
  1887.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1888.     PRPC_MESSAGE _pRpcMessage,
  1889.     DWORD *_pdwStubPhase);
  1890. HRESULT STDMETHODCALLTYPE IDvdControl2_ShowMenu_Proxy( 
  1891.     IDvdControl2 * This,
  1892.     /* [in] */ DVD_MENU_ID MenuID,
  1893.     /* [in] */ DWORD dwFlags,
  1894.     /* [out] */ IDvdCmd **ppCmd);
  1895. void __RPC_STUB IDvdControl2_ShowMenu_Stub(
  1896.     IRpcStubBuffer *This,
  1897.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1898.     PRPC_MESSAGE _pRpcMessage,
  1899.     DWORD *_pdwStubPhase);
  1900. HRESULT STDMETHODCALLTYPE IDvdControl2_Resume_Proxy( 
  1901.     IDvdControl2 * This,
  1902.     /* [in] */ DWORD dwFlags,
  1903.     /* [out] */ IDvdCmd **ppCmd);
  1904. void __RPC_STUB IDvdControl2_Resume_Stub(
  1905.     IRpcStubBuffer *This,
  1906.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1907.     PRPC_MESSAGE _pRpcMessage,
  1908.     DWORD *_pdwStubPhase);
  1909. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectRelativeButton_Proxy( 
  1910.     IDvdControl2 * This,
  1911.     DVD_RELATIVE_BUTTON buttonDir);
  1912. void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(
  1913.     IRpcStubBuffer *This,
  1914.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1915.     PRPC_MESSAGE _pRpcMessage,
  1916.     DWORD *_pdwStubPhase);
  1917. HRESULT STDMETHODCALLTYPE IDvdControl2_ActivateButton_Proxy( 
  1918.     IDvdControl2 * This);
  1919. void __RPC_STUB IDvdControl2_ActivateButton_Stub(
  1920.     IRpcStubBuffer *This,
  1921.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1922.     PRPC_MESSAGE _pRpcMessage,
  1923.     DWORD *_pdwStubPhase);
  1924. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectButton_Proxy( 
  1925.     IDvdControl2 * This,
  1926.     /* [in] */ ULONG ulButton);
  1927. void __RPC_STUB IDvdControl2_SelectButton_Stub(
  1928.     IRpcStubBuffer *This,
  1929.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1930.     PRPC_MESSAGE _pRpcMessage,
  1931.     DWORD *_pdwStubPhase);
  1932. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectAndActivateButton_Proxy( 
  1933.     IDvdControl2 * This,
  1934.     /* [in] */ ULONG ulButton);
  1935. void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(
  1936.     IRpcStubBuffer *This,
  1937.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1938.     PRPC_MESSAGE _pRpcMessage,
  1939.     DWORD *_pdwStubPhase);
  1940. HRESULT STDMETHODCALLTYPE IDvdControl2_StillOff_Proxy( 
  1941.     IDvdControl2 * This);
  1942. void __RPC_STUB IDvdControl2_StillOff_Stub(
  1943.     IRpcStubBuffer *This,
  1944.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1945.     PRPC_MESSAGE _pRpcMessage,
  1946.     DWORD *_pdwStubPhase);
  1947. HRESULT STDMETHODCALLTYPE IDvdControl2_Pause_Proxy( 
  1948.     IDvdControl2 * This,
  1949.     /* [in] */ BOOL bState);
  1950. void __RPC_STUB IDvdControl2_Pause_Stub(
  1951.     IRpcStubBuffer *This,
  1952.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1953.     PRPC_MESSAGE _pRpcMessage,
  1954.     DWORD *_pdwStubPhase);
  1955. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectAudioStream_Proxy( 
  1956.     IDvdControl2 * This,
  1957.     /* [in] */ ULONG ulAudio,
  1958.     /* [in] */ DWORD dwFlags,
  1959.     /* [out] */ IDvdCmd **ppCmd);
  1960. void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(
  1961.     IRpcStubBuffer *This,
  1962.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1963.     PRPC_MESSAGE _pRpcMessage,
  1964.     DWORD *_pdwStubPhase);
  1965. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectSubpictureStream_Proxy( 
  1966.     IDvdControl2 * This,
  1967.     /* [in] */ ULONG ulSubPicture,
  1968.     /* [in] */ DWORD dwFlags,
  1969.     /* [out] */ IDvdCmd **ppCmd);
  1970. void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(
  1971.     IRpcStubBuffer *This,
  1972.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1973.     PRPC_MESSAGE _pRpcMessage,
  1974.     DWORD *_pdwStubPhase);
  1975. HRESULT STDMETHODCALLTYPE IDvdControl2_SetSubpictureState_Proxy( 
  1976.     IDvdControl2 * This,
  1977.     /* [in] */ BOOL bState,
  1978.     /* [in] */ DWORD dwFlags,
  1979.     /* [out] */ IDvdCmd **ppCmd);
  1980. void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(
  1981.     IRpcStubBuffer *This,
  1982.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1983.     PRPC_MESSAGE _pRpcMessage,
  1984.     DWORD *_pdwStubPhase);
  1985. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectAngle_Proxy( 
  1986.     IDvdControl2 * This,
  1987.     /* [in] */ ULONG ulAngle,
  1988.     /* [in] */ DWORD dwFlags,
  1989.     /* [out] */ IDvdCmd **ppCmd);
  1990. void __RPC_STUB IDvdControl2_SelectAngle_Stub(
  1991.     IRpcStubBuffer *This,
  1992.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1993.     PRPC_MESSAGE _pRpcMessage,
  1994.     DWORD *_pdwStubPhase);
  1995. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectParentalLevel_Proxy( 
  1996.     IDvdControl2 * This,
  1997.     /* [in] */ ULONG ulParentalLevel);
  1998. void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(
  1999.     IRpcStubBuffer *This,
  2000.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2001.     PRPC_MESSAGE _pRpcMessage,
  2002.     DWORD *_pdwStubPhase);
  2003. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectParentalCountry_Proxy( 
  2004.     IDvdControl2 * This,
  2005.     /* [in] */ BYTE bCountry[ 2 ]);
  2006. void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(
  2007.     IRpcStubBuffer *This,
  2008.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2009.     PRPC_MESSAGE _pRpcMessage,
  2010.     DWORD *_pdwStubPhase);
  2011. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy( 
  2012.     IDvdControl2 * This,
  2013.     /* [in] */ ULONG ulMode);
  2014. void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(
  2015.     IRpcStubBuffer *This,
  2016.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2017.     PRPC_MESSAGE _pRpcMessage,
  2018.     DWORD *_pdwStubPhase);
  2019. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectVideoModePreference_Proxy( 
  2020.     IDvdControl2 * This,
  2021.     /* [in] */ ULONG ulPreferredDisplayMode);
  2022. void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(
  2023.     IRpcStubBuffer *This,
  2024.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2025.     PRPC_MESSAGE _pRpcMessage,
  2026.     DWORD *_pdwStubPhase);
  2027. HRESULT STDMETHODCALLTYPE IDvdControl2_SetDVDDirectory_Proxy( 
  2028.     IDvdControl2 * This,
  2029.     /* [in] */ LPCWSTR pszwPath);
  2030. void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(
  2031.     IRpcStubBuffer *This,
  2032.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2033.     PRPC_MESSAGE _pRpcMessage,
  2034.     DWORD *_pdwStubPhase);
  2035. HRESULT STDMETHODCALLTYPE IDvdControl2_ActivateAtPosition_Proxy( 
  2036.     IDvdControl2 * This,
  2037.     /* [in] */ POINT point);
  2038. void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(
  2039.     IRpcStubBuffer *This,
  2040.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2041.     PRPC_MESSAGE _pRpcMessage,
  2042.     DWORD *_pdwStubPhase);
  2043. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectAtPosition_Proxy( 
  2044.     IDvdControl2 * This,
  2045.     /* [in] */ POINT point);
  2046. void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(
  2047.     IRpcStubBuffer *This,
  2048.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2049.     PRPC_MESSAGE _pRpcMessage,
  2050.     DWORD *_pdwStubPhase);
  2051. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayChaptersAutoStop_Proxy( 
  2052.     IDvdControl2 * This,
  2053.     /* [in] */ ULONG ulTitle,
  2054.     /* [in] */ ULONG ulChapter,
  2055.     /* [in] */ ULONG ulChaptersToPlay,
  2056.     /* [in] */ DWORD dwFlags,
  2057.     /* [out] */ IDvdCmd **ppCmd);
  2058. void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(
  2059.     IRpcStubBuffer *This,
  2060.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2061.     PRPC_MESSAGE _pRpcMessage,
  2062.     DWORD *_pdwStubPhase);
  2063. HRESULT STDMETHODCALLTYPE IDvdControl2_AcceptParentalLevelChange_Proxy( 
  2064.     IDvdControl2 * This,
  2065.     /* [in] */ BOOL bAccept);
  2066. void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(
  2067.     IRpcStubBuffer *This,
  2068.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2069.     PRPC_MESSAGE _pRpcMessage,
  2070.     DWORD *_pdwStubPhase);
  2071. HRESULT STDMETHODCALLTYPE IDvdControl2_SetOption_Proxy( 
  2072.     IDvdControl2 * This,
  2073.     /* [in] */ DVD_OPTION_FLAG flag,
  2074.     /* [in] */ BOOL fState);
  2075. void __RPC_STUB IDvdControl2_SetOption_Stub(
  2076.     IRpcStubBuffer *This,
  2077.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2078.     PRPC_MESSAGE _pRpcMessage,
  2079.     DWORD *_pdwStubPhase);
  2080. HRESULT STDMETHODCALLTYPE IDvdControl2_SetState_Proxy( 
  2081.     IDvdControl2 * This,
  2082.     /* [in] */ IDvdState *pState,
  2083.     /* [in] */ DWORD dwFlags,
  2084.     /* [out] */ IDvdCmd **ppCmd);
  2085. void __RPC_STUB IDvdControl2_SetState_Stub(
  2086.     IRpcStubBuffer *This,
  2087.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2088.     PRPC_MESSAGE _pRpcMessage,
  2089.     DWORD *_pdwStubPhase);
  2090. HRESULT STDMETHODCALLTYPE IDvdControl2_PlayPeriodInTitleAutoStop_Proxy( 
  2091.     IDvdControl2 * This,
  2092.     /* [in] */ ULONG ulTitle,
  2093.     /* [in] */ DVD_HMSF_TIMECODE *pStartTime,
  2094.     /* [in] */ DVD_HMSF_TIMECODE *pEndTime,
  2095.     /* [in] */ DWORD dwFlags,
  2096.     /* [out] */ IDvdCmd **ppCmd);
  2097. void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(
  2098.     IRpcStubBuffer *This,
  2099.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2100.     PRPC_MESSAGE _pRpcMessage,
  2101.     DWORD *_pdwStubPhase);
  2102. HRESULT STDMETHODCALLTYPE IDvdControl2_SetGPRM_Proxy( 
  2103.     IDvdControl2 * This,
  2104.     /* [in] */ ULONG ulIndex,
  2105.     /* [in] */ WORD wValue,
  2106.     /* [in] */ DWORD dwFlags,
  2107.     /* [out] */ IDvdCmd **ppCmd);
  2108. void __RPC_STUB IDvdControl2_SetGPRM_Stub(
  2109.     IRpcStubBuffer *This,
  2110.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2111.     PRPC_MESSAGE _pRpcMessage,
  2112.     DWORD *_pdwStubPhase);
  2113. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectDefaultMenuLanguage_Proxy( 
  2114.     IDvdControl2 * This,
  2115.     /* [in] */ LCID Language);
  2116. void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(
  2117.     IRpcStubBuffer *This,
  2118.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2119.     PRPC_MESSAGE _pRpcMessage,
  2120.     DWORD *_pdwStubPhase);
  2121. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectDefaultAudioLanguage_Proxy( 
  2122.     IDvdControl2 * This,
  2123.     /* [in] */ LCID Language,
  2124.     /* [in] */ DVD_AUDIO_LANG_EXT audioExtension);
  2125. void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(
  2126.     IRpcStubBuffer *This,
  2127.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2128.     PRPC_MESSAGE _pRpcMessage,
  2129.     DWORD *_pdwStubPhase);
  2130. HRESULT STDMETHODCALLTYPE IDvdControl2_SelectDefaultSubpictureLanguage_Proxy( 
  2131.     IDvdControl2 * This,
  2132.     /* [in] */ LCID Language,
  2133.     /* [in] */ DVD_SUBPICTURE_LANG_EXT subpictureExtension);
  2134. void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(
  2135.     IRpcStubBuffer *This,
  2136.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2137.     PRPC_MESSAGE _pRpcMessage,
  2138.     DWORD *_pdwStubPhase);
  2139. #endif  /* __IDvdControl2_INTERFACE_DEFINED__ */
  2140. /* interface __MIDL_itf_strmif_0370 */
  2141. /* [local] */ 
  2142. enum DVD_TextStringType
  2143.     { DVD_Struct_Volume = 0x1,
  2144. DVD_Struct_Title = 0x2,
  2145. DVD_Struct_ParentalID = 0x3,
  2146. DVD_Struct_PartOfTitle = 0x4,
  2147. DVD_Struct_Cell = 0x5,
  2148. DVD_Stream_Audio = 0x10,
  2149. DVD_Stream_Subpicture = 0x11,
  2150. DVD_Stream_Angle = 0x12,
  2151. DVD_Channel_Audio = 0x20,
  2152. DVD_General_Name = 0x30,
  2153. DVD_General_Comments = 0x31,
  2154. DVD_Title_Series = 0x38,
  2155. DVD_Title_Movie = 0x39,
  2156. DVD_Title_Video = 0x3a,
  2157. DVD_Title_Album = 0x3b,
  2158. DVD_Title_Song = 0x3c,
  2159. DVD_Title_Other = 0x3f,
  2160. DVD_Title_Sub_Series = 0x40,
  2161. DVD_Title_Sub_Movie = 0x41,
  2162. DVD_Title_Sub_Video = 0x42,
  2163. DVD_Title_Sub_Album = 0x43,
  2164. DVD_Title_Sub_Song = 0x44,
  2165. DVD_Title_Sub_Other = 0x47,
  2166. DVD_Title_Orig_Series = 0x48,
  2167. DVD_Title_Orig_Movie = 0x49,
  2168. DVD_Title_Orig_Video = 0x4a,
  2169. DVD_Title_Orig_Album = 0x4b,
  2170. DVD_Title_Orig_Song = 0x4c,
  2171. DVD_Title_Orig_Other = 0x4f,
  2172. DVD_Other_Scene = 0x50,
  2173. DVD_Other_Cut = 0x51,
  2174. DVD_Other_Take = 0x52
  2175.     } ;
  2176. enum DVD_TextCharSet
  2177.     { DVD_CharSet_Unicode = 0,
  2178. DVD_CharSet_ISO646 = 1,
  2179. DVD_CharSet_JIS_Roman_Kanji = 2,
  2180. DVD_CharSet_ISO8859_1 = 3,
  2181. DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
  2182.     } ;
  2183. #define DVD_TITLE_MENU 0x000
  2184. #define DVD_STREAM_DATA_CURRENT     0x800
  2185. #define DVD_STREAM_DATA_VMGM        0x400
  2186. #define DVD_STREAM_DATA_VTSM        0x401
  2187. #define DVD_DEFAULT_AUDIO_STREAM 0x0f
  2188. typedef struct tagDVD_DECODER_CAPS
  2189.     {
  2190.     DWORD dwSize;
  2191.     DWORD dwAudioCaps;
  2192.     double dFwdMaxRateVideo;
  2193.     double dFwdMaxRateAudio;
  2194.     double dFwdMaxRateSP;
  2195.     double dBwdMaxRateVideo;
  2196.     double dBwdMaxRateAudio;
  2197.     double dBwdMaxRateSP;
  2198.     DWORD dwRes1;
  2199.     DWORD dwRes2;
  2200.     DWORD dwRes3;
  2201.     DWORD dwRes4;
  2202.     }  DVD_DECODER_CAPS;
  2203. #define DVD_AUDIO_CAPS_AC3 0x00000001
  2204. #define DVD_AUDIO_CAPS_MPEG2 0x00000002
  2205. #define DVD_AUDIO_CAPS_LPCM 0x00000004
  2206. #define DVD_AUDIO_CAPS_DTS 0x00000008
  2207. #define DVD_AUDIO_CAPS_SDDS 0x00000010
  2208. extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
  2209. extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
  2210. #ifndef __IDvdInfo2_INTERFACE_DEFINED__
  2211. #define __IDvdInfo2_INTERFACE_DEFINED__
  2212. /* interface IDvdInfo2 */
  2213. /* [unique][uuid][object] */ 
  2214. EXTERN_C const IID IID_IDvdInfo2;
  2215. #if defined(__cplusplus) && !defined(CINTERFACE)
  2216.     
  2217.     MIDL_INTERFACE("34151510-EEC0-11D2-8201-00A0C9D74842")
  2218.     IDvdInfo2 : public IUnknown
  2219.     {
  2220.     public:
  2221.         virtual HRESULT STDMETHODCALLTYPE GetCurrentDomain( 
  2222.             /* [out] */ DVD_DOMAIN *pDomain) = 0;
  2223.         
  2224.         virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation( 
  2225.             /* [out] */ DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
  2226.         
  2227.         virtual HRESULT STDMETHODCALLTYPE GetTotalTitleTime( 
  2228.             /* [out] */ DVD_HMSF_TIMECODE *pTotalTime,
  2229.             /* [out] */ ULONG *ulTimeCodeFlags) = 0;
  2230.         
  2231.         virtual HRESULT STDMETHODCALLTYPE GetCurrentButton( 
  2232.             /* [out] */ ULONG *pulButtonsAvailable,
  2233.             /* [out] */ ULONG *pulCurrentButton) = 0;
  2234.         
  2235.         virtual HRESULT STDMETHODCALLTYPE GetCurrentAngle( 
  2236.             /* [out] */ ULONG *pulAnglesAvailable,
  2237.             /* [out] */ ULONG *pulCurrentAngle) = 0;
  2238.         
  2239.         virtual HRESULT STDMETHODCALLTYPE GetCurrentAudio( 
  2240.             /* [out] */ ULONG *pulStreamsAvailable,
  2241.             /* [out] */ ULONG *pulCurrentStream) = 0;
  2242.         
  2243.         virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpicture( 
  2244.             /* [out] */ ULONG *pulStreamsAvailable,
  2245.             /* [out] */ ULONG *pulCurrentStream,
  2246.             /* [out] */ BOOL *pbIsDisabled) = 0;
  2247.         
  2248.         virtual HRESULT STDMETHODCALLTYPE GetCurrentUOPS( 
  2249.             /* [out] */ ULONG *pulUOPs) = 0;
  2250.         
  2251.         virtual HRESULT STDMETHODCALLTYPE GetAllSPRMs( 
  2252.             /* [out] */ SPRMARRAY *pRegisterArray) = 0;
  2253.         
  2254.         virtual HRESULT STDMETHODCALLTYPE GetAllGPRMs( 
  2255.             /* [out] */ GPRMARRAY *pRegisterArray) = 0;
  2256.         
  2257.         virtual HRESULT STDMETHODCALLTYPE GetAudioLanguage( 
  2258.             /* [in] */ ULONG ulStream,
  2259.             /* [out] */ LCID *pLanguage) = 0;
  2260.         
  2261.         virtual HRESULT STDMETHODCALLTYPE GetSubpictureLanguage( 
  2262.             /* [in] */ ULONG ulStream,
  2263.             /* [out] */ LCID *pLanguage) = 0;
  2264.         
  2265.         virtual HRESULT STDMETHODCALLTYPE GetTitleAttributes( 
  2266.             /* [in] */ ULONG ulTitle,
  2267.             /* [out] */ DVD_MenuAttributes *pMenu,
  2268.             /* [out] */ DVD_TitleAttributes *pTitle) = 0;
  2269.         
  2270.         virtual HRESULT STDMETHODCALLTYPE GetVMGAttributes( 
  2271.             /* [out] */ DVD_MenuAttributes *pATR) = 0;
  2272.         
  2273.         virtual HRESULT STDMETHODCALLTYPE GetCurrentVideoAttributes( 
  2274.             /* [out] */ DVD_VideoAttributes *pATR) = 0;
  2275.         
  2276.         virtual HRESULT STDMETHODCALLTYPE GetAudioAttributes( 
  2277.             /* [in] */ ULONG ulStream,
  2278.             /* [out] */ DVD_AudioAttributes *pATR) = 0;
  2279.         
  2280.         virtual HRESULT STDMETHODCALLTYPE GetKaraokeAttributes( 
  2281.             /* [in] */ ULONG ulStream,
  2282.             /* [out] */ DVD_KaraokeAttributes *pAttributes) = 0;
  2283.         
  2284.         virtual HRESULT STDMETHODCALLTYPE GetSubpictureAttributes( 
  2285.             /* [in] */ ULONG ulStream,
  2286.             /* [out] */ DVD_SubpictureAttributes *pATR) = 0;
  2287.         
  2288.         virtual HRESULT STDMETHODCALLTYPE GetDVDVolumeInfo( 
  2289.             /* [out] */ ULONG *pulNumOfVolumes,
  2290.             /* [out] */ ULONG *pulVolume,
  2291.             /* [out] */ DVD_DISC_SIDE *pSide,
  2292.             /* [out] */ ULONG *pulNumOfTitles) = 0;
  2293.         
  2294.         virtual HRESULT STDMETHODCALLTYPE GetDVDTextNumberOfLanguages( 
  2295.             /* [out] */ ULONG *pulNumOfLangs) = 0;
  2296.         
  2297.         virtual HRESULT STDMETHODCALLTYPE GetDVDTextLanguageInfo( 
  2298.             /* [in] */ ULONG ulLangIndex,
  2299.             /* [out] */ ULONG *pulNumOfStrings,
  2300.             /* [out] */ LCID *pLangCode,
  2301.             /* [out] */ enum DVD_TextCharSet *pbCharacterSet) = 0;
  2302.         
  2303.         virtual HRESULT STDMETHODCALLTYPE GetDVDTextStringAsNative( 
  2304.             /* [in] */ ULONG ulLangIndex,
  2305.             /* [in] */ ULONG ulStringIndex,
  2306.             /* [out] */ BYTE *pbBuffer,
  2307.             /* [in] */ ULONG ulMaxBufferSize,
  2308.             /* [out] */ ULONG *pulActualSize,
  2309.             /* [out] */ enum DVD_TextStringType *pType) = 0;
  2310.         
  2311.         virtual HRESULT STDMETHODCALLTYPE GetDVDTextStringAsUnicode( 
  2312.             /* [in] */ ULONG ulLangIndex,
  2313.             /* [in] */ ULONG ulStringIndex,
  2314.             /* [out] */ WCHAR *pchwBuffer,
  2315.             /* [in] */ ULONG ulMaxBufferSize,
  2316.             /* [out] */ ULONG *pulActualSize,
  2317.             /* [out] */ enum DVD_TextStringType *pType) = 0;
  2318.         
  2319.         virtual HRESULT STDMETHODCALLTYPE GetPlayerParentalLevel( 
  2320.             /* [out] */ ULONG *pulParentalLevel,
  2321.             /* [out] */ BYTE pbCountryCode[ 2 ]) = 0;
  2322.         
  2323.         virtual HRESULT STDMETHODCALLTYPE GetNumberOfChapters( 
  2324.             /* [in] */ ULONG ulTitle,
  2325.             /* [out] */ ULONG *pulNumOfChapters) = 0;
  2326.         
  2327.         virtual HRESULT STDMETHODCALLTYPE GetTitleParentalLevels( 
  2328.             /* [in] */ ULONG ulTitle,
  2329.             /* [out] */ ULONG *pulParentalLevels) = 0;
  2330.         
  2331.         virtual HRESULT STDMETHODCALLTYPE GetDVDDirectory( 
  2332.             /* [size_is][out] */ LPWSTR pszwPath,
  2333.             /* [in] */ ULONG ulMaxSize,
  2334.             /* [out] */ ULONG *pulActualSize) = 0;
  2335.         
  2336.         virtual HRESULT STDMETHODCALLTYPE IsAudioStreamEnabled( 
  2337.             /* [in] */ ULONG ulStreamNum,
  2338.             /* [out] */ BOOL *pbEnabled) = 0;
  2339.         
  2340.         virtual HRESULT STDMETHODCALLTYPE GetDiscID( 
  2341.             /* [in] */ LPCWSTR pszwPath,
  2342.             /* [out] */ ULONGLONG *pullDiscID) = 0;
  2343.         
  2344.         virtual HRESULT STDMETHODCALLTYPE GetState( 
  2345.             /* [out] */ IDvdState **pStateData) = 0;
  2346.         
  2347.         virtual HRESULT STDMETHODCALLTYPE GetMenuLanguages( 
  2348.             /* [out] */ LCID *pLanguages,
  2349.             /* [in] */ ULONG ulMaxLanguages,
  2350.             /* [out] */ ULONG *pulActualLanguages) = 0;
  2351.         
  2352.         virtual HRESULT STDMETHODCALLTYPE GetButtonAtPosition( 
  2353.             /* [in] */ POINT point,
  2354.             /* [out] */ ULONG *pulButtonIndex) = 0;
  2355.         
  2356.         virtual HRESULT STDMETHODCALLTYPE GetCmdFromEvent( 
  2357.             /* [in] */ LONG_PTR lParam1,
  2358.             /* [out] */ IDvdCmd **pCmdObj) = 0;
  2359.         
  2360.         virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuLanguage( 
  2361.             /* [out] */ LCID *pLanguage) = 0;
  2362.         
  2363.         virtual HRESULT STDMETHODCALLTYPE GetDefaultAudioLanguage( 
  2364.             /* [out] */ LCID *pLanguage,
  2365.             /* [out] */ DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
  2366.         
  2367.         virtual HRESULT STDMETHODCALLTYPE GetDefaultSubpictureLanguage( 
  2368.             /* [out] */ LCID *pLanguage,
  2369.             /* [out] */ DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
  2370.         
  2371.         virtual HRESULT STDMETHODCALLTYPE GetDecoderCaps( 
  2372.             /* [out] */ DVD_DECODER_CAPS *pCaps) = 0;
  2373.         
  2374.         virtual HRESULT STDMETHODCALLTYPE GetButtonRect( 
  2375.             /* [in] */ ULONG ulButton,
  2376.             /* [out] */ RECT *pRect) = 0;
  2377.         
  2378.         virtual HRESULT STDMETHODCALLTYPE IsSubpictureStreamEnabled( 
  2379.             /* [in] */ ULONG ulStreamNum,
  2380.             /* [out] */ BOOL *pbEnabled) = 0;
  2381.         
  2382.     };
  2383.     
  2384. #else  /* C style interface */
  2385.     typedef struct IDvdInfo2Vtbl
  2386.     {
  2387.         BEGIN_INTERFACE
  2388.         
  2389.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2390.             IDvdInfo2 * This,
  2391.             /* [in] */ REFIID riid,
  2392.             /* [iid_is][out] */ void **ppvObject);
  2393.         
  2394.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2395.             IDvdInfo2 * This);
  2396.         
  2397.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2398.             IDvdInfo2 * This);
  2399.         
  2400.         HRESULT ( STDMETHODCALLTYPE *GetCurrentDomain )( 
  2401.             IDvdInfo2 * This,
  2402.             /* [out] */ DVD_DOMAIN *pDomain);
  2403.         
  2404.         HRESULT ( STDMETHODCALLTYPE *GetCurrentLocation )( 
  2405.             IDvdInfo2 * This,
  2406.             /* [out] */ DVD_PLAYBACK_LOCATION2 *pLocation);
  2407.         
  2408.         HRESULT ( STDMETHODCALLTYPE *GetTotalTitleTime )( 
  2409.             IDvdInfo2 * This,
  2410.             /* [out] */ DVD_HMSF_TIMECODE *pTotalTime,
  2411.             /* [out] */ ULONG *ulTimeCodeFlags);
  2412.         
  2413.         HRESULT ( STDMETHODCALLTYPE *GetCurrentButton )( 
  2414.             IDvdInfo2 * This,
  2415.             /* [out] */ ULONG *pulButtonsAvailable,
  2416.             /* [out] */ ULONG *pulCurrentButton);
  2417.         
  2418.         HRESULT ( STDMETHODCALLTYPE *GetCurrentAngle )( 
  2419.             IDvdInfo2 * This,
  2420.             /* [out] */ ULONG *pulAnglesAvailable,
  2421.             /* [out] */ ULONG *pulCurrentAngle);
  2422.         
  2423.         HRESULT ( STDMETHODCALLTYPE *GetCurrentAudio )( 
  2424.             IDvdInfo2 * This,
  2425.             /* [out] */ ULONG *pulStreamsAvailable,
  2426.             /* [out] */ ULONG *pulCurrentStream);
  2427.         
  2428.         HRESULT ( STDMETHODCALLTYPE *GetCurrentSubpicture )( 
  2429.             IDvdInfo2 * This,
  2430.             /* [out] */ ULONG *pulStreamsAvailable,
  2431.             /* [out] */ ULONG *pulCurrentStream,
  2432.             /* [out] */ BOOL *pbIsDisabled);
  2433.         
  2434.         HRESULT ( STDMETHODCALLTYPE *GetCurrentUOPS )( 
  2435.             IDvdInfo2 * This,
  2436.             /* [out] */ ULONG *pulUOPs);
  2437.         
  2438.         HRESULT ( STDMETHODCALLTYPE *GetAllSPRMs )( 
  2439.             IDvdInfo2 * This,
  2440.             /* [out] */ SPRMARRAY *pRegisterArray);
  2441.         
  2442.         HRESULT ( STDMETHODCALLTYPE *GetAllGPRMs )( 
  2443.             IDvdInfo2 * This,
  2444.             /* [out] */ GPRMARRAY *pRegisterArray);
  2445.         
  2446.         HRESULT ( STDMETHODCALLTYPE *GetAudioLanguage )( 
  2447.             IDvdInfo2 * This,
  2448.             /* [in] */ ULONG ulStream,
  2449.             /* [out] */ LCID *pLanguage);
  2450.         
  2451.         HRESULT ( STDMETHODCALLTYPE *GetSubpictureLanguage )( 
  2452.             IDvdInfo2 * This,
  2453.             /* [in] */ ULONG ulStream,
  2454.             /* [out] */ LCID *pLanguage);
  2455.         
  2456.         HRESULT ( STDMETHODCALLTYPE *GetTitleAttributes )( 
  2457.             IDvdInfo2 * This,
  2458.             /* [in] */ ULONG ulTitle,
  2459.             /* [out] */ DVD_MenuAttributes *pMenu,
  2460.             /* [out] */ DVD_TitleAttributes *pTitle);
  2461.         
  2462.         HRESULT ( STDMETHODCALLTYPE *GetVMGAttributes )( 
  2463.             IDvdInfo2 * This,
  2464.             /* [out] */ DVD_MenuAttributes *pATR);
  2465.         
  2466.         HRESULT ( STDMETHODCALLTYPE *GetCurrentVideoAttributes )( 
  2467.             IDvdInfo2 * This,
  2468.             /* [out] */ DVD_VideoAttributes *pATR);
  2469.         
  2470.         HRESULT ( STDMETHODCALLTYPE *GetAudioAttributes )( 
  2471.             IDvdInfo2 * This,
  2472.             /* [in] */ ULONG ulStream,
  2473.             /* [out] */ DVD_AudioAttributes *pATR);
  2474.         
  2475.         HRESULT ( STDMETHODCALLTYPE *GetKaraokeAttributes )( 
  2476.             IDvdInfo2 * This,
  2477.             /* [in] */ ULONG ulStream,
  2478.             /* [out] */ DVD_KaraokeAttributes *pAttributes);
  2479.         
  2480.         HRESULT ( STDMETHODCALLTYPE *GetSubpictureAttributes )( 
  2481.             IDvdInfo2 * This,
  2482.             /* [in] */ ULONG ulStream,
  2483.             /* [out] */ DVD_SubpictureAttributes *pATR);
  2484.         
  2485.         HRESULT ( STDMETHODCALLTYPE *GetDVDVolumeInfo )( 
  2486.             IDvdInfo2 * This,
  2487.             /* [out] */ ULONG *pulNumOfVolumes,
  2488.             /* [out] */ ULONG *pulVolume,
  2489.             /* [out] */ DVD_DISC_SIDE *pSide,
  2490.             /* [out] */ ULONG *pulNumOfTitles);
  2491.         
  2492.         HRESULT ( STDMETHODCALLTYPE *GetDVDTextNumberOfLanguages )( 
  2493.             IDvdInfo2 * This,
  2494.             /* [out] */ ULONG *pulNumOfLangs);
  2495.         
  2496.         HRESULT ( STDMETHODCALLTYPE *GetDVDTextLanguageInfo )( 
  2497.             IDvdInfo2 * This,
  2498.             /* [in] */ ULONG ulLangIndex,
  2499.             /* [out] */ ULONG *pulNumOfStrings,
  2500.             /* [out] */ LCID *pLangCode,
  2501.             /* [out] */ enum DVD_TextCharSet *pbCharacterSet);
  2502.         
  2503.         HRESULT ( STDMETHODCALLTYPE *GetDVDTextStringAsNative )( 
  2504.             IDvdInfo2 * This,
  2505.             /* [in] */ ULONG ulLangIndex,
  2506.             /* [in] */ ULONG ulStringIndex,
  2507.             /* [out] */ BYTE *pbBuffer,
  2508.             /* [in] */ ULONG ulMaxBufferSize,
  2509.             /* [out] */ ULONG *pulActualSize,
  2510.             /* [out] */ enum DVD_TextStringType *pType);
  2511.         
  2512.         HRESULT ( STDMETHODCALLTYPE *GetDVDTextStringAsUnicode )( 
  2513.             IDvdInfo2 * This,
  2514.             /* [in] */ ULONG ulLangIndex,
  2515.             /* [in] */ ULONG ulStringIndex,
  2516.             /* [out] */ WCHAR *pchwBuffer,
  2517.             /* [in] */ ULONG ulMaxBufferSize,
  2518.             /* [out] */ ULONG *pulActualSize,
  2519.             /* [out] */ enum DVD_TextStringType *pType);
  2520.         
  2521.         HRESULT ( STDMETHODCALLTYPE *GetPlayerParentalLevel )( 
  2522.             IDvdInfo2 * This,
  2523.             /* [out] */ ULONG *pulParentalLevel,
  2524.             /* [out] */ BYTE pbCountryCode[ 2 ]);
  2525.         
  2526.         HRESULT ( STDMETHODCALLTYPE *GetNumberOfChapters )( 
  2527.             IDvdInfo2 * This,
  2528.             /* [in] */ ULONG ulTitle,
  2529.             /* [out] */ ULONG *pulNumOfChapters);
  2530.         
  2531.         HRESULT ( STDMETHODCALLTYPE *GetTitleParentalLevels )( 
  2532.             IDvdInfo2 * This,
  2533.             /* [in] */ ULONG ulTitle,
  2534.             /* [out] */ ULONG *pulParentalLevels);
  2535.         
  2536.         HRESULT ( STDMETHODCALLTYPE *GetDVDDirectory )( 
  2537.             IDvdInfo2 * This,
  2538.             /* [size_is][out] */ LPWSTR pszwPath,
  2539.             /* [in] */ ULONG ulMaxSize,
  2540.             /* [out] */ ULONG *pulActualSize);
  2541.         
  2542.         HRESULT ( STDMETHODCALLTYPE *IsAudioStreamEnabled )( 
  2543.             IDvdInfo2 * This,
  2544.             /* [in] */ ULONG ulStreamNum,
  2545.             /* [out] */ BOOL *pbEnabled);
  2546.         
  2547.         HRESULT ( STDMETHODCALLTYPE *GetDiscID )( 
  2548.             IDvdInfo2 * This,
  2549.             /* [in] */ LPCWSTR pszwPath,
  2550.             /* [out] */ ULONGLONG *pullDiscID);
  2551.         
  2552.         HRESULT ( STDMETHODCALLTYPE *GetState )( 
  2553.             IDvdInfo2 * This,
  2554.             /* [out] */ IDvdState **pStateData);
  2555.         
  2556.         HRESULT ( STDMETHODCALLTYPE *GetMenuLanguages )( 
  2557.             IDvdInfo2 * This,
  2558.             /* [out] */ LCID *pLanguages,
  2559.             /* [in] */ ULONG ulMaxLanguages,
  2560.             /* [out] */ ULONG *pulActualLanguages);
  2561.         
  2562.         HRESULT ( STDMETHODCALLTYPE *GetButtonAtPosition )( 
  2563.             IDvdInfo2 * This,
  2564.             /* [in] */ POINT point,
  2565.             /* [out] */ ULONG *pulButtonIndex);
  2566.         
  2567.         HRESULT ( STDMETHODCALLTYPE *GetCmdFromEvent )( 
  2568.             IDvdInfo2 * This,
  2569.             /* [in] */ LONG_PTR lParam1,
  2570.             /* [out] */ IDvdCmd **pCmdObj);
  2571.         
  2572.         HRESULT ( STDMETHODCALLTYPE *GetDefaultMenuLanguage )( 
  2573.             IDvdInfo2 * This,
  2574.             /* [out] */ LCID *pLanguage);
  2575.         
  2576.         HRESULT ( STDMETHODCALLTYPE *GetDefaultAudioLanguage )( 
  2577.             IDvdInfo2 * This,
  2578.             /* [out] */ LCID *pLanguage,
  2579.             /* [out] */ DVD_AUDIO_LANG_EXT *pAudioExtension);
  2580.         
  2581.         HRESULT ( STDMETHODCALLTYPE *GetDefaultSubpictureLanguage )( 
  2582.             IDvdInfo2 * This,
  2583.             /* [out] */ LCID *pLanguage,
  2584.             /* [out] */ DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
  2585.         
  2586.         HRESULT ( STDMETHODCALLTYPE *GetDecoderCaps )( 
  2587.             IDvdInfo2 * This,
  2588.             /* [out] */ DVD_DECODER_CAPS *pCaps);
  2589.         
  2590.         HRESULT ( STDMETHODCALLTYPE *GetButtonRect )( 
  2591.             IDvdInfo2 * This,
  2592.             /* [in] */ ULONG ulButton,
  2593.             /* [out] */ RECT *pRect);
  2594.         
  2595.         HRESULT ( STDMETHODCALLTYPE *IsSubpictureStreamEnabled )( 
  2596.             IDvdInfo2 * This,
  2597.             /* [in] */ ULONG ulStreamNum,
  2598.             /* [out] */ BOOL *pbEnabled);
  2599.         
  2600.         END_INTERFACE
  2601.     } IDvdInfo2Vtbl;
  2602.     interface IDvdInfo2
  2603.     {
  2604.         CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
  2605.     };
  2606.     
  2607. #ifdef COBJMACROS
  2608. #define IDvdInfo2_QueryInterface(This,riid,ppvObject)
  2609.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2610. #define IDvdInfo2_AddRef(This)
  2611.     (This)->lpVtbl -> AddRef(This)
  2612. #define IDvdInfo2_Release(This)
  2613.     (This)->lpVtbl -> Release(This)
  2614. #define IDvdInfo2_GetCurrentDomain(This,pDomain)
  2615.     (This)->lpVtbl -> GetCurrentDomain(This,pDomain)
  2616. #define IDvdInfo2_GetCurrentLocation(This,pLocation)
  2617.     (This)->lpVtbl -> GetCurrentLocation(This,pLocation)
  2618. #define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
  2619.     (This)->lpVtbl -> GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
  2620. #define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
  2621.     (This)->lpVtbl -> GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
  2622. #define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
  2623.     (This)->lpVtbl -> GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
  2624. #define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
  2625.     (This)->lpVtbl -> GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
  2626. #define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
  2627.     (This)->lpVtbl -> GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
  2628. #define IDvdInfo2_GetCurrentUOPS(This,pulUOPs)
  2629.     (This)->lpVtbl -> GetCurrentUOPS(This,pulUOPs)
  2630. #define IDvdInfo2_GetAllSPRMs(This,pRegisterArray)
  2631.     (This)->lpVtbl -> GetAllSPRMs(This,pRegisterArray)
  2632. #define IDvdInfo2_GetAllGPRMs(This,pRegisterArray)
  2633.     (This)->lpVtbl -> GetAllGPRMs(This,pRegisterArray)
  2634. #define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage)
  2635.     (This)->lpVtbl -> GetAudioLanguage(This,ulStream,pLanguage)
  2636. #define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage)
  2637.     (This)->lpVtbl -> GetSubpictureLanguage(This,ulStream,pLanguage)
  2638. #define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle)
  2639.     (This)->lpVtbl -> GetTitleAttributes(This,ulTitle,pMenu,pTitle)
  2640. #define IDvdInfo2_GetVMGAttributes(This,pATR)
  2641.     (This)->lpVtbl -> GetVMGAttributes(This,pATR)
  2642. #define IDvdInfo2_GetCurrentVideoAttributes(This,pATR)
  2643.     (This)->lpVtbl -> GetCurrentVideoAttributes(This,pATR)
  2644. #define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR)
  2645.     (This)->lpVtbl -> GetAudioAttributes(This,ulStream,pATR)
  2646. #define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes)
  2647.     (This)->lpVtbl -> GetKaraokeAttributes(This,ulStream,pAttributes)
  2648. #define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR)
  2649.     (This)->lpVtbl -> GetSubpictureAttributes(This,ulStream,pATR)
  2650. #define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
  2651.     (This)->lpVtbl -> GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
  2652. #define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
  2653.     (This)->lpVtbl -> GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
  2654. #define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
  2655.     (This)->lpVtbl -> GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
  2656. #define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
  2657.     (This)->lpVtbl -> GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
  2658. #define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
  2659.     (This)->lpVtbl -> GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
  2660. #define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
  2661.     (This)->lpVtbl -> GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
  2662. #define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
  2663.     (This)->lpVtbl -> GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
  2664. #define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
  2665.     (This)->lpVtbl -> GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
  2666. #define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
  2667.     (This)->lpVtbl -> GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
  2668. #define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
  2669.     (This)->lpVtbl -> IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
  2670. #define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID)
  2671.     (This)->lpVtbl -> GetDiscID(This,pszwPath,pullDiscID)
  2672. #define IDvdInfo2_GetState(This,pStateData)
  2673.     (This)->lpVtbl -> GetState(This,pStateData)
  2674. #define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
  2675.     (This)->lpVtbl -> GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
  2676. #define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex)
  2677.     (This)->lpVtbl -> GetButtonAtPosition(This,point,pulButtonIndex)
  2678. #define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj)
  2679.     (This)->lpVtbl -> GetCmdFromEvent(This,lParam1,pCmdObj)
  2680. #define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage)
  2681.     (This)->lpVtbl -> GetDefaultMenuLanguage(This,pLanguage)
  2682. #define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
  2683.     (This)->lpVtbl -> GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
  2684. #define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
  2685.     (This)->lpVtbl -> GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
  2686. #define IDvdInfo2_GetDecoderCaps(This,pCaps)
  2687.     (This)->lpVtbl -> GetDecoderCaps(This,pCaps)
  2688. #define IDvdInfo2_GetButtonRect(This,ulButton,pRect)
  2689.     (This)->lpVtbl -> GetButtonRect(This,ulButton,pRect)
  2690. #define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
  2691.     (This)->lpVtbl -> IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
  2692. #endif /* COBJMACROS */
  2693. #endif  /* C style interface */
  2694. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentDomain_Proxy( 
  2695.     IDvdInfo2 * This,
  2696.     /* [out] */ DVD_DOMAIN *pDomain);
  2697. void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(
  2698.     IRpcStubBuffer *This,
  2699.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2700.     PRPC_MESSAGE _pRpcMessage,
  2701.     DWORD *_pdwStubPhase);
  2702. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentLocation_Proxy( 
  2703.     IDvdInfo2 * This,
  2704.     /* [out] */ DVD_PLAYBACK_LOCATION2 *pLocation);
  2705. void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(
  2706.     IRpcStubBuffer *This,
  2707.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2708.     PRPC_MESSAGE _pRpcMessage,
  2709.     DWORD *_pdwStubPhase);
  2710. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetTotalTitleTime_Proxy( 
  2711.     IDvdInfo2 * This,
  2712.     /* [out] */ DVD_HMSF_TIMECODE *pTotalTime,
  2713.     /* [out] */ ULONG *ulTimeCodeFlags);
  2714. void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(
  2715.     IRpcStubBuffer *This,
  2716.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2717.     PRPC_MESSAGE _pRpcMessage,
  2718.     DWORD *_pdwStubPhase);
  2719. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentButton_Proxy( 
  2720.     IDvdInfo2 * This,
  2721.     /* [out] */ ULONG *pulButtonsAvailable,
  2722.     /* [out] */ ULONG *pulCurrentButton);
  2723. void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(
  2724.     IRpcStubBuffer *This,
  2725.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2726.     PRPC_MESSAGE _pRpcMessage,
  2727.     DWORD *_pdwStubPhase);
  2728. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentAngle_Proxy( 
  2729.     IDvdInfo2 * This,
  2730.     /* [out] */ ULONG *pulAnglesAvailable,
  2731.     /* [out] */ ULONG *pulCurrentAngle);
  2732. void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(
  2733.     IRpcStubBuffer *This,
  2734.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2735.     PRPC_MESSAGE _pRpcMessage,
  2736.     DWORD *_pdwStubPhase);
  2737. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentAudio_Proxy( 
  2738.     IDvdInfo2 * This,
  2739.     /* [out] */ ULONG *pulStreamsAvailable,
  2740.     /* [out] */ ULONG *pulCurrentStream);
  2741. void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(
  2742.     IRpcStubBuffer *This,
  2743.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2744.     PRPC_MESSAGE _pRpcMessage,
  2745.     DWORD *_pdwStubPhase);
  2746. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentSubpicture_Proxy( 
  2747.     IDvdInfo2 * This,
  2748.     /* [out] */ ULONG *pulStreamsAvailable,
  2749.     /* [out] */ ULONG *pulCurrentStream,
  2750.     /* [out] */ BOOL *pbIsDisabled);
  2751. void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(
  2752.     IRpcStubBuffer *This,
  2753.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2754.     PRPC_MESSAGE _pRpcMessage,
  2755.     DWORD *_pdwStubPhase);
  2756. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentUOPS_Proxy( 
  2757.     IDvdInfo2 * This,
  2758.     /* [out] */ ULONG *pulUOPs);
  2759. void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(
  2760.     IRpcStubBuffer *This,
  2761.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2762.     PRPC_MESSAGE _pRpcMessage,
  2763.     DWORD *_pdwStubPhase);
  2764. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetAllSPRMs_Proxy( 
  2765.     IDvdInfo2 * This,
  2766.     /* [out] */ SPRMARRAY *pRegisterArray);
  2767. void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(
  2768.     IRpcStubBuffer *This,
  2769.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2770.     PRPC_MESSAGE _pRpcMessage,
  2771.     DWORD *_pdwStubPhase);
  2772. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetAllGPRMs_Proxy( 
  2773.     IDvdInfo2 * This,
  2774.     /* [out] */ GPRMARRAY *pRegisterArray);
  2775. void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(
  2776.     IRpcStubBuffer *This,
  2777.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2778.     PRPC_MESSAGE _pRpcMessage,
  2779.     DWORD *_pdwStubPhase);
  2780. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetAudioLanguage_Proxy( 
  2781.     IDvdInfo2 * This,
  2782.     /* [in] */ ULONG ulStream,
  2783.     /* [out] */ LCID *pLanguage);
  2784. void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(
  2785.     IRpcStubBuffer *This,
  2786.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2787.     PRPC_MESSAGE _pRpcMessage,
  2788.     DWORD *_pdwStubPhase);
  2789. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetSubpictureLanguage_Proxy( 
  2790.     IDvdInfo2 * This,
  2791.     /* [in] */ ULONG ulStream,
  2792.     /* [out] */ LCID *pLanguage);
  2793. void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(
  2794.     IRpcStubBuffer *This,
  2795.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2796.     PRPC_MESSAGE _pRpcMessage,
  2797.     DWORD *_pdwStubPhase);
  2798. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetTitleAttributes_Proxy( 
  2799.     IDvdInfo2 * This,
  2800.     /* [in] */ ULONG ulTitle,
  2801.     /* [out] */ DVD_MenuAttributes *pMenu,
  2802.     /* [out] */ DVD_TitleAttributes *pTitle);
  2803. void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(
  2804.     IRpcStubBuffer *This,
  2805.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2806.     PRPC_MESSAGE _pRpcMessage,
  2807.     DWORD *_pdwStubPhase);
  2808. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetVMGAttributes_Proxy( 
  2809.     IDvdInfo2 * This,
  2810.     /* [out] */ DVD_MenuAttributes *pATR);
  2811. void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(
  2812.     IRpcStubBuffer *This,
  2813.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2814.     PRPC_MESSAGE _pRpcMessage,
  2815.     DWORD *_pdwStubPhase);
  2816. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCurrentVideoAttributes_Proxy( 
  2817.     IDvdInfo2 * This,
  2818.     /* [out] */ DVD_VideoAttributes *pATR);
  2819. void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(
  2820.     IRpcStubBuffer *This,
  2821.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2822.     PRPC_MESSAGE _pRpcMessage,
  2823.     DWORD *_pdwStubPhase);
  2824. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetAudioAttributes_Proxy( 
  2825.     IDvdInfo2 * This,
  2826.     /* [in] */ ULONG ulStream,
  2827.     /* [out] */ DVD_AudioAttributes *pATR);
  2828. void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(
  2829.     IRpcStubBuffer *This,
  2830.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2831.     PRPC_MESSAGE _pRpcMessage,
  2832.     DWORD *_pdwStubPhase);
  2833. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetKaraokeAttributes_Proxy( 
  2834.     IDvdInfo2 * This,
  2835.     /* [in] */ ULONG ulStream,
  2836.     /* [out] */ DVD_KaraokeAttributes *pAttributes);
  2837. void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(
  2838.     IRpcStubBuffer *This,
  2839.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2840.     PRPC_MESSAGE _pRpcMessage,
  2841.     DWORD *_pdwStubPhase);
  2842. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetSubpictureAttributes_Proxy( 
  2843.     IDvdInfo2 * This,
  2844.     /* [in] */ ULONG ulStream,
  2845.     /* [out] */ DVD_SubpictureAttributes *pATR);
  2846. void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(
  2847.     IRpcStubBuffer *This,
  2848.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2849.     PRPC_MESSAGE _pRpcMessage,
  2850.     DWORD *_pdwStubPhase);
  2851. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDVDVolumeInfo_Proxy( 
  2852.     IDvdInfo2 * This,
  2853.     /* [out] */ ULONG *pulNumOfVolumes,
  2854.     /* [out] */ ULONG *pulVolume,
  2855.     /* [out] */ DVD_DISC_SIDE *pSide,
  2856.     /* [out] */ ULONG *pulNumOfTitles);
  2857. void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(
  2858.     IRpcStubBuffer *This,
  2859.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2860.     PRPC_MESSAGE _pRpcMessage,
  2861.     DWORD *_pdwStubPhase);
  2862. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy( 
  2863.     IDvdInfo2 * This,
  2864.     /* [out] */ ULONG *pulNumOfLangs);
  2865. void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(
  2866.     IRpcStubBuffer *This,
  2867.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2868.     PRPC_MESSAGE _pRpcMessage,
  2869.     DWORD *_pdwStubPhase);
  2870. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDVDTextLanguageInfo_Proxy( 
  2871.     IDvdInfo2 * This,
  2872.     /* [in] */ ULONG ulLangIndex,
  2873.     /* [out] */ ULONG *pulNumOfStrings,
  2874.     /* [out] */ LCID *pLangCode,
  2875.     /* [out] */ enum DVD_TextCharSet *pbCharacterSet);
  2876. void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(
  2877.     IRpcStubBuffer *This,
  2878.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2879.     PRPC_MESSAGE _pRpcMessage,
  2880.     DWORD *_pdwStubPhase);
  2881. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDVDTextStringAsNative_Proxy( 
  2882.     IDvdInfo2 * This,
  2883.     /* [in] */ ULONG ulLangIndex,
  2884.     /* [in] */ ULONG ulStringIndex,
  2885.     /* [out] */ BYTE *pbBuffer,
  2886.     /* [in] */ ULONG ulMaxBufferSize,
  2887.     /* [out] */ ULONG *pulActualSize,
  2888.     /* [out] */ enum DVD_TextStringType *pType);
  2889. void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(
  2890.     IRpcStubBuffer *This,
  2891.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2892.     PRPC_MESSAGE _pRpcMessage,
  2893.     DWORD *_pdwStubPhase);
  2894. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDVDTextStringAsUnicode_Proxy( 
  2895.     IDvdInfo2 * This,
  2896.     /* [in] */ ULONG ulLangIndex,
  2897.     /* [in] */ ULONG ulStringIndex,
  2898.     /* [out] */ WCHAR *pchwBuffer,
  2899.     /* [in] */ ULONG ulMaxBufferSize,
  2900.     /* [out] */ ULONG *pulActualSize,
  2901.     /* [out] */ enum DVD_TextStringType *pType);
  2902. void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(
  2903.     IRpcStubBuffer *This,
  2904.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2905.     PRPC_MESSAGE _pRpcMessage,
  2906.     DWORD *_pdwStubPhase);
  2907. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetPlayerParentalLevel_Proxy( 
  2908.     IDvdInfo2 * This,
  2909.     /* [out] */ ULONG *pulParentalLevel,
  2910.     /* [out] */ BYTE pbCountryCode[ 2 ]);
  2911. void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(
  2912.     IRpcStubBuffer *This,
  2913.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2914.     PRPC_MESSAGE _pRpcMessage,
  2915.     DWORD *_pdwStubPhase);
  2916. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetNumberOfChapters_Proxy( 
  2917.     IDvdInfo2 * This,
  2918.     /* [in] */ ULONG ulTitle,
  2919.     /* [out] */ ULONG *pulNumOfChapters);
  2920. void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(
  2921.     IRpcStubBuffer *This,
  2922.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2923.     PRPC_MESSAGE _pRpcMessage,
  2924.     DWORD *_pdwStubPhase);
  2925. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetTitleParentalLevels_Proxy( 
  2926.     IDvdInfo2 * This,
  2927.     /* [in] */ ULONG ulTitle,
  2928.     /* [out] */ ULONG *pulParentalLevels);
  2929. void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(
  2930.     IRpcStubBuffer *This,
  2931.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2932.     PRPC_MESSAGE _pRpcMessage,
  2933.     DWORD *_pdwStubPhase);
  2934. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDVDDirectory_Proxy( 
  2935.     IDvdInfo2 * This,
  2936.     /* [size_is][out] */ LPWSTR pszwPath,
  2937.     /* [in] */ ULONG ulMaxSize,
  2938.     /* [out] */ ULONG *pulActualSize);
  2939. void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(
  2940.     IRpcStubBuffer *This,
  2941.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2942.     PRPC_MESSAGE _pRpcMessage,
  2943.     DWORD *_pdwStubPhase);
  2944. HRESULT STDMETHODCALLTYPE IDvdInfo2_IsAudioStreamEnabled_Proxy( 
  2945.     IDvdInfo2 * This,
  2946.     /* [in] */ ULONG ulStreamNum,
  2947.     /* [out] */ BOOL *pbEnabled);
  2948. void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(
  2949.     IRpcStubBuffer *This,
  2950.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2951.     PRPC_MESSAGE _pRpcMessage,
  2952.     DWORD *_pdwStubPhase);
  2953. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDiscID_Proxy( 
  2954.     IDvdInfo2 * This,
  2955.     /* [in] */ LPCWSTR pszwPath,
  2956.     /* [out] */ ULONGLONG *pullDiscID);
  2957. void __RPC_STUB IDvdInfo2_GetDiscID_Stub(
  2958.     IRpcStubBuffer *This,
  2959.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2960.     PRPC_MESSAGE _pRpcMessage,
  2961.     DWORD *_pdwStubPhase);
  2962. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetState_Proxy( 
  2963.     IDvdInfo2 * This,
  2964.     /* [out] */ IDvdState **pStateData);
  2965. void __RPC_STUB IDvdInfo2_GetState_Stub(
  2966.     IRpcStubBuffer *This,
  2967.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2968.     PRPC_MESSAGE _pRpcMessage,
  2969.     DWORD *_pdwStubPhase);
  2970. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetMenuLanguages_Proxy( 
  2971.     IDvdInfo2 * This,
  2972.     /* [out] */ LCID *pLanguages,
  2973.     /* [in] */ ULONG ulMaxLanguages,
  2974.     /* [out] */ ULONG *pulActualLanguages);
  2975. void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(
  2976.     IRpcStubBuffer *This,
  2977.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2978.     PRPC_MESSAGE _pRpcMessage,
  2979.     DWORD *_pdwStubPhase);
  2980. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetButtonAtPosition_Proxy( 
  2981.     IDvdInfo2 * This,
  2982.     /* [in] */ POINT point,
  2983.     /* [out] */ ULONG *pulButtonIndex);
  2984. void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(
  2985.     IRpcStubBuffer *This,
  2986.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2987.     PRPC_MESSAGE _pRpcMessage,
  2988.     DWORD *_pdwStubPhase);
  2989. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetCmdFromEvent_Proxy( 
  2990.     IDvdInfo2 * This,
  2991.     /* [in] */ LONG_PTR lParam1,
  2992.     /* [out] */ IDvdCmd **pCmdObj);
  2993. void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(
  2994.     IRpcStubBuffer *This,
  2995.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2996.     PRPC_MESSAGE _pRpcMessage,
  2997.     DWORD *_pdwStubPhase);
  2998. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDefaultMenuLanguage_Proxy( 
  2999.     IDvdInfo2 * This,
  3000.     /* [out] */ LCID *pLanguage);
  3001. void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(
  3002.     IRpcStubBuffer *This,
  3003.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3004.     PRPC_MESSAGE _pRpcMessage,
  3005.     DWORD *_pdwStubPhase);
  3006. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDefaultAudioLanguage_Proxy( 
  3007.     IDvdInfo2 * This,
  3008.     /* [out] */ LCID *pLanguage,
  3009.     /* [out] */ DVD_AUDIO_LANG_EXT *pAudioExtension);
  3010. void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(
  3011.     IRpcStubBuffer *This,
  3012.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3013.     PRPC_MESSAGE _pRpcMessage,
  3014.     DWORD *_pdwStubPhase);
  3015. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDefaultSubpictureLanguage_Proxy( 
  3016.     IDvdInfo2 * This,
  3017.     /* [out] */ LCID *pLanguage,
  3018.     /* [out] */ DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
  3019. void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(
  3020.     IRpcStubBuffer *This,
  3021.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3022.     PRPC_MESSAGE _pRpcMessage,
  3023.     DWORD *_pdwStubPhase);
  3024. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetDecoderCaps_Proxy( 
  3025.     IDvdInfo2 * This,
  3026.     /* [out] */ DVD_DECODER_CAPS *pCaps);
  3027. void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(
  3028.     IRpcStubBuffer *This,
  3029.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3030.     PRPC_MESSAGE _pRpcMessage,
  3031.     DWORD *_pdwStubPhase);
  3032. HRESULT STDMETHODCALLTYPE IDvdInfo2_GetButtonRect_Proxy( 
  3033.     IDvdInfo2 * This,
  3034.     /* [in] */ ULONG ulButton,
  3035.     /* [out] */ RECT *pRect);
  3036. void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(
  3037.     IRpcStubBuffer *This,
  3038.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3039.     PRPC_MESSAGE _pRpcMessage,
  3040.     DWORD *_pdwStubPhase);
  3041. HRESULT STDMETHODCALLTYPE IDvdInfo2_IsSubpictureStreamEnabled_Proxy( 
  3042.     IDvdInfo2 * This,
  3043.     /* [in] */ ULONG ulStreamNum,
  3044.     /* [out] */ BOOL *pbEnabled);
  3045. void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(
  3046.     IRpcStubBuffer *This,
  3047.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3048.     PRPC_MESSAGE _pRpcMessage,
  3049.     DWORD *_pdwStubPhase);
  3050. #endif  /* __IDvdInfo2_INTERFACE_DEFINED__ */
  3051. /* interface __MIDL_itf_strmif_0372 */
  3052. /* [local] */ 
  3053. typedef 
  3054. enum _AM_DVD_GRAPH_FLAGS
  3055.     { AM_DVD_HWDEC_PREFER = 0x1,
  3056. AM_DVD_HWDEC_ONLY = 0x2,
  3057. AM_DVD_SWDEC_PREFER = 0x4,
  3058. AM_DVD_SWDEC_ONLY = 0x8,
  3059. AM_DVD_NOVPE = 0x100
  3060.     }  AM_DVD_GRAPH_FLAGS;
  3061. typedef 
  3062. enum _AM_DVD_STREAM_FLAGS
  3063.     { AM_DVD_STREAM_VIDEO = 0x1,
  3064. AM_DVD_STREAM_AUDIO = 0x2,
  3065. AM_DVD_STREAM_SUBPIC = 0x4
  3066.     }  AM_DVD_STREAM_FLAGS;
  3067. typedef /* [public][public] */ struct __MIDL___MIDL_itf_strmif_0372_0001
  3068.     {
  3069.     HRESULT hrVPEStatus;
  3070.     BOOL bDvdVolInvalid;
  3071.     BOOL bDvdVolUnknown;
  3072.     BOOL bNoLine21In;
  3073.     BOOL bNoLine21Out;
  3074.     int iNumStreams;
  3075.     int iNumStreamsFailed;
  3076.     DWORD dwFailedStreamsFlag;
  3077.     }  AM_DVD_RENDERSTATUS;
  3078. extern RPC_IF_HANDLE __MIDL_itf_strmif_0372_v0_0_c_ifspec;
  3079. extern RPC_IF_HANDLE __MIDL_itf_strmif_0372_v0_0_s_ifspec;
  3080. #ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
  3081. #define __IDvdGraphBuilder_INTERFACE_DEFINED__
  3082. /* interface IDvdGraphBuilder */
  3083. /* [unique][uuid][local][object] */ 
  3084. EXTERN_C const IID IID_IDvdGraphBuilder;
  3085. #if defined(__cplusplus) && !defined(CINTERFACE)
  3086.     
  3087.     MIDL_INTERFACE("FCC152B6-F372-11d0-8E00-00C04FD7C08B")
  3088.     IDvdGraphBuilder : public IUnknown
  3089.     {
  3090.     public:
  3091.         virtual HRESULT STDMETHODCALLTYPE GetFiltergraph( 
  3092.             /* [out] */ IGraphBuilder **ppGB) = 0;
  3093.         
  3094.         virtual HRESULT STDMETHODCALLTYPE GetDvdInterface( 
  3095.             /* [in] */ REFIID riid,
  3096.             /* [out] */ void **ppvIF) = 0;
  3097.         
  3098.         virtual HRESULT STDMETHODCALLTYPE RenderDvdVideoVolume( 
  3099.             /* [in] */ LPCWSTR lpcwszPathName,
  3100.             /* [in] */ DWORD dwFlags,
  3101.             /* [out] */ AM_DVD_RENDERSTATUS *pStatus) = 0;
  3102.         
  3103.     };
  3104.     
  3105. #else  /* C style interface */
  3106.     typedef struct IDvdGraphBuilderVtbl
  3107.     {
  3108.         BEGIN_INTERFACE
  3109.         
  3110.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3111.             IDvdGraphBuilder * This,
  3112.             /* [in] */ REFIID riid,
  3113.             /* [iid_is][out] */ void **ppvObject);
  3114.         
  3115.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3116.             IDvdGraphBuilder * This);
  3117.         
  3118.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3119.             IDvdGraphBuilder * This);
  3120.         
  3121.         HRESULT ( STDMETHODCALLTYPE *GetFiltergraph )( 
  3122.             IDvdGraphBuilder * This,
  3123.             /* [out] */ IGraphBuilder **ppGB);
  3124.         
  3125.         HRESULT ( STDMETHODCALLTYPE *GetDvdInterface )( 
  3126.             IDvdGraphBuilder * This,
  3127.             /* [in] */ REFIID riid,
  3128.             /* [out] */ void **ppvIF);
  3129.         
  3130.         HRESULT ( STDMETHODCALLTYPE *RenderDvdVideoVolume )( 
  3131.             IDvdGraphBuilder * This,
  3132.             /* [in] */ LPCWSTR lpcwszPathName,
  3133.             /* [in] */ DWORD dwFlags,
  3134.             /* [out] */ AM_DVD_RENDERSTATUS *pStatus);
  3135.         
  3136.         END_INTERFACE
  3137.     } IDvdGraphBuilderVtbl;
  3138.     interface IDvdGraphBuilder
  3139.     {
  3140.         CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
  3141.     };
  3142.     
  3143. #ifdef COBJMACROS
  3144. #define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject)
  3145.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3146. #define IDvdGraphBuilder_AddRef(This)
  3147.     (This)->lpVtbl -> AddRef(This)
  3148. #define IDvdGraphBuilder_Release(This)
  3149.     (This)->lpVtbl -> Release(This)
  3150. #define IDvdGraphBuilder_GetFiltergraph(This,ppGB)
  3151.     (This)->lpVtbl -> GetFiltergraph(This,ppGB)
  3152. #define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF)
  3153.     (This)->lpVtbl -> GetDvdInterface(This,riid,ppvIF)
  3154. #define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
  3155.     (This)->lpVtbl -> RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
  3156. #endif /* COBJMACROS */
  3157. #endif  /* C style interface */
  3158. HRESULT STDMETHODCALLTYPE IDvdGraphBuilder_GetFiltergraph_Proxy( 
  3159.     IDvdGraphBuilder * This,
  3160.     /* [out] */ IGraphBuilder **ppGB);
  3161. void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(
  3162.     IRpcStubBuffer *This,
  3163.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3164.     PRPC_MESSAGE _pRpcMessage,
  3165.     DWORD *_pdwStubPhase);
  3166. HRESULT STDMETHODCALLTYPE IDvdGraphBuilder_GetDvdInterface_Proxy( 
  3167.     IDvdGraphBuilder * This,
  3168.     /* [in] */ REFIID riid,
  3169.     /* [out] */ void **ppvIF);
  3170. void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(
  3171.     IRpcStubBuffer *This,
  3172.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3173.     PRPC_MESSAGE _pRpcMessage,
  3174.     DWORD *_pdwStubPhase);
  3175. HRESULT STDMETHODCALLTYPE IDvdGraphBuilder_RenderDvdVideoVolume_Proxy( 
  3176.     IDvdGraphBuilder * This,
  3177.     /* [in] */ LPCWSTR lpcwszPathName,
  3178.     /* [in] */ DWORD dwFlags,
  3179.     /* [out] */ AM_DVD_RENDERSTATUS *pStatus);
  3180. void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(
  3181.     IRpcStubBuffer *This,
  3182.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3183.     PRPC_MESSAGE _pRpcMessage,
  3184.     DWORD *_pdwStubPhase);
  3185. #endif  /* __IDvdGraphBuilder_INTERFACE_DEFINED__ */
  3186. #ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
  3187. #define __IDDrawExclModeVideo_INTERFACE_DEFINED__
  3188. /* interface IDDrawExclModeVideo */
  3189. /* [unique][uuid][local][object] */ 
  3190. EXTERN_C const IID IID_IDDrawExclModeVideo;
  3191. #if defined(__cplusplus) && !defined(CINTERFACE)
  3192.     
  3193.     MIDL_INTERFACE("153ACC21-D83B-11d1-82BF-00A0C9696C8F")
  3194.     IDDrawExclModeVideo : public IUnknown
  3195.     {
  3196.     public:
  3197.         virtual HRESULT STDMETHODCALLTYPE SetDDrawObject( 
  3198.             /* [in] */ IDirectDraw *pDDrawObject) = 0;
  3199.         
  3200.         virtual HRESULT STDMETHODCALLTYPE GetDDrawObject( 
  3201.             /* [out] */ IDirectDraw **ppDDrawObject,
  3202.             /* [out] */ BOOL *pbUsingExternal) = 0;
  3203.         
  3204.         virtual HRESULT STDMETHODCALLTYPE SetDDrawSurface( 
  3205.             /* [in] */ IDirectDrawSurface *pDDrawSurface) = 0;
  3206.         
  3207.         virtual HRESULT STDMETHODCALLTYPE GetDDrawSurface( 
  3208.             /* [out] */ IDirectDrawSurface **ppDDrawSurface,
  3209.             /* [out] */ BOOL *pbUsingExternal) = 0;
  3210.         
  3211.         virtual HRESULT STDMETHODCALLTYPE SetDrawParameters( 
  3212.             /* [in] */ const RECT *prcSource,
  3213.             /* [in] */ const RECT *prcTarget) = 0;
  3214.         
  3215.         virtual HRESULT STDMETHODCALLTYPE GetNativeVideoProps( 
  3216.             /* [out] */ DWORD *pdwVideoWidth,
  3217.             /* [out] */ DWORD *pdwVideoHeight,
  3218.             /* [out] */ DWORD *pdwPictAspectRatioX,
  3219.             /* [out] */ DWORD *pdwPictAspectRatioY) = 0;
  3220.         
  3221.         virtual HRESULT STDMETHODCALLTYPE SetCallbackInterface( 
  3222.             /* [in] */ IDDrawExclModeVideoCallback *pCallback,
  3223.             /* [in] */ DWORD dwFlags) = 0;
  3224.         
  3225.     };
  3226.     
  3227. #else  /* C style interface */
  3228.     typedef struct IDDrawExclModeVideoVtbl
  3229.     {
  3230.         BEGIN_INTERFACE
  3231.         
  3232.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3233.             IDDrawExclModeVideo * This,
  3234.             /* [in] */ REFIID riid,
  3235.             /* [iid_is][out] */ void **ppvObject);
  3236.         
  3237.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3238.             IDDrawExclModeVideo * This);
  3239.         
  3240.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3241.             IDDrawExclModeVideo * This);
  3242.         
  3243.         HRESULT ( STDMETHODCALLTYPE *SetDDrawObject )( 
  3244.             IDDrawExclModeVideo * This,
  3245.             /* [in] */ IDirectDraw *pDDrawObject);
  3246.         
  3247.         HRESULT ( STDMETHODCALLTYPE *GetDDrawObject )( 
  3248.             IDDrawExclModeVideo * This,
  3249.             /* [out] */ IDirectDraw **ppDDrawObject,
  3250.             /* [out] */ BOOL *pbUsingExternal);
  3251.         
  3252.         HRESULT ( STDMETHODCALLTYPE *SetDDrawSurface )( 
  3253.             IDDrawExclModeVideo * This,
  3254.             /* [in] */ IDirectDrawSurface *pDDrawSurface);
  3255.         
  3256.         HRESULT ( STDMETHODCALLTYPE *GetDDrawSurface )( 
  3257.             IDDrawExclModeVideo * This,
  3258.             /* [out] */ IDirectDrawSurface **ppDDrawSurface,
  3259.             /* [out] */ BOOL *pbUsingExternal);
  3260.         
  3261.         HRESULT ( STDMETHODCALLTYPE *SetDrawParameters )( 
  3262.             IDDrawExclModeVideo * This,
  3263.             /* [in] */ const RECT *prcSource,
  3264.             /* [in] */ const RECT *prcTarget);
  3265.         
  3266.         HRESULT ( STDMETHODCALLTYPE *GetNativeVideoProps )( 
  3267.             IDDrawExclModeVideo * This,
  3268.             /* [out] */ DWORD *pdwVideoWidth,
  3269.             /* [out] */ DWORD *pdwVideoHeight,
  3270.             /* [out] */ DWORD *pdwPictAspectRatioX,
  3271.             /* [out] */ DWORD *pdwPictAspectRatioY);
  3272.         
  3273.         HRESULT ( STDMETHODCALLTYPE *SetCallbackInterface )(