⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsdvd.cs

📁 一个非常完整的网络会议系统
💻 CS
📖 第 1 页 / 共 2 页
字号:
/******************************************************
                  DirectShow .NET
		      netmaster@swissonline.ch
*******************************************************/
//					DsDVD
// DVD interfaces, ported from dvdif.idl

using System;
using System.Runtime.InteropServices;

namespace DShowNET.Dvd
{


// =================================================================================================
//											DVD GRAPH
// =================================================================================================

[Flags]
public enum DvdGraphFlags		// AM_DVD_GRAPH_FLAGS
{
	Default			= 0x00000000,
	HwDecPrefer		= 0x00000001,		// AM_DVD_HWDEC_PREFER
	HwDecOnly		= 0x00000002,		// AM_DVD_HWDEC_ONLY
	SwDecPrefer		= 0x00000004,		// AM_DVD_SWDEC_PREFER
	SwDecOnly		= 0x00000008,		// AM_DVD_SWDEC_ONLY
	NoVpe			= 0x00000100		// AM_DVD_NOVPE
}

[Flags]
public enum DvdStreamFlags		// AM_DVD_STREAM_FLAGS
{
	None		= 0x00000000,
	Video		= 0x00000001,		// AM_DVD_STREAM_VIDEO
	Audio		= 0x00000002,		// AM_DVD_STREAM_AUDIO
	SubPic		= 0x00000004		// AM_DVD_STREAM_SUBPIC
}


	[StructLayout(LayoutKind.Sequential, Pack=1), ComVisible(false)]
public struct DvdRenderStatus		//  AM_DVD_RENDERSTATUS
{
	public int		vpeStatus;
	public bool		volInvalid;
	public bool		volUnknown;
	public bool		noLine21In;
	public bool		noLine21Out;
	public int				numStreams;
	public int				numStreamsFailed;
	public DvdStreamFlags	failedStreams;
}


// ---------------------------------------------------------------------------------------

	[ComVisible(true), ComImport,
	Guid("FCC152B6-F372-11d0-8E00-00C04FD7C08B"),
	InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IDvdGraphBuilder
{
		[PreserveSig]
	int GetFiltergraph(
		[Out]										out IGraphBuilder		ppGB );

		[PreserveSig]
	int GetDvdInterface(
		[In]										ref	Guid	riid,
		[Out, MarshalAs(UnmanagedType.IUnknown) ]	out	object	ppvIF );

		[PreserveSig]
	int RenderDvdVideoVolume(
		[In, MarshalAs(UnmanagedType.LPWStr)]			string			lpcwszPathName,
														DvdGraphFlags	dwFlags,
		[Out]										out DvdRenderStatus	pStatus );
}

















// =================================================================================================
//											DVD CONTROL
// =================================================================================================

[Flags]
public enum DvdCmdFlags		// DVD_CMD_FLAGS
{
	None			= 0x00000000,		// DVD_CMD_FLAG_None
	Flush			= 0x00000001,		// DVD_CMD_FLAG_Flush
	SendEvt			= 0x00000002,		// DVD_CMD_FLAG_SendEvents
	Block			= 0x00000004,		// DVD_CMD_FLAG_Block
	StartWRendered	= 0x00000008,		// DVD_CMD_FLAG_StartWhenRendered
	EndARendered	= 0x00000010		// DVD_CMD_FLAG_EndAfterRendered
}


	[StructLayout(LayoutKind.Sequential, Pack=1), ComVisible(false)]
public struct DvdTimeCode		//  DVD_HMSF_TIMECODE
{
	public byte		bHours;
	public byte		bMinutes;
	public byte		bSeconds;
	public byte		bFrames;
}

public enum DvdMenuID		// DVD_MENU_ID
{
	Title		= 2,		// DVD_MENU_Title
	Root		= 3,		// DVD_MENU_Root
	Subpicture	= 4,		// DVD_MENU_Subpicture
	Audio		= 5,		// DVD_MENU_Audio
	Angle		= 6,		// DVD_MENU_Angle
	Chapter		= 7			// DVD_MENU_Chapter
}


public enum DvdRelButton		// DVD_RELATIVE_BUTTON
{
	Upper		= 1,		// DVD_Relative_Upper
	Lower		= 2,		// DVD_Relative_Lower
	Left		= 3,		// DVD_Relative_Left
	Right		= 4			// DVD_Relative_Right
}


public enum DvdOptionFlag		// DVD_OPTION_FLAG
{
	ResetOnStop					= 1,		// DVD_ResetOnStop
	NotifyParentalLevelChange	= 2,		// DVD_NotifyParentalLevelChange
	HmsfTimeCodeEvt				= 3			// DVD_HMSF_TimeCodeEvents
}


public enum DvdAudioLangExt		// DVD_AUDIO_LANG_EXT
{
	NotSpecified			= 0,		// DVD_AUD_EXT_NotSpecified
	Captions				= 1,		// DVD_AUD_EXT_Captions
	VisuallyImpaired		= 2,		// DVD_AUD_EXT_VisuallyImpaired
	DirectorComments1		= 3,		// DVD_AUD_EXT_DirectorComments1
	DirectorComments2		= 4			// DVD_AUD_EXT_DirectorComments2
}

public enum DvdSubPicLangExt		// DVD_SUBPICTURE_LANG_EXT
{
	NotSpecified			= 0,		// DVD_SP_EXT_NotSpecified
	CaptionNormal			= 1,		// DVD_SP_EXT_Caption_Normal
	CaptionBig				= 2,		// DVD_SP_EXT_Caption_Big
	CaptionChildren			= 3,		// DVD_SP_EXT_Caption_Children
	ClosedNormal			= 5,		// DVD_SP_EXT_CC_Normal
	ClosedBig				= 6,		// DVD_SP_EXT_CC_Big
	ClosedChildren			= 7,		// DVD_SP_EXT_CC_Children
	Forced					= 9,		// DVD_SP_EXT_Forced
	DirectorCmtNormal		= 13,		// DVD_SP_EXT_DirectorComments_Normal
	DirectorCmtBig			= 14,		// DVD_SP_EXT_DirectorComments_Big
	DirectorCmtChildren		= 15,		// DVD_SP_EXT_DirectorComments_Children
}




// ---------------------------------------------------------------------------------------

	[ComVisible(true), ComImport,
	Guid("33BC7430-EEC0-11D2-8201-00A0C9D74842"),
	InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IDvdControl2
{
		[PreserveSig]
	int PlayTitle( int ulTitle, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayChapterInTitle( int ulTitle, int ulChapter, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayAtTimeInTitle( int ulTitle, [In] ref DvdTimeCode pStartTime, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int Stop();

		[PreserveSig]
	int ReturnFromSubmenu( DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayAtTime( [In] ref DvdTimeCode pTime, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayChapter( int ulChapter, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayPrevChapter( DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int ReplayChapter( DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayNextChapter( DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayForwards( double dSpeed, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayBackwards( double dSpeed, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int ShowMenu( DvdMenuID MenuID, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int Resume( DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int SelectRelativeButton( DvdRelButton buttonDir );

		[PreserveSig]
	int ActivateButton();

		[PreserveSig]
	int SelectButton( int ulButton );

		[PreserveSig]
	int SelectAndActivateButton( int ulButton );

		[PreserveSig]
	int StillOff();

		[PreserveSig]
	int Pause(
		[In, MarshalAs(UnmanagedType.Bool)]				bool	bState );

		[PreserveSig]
	int SelectAudioStream( int ulAudio, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int SelectSubpictureStream( int ulSubPicture, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int SetSubpictureState(
		[In, MarshalAs(UnmanagedType.Bool)]				bool		bState,
														DvdCmdFlags	dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int SelectAngle( int ulAngle, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int SelectParentalLevel( int ulParentalLevel );

		[PreserveSig]
	int SelectParentalCountry( byte[] bCountry );

		[PreserveSig]
	int SelectKaraokeAudioPresentationMode( int ulMode );

		[PreserveSig]
	int SelectVideoModePreference( int ulPreferredDisplayMode );

		[PreserveSig]
	int SetDVDDirectory(
		[In, MarshalAs(UnmanagedType.LPWStr)]			string		pszwPath );

		[PreserveSig]
	int ActivateAtPosition( DsPOINT point );

		[PreserveSig]
	int SelectAtPosition( DsPOINT point );

		[PreserveSig]
	int PlayChaptersAutoStop( int ulTitle, int ulChapter, int ulChaptersToPlay, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int AcceptParentalLevelChange(
		[In, MarshalAs(UnmanagedType.Bool)]				bool		bAccept );

		[PreserveSig]
	int SetOption( DvdOptionFlag flag,
		[In, MarshalAs(UnmanagedType.Bool)]				bool		fState );

		[PreserveSig]
	int SetState( IDvdState pState, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int PlayPeriodInTitleAutoStop( int ulTitle,
		[In]										ref DvdTimeCode pStartTime,
		[In]										ref DvdTimeCode pEndTime,
														DvdCmdFlags	dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int SetGPRM( int ulIndex, short wValue, DvdCmdFlags dwFlags,
		[Out]											OptIDvdCmd	ppCmd );

		[PreserveSig]
	int SelectDefaultMenuLanguage( int Language );

		[PreserveSig]
	int SelectDefaultAudioLanguage( int Language, DvdAudioLangExt audioExtension );

		[PreserveSig]
	int SelectDefaultSubpictureLanguage( int Language, DvdSubPicLangExt subpictureExtension );
}






// ---------------------------------------------------------------------------------------

	[ComVisible(true), ComImport,
	Guid("5a4a97e4-94ee-4a55-9751-74b5643aa27d"),
	InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IDvdCmd
{
		[PreserveSig]
	int WaitForStart();
		[PreserveSig]
	int WaitForEnd();
}




// ---------------------------------------------------------------------------------------

	[ComVisible(true), ComImport,
	Guid("86303d6d-1c4a-4087-ab42-f711167048ef"),
	InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IDvdState
{
		[PreserveSig]
	int GetDiscID( [Out] out long pullUniqueID );
		[PreserveSig]
	int GetParentalLevel( [Out] out int pulParentalLevel );
}











// =================================================================================================
//											DVD INFO
// =================================================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -