/*************************************************************************/
/* Copyright (C) 1999 Microsoft Corporation                              */
/* File: mswebdvd.idl                                                    */
/* Description: IDL source for MSWebDVD.dll                              */
/* Author: David Janecek                                                 */
/*************************************************************************/
// This file will be processed by the MIDL tool to
// produce the type library (MSWebDVD.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";
#include "olectl.h"

	[
		object,
		uuid(90598166-2297-40ED-9AB2-59FD8E368FB2),
		dual,
		helpstring("IDVDRect Interface"),
		pointer_default(unique)
	]
	interface IDVDRect : IDispatch
	{
		[propget, id(1), helpstring("property x")] HRESULT x([out, retval] long *pVal);
		[propput, id(1), helpstring("property x")] HRESULT x([in] long newVal);
		[propget, id(2), helpstring("property y")] HRESULT y([out, retval] long *pVal);
		[propput, id(2), helpstring("property y")] HRESULT y([in] long newVal);
		[propget, id(3), helpstring("property Width")] HRESULT Width([out, retval] long *pVal);
		[propput, id(3), helpstring("property Width")] HRESULT Width([in] long newVal);
		[propget, id(4), helpstring("property Height")] HRESULT Height([out, retval] long *pVal);
		[propput, id(4), helpstring("property Height")] HRESULT Height([in] long newVal);
	};

	[
		object,
		uuid(DF55E77C-D1F6-4681-BFF7-CD235F8122F3),
		dual,
		helpstring("IMSDVDAdm Interface"),
		pointer_default(unique)
	]
	interface IMSDVDAdm : IDispatch
	{
		[id(1), helpstring("method ChangePassword")] HRESULT ChangePassword([in]BSTR strUserName, [in]BSTR strOld, [in]BSTR strNew);
		[propget, id(4), helpstring("property DisableScreenSaver")] HRESULT DisableScreenSaver([out, retval] VARIANT_BOOL *pVal);
		[propput, id(4), helpstring("property DisableScreenSaver")] HRESULT DisableScreenSaver([in] VARIANT_BOOL newVal);
		[id(5), helpstring("method SaveParentalLevel")] HRESULT SaveParentalLevel([in]long level,[in]BSTR strUserName, [in]BSTR strPassword);
		[id(6), helpstring("method SaveParentalCountry")] HRESULT SaveParentalCountry([in]long country,[in]BSTR strUserName, [in]BSTR strPassword);
		[id(8), helpstring("method ConfirmPassword")] HRESULT ConfirmPassword([in]BSTR strUserName, [in]BSTR strPassword, [out, retval] VARIANT_BOOL *pVal);
		[id(10), helpstring("method GetParentalLevel")] HRESULT GetParentalLevel([out, retval] long *lLevel);
		[id(11), helpstring("method GetParentalCountry")] HRESULT GetParentalCountry([out, retval] long *lCountry);
		[propget, id(12), helpstring("property DefaultAudioLCID")] HRESULT DefaultAudioLCID([out, retval] long *pVal);
		[propput, id(12), helpstring("property DefaultAudioLCID")] HRESULT DefaultAudioLCID([in] long newVal);
		[propget, id(13), helpstring("property DefaultSubpictureLCID")] HRESULT DefaultSubpictureLCID([out, retval] long *pVal);
		[propput, id(13), helpstring("property DefaultSubpictureLCID")] HRESULT DefaultSubpictureLCID([in] long newVal);
		[propget, id(14), helpstring("property DefaultMenuLCID")] HRESULT DefaultMenuLCID([out, retval] long *pVal);
		[propput, id(14), helpstring("property DefaultMenuLCID")] HRESULT DefaultMenuLCID([in] long newVal);
		[propget, id(15), helpstring("property BookmarkOnStop")] HRESULT BookmarkOnStop([out, retval] VARIANT_BOOL *pVal);
		[propput, id(15), helpstring("property BookmarkOnStop")] HRESULT BookmarkOnStop([in] VARIANT_BOOL newVal);
		[propget, id(16), helpstring("property BookmarkOnClose")] HRESULT BookmarkOnClose([out, retval] VARIANT_BOOL *pVal);
		[propput, id(16), helpstring("property BookmarkOnClose")] HRESULT BookmarkOnClose([in] VARIANT_BOOL newVal);
		[id(17), helpstring("method RestoreScreenSaver")] HRESULT RestoreScreenSaver();
		[id(18), helpstring("method ConfirmPassword"), hidden, restricted] HRESULT _ConfirmPassword([in]BSTR strUserName, [in]BSTR strPassword, [out, retval] VARIANT_BOOL *pVal);

	};
	

	[
		object,
		uuid(38EE5CED-4B62-11D3-854F-00A0C9C898E7),
		dual,
		helpstring("IMSWebDVD Interface"),
		pointer_default(unique)
	]
	interface IMSWebDVD : IDispatch
	{
		typedef enum
		{
			dvdCursor_Arrow = 0,
			dvdCursor_ZoomIn = 1,
			dvdCursor_ZoomOut = 2,
			dvdCursor_Hand = 3,
			dvdCursor_None = -1
		} DVDCursorType;

		typedef enum
		{
			dvdMenu_Title	= 2,
			dvdMenu_Root	= dvdMenu_Title + 1,
			dvdMenu_Subpicture	= dvdMenu_Root + 1,
			dvdMenu_Audio	= dvdMenu_Subpicture + 1,
			dvdMenu_Angle	= dvdMenu_Audio + 1,
			dvdMenu_Chapter	= dvdMenu_Angle + 1
		}	DVDMenuIDConstants;

		typedef enum 
	    {  
		   dvdState_Undefined   = -2, 
		   dvdState_Unitialized = dvdState_Undefined + 1,
		   dvdState_Stopped   = dvdState_Unitialized + 1,
		   dvdState_Paused    = dvdState_Stopped + 1,
		   dvdState_Running   = dvdState_Paused + 1
		}  DVDFilterState;

		typedef enum 
		{	
			dvdStruct_Volume	= 0x1,
			dvdStruct_Title	= 0x2,
			dvdStruct_ParentalID	= 0x3,
			dvdStruct_PartOfTitle	= 0x4,
			dvdStruct_Cell	= 0x5,
			dvdStream_Audio	= 0x10,
			dvdStream_Subpicture	= 0x11,
			dvdStream_Angle	= 0x12,
			dvdChannel_Audio	= 0x20,
			dvdGeneral_Name	= 0x30,
			dvdGeneral_Comments	= 0x31,
			dvdTitle_Series	= 0x38,
			dvdTitle_Movie	= 0x39,
			dvdTitle_Video	= 0x3a,
			dvdTitle_Album	= 0x3b,
			dvdTitle_Song	= 0x3c,
			dvdTitle_Other	= 0x3f,
			dvdTitle_Sub_Series	= 0x40,
			dvdTitle_Sub_Movie	= 0x41,
			dvdTitle_Sub_Video	= 0x42,
			dvdTitle_Sub_Album	= 0x43,
			dvdTitle_Sub_Song	= 0x44,
			dvdTitle_Sub_Other	= 0x47,
			dvdTitle_Orig_Series	= 0x48,
			dvdTitle_Orig_Movie	= 0x49,
			dvdTitle_Orig_Video	= 0x4a,
			dvdTitle_Orig_Album	= 0x4b,
			dvdTitle_Orig_Song	= 0x4c,
			dvdTitle_Orig_Other	= 0x4f,
			dvdOther_Scene	= 0x50,
			dvdOther_Cut	= 0x51,
			dvdOther_Take	= 0x52
		} DVDTextStringType;

		typedef enum 
		{	
			dvdSPExt_NotSpecified	= 0,
			dvdSPExt_Caption_Normal	= 1,
			dvdSPExt_Caption_Big	= 2,
			dvdSPExt_Caption_Children	= 3,
			dvdSPExt_CC_Normal	= 5,
			dvdSPExt_CC_Big	= 6,
			dvdSPExt_CC_Children	= 7,
			dvdSPExt_Forced	= 9,
			dvdSPExt_DirectorComments_Normal	= 13,
			dvdSPExt_DirectorComments_Big	= 14,
			dvdSPExt_DirectorComments_Children	= 15
		}	DVDSPExt;


		typedef enum
		{
			dvdRender_Reinitialize = 1,
			dvdRender_Error_On_Missing_Drive = 2,			
		} DVDRender;
	
		[id(1), helpstring("method Render")] HRESULT Render([in, defaultvalue(0)] long lRender);
		[id(2), helpstring("method Play")] HRESULT Play();
		[id(3), helpstring("method Pause")] HRESULT Pause();
		[id(4), helpstring("method Stop")] HRESULT Stop();
		[id(5), helpstring("method PlayTitle")] HRESULT PlayTitle(LONG lTitle);
		[id(6), helpstring("method PlayChapterInTitle")] HRESULT PlayChapterInTitle([in]LONG lTitle,[in]LONG lChapter);
		[id(7), helpstring("method PlayChapter")] HRESULT PlayChapter(LONG lChapter);
		[id(8), helpstring("method PlayAtTimeInTitle")] HRESULT PlayAtTimeInTitle(long lTitle, BSTR strTime);
		[id(9), helpstring("method PlayAtTime")] HRESULT PlayAtTime(BSTR strTime);
		[id(10), helpstring("method PlayBackwards")] HRESULT PlayBackwards(double dSpeed, [in, defaultvalue(0)] VARIANT_BOOL fDoNotReset);
		[id(11), helpstring("method PlayForwards")] HRESULT PlayForwards(double dSpeed, [in, defaultvalue(0)] VARIANT_BOOL fDoNotReset);
		[id(12), helpstring("method ShowMenu")] HRESULT ShowMenu(DVDMenuIDConstants MenuID);
		[id(13), helpstring("method Resume")] HRESULT Resume();
		[id(14), helpstring("method GetNumberOfChapters")] HRESULT GetNumberOfChapters(long lTitle, [out, retval] long *pVal);
		[id(15), helpstring("method PlayChaptersAutoStop")] HRESULT PlayChaptersAutoStop(LONG strTitle, LONG strChapter, LONG strChapterCount);
		[propget, id(16), helpstring("property FullScreenMode")] HRESULT FullScreenMode([out, retval] VARIANT_BOOL *displaySize);
		[propput, id(16), helpstring("property FullScreenMode")] HRESULT FullScreenMode([in] VARIANT_BOOL displaySize);
		[propget, id(17), helpstring("property PlayState")] HRESULT PlayState([out, retval] DVDFilterState *pVal);
		[id(18), helpstring("method SelectUpperButton")] HRESULT SelectUpperButton();
		[id(19), helpstring("method SelectLowerButton")] HRESULT SelectLowerButton();
		[id(20), helpstring("method SelectLeftButton")] HRESULT SelectLeftButton();
		[id(21), helpstring("method SelectRightButton")] HRESULT SelectRightButton();
		[id(22), helpstring("method ActivateButton")] HRESULT ActivateButton();
		[id(23), helpstring("method SelectAndActivateButton")] HRESULT SelectAndActivateButton(long lButton);
		[id(24), helpstring("method ActivateAtPosition")] HRESULT ActivateAtPosition([in]long xPos, [in]long yPos);
		[id(25), helpstring("method SelectAtPosition")] HRESULT SelectAtPosition([in]long xPos, [in]long yPos);
		[id(26), helpstring("method GetButtonAtPosition")] HRESULT GetButtonAtPosition([in]long xPos, [in]long yPos, [out, retval]long* plButton);
		[id(27), helpstring("method GetButtonRect")] HRESULT GetButtonRect([in]long lButton, [out, retval]IDVDRect** ppRect);
		[id(28), helpstring("method PlayNextChapter")] HRESULT PlayNextChapter();
		[id(29), helpstring("method PlayPrevChapter")] HRESULT PlayPrevChapter();
		[id(30), helpstring("method ReplayChapter")] HRESULT ReplayChapter();
		[id(31), helpstring("method ReturnFromSubmenu")] HRESULT ReturnFromSubmenu();
		[id(32), helpstring("method StillOff")] HRESULT StillOff();
		[id(33), helpstring("method GetAudioLanguage")] HRESULT GetAudioLanguage(LONG lStream, [in, defaultvalue(0)] VARIANT_BOOL fFormat, [out, retval] BSTR* strAudioLang);
		[id(34), helpstring("method GetSubpictureLanguage")] HRESULT GetSubpictureLanguage(LONG lStream, [out, retval]BSTR* strLanguage);
		[propget, id(35), helpstring("property CurrentTitle")] HRESULT CurrentTitle([out, retval] long *pVal);
		[propget, id(36), helpstring("property CurrentChapter")] HRESULT CurrentChapter([out, retval] long *pVal);
		[propget, id(37), helpstring("property FramesPerSecond")] HRESULT FramesPerSecond([out, retval] long *pVal);
		[propget, id(38), helpstring("property CurrentTime")] HRESULT CurrentTime([out, retval] BSTR* pVal);
		[propget, id(39), helpstring("property DVDDirectory")] HRESULT DVDDirectory([out, retval] BSTR *pVal);
		[propput, id(39), helpstring("property DVDDirectory")] HRESULT DVDDirectory([in] BSTR newVal);
		[propget, id(40), helpstring("property CurrentDomain")] HRESULT CurrentDomain([out, retval] long *pVal);
		[propget, id(41), helpstring("property CurrentDiscSide")] HRESULT CurrentDiscSide([out, retval] long *pVal);
		[propget, id(42), helpstring("property TitlesAvailable")] HRESULT TitlesAvailable([out, retval] long *pVal);
		[propget, id(43), helpstring("property CurrentVolume")] HRESULT CurrentVolume([out, retval] long *pVal);
		[propget, id(44), helpstring("property VolumesAvailable")] HRESULT VolumesAvailable([out, retval] long *pVal);
		[id(45), helpstring("method PlayPeriodInTitleAutoStop")] HRESULT PlayPeriodInTitleAutoStop([in]long lTitle, [in]BSTR strStartTime, [in]BSTR strEndTime);
		[propget, id(46), helpstring("property CurrentSubpictureStream")] HRESULT CurrentSubpictureStream([out, retval] long *pVal);
		[propput, id(46), helpstring("property CurrentSubpictureStream")] HRESULT CurrentSubpictureStream([in] long newVal);
		[propget, id(47), helpstring("property SubpictureOn")] HRESULT SubpictureOn([out, retval] VARIANT_BOOL *pVal);
		[propput, id(47), helpstring("property SubpictureOn")] HRESULT SubpictureOn([in] VARIANT_BOOL newVal);
		[propget, id(48), helpstring("property SubpictureStreamsAvailable")] HRESULT SubpictureStreamsAvailable([out, retval] long *pVal);
		[propget, id(49), helpstring("property TotalTitleTime")] HRESULT TotalTitleTime([out, retval] BSTR *pVal);
		[propget, id(50), helpstring("property CurrentCCService")] HRESULT CurrentCCService([out, retval] long *pVal);
		[propput, id(50), helpstring("property CurrentCCService")] HRESULT CurrentCCService([in] long newVal);
		[propget, id(51), helpstring("property CurrentButton")] HRESULT CurrentButton([out, retval] long *pVal);
		[propget, id(52), helpstring("property ButtonsAvailable")] HRESULT ButtonsAvailable([out, retval] long *pVal);
		[propget, id(53), helpstring("property CCActive")] HRESULT CCActive([out, retval] VARIANT_BOOL *pVal);
		[propput, id(53), helpstring("property CCActive")] HRESULT CCActive([in] VARIANT_BOOL newVal);
		[propget, id(54), helpstring("property CurrentAngle")] HRESULT CurrentAngle([out, retval] long *pVal);
		[propput, id(54), helpstring("property CurrentAngle")] HRESULT CurrentAngle([in] long newVal);
		[propget, id(55), helpstring("property AnglesAvailable")] HRESULT AnglesAvailable([out, retval] long *pVal);
		[propget, id(56), helpstring("property AudioStreamsAvailable")] HRESULT AudioStreamsAvailable([out, retval] long *pVal);
		[propget, id(57), helpstring("property CurrentAudioStream")] HRESULT CurrentAudioStream([out, retval] long *pVal);
		[propput, id(57), helpstring("property CurrentAudioStream")] HRESULT CurrentAudioStream([in] long newVal);
		[propget, id(58), helpstring("property ColorKey")] HRESULT ColorKey([out, retval] long *pVal);
		[propput, id(58), helpstring("property ColorKey")] HRESULT ColorKey([in] long newVal);
		[id(59), helpstring("method UOPValid")] HRESULT UOPValid(long lUOP, [out, retval] VARIANT_BOOL* pfValid);
		[id(60), helpstring("method GetGPRM")] HRESULT GetGPRM([in]long lIndex, [out, retval] short *psGPRM);
		[id(61), helpstring("method GetSPRM")] HRESULT GetSPRM([in]long lIndex, [out, retval] short *psSPRM);
		[propget, id(62), helpstring("property DVDUniqueID")] HRESULT DVDUniqueID([out, retval] BSTR *pVal);
		[propget, id(63), helpstring("property Mute")] HRESULT Mute([out, retval] VARIANT_BOOL *pVal);
		[propput, id(63), helpstring("property Mute")] HRESULT Mute([in] VARIANT_BOOL newVal);
		[propget, id(64), helpstring("property Volume")] HRESULT Volume([out, retval] long *pVal);
		[propput, id(64), helpstring("property Volume")] HRESULT Volume([in] long newVal);
		[propget, id(65), helpstring("property Balance")] HRESULT Balance([out, retval] long *pVal);
		[propput, id(65), helpstring("property Balance")] HRESULT Balance([in] long newVal);
		[propget, id(66), helpstring("property EnableResetOnStop")] HRESULT EnableResetOnStop([out, retval] VARIANT_BOOL *pVal);
		[propput, id(66), helpstring("property EnableResetOnStop")] HRESULT EnableResetOnStop([in] VARIANT_BOOL newVal);
		[propget, id(67), helpstring("property ShowCursor")] HRESULT ShowCursor([out, retval] VARIANT_BOOL *pVal);
		[propput, id(67), helpstring("property ShowCursor")] HRESULT ShowCursor([in] VARIANT_BOOL fShow);
		//[id(68), helpstring("method ProcessEvents")] HRESULT ProcessEvents();
		[id(68), helpstring("method DVDTimeCode2bstr")] HRESULT DVDTimeCode2bstr([in] long timeCode, [out, retval] BSTR *pTimeStr);
		[propget, id(69), helpstring("property WindowlessActivation")] HRESULT WindowlessActivation([out, retval] VARIANT_BOOL *pVal);
		[propput, id(69), helpstring("property WindowlessActivation")] HRESULT WindowlessActivation([in] VARIANT_BOOL newVal);
		[propget, id(70), helpstring("property DisableAutoMouseProcessing")] HRESULT DisableAutoMouseProcessing([out, retval] VARIANT_BOOL *pVal);
		[propput, id(70), helpstring("property DisableAutoMouseProcessing")] HRESULT DisableAutoMouseProcessing([in] VARIANT_BOOL newVal);
		[id(72), helpstring("method GetDVDScreenInMouseCoordinates")] HRESULT GetDVDScreenInMouseCoordinates([out, retval]IDVDRect** ppRect);
		[id(73), helpstring("method SetDVDScreenInMouseCoordinates")] HRESULT SetDVDScreenInMouseCoordinates([in]IDVDRect* pRect);
		[id(74), helpstring("method GetClipVideoRect")] HRESULT GetClipVideoRect([out, retval]IDVDRect** ppRect);
		[id(75), helpstring("method GetVideoSize")] HRESULT GetVideoSize([out, retval]IDVDRect** ppRect);
		[id(76), helpstring("method SetClipVideoRect")] HRESULT SetClipVideoRect([in]IDVDRect* pRect);
		[id(77), helpstring("method GetPlayerParentalLevel")] HRESULT GetPlayerParentalLevel([out, retval]long* plParentalLevel);
		[id(78), helpstring("method GetPlayerParentalCountry")] HRESULT GetPlayerParentalCountry([out, retval]long* plCountryCode);
		[id(79), helpstring("method GetTitleParentalLevels")] HRESULT GetTitleParentalLevels([in]long lTitle, [out, retval]long* plParentalLevels);
		[id(80), helpstring("method SelectParentalLevel")] HRESULT SelectParentalLevel([in]long lParentalLevel, [in] BSTR strUserName, [in] BSTR strPassword);
		[id(81), helpstring("method SelectParentalCountry")] HRESULT SelectParentalCountry([in]long lCountry, [in] BSTR strUserName, [in] BSTR strPassword);		
		[id(82), helpstring("NotifyParentalLevelChange")] HRESULT NotifyParentalLevelChange([in] VARIANT_BOOL newVal);
		[id(83), helpstring("method AcceptParentalLevelChange")] HRESULT AcceptParentalLevelChange([in]VARIANT_BOOL fAccept, [in] BSTR strUserName, [in] BSTR strPassword);
		[id(84), helpstring("method Eject")] HRESULT Eject();
		[id(85), helpstring("method SetGPRM")] HRESULT SetGPRM([in]long lIndex,[in]short sValue);
		[id(86), helpstring("method GetDVDTextNumberOfLanguages")] HRESULT GetDVDTextNumberOfLanguages([out, retval]long* plNumOfLangs);
		[id(87), helpstring("method GetDVDTextNumberOfStrings")] HRESULT GetDVDTextNumberOfStrings([in]long lLangIndex, [out, retval]long* plNumOfStrings);
		[id(88), helpstring("method GetDVDTextString")] HRESULT GetDVDTextString([in]long lLangIndex, [in]long lStringIndex,  [out, retval]BSTR* pstrText);
		[id(89), helpstring("method GetDVDTextStringType")] HRESULT GetDVDTextStringType([in]long lLangIndex, [in]long lStringIndex,  [out, retval]DVDTextStringType* pType);
		[id(90), helpstring("method SelectDefaultSubpictureLanguage")] HRESULT SelectDefaultSubpictureLanguage([in]long lang, [in]DVDSPExt ext);
		[id(91), helpstring("method SelectDefaultAudioLanguage")] HRESULT SelectDefaultAudioLanguage([in]long lang, [in]long ext);	
		[propget, id(92), helpstring("property ToolTip")] HRESULT ToolTip([out, retval] BSTR *pVal);
		[propput, id(92), helpstring("property ToolTip")] HRESULT ToolTip([in] BSTR newVal);
		[id(93), helpstring("method GetDelayTime")] HRESULT GetDelayTime([in]long delayType, [out, retval] VARIANT *pVal);
		[id(94), helpstring("method SetDelayTime")] HRESULT SetDelayTime([in]long delayType, [in] VARIANT newVal);
		[propget, id(95), helpstring("property ToolTipMaxWidth")] HRESULT ToolTipMaxWidth([out, retval] long *pVal);
		[propput, id(95), helpstring("property ToolTipMaxWidth")] HRESULT ToolTipMaxWidth([in] long newVal);		
		[propget, id(96), helpstring("property DVDAdm")] HRESULT DVDAdm([out, retval] IDispatch* *pVal);
		[propget, id(97), helpstring("property CursorType")] HRESULT CursorType([out, retval] DVDCursorType *pVal);
		[propput, id(97), helpstring("property CursorType")] HRESULT CursorType([in] DVDCursorType newVal);
		[id(98), helpstring("method Zoom")] HRESULT Zoom([in]long x, [in]long y, [in]double zoomRatio);
		[id(99), helpstring("method RegionChange")] HRESULT RegionChange();
		[id(100), helpstring("method SaveBookmark")] HRESULT SaveBookmark();
		[id(101), helpstring("method RestoreBookmark")] HRESULT RestoreBookmark();
		[id(102), helpstring("method DeleteBookmark")] HRESULT DeleteBookmark();
		[id(103), helpstring("method Capture")] HRESULT Capture();
		[propget, id(105), helpstring("property PreferredSubpictureStream")]  HRESULT PreferredSubpictureStream([out,retval]long* pVal);
		[id(106), helpstring("method CanStep")] HRESULT CanStep([in, defaultvalue(0)]VARIANT_BOOL fBackwards, [out, retval]VARIANT_BOOL* pfCan);
		[id(107), helpstring("method Step")] HRESULT Step([in]long lStep);
		[propget, id(108), helpstring("property AspectRatio")] HRESULT AspectRatio([out, retval] double *pVal);
		[id(109), helpstring("method GetKaraokeChannelAssignment")] HRESULT GetKaraokeChannelAssignment([in]long lStream, [out, retval] long *lChannelAssignment);
		[id(110), helpstring("method GetKaraokeChannelContent")] HRESULT GetKaraokeChannelContent([in]long lStream, [in]long lChan, [out, retval] long* lContent);
		[propget, id(111), helpstring("property KaraokeAudioPresentationMode")] HRESULT KaraokeAudioPresentationMode([out, retval] long *pVal);
		[propput, id(111), helpstring("property KaraokeAudioPresentationMode")] HRESULT KaraokeAudioPresentationMode([in] long newVal);
		[propget, id(112), helpstring("method DefaultAudioLanguage")] HRESULT DefaultAudioLanguage([out, retval] long *lang);
		[propget, id(113), helpstring("method DefaultAudioLanguageExt")] HRESULT DefaultAudioLanguageExt([out, retval] long* ext);
		[propget, id(114), helpstring("method DefaultSubpictureLanguage")] HRESULT DefaultSubpictureLanguage([out, retval] long* lang);
		[propget, id(115), helpstring("method DefaultSubpictureLanguageExt")] HRESULT DefaultSubpictureLanguageExt([out, retval] DVDSPExt* ext);
		[propget, id(116), helpstring("method DefaultMenuLanguage")] HRESULT DefaultMenuLanguage([out, retval] long* lang);
		[propput, id(116), helpstring("method DefaultMenuLanguage")] HRESULT DefaultMenuLanguage([in] long lang);		
		[id(118), helpstring("method GetLangFromLangID")] HRESULT GetLangFromLangID([in] long langID, [out, retval] BSTR* lang);
		[id(119), helpstring("method IsAudioStreamEnabled")] HRESULT IsAudioStreamEnabled([in] long lstream, [out, retval] VARIANT_BOOL *fEnabled);
		[id(120), helpstring("method IsSubpictureStreamEnabled")] HRESULT IsSubpictureStreamEnabled([in] long lstream, [out, retval] VARIANT_BOOL *fEnabled);		
		[id(121), helpstring("method GetDVDTextLanguageLCID")] HRESULT GetDVDTextLanguageLCID([in] long lLangIndex, [out, retval] long* lcid);
		[propput, id(DISPID_BACKCOLOR)]	HRESULT BackColor([in]VARIANT clr);
		[propget, id(DISPID_BACKCOLOR)] HRESULT BackColor([out,retval]VARIANT* pclr);
		[propget, id(DISPID_READYSTATE)] HRESULT ReadyState([out, retval] LONG *pVal);				
	};

[
	uuid(38EE5CE1-4B62-11D3-854F-00A0C9C898E7),
	version(1.0),
	helpstring("MSWebDVD 1.0 Type Library")
]
library MSWEBDVDLib
{
	importlib("stdole2.tlb");

	[uuid(2490FEF2-9F03-4bb4-9AD7-3A3FC58206A4),
	helpstring("Event interface for DVDChapter control") ]
	dispinterface _IMSWebDVD
	{
		properties:
		//  Event interface has no properties
		methods:
		[id(1), helpstring("Notifies the client about DVD Code")] void DVDNotify([in]long lEventCode, [in]VARIANT lParam1, [in]VARIANT lParam2);
		[id(2), helpstring("Notifies the client")] void PlayForwards([in] VARIANT_BOOL bEnabled);
		[id(3), helpstring("Notifies the client")] void PlayBackwards([in] VARIANT_BOOL bEnabled);
		[id(4), helpstring("Notifies the client")] void ShowMenu([in]DVDMenuIDConstants, [in] VARIANT_BOOL bEnabled);
		[id(5), helpstring("Notifies the client")] void Resume([in] VARIANT_BOOL bEnabled);
		[id(6), helpstring("Notifies the client")] void SelectOrActivatButton([in] VARIANT_BOOL bEnabled);
		[id(7), helpstring("Notifies the client")] void StillOff([in] VARIANT_BOOL bEnabled);
		[id(8), helpstring("Notifies the client")] void PauseOn([in] VARIANT_BOOL bEnabled);
		[id(9), helpstring("Notifies the client")] void ChangeCurrentAudioStream([in] VARIANT_BOOL bEnabled);
		[id(10), helpstring("Notifies the client")] void ChangeCurrentSubpictureStream([in] VARIANT_BOOL bEnabled);
		[id(11), helpstring("Notifies the client")] void ChangeCurrentAngle([in] VARIANT_BOOL bEnabled);
		[id(12), helpstring("Notifies the client")] void PlayAtTimeInTitle([in] VARIANT_BOOL bEnabled);
		[id(13), helpstring("Notifies the client")] void PlayAtTime([in] VARIANT_BOOL bEnabled);
		[id(14), helpstring("Notifies the client")] void PlayChapterInTitle([in] VARIANT_BOOL bEnabled);
		[id(15), helpstring("Notifies the client")] void PlayChapter([in] VARIANT_BOOL bEnabled);
		[id(16), helpstring("Notifies the client")] void ReplayChapter([in] VARIANT_BOOL bEnabled);
		[id(17), helpstring("Notifies the client")] void PlayNextChapter([in] VARIANT_BOOL bEnabled);
		[id(18), helpstring("Notifies the client")] void Stop([in] VARIANT_BOOL bEnabled);
		[id(19), helpstring("Notifies the client")] void ReturnFromSubmenu([in] VARIANT_BOOL bEnabled);
		[id(20), helpstring("Notifies the client")] void PlayTitle([in] VARIANT_BOOL bEnabled);		
		[id(21), helpstring("Notifies the client")] void PlayPrevChapter([in] VARIANT_BOOL bEnabled);				
		[id(22), helpstring("Notifies the client")] void UpdateOverlay();				
		[id(DISPID_READYSTATECHANGE), helpstring("Reports that the ReadyState property of the ActiveMovie Control has changed")] void ReadyStateChange([in] LONG ReadyState); // Should be using READYSTATE but ATL does not like it much	
		};
	[
		object,
		uuid(84440B2B-931C-4183-BF8B-B98BC09FD2E9),
		dual,
		helpstring("IOverlayCallback Interface"),
		pointer_default(unique)
	]
	interface IOverlayCallback : IDispatch
	{
		[id(1), helpstring("method SetDDrawDVD")] HRESULT SetDDrawDVD([in] VARIANT pDDrawDVD);
	};

	[
		uuid(38EE5CEE-4B62-11D3-854F-00A0C9C898E7),
		helpstring("MSWebDVD Class")
	]
	coclass MSWebDVD
	{
		[default] interface IMSWebDVD;
		[default, source] interface _IMSWebDVD;
	};
	[
		uuid(B9240A2E-EE1A-4E1F-AD76-6536F9D3B176),
		helpstring("DVDRect Class")
	]
	coclass DVDRect
	{
		[default] interface IDVDRect;
	};
	[
		uuid(8D670533-270B-4549-B19B-414FB9C6EBDB),
		helpstring("MSDVDAdm Class")
	]
	coclass MSDVDAdm
	{
		[default] interface IMSDVDAdm;
	};
	[
		uuid(38AA78B2-B824-4C63-A512-02FD95FBDF4C),
		helpstring("OverlayCallback Class")
	]
	coclass OverlayCallback
	{
		[default] interface IOverlayCallback;
	};
};
/*************************************************************************/
/* End of file: mswebdvd.idl                                             */
/*************************************************************************/