diff --git a/.gitmodules b/.gitmodules index 8c3ca9b..929fb28 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "ThirdParty/WavPack"] path = ThirdParty/WavPack url = git@github.com:gchudov/WavPack.git +[submodule "ThirdParty/WindowsMediaLib"] + path = ThirdParty/WindowsMediaLib + url = git@github.com:gchudov/WindowsMediaLib.git diff --git a/CUETools.Codecs.MACLib/AudioDecoder.cs b/CUETools.Codecs.MACLib/AudioDecoder.cs index 2e4bd1c..6ca6f51 100644 --- a/CUETools.Codecs.MACLib/AudioDecoder.cs +++ b/CUETools.Codecs.MACLib/AudioDecoder.cs @@ -16,18 +16,18 @@ namespace CUETools.Codecs.MACLib m_StreamIO = new StreamIO(m_stream); int errorCode = 0; - pAPEDecompress = MACLibDll.c_APEDecompress_CreateEx(m_StreamIO.Callbacks, out errorCode); + pAPEDecompress = MACLibDll.c_APEDecompress_CreateEx(m_StreamIO.CIO, out errorCode); if (pAPEDecompress == null) { throw new Exception("Unable to initialize the decoder: " + errorCode); } pcm = new AudioPCMConfig( - MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_INFO_BITS_PER_SAMPLE, 0, 0), - MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_INFO_CHANNELS, 0, 0), - MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_INFO_SAMPLE_RATE, 0, 0), + MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_INFO_BITS_PER_SAMPLE, 0, 0).ToInt32(), + MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_INFO_CHANNELS, 0, 0).ToInt32(), + MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_INFO_SAMPLE_RATE, 0, 0).ToInt32(), (AudioPCMConfig.SpeakerConfig)0); _samplesBuffer = new byte[16384 * pcm.BlockAlign]; - _sampleCount = MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_DECOMPRESS_TOTAL_BLOCKS, 0, 0); + _sampleCount = MACLibDll.c_APEDecompress_GetInfo(pAPEDecompress, APE_DECOMPRESS_FIELDS.APE_DECOMPRESS_TOTAL_BLOCKS, 0, 0).ToInt64(); _sampleOffset = 0; } @@ -66,8 +66,6 @@ namespace CUETools.Codecs.MACLib Dispose(false); } - // TODO: intn should always be 64 bit? Or should we use different interface in 32-bit mode? - private DecoderSettings m_settings; public IAudioDecoderSettings Settings => m_settings; diff --git a/CUETools.Codecs.MACLib/AudioEncoder.cs b/CUETools.Codecs.MACLib/AudioEncoder.cs index eaafb2b..964dd26 100644 --- a/CUETools.Codecs.MACLib/AudioEncoder.cs +++ b/CUETools.Codecs.MACLib/AudioEncoder.cs @@ -133,7 +133,7 @@ namespace CUETools.Codecs.MACLib int res = MACLibDll.c_APECompress_StartEx( pAPECompress, - m_StreamIO.Callbacks, + m_StreamIO.CIO, pWaveFormatEx, (m_finalSampleCount == 0) ? -1 : (int) (m_finalSampleCount * m_settings.PCM.BlockAlign), compressionLevel, diff --git a/CUETools.Codecs.MACLib/CUETools.Codecs.MACLib.csproj b/CUETools.Codecs.MACLib/CUETools.Codecs.MACLib.csproj index e77999e..ffd074f 100644 --- a/CUETools.Codecs.MACLib/CUETools.Codecs.MACLib.csproj +++ b/CUETools.Codecs.MACLib/CUETools.Codecs.MACLib.csproj @@ -24,6 +24,7 @@ + diff --git a/CUETools.Codecs.MACLib/MACLib.cs b/CUETools.Codecs.MACLib/MACLib.cs index 8ad5252..508edf0 100644 --- a/CUETools.Codecs.MACLib/MACLib.cs +++ b/CUETools.Codecs.MACLib/MACLib.cs @@ -49,15 +49,15 @@ namespace CUETools.Codecs.MACLib }; [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal unsafe delegate int CIO_ReadDelegate(APE_CIO_Callbacks* pCIO, void* pBuffer, int nBytesToRead, out int pBytesRead); + internal unsafe delegate int CIO_ReadDelegate(void* pUserData, void* pBuffer, int nBytesToRead, out int pBytesRead); [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal unsafe delegate int CIO_WriteDelegate(APE_CIO_Callbacks* pCIO, void* pBuffer, int nBytesToWrite, out int pBytesWritten); + internal unsafe delegate int CIO_WriteDelegate(void* pUserData, void* pBuffer, int nBytesToWrite, out int pBytesWritten); [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal unsafe delegate int CIO_GetPositionDelegate(APE_CIO_Callbacks* pCIO); + internal unsafe delegate int CIO_GetPositionDelegate(void* pUserData); [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal unsafe delegate uint CIO_GetSizeDelegate(APE_CIO_Callbacks* pCIO); + internal unsafe delegate uint CIO_GetSizeDelegate(void* pUserData); [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal unsafe delegate int CIO_SeekDelegate(APE_CIO_Callbacks* pCIO, IntPtr delta, int mode); + internal unsafe delegate int CIO_SeekDelegate(void* pUserData, IntPtr delta, int mode); [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 2)] public unsafe struct WAVEFORMATEX @@ -77,14 +77,4 @@ namespace CUETools.Codecs.MACLib /// number of following bytes internal short extraSize; } - - [StructLayout(LayoutKind.Sequential), Serializable] - internal unsafe struct APE_CIO_Callbacks - { - internal IntPtr read_bytes; - internal IntPtr write_bytes; - internal IntPtr seek; - internal IntPtr get_pos; - internal IntPtr get_size; - }; } diff --git a/CUETools.Codecs.MACLib/MACLibDll.cs b/CUETools.Codecs.MACLib/MACLibDll.cs index 7784b58..850a92a 100644 --- a/CUETools.Codecs.MACLib/MACLibDll.cs +++ b/CUETools.Codecs.MACLib/MACLibDll.cs @@ -17,6 +17,18 @@ namespace CUETools.Codecs.MACLib [DllImport(DllName, CallingConvention = DllCallingConvention)] internal static extern IntPtr GetVersionString(); + [DllImport(DllName, CallingConvention = DllCallingConvention)] + internal static extern IntPtr c_APECIO_Create( + void* pUserData, + CIO_ReadDelegate CIO_Read, + CIO_WriteDelegate CIO_Write, + CIO_SeekDelegate CIO_Seek, + CIO_GetPositionDelegate CIO_GetPosition, + CIO_GetSizeDelegate CIO_GetSize); + + [DllImport(DllName, CallingConvention = DllCallingConvention)] + internal static extern void c_APECIO_Destroy(IntPtr hCIO); + [DllImport(DllName, CallingConvention = DllCallingConvention)] internal static extern IntPtr c_APECompress_Create(out int error); @@ -32,7 +44,7 @@ namespace CUETools.Codecs.MACLib [DllImport(DllName, CallingConvention = DllCallingConvention)] internal static extern int c_APECompress_StartEx( IntPtr hAPECompress, - APE_CIO_Callbacks* pCIO, + IntPtr hCIO, WAVEFORMATEX* pwfeInput, int nMaxAudioBytes, int nCompressionLevel, @@ -40,10 +52,10 @@ namespace CUETools.Codecs.MACLib int nHeaderBytes); [DllImport(DllName, CallingConvention = DllCallingConvention)] - internal static extern IntPtr c_APEDecompress_CreateEx(APE_CIO_Callbacks* pCIO, out int pErrorCode); + internal static extern IntPtr c_APEDecompress_CreateEx(IntPtr hCIO, out int pErrorCode); [DllImport(DllName, CallingConvention = DllCallingConvention)] - internal static extern int c_APEDecompress_GetInfo(IntPtr hAPEDecompress, APE_DECOMPRESS_FIELDS Field, int nParam1 = 0, int nParam2 = 0); + internal static extern IntPtr c_APEDecompress_GetInfo(IntPtr hAPEDecompress, APE_DECOMPRESS_FIELDS Field, int nParam1 = 0, int nParam2 = 0); [DllImport(DllName, CallingConvention = DllCallingConvention)] internal static extern int c_APEDecompress_Seek(IntPtr hAPEDecompress, int nBlockOffset); diff --git a/CUETools.Codecs.MACLib/StreamIO.cs b/CUETools.Codecs.MACLib/StreamIO.cs index 736a776..2c6ccbc 100644 --- a/CUETools.Codecs.MACLib/StreamIO.cs +++ b/CUETools.Codecs.MACLib/StreamIO.cs @@ -12,18 +12,15 @@ namespace CUETools.Codecs.MACLib { m_stream = stream; + // We keep the references to those callbacks to + // prevent them from being garbage collected. m_read_bytes = ReadCallback; m_write_bytes = WriteCallback; m_get_pos = TellCallback; m_get_size = GetSizeCallback; m_seek = SeekRelativeCallback; - m_callbacks = (APE_CIO_Callbacks*)Marshal.AllocHGlobal(sizeof(APE_CIO_Callbacks)).ToPointer(); - m_callbacks->read_bytes = Marshal.GetFunctionPointerForDelegate(m_read_bytes); - m_callbacks->write_bytes = Marshal.GetFunctionPointerForDelegate(m_write_bytes); - m_callbacks->get_pos = Marshal.GetFunctionPointerForDelegate(m_get_pos); - m_callbacks->get_size = Marshal.GetFunctionPointerForDelegate(m_get_size); - m_callbacks->seek = Marshal.GetFunctionPointerForDelegate(m_seek); + m_hCIO = MACLibDll.c_APECIO_Create(null, m_read_bytes, m_write_bytes, m_seek, m_get_pos, m_get_size); } public void Dispose() @@ -40,8 +37,8 @@ namespace CUETools.Codecs.MACLib _readBuffer = null; } - if (m_callbacks != null) Marshal.FreeHGlobal((IntPtr)m_callbacks); - m_callbacks = null; + MACLibDll.c_APECIO_Destroy(m_hCIO); + m_hCIO = IntPtr.Zero; } ~StreamIO() @@ -49,7 +46,7 @@ namespace CUETools.Codecs.MACLib Dispose(false); } - private int ReadCallback(APE_CIO_Callbacks* id, void* data, int bcount, out int pBytesRead) + private int ReadCallback(void* id, void* data, int bcount, out int pBytesRead) { if (_readBuffer == null || _readBuffer.Length < bcount) _readBuffer = new byte[Math.Max(bcount, 0x4000)]; @@ -59,7 +56,7 @@ namespace CUETools.Codecs.MACLib return 0; } - private int WriteCallback(APE_CIO_Callbacks* id, void* data, int bcount, out int pBytesWritten) + private int WriteCallback(void* id, void* data, int bcount, out int pBytesWritten) { if (_readBuffer == null || _readBuffer.Length < bcount) _readBuffer = new byte[Math.Max(bcount, 0x4000)]; @@ -69,25 +66,24 @@ namespace CUETools.Codecs.MACLib return 0; } - int TellCallback(APE_CIO_Callbacks* id) + int TellCallback(void* id) { return (int)m_stream.Position; } - uint GetSizeCallback(APE_CIO_Callbacks* id) + uint GetSizeCallback(void* id) { return (uint)m_stream.Length; } - int SeekRelativeCallback(APE_CIO_Callbacks* id, IntPtr delta, int mode) + int SeekRelativeCallback(void* id, IntPtr delta, int mode) { m_stream.Seek((long)delta, (SeekOrigin)(mode)); return 0; } - internal APE_CIO_Callbacks* Callbacks => m_callbacks; + internal IntPtr CIO => m_hCIO; - APE_CIO_Callbacks* m_callbacks; Stream m_stream; byte[] _readBuffer; CIO_ReadDelegate m_read_bytes; @@ -95,5 +91,6 @@ namespace CUETools.Codecs.MACLib CIO_GetPositionDelegate m_get_pos; CIO_GetSizeDelegate m_get_size; CIO_SeekDelegate m_seek; + internal IntPtr m_hCIO; } } diff --git a/CUETools.Codecs.WMA/CUETools.Codecs.WMA.csproj b/CUETools.Codecs.WMA/CUETools.Codecs.WMA.csproj index b05fe2c..285f969 100644 --- a/CUETools.Codecs.WMA/CUETools.Codecs.WMA.csproj +++ b/CUETools.Codecs.WMA/CUETools.Codecs.WMA.csproj @@ -24,7 +24,7 @@ - + diff --git a/CUETools/CUETools.sln b/CUETools/CUETools.sln index ef41f8c..dd66dc4 100644 --- a/CUETools/CUETools.sln +++ b/CUETools/CUETools.sln @@ -159,7 +159,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CUETools.AVX", "..\CUETools EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Third Party Libraries", "Third Party Libraries", "{7E402406-7E51-4F0D-8209-60824C1CD6E8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsMediaLib", "..\WindowsMediaLib\WindowsMediaLib.csproj", "{7EA4160F-3BBD-47C9-A38C-4053B64B24A8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsMediaLib", "..\ThirdParty\WindowsMediaLib\wmlib\src\WindowsMediaLib.csproj", "{7EA4160F-3BBD-47C9-A38C-4053B64B24A8}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CUETools.Codecs.WMA", "..\CUETools.Codecs.WMA\CUETools.Codecs.WMA.csproj", "{082D6B9E-326E-4D15-9798-DE70A6EDAE9E}" EndProject diff --git a/ThirdParty/MAC_SDK b/ThirdParty/MAC_SDK index fe94269..cc49a96 160000 --- a/ThirdParty/MAC_SDK +++ b/ThirdParty/MAC_SDK @@ -1 +1 @@ -Subproject commit fe94269a91e6e06be0fd652d9b1855caf7ddd420 +Subproject commit cc49a962073d241affa3314e038aa5ac8316d3d4 diff --git a/ThirdParty/WindowsMediaLib b/ThirdParty/WindowsMediaLib new file mode 160000 index 0000000..cc66087 --- /dev/null +++ b/ThirdParty/WindowsMediaLib @@ -0,0 +1 @@ +Subproject commit cc660879499ff6fd4b7d30ab83fefe1f45a38814 diff --git a/WindowsMediaLib/MMIO.cs b/WindowsMediaLib/MMIO.cs deleted file mode 100644 index b6c9495..0000000 --- a/WindowsMediaLib/MMIO.cs +++ /dev/null @@ -1,1512 +0,0 @@ -#region license - -/* -WindowsMediaLib - Provide access to Windows Media interfaces via .NET -Copyright (C) 2008 -http://sourceforge.net/projects/windowsmedianet - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#endregion - -using System; -using System.Text; -using System.Runtime.InteropServices; -using System.Security; - -using WindowsMediaLib; -using WindowsMediaLib.Defs; - -namespace MultiMedia -{ - #region Enums - - [Flags] - public enum WaveOpenFlags - { - None = 0, - FormatQuery = 0x0001, - AllowSync = 0x0002, - Mapped = 0x0004, - FormatDirect = 0x0008, - Null = 0x00000000, /* no callback */ - Window = 0x00010000, /* dwCallback is a HWND */ - Thread = 0x00020000, /* dwCallback is a THREAD */ - Function = 0x00030000, /* dwCallback is a FARPROC */ - Event = 0x00050000 /* dwCallback is an EVENT Handle */ - } - - [Flags] - public enum SupportedFormats - { - InvalidFormat = 0x00000000, /* invalid format */ - F1M08 = 0x00000001, /* 11.025 kHz, Mono, 8-bit */ - F1S08 = 0x00000002, /* 11.025 kHz, Stereo, 8-bit */ - F1M16 = 0x00000004, /* 11.025 kHz, Mono, 16-bit */ - F1S16 = 0x00000008, /* 11.025 kHz, Stereo, 16-bit */ - F2M08 = 0x00000010, /* 22.05 kHz, Mono, 8-bit */ - F2S08 = 0x00000020, /* 22.05 kHz, Stereo, 8-bit */ - F2M16 = 0x00000040, /* 22.05 kHz, Mono, 16-bit */ - F2S16 = 0x00000080, /* 22.05 kHz, Stereo, 16-bit */ - - F44M08 = 0x00000100, /* 44.1 kHz, Mono, 8-bit */ - F44S08 = 0x00000200, /* 44.1 kHz, Stereo, 8-bit */ - F44M16 = 0x00000400, /* 44.1 kHz, Mono, 16-bit */ - F44S16 = 0x00000800, /* 44.1 kHz, Stereo, 16-bit */ - F48M08 = 0x00001000, /* 48 kHz, Mono, 8-bit */ - F48S08 = 0x00002000, /* 48 kHz, Stereo, 8-bit */ - F48M16 = 0x00004000, /* 48 kHz, Mono, 16-bit */ - F48S16 = 0x00008000, /* 48 kHz, Stereo, 16-bit */ - F96M08 = 0x00010000, /* 96 kHz, Mono, 8-bit */ - F96S08 = 0x00020000, /* 96 kHz, Stereo, 8-bit */ - F96M16 = 0x00040000, /* 96 kHz, Mono, 16-bit */ - F96S16 = 0x00080000, /* 96 kHz, Stereo, 16-bit */ - } - - public enum MOWM - { - WOM_OPEN = 0x3BB, - WOM_CLOSE = 0x3BC, - WOM_DONE = 0x3BD, - } - - public enum MIWM - { - WIM_OPEN = 0x3BE, /* waveform input */ - WIM_CLOSE = 0x3BF, - WIM_DATA = 0x3C0 - } - - [Flags] - public enum WaveCapsFlags - { - None = 0, - Pitch = 0x0001, /* supports pitch control */ - PlaybackRate = 0x0002, /* supports playback rate control */ - Volume = 0x0004, /* supports volume control */ - LRVolume = 0x0008, /* separate left-right volume control */ - Sync = 0x0010, - SampleAccurate = 0x0020 - } - - [Flags] - public enum RiffChunkFlags - { - None = 0, - FindChunk = 0x0010, /* mmioDescend: find a chunk by ID */ - FindRiff = 0x0020, /* mmioDescend: find a LIST chunk */ - FindList = 0x0040, /* mmioDescend: find a RIFF chunk */ - CreateRiff = 0x0020, /* mmioCreateChunk: make a LIST chunk */ - CreateList = 0x0040 /* mmioCreateChunk: make a RIFF chunk */ - } - - [Flags] - public enum MMIOCloseFlags - { - None = 0, - FHOPEN = 0x0010 /* mmioClose: keep file handle open */ - } - - [Flags] - public enum MMIOFlushFlags - { - None = 0, - EmptyBuf = 0x0010 /* mmioFlush: empty the I/O buffer */ - } - - public enum MMIOSeekFlags - { - Set = 0, - Cur = 1, - End = 2 - } - - public enum RWMode - { - Read = 0x00000000, /* open file for reading only */ - Write = 0x00000001, /* open file for writing only */ - ReadWrite = 0x00000002 /* open file for reading and writing */ - } - - public enum MMIOError - { - NoError = 0, - FileNotFound = 257, /* file not found */ - OutOfMemory = 258, /* out of memory */ - CannotOpen = 259, /* cannot open */ - CannotClose = 260, /* cannot close */ - CannotRead = 261, /* cannot read */ - CannotWrite = 262, /* cannot write */ - CannotSeek = 263, /* cannot seek */ - CannotExpand = 264, /* cannot expand file */ - ChunkNotFound = 265, /* chunk not found */ - Unbuffered = 266, /* */ - PathNotFound = 267, /* path incorrect */ - AccessDenied = 268, /* file was protected */ - SharingViolation = 269, /* file in use */ - NetworkError = 270, /* network not responding */ - TooManyOpenFiles = 271, /* no more file handles */ - InvalidFile = 272 /* default error file error */ - } - - [Flags] - public enum MMIOFlags - { - /* constants for dwFlags field of MMIOINFO */ - Create = 0x00001000, /* create new file (or truncate file) */ - Parse = 0x00000100, /* parse new file returning path */ - Delete = 0x00000200, /* create new file (or truncate file) */ - Exist = 0x00004000, /* checks for existence of file */ - AllocBuf = 0x00010000, /* mmioOpen() should allocate a buffer */ - GetTemp = 0x00020000, /* mmioOpen() should retrieve temp name */ - - Dirty = 0x10000000, /* I/O buffer is dirty */ - - /* read/write mode numbers (bit field MMIO_RWMODE) */ - Read = 0x00000000, /* open file for reading only */ - Write = 0x00000001, /* open file for writing only */ - ReadWrite = 0x00000002, /* open file for reading and writing */ - - /* share mode numbers (bit field MMIO_SHAREMODE) */ - Compat = 0x00000000, /* compatibility mode */ - Exclusive = 0x00000010, /* exclusive-access mode */ - DenyWrite = 0x00000020, /* deny writing to other processes */ - DenyRead = 0x00000030, /* deny reading to other processes */ - DenyNone = 0x00000040, /* deny nothing to other processes */ - } - - // From MIXER_GETLINEINFOF_* defines and MIXER_OBJECTF_* defines - [Flags] - public enum MIXER_GETLINEINFOF - { - Destination = 0x00000000, - Source = 0x00000001, - LineID = 0x00000002, - ComponentType = 0x00000003, - TargetType = 0x00000004, - - Mixer = 0x00000000, - WaveOut = 0x10000000, - WaveIn = 0x20000000, - MidiOut = 0x30000000, - MidiIn = 0x40000000, - Aux = 0x50000000, - Handle = unchecked((int)0x80000000), - HMidiIn = (Handle | MidiIn), - HMidiOut = (Handle | MidiOut), - HMixer = (Handle | Mixer), - HWaveIn = (Handle | WaveIn), - HWaveOut = (Handle | WaveOut) - } - - // From MIXER_SETCONTROLDETAILSF_* defines and MIXER_OBJECTF_* defines - [Flags] - public enum MIXER_SETCONTROLDETAILSF - { - Value = 0x00000000, - Custom = 0x00000001, - - QueryMask = 0x0000000F, - - Mixer = 0x00000000, - WaveOut = 0x10000000, - WaveIn = 0x20000000, - MidiOut = 0x30000000, - MidiIn = 0x40000000, - Aux = 0x50000000, - Handle = unchecked((int)0x80000000), - HMidiIn = (Handle | MidiIn), - HMidiOut = (Handle | MidiOut), - HMixer = (Handle | Mixer), - HWaveIn = (Handle | WaveIn), - HWaveOut = (Handle | WaveOut) - } - - // From MIXER_GETLINECONTROLSF_* defines combined with MIXER_OBJECTF_* defines - [Flags] - public enum MIXER_GETLINECONTROLSF - { - All = 0x00000000, - OneByID = 0x00000001, - OneByType = 0x00000002, - QueryMask = 0x0000000F, - - Mixer = 0x00000000, - WaveOut = 0x10000000, - WaveIn = 0x20000000, - MidiOut = 0x30000000, - MidiIn = 0x40000000, - Aux = 0x50000000, - Handle = unchecked((int)0x80000000), - HMidiIn = (Handle | MidiIn), - HMidiOut = (Handle | MidiOut), - HMixer = (Handle | Mixer), - HWaveIn = (Handle | WaveIn), - HWaveOut = (Handle | WaveOut) - } - - // From MIXER_OBJECTF_* defines - [Flags] - public enum MIXER_OBJECTF - { - GetControlDetailsF_Value = 0x0, - GetControlDetailsF_ListText = 0x00000001, - - CallBack_Window = 0x00010000, /* dwCallback is an HWND */ - - Mixer = 0x00000000, - WaveOut = 0x10000000, - WaveIn = 0x20000000, - MidiOut = 0x30000000, - MidiIn = 0x40000000, - Aux = 0x50000000, - Handle = unchecked((int)0x80000000), - HMidiIn = (Handle | MidiIn), - HMidiOut = (Handle | MidiOut), - HMixer = (Handle | Mixer), - HWaveIn = (Handle | WaveIn), - HWaveOut = (Handle | WaveOut) - } - - // From MIXERCONTROL_CONTROLF_* defines - [Flags] - public enum MIXERCONTROL_CONTROLF - { - None = 0, - Uniform = 0x00000001, - Multiple = 0x00000002, - Disabled = unchecked((int)0x80000000) - } - - // From MIXERCONTROL_CONTROLTYPE defines - [Flags] - public enum MIXERCONTROL_CONTROLTYPE - { - ClassFader = 0x50000000, - ClassList = 0x70000000, - SCListSingle = 0x00000000, - UnitsBoolean = 0x00010000, - UnitsUnsigned = 0x30000, - SCListMultiple = 0x01000000, - - Fader = (ClassFader | UnitsUnsigned), - MultipleSelect = (ClassList | SCListMultiple | UnitsBoolean), - SingleSelect = (ClassList | SCListSingle | UnitsBoolean), - Mixer = (MultipleSelect + 1), - Mux = (SingleSelect + 1), - Volume = (Fader + 1) - } - - // From MIXERCONTROL_CT_* defines combined with MIXERCONTROL_CONTROLTYPE_* defines - [Flags] - public enum ControlType - { - Class_Mask = unchecked((int)0xF0000000), - Class_Custom = 0x00000000, - Class_Meter = 0x10000000, - Class_Switch = 0x20000000, - Class_Number = 0x30000000, - Class_Slider = 0x40000000, - Class_Fader = 0x50000000, - Class_Time = 0x60000000, - Class_List = 0x70000000, - - SubClassMask = 0x0F000000, - - SC_SwitchBoolean = 0x00000000, - SC_SwitchButton = 0x01000000, - - SC_MeterPolled = 0x00000000, - - SC_TimeMicroSecs = 0x00000000, - SC_TimeMilliSecs = 0x01000000, - - SC_ListSingle = 0x00000000, - SC_ListMultiple = 0x01000000, - - Units_Mask = 0x00FF0000, - Units_Custom = 0x00000000, - Units_Boolean = 0x00010000, - Units_Signed = 0x00020000, - Units_Unsigned = 0x00030000, - Units_Decibels = 0x00040000, /* in 10ths */ - Units_Percent = 0x00050000, /* in 10ths */ - - Custom = (Class_Custom | Units_Custom), - BooleanMeter = (Class_Meter | SC_MeterPolled | Units_Boolean), - SignedMeter = (Class_Meter | SC_MeterPolled | Units_Signed), - PeakMeter = (SignedMeter + 1), - UnsignedMeter = (Class_Meter | SC_MeterPolled | Units_Unsigned), - Boolean = (Class_Switch | SC_SwitchBoolean | Units_Boolean), - OnOff = (Boolean + 1), - Mute = (Boolean + 2), - Mono = (Boolean + 3), - Loudness = (Boolean + 4), - StereoEnh = (Boolean + 5), - BassBoost = (Boolean + 0x00002277), - Button = (Class_Switch | SC_SwitchButton | Units_Boolean), - Decibels = (Class_Number | Units_Decibels), - Signed = (Class_Number | Units_Signed), - Unsigned = (Class_Number | Units_Unsigned), - Percent = (Class_Number | Units_Percent), - Slider = (Class_Slider | Units_Signed), - Pan = (Slider + 1), - QSoundPan = (Slider + 2), - Fader = (Class_Fader | Units_Unsigned), - Volume = (Fader + 1), - Bass = (Fader + 2), - Treble = (Fader + 3), - Equalizer = (Fader + 4), - SingleSelect = (Class_List | SC_ListSingle | Units_Boolean), - Mux = (SingleSelect + 1), - MultipleSelect = (Class_List | SC_ListMultiple | Units_Boolean), - Mixer = (MultipleSelect + 1), - MicroTime = (Class_Time | SC_TimeMicroSecs | Units_Unsigned), - MilliTime = (Class_Time | SC_TimeMilliSecs | Units_Unsigned) - } - - // From MIXERLINE_TARGETTYPE_* defines - public enum MIXERLINE_TARGETTYPE - { - Undefined = 0, - WaveOut, - WaveIn, - MidiOut, - MidiIn, - Aux - } - - // From MIXERLINE_COMPONENTTYPE_* defines - public enum MIXERLINE_COMPONENTTYPE - { - DST_First = 0x00000000, - DST_Undefined = (DST_First + 0), - DST_Digital = (DST_First + 1), - DST_Line = (DST_First + 2), - DST_Monitor = (DST_First + 3), - DST_Speakers = (DST_First + 4), - DST_Headphones = (DST_First + 5), - DST_Telephone = (DST_First + 6), - DST_WaveIn = (DST_First + 7), - DST_VoiceIn = (DST_First + 8), - DST_Last = (DST_First + 8), - - SRC_First = 0x00001000, - SRC_Undefined = (SRC_First + 0), - SRC_Digital = (SRC_First + 1), - SRC_Line = (SRC_First + 2), - SRC_Microphone = (SRC_First + 3), - SRC_Synthesizer = (SRC_First + 4), - SRC_CompactDisc = (SRC_First + 5), - SRC_Telephone = (SRC_First + 6), - SRC_PCSpeaker = (SRC_First + 7), - SRC_WaveOut = (SRC_First + 8), - SRC_Auxillary = (SRC_First + 9), - SRC_Analog = (SRC_First + 10), - SRC_Last = (SRC_First + 10), - - Invalid = -1 - } - - // From MIXERLINE_LINEF_* defines - [Flags] - public enum MIXERLINE_LINEF - { - None = 0, - Active = 0x00000001, - Disconnected = 0x00008000, - Source = unchecked((int)0x80000000) - } - - // From MMSYSERR_* defines - public enum MMSYSERR - { - NoError = 0, /* no error */ - Error, /* unspecified error */ - BadDeviceID, /* device ID out of range */ - NotEnabled, /* driver failed enable */ - Allocated, /* device already allocated */ - InvalHandle, /* device handle is invalid */ - NoDriver, /* no device driver present */ - NoMem, /* memory allocation error */ - NotSupported, /* function isn't supported */ - BadErrNum, /* error value out of range */ - InvalFlag, /* invalid flag passed */ - InvalParam, /* invalid parameter passed */ - HandleBusy, /* handle being used simultaneously on another thread (eg callback) */ - InvalidAlias, /* specified alias not found */ - BadDB, /* bad registry database */ - KeyNotFound, /* registry key not found */ - ReadError, /* registry read error */ - WriteError, /* registry write error */ - DeleteError, /* registry delete error */ - ValNotFound, /* registry value not found */ - NoDriverCB, /* driver does not call DriverCallback */ - MoreData, /* more data to be returned */ - - InvalLine = (1024 + 0), - InvalControl, - InvalValue - } - - #endregion - - #region Structs - - [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode), - UnmanagedName("WAVEOUTCAPSW")] - public class WaveOutCaps - { - public short wMid; /* manufacturer ID */ - public short wPid; /* product ID */ - public int vDriverVersion; /* version of the driver */ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string szPname; /* product name (NULL terminated string) */ - public SupportedFormats dwFormats; /* formats supported */ - public short wChannels; /* number of sources supported */ - public short wReserved1; /* packing */ - public WaveCapsFlags dwSupport; /* functionality supported by driver */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode), - UnmanagedName("WAVEINCAPSW")] - public class WaveInCaps - { - public short wMid; - public short wPid; - public int vDriverVersion; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string szPname; - public SupportedFormats dwFormats; - public short wChannels; - public short wReserved1; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("MMTIME")] - public class MMTIME - { - [Flags] - public enum MMTimeFlags - { - MS = 0x0001, /* time in milliseconds */ - Samples = 0x0002, /* number of wave samples */ - Bytes = 0x0004, /* current byte offset */ - SMPTE = 0x0008, /* SMPTE time */ - Midi = 0x0010, /* MIDI time */ - Ticks = 0x0020 /* Ticks within MIDI stream */ - } - - public MMTimeFlags wType; - public int u; - public int x; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("WAVEHDR")] - public class WAVEHDR : IDisposable - { - [Flags] - public enum WHDR - { - None = 0x0, - Done = 0x00000001, /* done bit */ - Prepared = 0x00000002, /* set if this header has been prepared */ - BeginLoop = 0x00000004, /* loop start block */ - EndLoop = 0x00000008, /* loop end block */ - InQueue = 0x00000010 /* reserved for driver */ - } - - public IntPtr lpData; - public int dwBufferLength; - public int dwBytesRecorded; - public IntPtr dwUser; - public WHDR dwFlags; - public int dwLoops; - public IntPtr lpNext; - public IntPtr Reserved; - - public WAVEHDR() - { - } - - public WAVEHDR(int iMaxSize) - { - lpData = Marshal.AllocCoTaskMem(iMaxSize); - dwBufferLength = iMaxSize; - dwUser = IntPtr.Zero; - dwFlags = WHDR.None; - dwLoops = 0; - lpNext = IntPtr.Zero; - Reserved = IntPtr.Zero; - } - - #region IDisposable Members - - public void Dispose() - { - if (lpData != IntPtr.Zero) - { - Marshal.FreeCoTaskMem(lpData); - lpData = IntPtr.Zero; - } - } - - #endregion - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("MMCKINFO")] - public class MMCKINFO - { - public FourCC ckid; - public int ckSize; - public FourCC fccType; - public int dwDataOffset; - public MMIOFlags dwFlags; - } - - [StructLayout(LayoutKind.Sequential, Pack=1), UnmanagedName("MMIOINFO")] - public class MMIOINFO - { - public MMIOFlags dwFlags; - public FourCC fccIOProc; - public IntPtr pIOProc; - public MMIOError wErrorRet; - public IntPtr htask; - public int cchBuffer; - public IntPtr pchBuffer; - public IntPtr pchNext; - public IntPtr pchEndRead; - public IntPtr pchEndWrite; - public int lBufOffset; - public int lDiskOffset; - public int adwInfo1; - public int adwInfo2; - public int adwInfo3; - public int dwReserved1; - public int dwReserved2; - public IntPtr hmmio; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode), UnmanagedName("MIXERCAPS")] - public class MixerCaps - { - public const int MAXPNAMELEN = 32; - - public short wMid; - public short wPid; - public int vDriverVersion; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)] - public string szPname; - public int fdwSupport; // Zero - public int cDestinations; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1), UnmanagedName("MIXERCONTROLDETAILS")] - public class MixerControlDetails - { - public int cbStruct; // size in Bytes of MIXERCONTROLDETAILS - public int dwControlID; // control id to get/set details on - public int cChannels; // number of channels in paDetails array - public MCDUnion item; // hwndOwner or cMultipleItems - public int cbDetails; // size of _one_ details_XX struct - public IntPtr paDetails; // pointer to array of details_XX structs - - public MixerControlDetails() - { - item = new MCDUnion(); - } - } - - [StructLayout(LayoutKind.Explicit, Pack = 1)] - public class MCDUnion - { - [FieldOffset(0)] - public IntPtr hwndOwner; - [FieldOffset(0)] - public int cMultipleItems; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1), UnmanagedName("MIXERLINECONTROLS")] - public class MixerLineControls - { - public int cbStruct; // size in Byte of MIXERLINECONTROLS - public int dwLineID; // line id (from MIXERLINE.dwLineID) - public int dwControl; // MIXER_GETLINECONTROLSF_ONEBYID or MIXER_GETLINECONTROLSF_ONEBYTYPE - public int cControls; // count of controls pmxctrl points to - public int cbmxctrl; // size in Byte of _one_ MIXERCONTROL - public MixerControl[] pamxctrl; // pointer to first MIXERCONTROL array - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("MIXERCONTROLDETAILS_UNSIGNED")] - public class MixerControlDetailsUnsigned - { - public int dwValue; // value of the control - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("MIXERCONTROLDETAILS_SIGNED")] - public struct MixerControlDetailsSigned - { - public int dwValue; // value of the control - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("MIXERCONTROLDETAILS_BOOLEAN")] - public struct MixerControlDetailsBoolean - { - [MarshalAs(UnmanagedType.Bool)] - public bool fValue; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode), UnmanagedName("MIXERCONTROLDETAILS_LISTTEXT")] - public struct MixerControlDetailsListText - { - public const int MIXER_LONG_NAME_CHARS = 64; - - public int dwParam1; - public int dwParam2; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_LONG_NAME_CHARS)] - public string szName; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode), UnmanagedName("MIXERLINE")] - public class MixerLine - { - public const int MIXER_SHORT_NAME_CHARS = 16; - public const int MIXER_LONG_NAME_CHARS = 64; - public const int MAXPNAMELEN = 32; - - public int cbStruct; // size of MIXERLINE structure - public int dwDestination; // zero based destination index - public int dwSource; // zero based source index (if source) - public int dwLineID; // unique line id for mixer device - public MIXERLINE_LINEF fdwLine; // state/information about line - public IntPtr dwUser; // driver specific information - public MIXERLINE_COMPONENTTYPE dwComponentType; // component type line connects to - public int cChannels; // number of channels line supports - public int cConnections; // number of connections (possible) - public int cControls; // number of controls at this line - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_SHORT_NAME_CHARS)] - public string szShortName; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_LONG_NAME_CHARS)] - public string szName; - public MIXERLINE_TARGETTYPE dwType; - public int dwDeviceID; - public short wMid; - public short wPid; - public int vDriverVersion; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)] - public string szPname; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode), UnmanagedName("MIXERCONTROL")] - public class MixerControl - { - public const int MIXER_SHORT_NAME_CHARS = 16; - public const int MIXER_LONG_NAME_CHARS = 64; - public const int RESERVED1 = 4; - public const int RESERVED2 = 5; - - public int cbStruct; // size in Byte of MIXERCONTROL - public int dwControlID; // unique control id for mixer device - public ControlType dwControlType; // MIXERCONTROL_CONTROLTYPE_xxx - public MIXERCONTROL_CONTROLF fdwControl; // MIXERCONTROL_CONTROLF_xxx - public int cMultipleItems; // if MIXERCONTROL_CONTROLF_MULTIPLE set - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_SHORT_NAME_CHARS)] - public string szShortName; // short name of control - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_LONG_NAME_CHARS)] - public string szName; // int name of control - public int lMinimum; // Minimum value - public int lMaximum; // Maximum value - [MarshalAs(UnmanagedType.ByValArray, SizeConst = RESERVED1)] - public int[] reservedBytes1; // reserved structure space - public int cSteps; // # of steps between min & max - [MarshalAs(UnmanagedType.ByValArray, SizeConst = RESERVED2)] - public int[] reservedBytes2; // reserved structure space - } - - #endregion - - public static class MMIO - { - public delegate int MMIOProc( - [In] string lpmmioinfo, - int uMsg, - IntPtr lParam1, - IntPtr lParam2 - ); - - public static string Errorstring(MMIOError i) - { - string sRet; - - switch (i) - { - case MMIOError.NoError: - sRet = "No error"; - break; - case MMIOError.FileNotFound: - sRet = "File not found"; - break; - case MMIOError.OutOfMemory: - sRet = "Out of memory"; - break; - case MMIOError.CannotOpen: - sRet = "Cannot open"; - break; - case MMIOError.CannotClose: - sRet = "Cannot close"; - break; - case MMIOError.CannotRead: - sRet = "Cannot read"; - break; - case MMIOError.CannotWrite: - sRet = "Cannot write"; - break; - case MMIOError.CannotSeek: - sRet = "Cannot seek"; - break; - case MMIOError.CannotExpand: - sRet = "Cannot expand file"; - break; - case MMIOError.ChunkNotFound: - sRet = "Chunk not found"; - break; - case MMIOError.Unbuffered: - sRet = "Unbuffered"; - break; - case MMIOError.PathNotFound: - sRet = "Path incorrect"; - break; - case MMIOError.AccessDenied: - sRet = "File was protected (Access denied)"; - break; - case MMIOError.SharingViolation: - sRet = "file in use (Sharing violation)"; - break; - case MMIOError.NetworkError: - sRet = "Network not responding"; - break; - case MMIOError.TooManyOpenFiles: - sRet = "No more file handles"; - break; - case MMIOError.InvalidFile: - sRet = "Invalid File"; - break; - default: - sRet = "Unknown error number: " + i.ToString(); - break; - } - return sRet; - } - - public static void ThrowExceptionForError(MMIOError i) - { - if (i != MMIOError.NoError) - { - throw new Exception(Errorstring(i)); - } - } - - #region Externs - -#if false - // These methods are unnecessary or deprecated - - [DllImport("winmm.dll", - CharSet = CharSet.Unicode, - ExactSpelling=true, - EntryPoint="mmioStringToFOURCCW"), - SuppressUnmanagedCodeSecurity] - public static extern FourCC mmioStringToFOURCC( - [In] string sz, - int uFlags); - - //LPMMIOPROC WINAPI mmioInstallIOProc( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); -#endif - - [DllImport("winmm.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "mmioRenameW"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError Rename( - [In] string pszFileName, - [In] string pszNewFileName, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMIOINFO pmmioinfo, - int fdwRename); - - [DllImport("winmm.dll", EntryPoint = "mmioGetInfo"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError GetInfo( - IntPtr hmmio, - [Out, MarshalAs(UnmanagedType.LPStruct)] MMIOINFO pmmioinfo, - int fuInfo); - - [DllImport("winmm.dll", EntryPoint = "mmioSetInfo"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError SetInfo( - IntPtr hmmio, - [In, MarshalAs(UnmanagedType.LPStruct)] MMIOINFO pmmioinfo, - int fuInfo); - - [DllImport("winmm.dll", EntryPoint = "mmioSetBuffer"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError SetBuffer( - IntPtr hmmio, - IntPtr pchBuffer, - int cchBuffer, - int fuBuffer); - - [DllImport("winmm.dll", EntryPoint = "mmioAdvance"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError Advance( - IntPtr hmmio, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMIOINFO pmmioinfo, - RWMode fuAdvance); - - [DllImport("winmm.dll", EntryPoint = "mmioSendMessage"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError SendMessage( - IntPtr hmmio, - int uMsg, - IntPtr lParam1, - IntPtr lParam2); - - [DllImport("winmm.dll", EntryPoint = "mmioClose"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError Close( - IntPtr hmmio, - MMIOCloseFlags uFlags); - - [DllImport("winmm.dll", EntryPoint = "mmioFlush"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError Flush( - IntPtr hmmio, - MMIOFlushFlags uFlags); - - [DllImport("winmm.dll", EntryPoint = "mmioDescend"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError Descend( - IntPtr hmmio, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMCKINFO lpck, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMCKINFO lpckParent, - RiffChunkFlags uFlags); - - [DllImport("winmm.dll", EntryPoint = "mmioCreateChunk"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError CreateChunk( - IntPtr hmmio, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMCKINFO lpck, - RiffChunkFlags uFlags); - - [DllImport("winmm.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "mmioOpenW"), - SuppressUnmanagedCodeSecurity] - public static extern IntPtr Open( - [In] string szFileName, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMIOINFO lpmmioinfo, - MMIOFlags dwOpenFlags); - - [DllImport("winmm.dll", EntryPoint = "mmioRead"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError Read( - IntPtr hmmio, - IntPtr pch, - int cch); - - [DllImport("winmm.dll", EntryPoint = "mmioWrite"), - SuppressUnmanagedCodeSecurity] - public static extern int Write( - IntPtr hmmio, - IntPtr h, - int cch); - - [DllImport("winmm.dll", EntryPoint = "mmioSeek"), - SuppressUnmanagedCodeSecurity] - public static extern int Seek( - IntPtr hmmio, - int lOffset, - MMIOSeekFlags iOrigin); - - [DllImport("winmm.dll", EntryPoint = "mmioAscend"), - SuppressUnmanagedCodeSecurity] - public static extern MMIOError Ascend( - IntPtr hmmio, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMCKINFO lpck, - int uFlags); // must be zero - - #endregion - - } - - public static class waveIn - { - private const short MAXERRORLENGTH = 256; - - public delegate void WaveInDelegate( - IntPtr hwo, - MIWM uMsg, - IntPtr dwInstance, - IntPtr dwParam1, - IntPtr dwParam2); - - public static void ThrowExceptionForError(int rc) - { - if (rc != 0) - { - StringBuilder foo = new StringBuilder(MAXERRORLENGTH); - GetErrorText(rc, foo, MAXERRORLENGTH); - - throw new Exception(foo.ToString()); - } - } - - #region Externs - - // These methods are unnecessary or deprecated - - [DllImport("winmm.dll", EntryPoint="waveInGetID"), - SuppressUnmanagedCodeSecurity] - public static extern int GetID( - IntPtr hwi, - out int puDeviceID); - - [DllImport("winmm.dll", EntryPoint = "waveInGetPosition"), - SuppressUnmanagedCodeSecurity] - public static extern int GetPosition( - IntPtr hwi, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMTIME pmmt, - int cbmmt); - - [DllImport("winmm.dll", EntryPoint = "waveInMessage"), - SuppressUnmanagedCodeSecurity] - public static extern int Message( - IntPtr hwi, - int uMsg, - IntPtr dw1, - IntPtr dw2); - - [DllImport("winmm.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "waveInGetDevCapsW"), - SuppressUnmanagedCodeSecurity] - public static extern int GetDevCaps( - int uDeviceID, - [Out, MarshalAs(UnmanagedType.LPStruct)] WaveInCaps pwic, - int cbwic); - - [DllImport("winmm.dll", EntryPoint = "waveInGetNumDevs"), - SuppressUnmanagedCodeSecurity] - public static extern int GetNumDevs(); - - [DllImport("winmm.dll", EntryPoint = "waveInStop"), - SuppressUnmanagedCodeSecurity] - public static extern int Stop( - IntPtr hwi); - - [DllImport("winmm.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "waveInGetErrorTextW"), - SuppressUnmanagedCodeSecurity] - public static extern int GetErrorText( - int errvalue, - [Out] StringBuilder lpText, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveInOpen"), - SuppressUnmanagedCodeSecurity] - public static extern int Open( - out IntPtr hwi, - int uDeviceID, - [In, MarshalAs(UnmanagedType.LPStruct)] WaveFormatEx b, - WaveInDelegate dwCallback, - IntPtr dwCallbackInstance, - WaveOpenFlags dwFlags); - - [DllImport("winmm.dll", EntryPoint = "waveInPrepareHeader"), - SuppressUnmanagedCodeSecurity] - public static extern int PrepareHeader( - IntPtr hwi, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WAVEHDR lpWaveInHdr, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveInUnprepareHeader"), - SuppressUnmanagedCodeSecurity] - public static extern int UnprepareHeader( - IntPtr hwi, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WAVEHDR lpWaveInHdr, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveInStart"), - SuppressUnmanagedCodeSecurity] - public static extern int Start( - IntPtr hwi); - - [DllImport("winmm.dll", EntryPoint = "waveInAddBuffer"), - SuppressUnmanagedCodeSecurity] - public static extern int AddBuffer( - IntPtr hwi, - IntPtr lpWaveInHdr, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveInClose"), - SuppressUnmanagedCodeSecurity] - public static extern int Close( - IntPtr hwi); - - [DllImport("winmm.dll", EntryPoint = "waveInReset"), - SuppressUnmanagedCodeSecurity] - public static extern int Reset( - IntPtr hwi); - - #endregion - - } - - public static class waveOut - { - private const short MAXERRORLENGTH = 256; - - public delegate void WaveOutDelegate( - IntPtr hwo, - MOWM uMsg, - IntPtr dwInstance, - IntPtr dwParam1, - IntPtr dwParam2); - - public static void ThrowExceptionForError(int rc) - { - if (rc != 0) - { - StringBuilder foo = new StringBuilder(MAXERRORLENGTH); - GetErrorText(rc, foo, MAXERRORLENGTH); - - throw new Exception(foo.ToString()); - } - } - - #region Externs - - [DllImport("winmm.dll", EntryPoint = "waveOutGetID"), - SuppressUnmanagedCodeSecurity] - public static extern int GetID( - IntPtr hwo, - out int puDeviceID); - - [DllImport("winmm.dll", EntryPoint = "waveOutGetNumDevs"), - SuppressUnmanagedCodeSecurity] - public static extern int GetNumDevs(); - - [DllImport("winmm.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "waveOutGetDevCapsW"), - SuppressUnmanagedCodeSecurity] - public static extern int GetDevCaps( - int uDeviceID, - [Out, MarshalAs(UnmanagedType.LPStruct)] WaveOutCaps pwoc, - int cbwoc); - - [DllImport("winmm.dll", EntryPoint = "waveOutGetPitch"), - SuppressUnmanagedCodeSecurity] - public static extern int GetPitch( - IntPtr hwo, - out int pdwPitch); - - [DllImport("winmm.dll", EntryPoint = "waveOutSetPitch"), - SuppressUnmanagedCodeSecurity] - public static extern int SetPitch( - IntPtr hwo, - int dwPitch); - - [DllImport("winmm.dll", EntryPoint = "waveOutGetPlaybackRate"), - SuppressUnmanagedCodeSecurity] - public static extern int GetPlaybackRate( - IntPtr hwo, - out int pdwRate); - - [DllImport("winmm.dll", EntryPoint = "waveOutSetPlaybackRate"), - SuppressUnmanagedCodeSecurity] - public static extern int SetPlaybackRate( - IntPtr hwo, - int dwRate); - - [DllImport("winmm.dll", EntryPoint = "waveOutMessage"), - SuppressUnmanagedCodeSecurity] - public static extern int Message( - IntPtr hwo, - int uMsg, - IntPtr dw1, - IntPtr dw2); - - [DllImport("winmm.dll", EntryPoint = "waveOutBreakLoop"), - SuppressUnmanagedCodeSecurity] - public static extern int BreakLoop( - IntPtr hwo); - - [DllImport("winmm.dll", EntryPoint = "waveOutGetPosition"), - SuppressUnmanagedCodeSecurity] - public static extern int GetPosition( - IntPtr hWaveOut, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MMTIME lpInfo, - int uSize); - - [DllImport("winmm.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "waveOutGetErrorTextW"), - SuppressUnmanagedCodeSecurity] - public static extern int GetErrorText( - int errvalue, - [Out] StringBuilder lpText, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveOutOpen"), - SuppressUnmanagedCodeSecurity] - public static extern int Open( - out IntPtr hWaveOut, - int uDeviceID, - [In, MarshalAs(UnmanagedType.LPStruct)] WaveFormatEx b, - WaveOutDelegate dwCallback, // If using Function callback - IntPtr dwCallbackInstance, - WaveOpenFlags dwFlags); - - [DllImport("winmm.dll", EntryPoint = "waveOutOpen"), - SuppressUnmanagedCodeSecurity] - public static extern int Open( - out IntPtr hWaveOut, - int uDeviceID, - [In, MarshalAs(UnmanagedType.LPStruct)] WaveFormatEx b, - IntPtr dwCallback, // If using Event - IntPtr dwCallbackInstance, - WaveOpenFlags dwFlags); - - [DllImport("winmm.dll", EntryPoint = "waveOutPrepareHeader"), - SuppressUnmanagedCodeSecurity] - public static extern int PrepareHeader( - IntPtr hWaveOut, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WAVEHDR lpWaveOutHdr, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveOutReset"), - SuppressUnmanagedCodeSecurity] - public static extern int Reset( - IntPtr hWaveOut); - - [DllImport("winmm.dll", EntryPoint = "waveOutUnprepareHeader"), - SuppressUnmanagedCodeSecurity] - public static extern int UnprepareHeader( - IntPtr hWaveOut, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WAVEHDR lpWaveOutHdr, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveOutClose"), - SuppressUnmanagedCodeSecurity] - public static extern int Close( - IntPtr hWaveOut); - - [DllImport("winmm.dll", EntryPoint = "waveOutWrite"), - SuppressUnmanagedCodeSecurity] - public static extern int Write( - IntPtr hWaveOut, - IntPtr lpWaveOutHdr, - int uSize); - - [DllImport("winmm.dll", EntryPoint = "waveOutPause"), - SuppressUnmanagedCodeSecurity] - public static extern int Pause( - IntPtr hWaveOut); - - [DllImport("winmm.dll", EntryPoint = "waveOutRestart"), - SuppressUnmanagedCodeSecurity] - public static extern int Restart( - IntPtr hWaveOut); - - [DllImport("winmm.dll", EntryPoint = "waveOutSetVolume"), - SuppressUnmanagedCodeSecurity] - public static extern int SetVolume( - IntPtr uDeviceID, - int dwVolume); - - [DllImport("winmm.dll", EntryPoint = "waveOutGetVolume"), - SuppressUnmanagedCodeSecurity] - public static extern int GetVolume( - IntPtr uDeviceID, - out int lpdwVolume); - - #endregion - - } - - public static class Mixer - { - public const int LINE_CHANGE = 0x3D0; /* mixer line change notify */ - public const int CONTROL_CHANGE = 0x3D1; /* mixer control change notify */ - - #region Externals - - [DllImport("winmm.dll", EntryPoint = "mixerSetControlDetails"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR SetControlDetails( - IntPtr hmxobj, - [In, MarshalAs(UnmanagedType.LPStruct)] MixerControlDetails pmxcd, - MIXER_SETCONTROLDETAILSF fdwDetails); - - [DllImport("winmm.dll", CharSet = CharSet.Unicode, ExactSpelling = true, EntryPoint = "mixerGetControlDetailsW"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR GetControlDetails( - IntPtr hmxobj, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MixerControlDetails pmxcd, - MIXER_OBJECTF fdwDetails); - - [DllImport("winmm.dll", EntryPoint = "mixerOpen"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR Open( - out IntPtr phmx, - int uMxId, - IntPtr dwCallback, - IntPtr dwInstance, - MIXER_OBJECTF fdwOpen); - - [DllImport("winmm.dll", EntryPoint = "mixerClose"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR Close( - IntPtr phmx); - - [DllImport("winmm.dll", CharSet = CharSet.Unicode, ExactSpelling = true, EntryPoint = "mixerGetLineInfoW"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR GetLineInfo( - IntPtr hmxobj, - [In, Out, MarshalAs(UnmanagedType.LPStruct)] MixerLine pmxl, - MIXER_GETLINEINFOF fdwInfo); - - [DllImport("winmm.dll", CharSet = CharSet.Unicode, ExactSpelling = true, EntryPoint = "mixerGetLineControlsW"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR GetLineControls( - IntPtr hmxobj, - [In, Out, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(MLCMarshaler))] MixerLineControls pmxlc, - MIXER_GETLINECONTROLSF fdwControls); - - [DllImport("winmm.dll", CharSet = CharSet.Unicode, ExactSpelling = true, EntryPoint = "mixerGetDevCapsW"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR GetDevCaps( - IntPtr uMxId, - [Out, MarshalAs(UnmanagedType.LPStruct)] MixerCaps pmxcaps, - int cbmxcaps); - - [DllImport("winmm.dll", EntryPoint = "mixerGetNumDevs"), - SuppressUnmanagedCodeSecurity] - public static extern int GetNumDevs(); - - [DllImport("winmm.dll", EntryPoint = "mixerGetID"), - SuppressUnmanagedCodeSecurity] - public static extern MMSYSERR GetID( - IntPtr hmxobj, - out int puMxId, - MIXER_OBJECTF fdwId); - - [DllImport("winmm.dll", EntryPoint = "mixerMessage"), - SuppressUnmanagedCodeSecurity] - public static extern int Message( - IntPtr driverID, - int uMsg, - IntPtr dwParam1, - IntPtr dwParam2); - - #endregion - - #region Public functions - - public static string Errorstring(MMSYSERR iError) - { - string sRet; - - switch (iError) - { - case MMSYSERR.NoError: - sRet = "The specified command was carried out."; - break; - case MMSYSERR.Error: - sRet = "Undefined external error."; - break; - case MMSYSERR.BadDeviceID: - sRet = "A device ID has been used that is out of range for your system."; - break; - case MMSYSERR.NotEnabled: - sRet = "The driver was not enabled."; - break; - case MMSYSERR.Allocated: - sRet = "The specified device is already in use. Wait until it is free, and then try again."; - break; - case MMSYSERR.InvalHandle: - sRet = "The specified device handle is invalid."; - break; - case MMSYSERR.NoDriver: - sRet = "There is no driver installed on your system."; - break; - case MMSYSERR.NoMem: - sRet = "There is not enough memory available for this task. Quit one or more applications to increase avai"; - break; - case MMSYSERR.NotSupported: - sRet = "This function is not supported. Use the Capabilities function to determine which functions and mes"; - break; - case MMSYSERR.BadErrNum: - sRet = "An error number was specified that is not defined in the system."; - break; - case MMSYSERR.InvalFlag: - sRet = "An invalid flag was passed to a system function."; - break; - case MMSYSERR.InvalParam: - sRet = "An invalid parameter was passed to a system function."; - break; - case MMSYSERR.HandleBusy: - sRet = "Handle being used simultaneously on another thread (eg callback)."; - break; - case MMSYSERR.InvalidAlias: - sRet = "Specified alias not found in WIN.INI."; - break; - case MMSYSERR.BadDB: - sRet = "The registry database is corrupt."; - break; - case MMSYSERR.KeyNotFound: - sRet = "The specified registry key was not found."; - break; - case MMSYSERR.ReadError: - sRet = "The registry could not be opened or could not be read."; - break; - case MMSYSERR.WriteError: - sRet = "The registry could not be written to."; - break; - case MMSYSERR.DeleteError: - sRet = "The specified registry key could not be deleted."; - break; - case MMSYSERR.ValNotFound: - sRet = "The specified registry key value could not be found."; - break; - case MMSYSERR.NoDriverCB: - sRet = "The driver did not generate a valid OPEN callback."; - break; - case MMSYSERR.MoreData: - sRet = "More data to be returned"; - break; - - case MMSYSERR.InvalLine: - sRet = "The line reference is invalid."; - break; - case MMSYSERR.InvalControl: - sRet = "The control reference is invalid."; - break; - case MMSYSERR.InvalValue: - sRet = "The value is invalid."; - break; - default: - sRet = "Unknown error code"; - break; - } - - return sRet; - } - - public static void ThrowExceptionForError(MMSYSERR i) - { - if (i != MMSYSERR.NoError) - { - throw new Exception(Errorstring(i)); - } - } - - #endregion - - } - - #region Internal code - - // Custom marshaler for Mixer.GetLineControls - internal class MLCMarshaler : ICustomMarshaler - { - // The managed object passed in to MarshalManagedToNative - protected MixerLineControls m_Control; - - protected int iMixContSize = Marshal.SizeOf(typeof(MixerControl)); - protected int iMixLineContSize = Marshal.SizeOf(typeof(MixerLineControls)); - - public IntPtr MarshalManagedToNative(object managedObj) - { - IntPtr p; - - // Cast the object back to a PropVariant - m_Control = managedObj as MixerLineControls; - - if (m_Control != null) - { - // Create an appropriately sized buffer, blank it, and send it to - // the marshaler to make the COM call with. - int iSize2 = m_Control.cControls * iMixContSize; - - p = Marshal.AllocCoTaskMem(iMixLineContSize + iSize2); -#if DEBUG - for (int x = 0; x < iMixLineContSize + iSize2; x++) - { - Marshal.WriteByte(p, x, 0xcc); - } -#endif - Marshal.StructureToPtr(m_Control, p, false); - Marshal.WriteIntPtr(p, iMixLineContSize - IntPtr.Size, new IntPtr(p.ToInt64() + iMixLineContSize)); - } - else - { - p = IntPtr.Zero; - } - - return p; - } - - // Called just after invoking the COM method. The IntPtr is the same one that just got returned - // from MarshalManagedToNative. The return value is unused. - public object MarshalNativeToManaged(IntPtr pNativeData) - { - m_Control.cbStruct = Marshal.ReadInt32(pNativeData); - m_Control.dwLineID = Marshal.ReadInt32(pNativeData, 4); - m_Control.dwControl = Marshal.ReadInt32(pNativeData, 8); - m_Control.cControls = Marshal.ReadInt32(pNativeData, 12); - m_Control.cbmxctrl = Marshal.ReadInt32(pNativeData, 16); - m_Control.pamxctrl = new MixerControl[m_Control.cControls]; - - IntPtr pData = new IntPtr(pNativeData.ToInt64() + iMixLineContSize); - - for (int x = 0; x < m_Control.cControls; x++) - { - m_Control.pamxctrl[x] = new MixerControl(); - IntPtr ip = new IntPtr(pData.ToInt64() + (x * iMixContSize)); - Marshal.PtrToStructure(ip, m_Control.pamxctrl[x]); - } - - m_Control = null; - - return m_Control; - } - - // It appears this routine is never called - public void CleanUpManagedData(object ManagedObj) - { - m_Control = null; - } - - public void CleanUpNativeData(IntPtr pNativeData) - { - Marshal.FreeCoTaskMem(pNativeData); - } - - // The number of bytes to marshal out - public int GetNativeDataSize() - { - return 0; - } - - // This method is called by interop to create the custom marshaler. The (optional) - // cookie is the value specified in MarshalCookie="asdf", or "" is none is specified. - public static ICustomMarshaler GetInstance(string cookie) - { - return new MLCMarshaler(); - } - } - - #endregion -} diff --git a/WindowsMediaLib/WMCore.cs b/WindowsMediaLib/WMCore.cs deleted file mode 100644 index ecfbdbc..0000000 --- a/WindowsMediaLib/WMCore.cs +++ /dev/null @@ -1,6428 +0,0 @@ -#region license - -/* -WindowsMediaLib - Provide access to Windows Media interfaces via .NET -Copyright (C) 2008 -http://sourceforge.net/projects/windowsmedianet - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#endregion - -using System; -using System.Text; -using System.Runtime.InteropServices; -using System.Runtime.InteropServices.ComTypes; -using System.Security; - -using WindowsMediaLib.Defs; - -namespace WindowsMediaLib -{ - /// - /// CLSID_ClientNetManager - /// - [ComImport, Guid("CD12A3CE-9C42-11D2-BEED-0060082F2054")] - public class ClientNetManager - { - } - - #region Declarations - -#if ALLOW_UNTESTED_INTERFACES - - [UnmanagedName("WMT_WATERMARK_ENTRY_TYPE")] - public enum WaterMarkEntryType - { - // Fields - Audio = 1, - Video = 2 - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("WMDRM_IMPORT_INIT_STRUCT")] - public class ImportInitStruct - { - public int dwVersion; - public int cbEncryptedSessionKeyMessage; - public IntPtr pbEncryptedSessionKeyMessage; - public int cbEncryptedKeyMessage; - public IntPtr pbEncryptedKeyMessage; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS")] - public struct MinimumOutputProtectionLevels - { - short wCompressedDigitalVideo; - short wUncompressedDigitalVideo; - short wAnalogVideo; - short wCompressedDigitalAudio; - short wUncompressedDigitalAudio; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("DRM_OPL_OUTPUT_IDS")] - public struct OPLOutputIds - { - short cIds; - Guid [] rgIds; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("DRM_OUTPUT_PROTECTION")] - public struct VideoOutputProtection - { - Guid guidId; - byte bConfigData; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("DRM_COPY_OPL")] - public struct CopyOPL - { - short wMinimumCopyLevel; - OPLOutputIds oplIdIncludes; - OPLOutputIds oplIdExcludes; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("DRM_VIDEO_OUTPUT_PROTECTION_IDS")] - public struct VideoOutputProtectionIDs - { - short cEntries; - VideoOutputProtection [] rgVop; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("DRM_PLAY_OPL")] - public struct PlayOpl - { - MinimumOutputProtectionLevels minOPL; - OPLOutputIds oplIdReserved; - VideoOutputProtectionIDs vopi; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1), UnmanagedName("DRM_VAL16")] - public struct Val16 - { - [MarshalAs(UnmanagedType.ByValArray, SizeConst=16)] byte [] val; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("WMT_WATERMARK_ENTRY")] - public struct WaterMarkEntry - { - public WaterMarkEntryType wmetType; - public Guid clsid; - public int cbDisplayName; - [MarshalAs(UnmanagedType.LPWStr)] - public string pwszDisplayName; - } - -#endif - - [Flags] - public enum LicenseStateDataFlags - { - None = 0, - Vague = 1, - OPLPresent = 2, - SAPPresent = 4 - } - - [UnmanagedName("DRM_LICENSE_STATE_CATEGORY")] - public enum LicenseStateCategory - { - NoRight = 0, - UnLimited, - Count, - From, - Until, - FromUntil, - CountFrom, - CountUntil, - CountFromUntil, - ExpirationAfterFristUse - } - - [UnmanagedName("WMT_INDEX_TYPE")] - public enum IndexType - { - None = 0, - NearestDataUnit = 1, - NearestObject = 2, - NearestCleanPoint = 3 - } - - [UnmanagedName("WM_AETYPE")] - public enum AEType - { - Exclude = 0x65, - Include = 0x69 - } - - [UnmanagedName("WMT_ATTR_DATATYPE")] - public enum AttrDataType - { - DWORD = 0, - STRING = 1, - BINARY = 2, - BOOL = 3, - QWORD = 4, - WORD = 5, - GUID = 6 - } - - [Flags, UnmanagedName("From defines")] - public enum BackupRestoreFlags - { - None = 0, - OverWrite = 0x00000001, - Individualize = 0x00000002 - } - - [UnmanagedName("WMT_CODEC_INFO_TYPE")] - public enum CodecInfoType - { - Audio = 0, - Video = 1, - Unknown = 0xffffff - } - - [Flags] - public enum CredentialFlag - { - None = 0, - AutoSavePW = 1 - } - - [Flags, UnmanagedName("WMT_CREDENTIAL_FLAGS")] - public enum CredentialFlags - { - Save = 0x1, - DontCache = 0x2, - ClearText = 0x4, - Proxy = 0x8, - Encrypt = 0x10 - } - - [Flags, UnmanagedName("WMT_FILESINK_MODE")] - public enum FileSinkMode - { - None = 0, - SingleBuffers = 0x1, - FileSinkDataUnits = 0x2, - FileSinkUnbuffered = 0x4 - } - - [UnmanagedName("WMT_INDEXER_TYPE")] - public enum IndexerType - { - // Fields - FrameNumbers = 1, - PresentationTime = 0, - TimeCode = 2 - } - - [Flags] - public enum MetaDataAccess - { - None = 0, - Write = 0x40000000, - Read = unchecked((int)0x80000000) - } - - [Flags] - public enum MetaDataShare - { - None = 0, - Read = 0x00000001, - Delete = 0x00000004 - } - - [UnmanagedName("WMT_NET_PROTOCOL")] - public enum NetProtocol - { - HTTP = 0 - } - - [UnmanagedName("NETSOURCE_URLCREDPOLICY_SETTINGS")] - public enum NetSourceURLCredPolicySettings - { - AnonymousOnly = 2, - MustPromptUser = 1, - SilentLogonOk = 0 - } - - [UnmanagedName("WMT_OFFSET_FORMAT")] - public enum OffsetFormat - { - // Fields - HundredNS = 0, - FrameNumbers = 1, - PlaylistOffset = 2, - Timecode = 3 - } - - [UnmanagedName("WMT_PLAY_MODE")] - public enum PlayMode - { - // Fields - AutoSelect = 0, - Download = 2, - Local = 1, - Streaming = 3 - } - - [UnmanagedName("WMT_PROXY_SETTINGS")] - public enum ProxySettings - { - // Fields - Auto = 2, - Browser = 3, - Manual = 1, - Max = 4, - None = 0 - } - - [Flags, UnmanagedName("WMT_RIGHTS")] - public enum Rights - { - None = 0, - Playback = 0x00000001, - CopyToNonSDMIDevice = 0x00000002, - CopyToCD = 0x00000008, - CopyToSDMIDevice = 0x00000010, - OneTime = 0x00000020, - SaveStreamProtected = 0x00000040, - Copy = 0x00000080, - CollaborativePlay = 0x00000100, - SDMITrigger = 0x00010000, - SDMINoMoreCopies = 0x00020000 - } - - [Flags, UnmanagedName("From unnamed enum")] - public enum SampleFlag - { - None = 0, - CleanPoint = 0x1, - Discontinuity = 0x2, - Dataloss = 0x4 - } - - [Flags] - public enum SampleFlagEx - { - None = 0, - NotASyncPoint = 0x2, - Dataloss = 0x4 - } - - [UnmanagedName("WMT_STATUS")] - public enum Status - { - Error = 0, - Opened = 1, - BufferingStart = 2, - BufferingStop = 3, - EOF = 4, - EndOfFile = 4, - EndOfSegment = 5, - EndOfStreaming = 6, - Locating = 7, - Connecting = 8, - NoRights = 9, - MissingCodec = 10, - Started = 11, - Stopped = 12, - Closed = 13, - Striding = 14, - Timer = 15, - IndexProgress = 16, - SaveasStart = 17, - SaveasStop = 18, - NewSourceflags = 19, - NewMetadata = 20, - BackuprestoreBegin = 21, - SourceSwitch = 22, - AcquireLicense = 23, - Individualize = 24, - NeedsIndividualization = 25, - NoRightsEx = 26, - BackuprestoreEnd = 27, - BackuprestoreConnecting = 28, - BackuprestoreDisconnecting = 29, - ErrorWithurl = 30, - RestrictedLicense = 31, - ClientConnect = 32, - ClientDisconnect = 33, - NativeOutputPropsChanged = 34, - ReconnectStart = 35, - ReconnectEnd = 36, - ClientConnectEx = 37, - ClientDisconnectEx = 38, - SetFECSpan = 39, - PrerollReady = 40, - PrerollComplete = 41, - ClientProperties = 42, - LicenseURLSignatureState = 43, - InitPlaylistBurn = 44, - TranscryptorInit = 45, - TranscryptorSeeked = 46, - TranscryptorRead = 47, - TranscryptorClosed = 48, - ProximityResult = 49, - ProximityCompleted = 50, - ContentEnabler = 51 - } - - [UnmanagedName("WMT_STORAGE_FORMAT")] - public enum StorageFormat - { - // Fields - MP3 = 0, - V1 = 1 - } - - [UnmanagedName("WMT_STREAM_SELECTION")] - public enum StreamSelection - { - CleanPointOnly = 1, - Off = 0, - On = 2 - } - - [UnmanagedName("WMT_TRANSPORT_TYPE")] - public enum TransportType - { - // Fields - Reliable = 1, - Unreliable = 0 - } - - [UnmanagedName("WMT_VERSION")] - public enum WMVersion - { - V4_0 = 0x00040000, - V7_0 = 0x00070000, - V8_0 = 0x00080000, - V9_0 = 0x00090000 - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("WMT_BUFFER_SEGMENT")] - public struct BufferSegment - { - public INSSBuffer pBuffer; - public int cbOffset; - public int cbLength; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("WMT_FILESINK_DATA_UNIT")] - public class FileSinkDataUnit - { - public BufferSegment packetHeaderBuffer; - public int cPayloads; - public IntPtr pPayloadHeaderBuffers; - public int cPayloadDataFragments; - public IntPtr pPayloadDataFragments; - } - - [StructLayout(LayoutKind.Explicit, Pack = 1)] - public class RA3Union - { - [FieldOffset(0)] - public long lOffsetStart; - [FieldOffset(0)] - public int iOffsetStart; - - [FieldOffset(0)] - public short wRange; - [FieldOffset(2)] - public int Timecode; - [FieldOffset(6)] - public int dwUserbits; - [FieldOffset(10)] - public int dwAmFlags; - - public RA3Union() - { - } - - public RA3Union(long l) - { - lOffsetStart = l; - } - - public RA3Union(int i) - { - iOffsetStart = i; - } - - public RA3Union(TimeCodeExtensionData w) - { - wRange = w.wRange; - Timecode = w.dwTimecode; - dwUserbits = w.dwUserbits; - dwAmFlags = w.dwAmFlags; - } - - } - - [StructLayout(LayoutKind.Sequential, Pack = 2), UnmanagedName("WMT_TIMECODE_EXTENSION_DATA")] - public class TimeCodeExtensionData - { - public short wRange; - public int dwTimecode; - public int dwUserbits; - public int dwAmFlags; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("WM_ADDRESS_ACCESSENTRY")] - public struct WMAddressAccessEntry - { - public int dwIPAddress; - public int dwMask; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("WM_CLIENT_PROPERTIES")] - public struct WMClientProperties - { - public int dwIPAddress; - public int dwPort; - } - - [StructLayout(LayoutKind.Sequential, Pack = 2), UnmanagedName("WM_PORT_NUMBER_RANGE")] - public struct WMPortNumberRange - { - public short wPortBegin; - public short wPortEnd; - } - - [StructLayout(LayoutKind.Sequential, Pack = 8), UnmanagedName("WM_READER_CLIENTINFO")] - public class WMReaderClientInfo - { - public int cbSize; - public string wszLang; - public string wszBrowserUserAgent; - public string wszBrowserWebPage; - public long qwReserved; - public IntPtr pReserved; - public string wszHostExe; - public long qwHostVersion; - public string wszPlayerUserAgent; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("WM_READER_STATISTICS")] - public class WMReaderStatistics - { - public int cbSize; - public int dwBandwidth; - public int cPacketsReceived; - public int cPacketsRecovered; - public int cPacketsLost; - public short wQuality; - } - - [StructLayout(LayoutKind.Sequential, Pack = 2), UnmanagedName("WM_STREAM_PRIORITY_RECORD")] - public struct WMStreamPrioritizationRecord - { - public short wStreamNumber; - public bool fMandatory; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("WM_WRITER_STATISTICS_EX")] - public struct WMWriterStatisticsEx - { - public int dwBitratePlusOverhead; - public int dwCurrentSampleDropRateInQueue; - public int dwCurrentSampleDropRateInCodec; - public int dwCurrentSampleDropRateInMultiplexer; - public int dwTotalSampleDropsInQueue; - public int dwTotalSampleDropsInCodec; - public int dwTotalSampleDropsInMultiplexer; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("WM_WRITER_STATISTICS")] - public struct WriterStatistics - { - public long qwSampleCount; - public long qwByteCount; - public long qwDroppedSampleCount; - public long qwDroppedByteCount; - public int dwCurrentBitrate; - public int dwAverageBitrate; - public int dwExpectedBitrate; - public int dwCurrentSampleRate; - public int dwAverageSampleRate; - public int dwExpectedSampleRate; - } - - [StructLayout(LayoutKind.Sequential), UnmanagedName("WM_LICENSE_STATE_DATA")] - public struct LicenseStateData - { - public LicenseStateData(byte[] b) - { - int LICENSESTATEDATASIZE = Marshal.SizeOf(typeof(DRMLicenseStateData)); - dwSize = BitConverter.ToInt32(b, 0); - dwNumStates = BitConverter.ToInt32(b, 4); - - stateData = new DRMLicenseStateData[dwNumStates]; - - for (int x = 0; x < dwNumStates; x++) - { - stateData[x] = new DRMLicenseStateData(b, (x * LICENSESTATEDATASIZE) + 8); - } - } - - public int dwSize; - public int dwNumStates; - public DRMLicenseStateData[] stateData; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4), UnmanagedName("DRM_LICENSE_STATE_DATA")] - public struct DRMLicenseStateData - { - public DRMLicenseStateData(byte[] b, int iOffset) - { - dwStreamId = BitConverter.ToInt32(b, 0 + iOffset); - dwCategory = (LicenseStateCategory)BitConverter.ToInt32(b, 4 + iOffset); - dwNumCounts = BitConverter.ToInt32(b, 8 + iOffset); - - dwCount = new int[4]; - dwCount[0] = BitConverter.ToInt32(b, 12 + iOffset); - dwCount[1] = BitConverter.ToInt32(b, 16 + iOffset); - dwCount[2] = BitConverter.ToInt32(b, 20 + iOffset); - dwCount[3] = BitConverter.ToInt32(b, 24 + iOffset); - dwNumDates = BitConverter.ToInt32(b, 28 + iOffset); - - datetime = new long[4]; - datetime[0] = BitConverter.ToInt64(b, 32 + iOffset); - datetime[1] = BitConverter.ToInt64(b, 40 + iOffset); - datetime[2] = BitConverter.ToInt64(b, 48 + iOffset); - datetime[3] = BitConverter.ToInt64(b, 56 + iOffset); - - dwVague = (LicenseStateDataFlags)BitConverter.ToInt32(b, 64 + iOffset); - } - - public int dwStreamId; - public LicenseStateCategory dwCategory; - public int dwNumCounts; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] - public int[] dwCount; - public int dwNumDates; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] - public long[] datetime; - public LicenseStateDataFlags dwVague; - } - - public static class MutexType - { - /// CLSID_WMMUTEX_Language - public static readonly Guid Language = new Guid(0xD6E22A00, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE); - - /// CLSID_WMMUTEX_Bitrate - public static readonly Guid Bitrate = new Guid(0xD6E22A01, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE); - - /// CLSID_WMMUTEX_Presentation - public static readonly Guid Presentation = new Guid(0xD6E22A02, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE); - - /// CLSID_WMMUTEX_Unknown - public static readonly Guid Unknown = new Guid(0xD6E22A03, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE); - } - - public static class BandwidthSharingType - { - /// CLSID_WMBandwidthSharing_Exclusive - public static readonly Guid Exclusive = new Guid(0xaf6060aa, 0x5197, 0x11d2, 0xb6, 0xaf, 0x00, 0xc0, 0x4f, 0xd9, 0x08, 0xe9); - - /// CLSID_WMBandwidthSharing_Partial - public static readonly Guid Partial = new Guid(0xaf6060ab, 0x5197, 0x11d2, 0xb6, 0xaf, 0x00, 0xc0, 0x4f, 0xd9, 0x08, 0xe9); - } - - [UnmanagedName("WM_SampleExtensionGUID_*")] - public sealed class WM_SampleExtensionGUID - { - public static readonly Guid OutputCleanPoint = new Guid(0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28); - public static readonly Guid Timecode = new Guid(0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e); - public static readonly Guid ChromaLocation = new Guid(0x4c5acca0, 0x9276, 0x4b2c, 0x9e, 0x4c, 0xa0, 0xed, 0xef, 0xdd, 0x21, 0x7e); - public static readonly Guid ColorSpaceInfo = new Guid(0xf79ada56, 0x30eb, 0x4f2b, 0x9f, 0x7a, 0xf2, 0x4b, 0x13, 0x9a, 0x11, 0x57); - public static readonly Guid UserDataInfo = new Guid(0x732bb4fa, 0x78be, 0x4549, 0x99, 0xbd, 0x2, 0xdb, 0x1a, 0x55, 0xb7, 0xa8); - public static readonly Guid FileName = new Guid(0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b); - public static readonly Guid ContentType = new Guid(0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc); - public static readonly Guid PixelAspectRatio = new Guid(0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8); - public static readonly Guid SampleDuration = new Guid(0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad); - public static readonly Guid SampleProtectionSalt = new Guid(0x5403deee, 0xb9ee, 0x438f, 0xaa, 0x83, 0x38, 0x4, 0x99, 0x7e, 0x56, 0x9d); - } - - #endregion - - #region Interfaces - -#if ALLOW_UNTESTED_INTERFACES - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("F369E2F0-E081-4FE6-8450-B810B2F410D1"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderTimecode - { - void GetTimecodeRangeCount( - [In] short wStreamNum, - out short pwRangeCount - ); - - void GetTimecodeRangeBounds( - [In] short wStreamNum, - [In] short wRangeNum, - out int pStartTimecode, - out int pEndTimecode - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("f6211f03-8d21-4e94-93e6-8510805f2d99"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDeviceRegistration - { - void RegisterDevice( - [In] int dwRegisterType, - [In] IntPtr pbCertificate, - int cbCertificate, - Val16 SerialNumber, - out IWMRegisteredDevice ppDevice); - - void UnregisterDevice( - [In] int dwRegisterType, - IntPtr pbCertificate, - [In] int cbCertificate, - Val16 SerialNumber); - - void GetRegistrationStats( - [In] int dwRegisterType, - out int pcRegisteredDevices); - - void GetFirstRegisteredDevice( - [In] int dwRegisterType, - out IWMRegisteredDevice ppDevice); - - void GetNextRegisteredDevice( - out IWMRegisteredDevice ppDevice); - - void GetRegisteredDeviceByID( - int dwRegisterType, - IntPtr pbCertificate, - int cbCertificate, - Val16 SerialNumber, - out IWMRegisteredDevice ppDevice); - - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("A73A0072-25A0-4c99-B4A5-EDE8101A6C39"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMMessageParser - { - void ParseRegistrationReqMsg( - IntPtr pbRegistrationReqMsg, - int cbRegistrationReqMsg, - out INSSBuffer ppDeviceCert, - out Val16 pDeviceSerialNumber); - - void ParseLicenseRequestMsg( - IntPtr pbLicenseRequestMsg, - int cbLicenseRequestMsg, - out INSSBuffer ppDeviceCert, - out Val16 pDeviceSerialNumber, - [MarshalAs(UnmanagedType.BStr)] out string pbstrAction); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("D2827540-3EE7-432C-B14C-DC17F085D3B3"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMReader - { - void AcquireLicense( - [In] int dwFlags - ); - - void CancelLicenseAcquisition(); - - void Individualize( - [In] int dwFlags - ); - - void CancelIndividualization(); - - void MonitorLicenseAcquisition(); - - void CancelMonitorLicenseAcquisition(); - - void SetDRMProperty( - [In] string pwstrName, - [In] AttrDataType dwType, - [In] byte[] pValue, - [In] short cbLength - ); - - void GetDRMProperty( - [In] string pwstrName, - out AttrDataType pdwType, - [Out] byte[] pValue, - ref short pcbLength - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("befe7a75-9f1d-4075-b9d9-a3c37bda49a0"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMReader2 : IWMDRMReader - { - #region IWMDRMReader Methods - - new void AcquireLicense( - [In] int dwFlags - ); - - new void CancelLicenseAcquisition(); - - new void Individualize( - [In] int dwFlags - ); - - new void CancelIndividualization(); - - new void MonitorLicenseAcquisition(); - - new void CancelMonitorLicenseAcquisition(); - - new void SetDRMProperty( - [In] string pwstrName, - [In] AttrDataType dwType, - [In] byte[] pValue, - [In] short cbLength - ); - - new void GetDRMProperty( - [In] string pwstrName, - out AttrDataType pdwType, - [Out] byte[] pValue, - ref short pcbLength - ); - - #endregion - - void SetEvaluateOutputLevelLicenses( - [MarshalAs(UnmanagedType.Bool)] bool fEvaluate); - - void GetPlayOutputLevels( - out PlayOpl pPlayOPL, - out int pcbLength, - out int pdwMinAppComplianceLevel); - - void GetCopyOutputLevels( - out CopyOPL pCopyOPL, - ref int pcbLength, - out int pdwMinAppComplianceLevel); - - void TryNextLicense(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMReader3 : IWMDRMReader2 - { - #region IWMDRMReader Methods - - new void AcquireLicense( - [In] int dwFlags - ); - - new void CancelLicenseAcquisition(); - - new void Individualize( - [In] int dwFlags - ); - - new void CancelIndividualization(); - - new void MonitorLicenseAcquisition(); - - new void CancelMonitorLicenseAcquisition(); - - new void SetDRMProperty( - [In] string pwstrName, - [In] AttrDataType dwType, - [In] byte[] pValue, - [In] short cbLength - ); - - new void GetDRMProperty( - [In] string pwstrName, - out AttrDataType pdwType, - [Out] byte[] pValue, - ref short pcbLength - ); - - #endregion - - #region IWMDRMReader2 Methods - - new void SetEvaluateOutputLevelLicenses( - [MarshalAs(UnmanagedType.Bool)] bool fEvaluate); - - new void GetPlayOutputLevels( - out PlayOpl pPlayOPL, - out int pcbLength, - out int pdwMinAppComplianceLevel); - - new void GetCopyOutputLevels( - out CopyOPL pCopyOPL, - ref int pcbLength, - out int pdwMinAppComplianceLevel); - - new void TryNextLicense(); - - #endregion - - void GetInclusionList( - [MarshalAs(UnmanagedType.LPStruct)] out Guid ppGuids, - out int pcGuids); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("b1a887b2-a4f0-407a-b02e-efbd23bbecdf"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMTranscryptionManager - { - void CreateTranscryptor( - out IWMDRMTranscryptor ppTranscryptor); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("69059850-6E6F-4bb2-806F-71863DDFC471"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMTranscryptor - { - void Initialize( - [MarshalAs(UnmanagedType.BStr)] string bstrFileName, - [MarshalAs(UnmanagedType.BStr)] string pbLicenseRequestMsg, - int cbLicenseRequestMsg, - out INSSBuffer ppLicenseResponseMsg, - IWMStatusCallback pCallback, - IntPtr pvContext); - - void Seek( - long hnsTime); - - void Read( - IntPtr pbData, - ref int pcbData); - - void Close(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("e0da439f-d331-496a-bece-18e5bac5dd23"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMTranscryptor2 : IWMDRMTranscryptor - { - #region IWMDRMTranscryptor Methods - - new void Initialize( - [MarshalAs(UnmanagedType.BStr)] string bstrFileName, - [MarshalAs(UnmanagedType.BStr)] string pbLicenseRequestMsg, - int cbLicenseRequestMsg, - out INSSBuffer ppLicenseResponseMsg, - IWMStatusCallback pCallback, - IntPtr pvContext); - - new void Seek( - long hnsTime); - - new void Read( - IntPtr pbData, - ref int pcbData); - - new void Close(); - - #endregion - - void SeekEx( - long cnsStartTime, - long cnsDuration, - float flRate, - [MarshalAs(UnmanagedType.Bool)] bool fIncludeFileHeader); - - void ZeroAdjustTimestamps( - [MarshalAs(UnmanagedType.Bool)] bool fEnable); - - void GetSeekStartTime( - out long pcnsTime); - - void GetDuration( - out long pcnsDuration); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("D6EA5DD0-12A0-43F4-90AB-A3FD451E6A07"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMWriter - { - void GenerateKeySeed( - [Out] StringBuilder pwszKeySeed, - ref int pcwchLength - ); - - void GenerateKeyID( - [Out] StringBuilder pwszKeyID, - ref int pcwchLength - ); - - void GenerateSigningKeyPair( - [Out] StringBuilder pwszPrivKey, - ref int pcwchPrivKeyLength, - [Out] StringBuilder pwszPubKey, - ref int pcwchPubKeyLength - ); - - void SetDRMAttribute( - [In] short wStreamNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("38ee7a94-40e2-4e10-aa3f-33fd3210ed5b"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMWriter2 : IWMDRMWriter - { - #region IWMDRMWriter Methods - - new void GenerateKeySeed( - [Out] StringBuilder pwszKeySeed, - ref int pcwchLength - ); - - new void GenerateKeyID( - [Out] StringBuilder pwszKeyID, - ref int pcwchLength - ); - - new void GenerateSigningKeyPair( - [Out] StringBuilder pwszPrivKey, - ref int pcwchPrivKeyLength, - [Out] StringBuilder pwszPubKey, - ref int pcwchPubKeyLength - ); - - new void SetDRMAttribute( - [In] short wStreamNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - #endregion - - void SetWMDRMNetEncryption( - [MarshalAs(UnmanagedType.Bool)] bool fSamplesEncrypted, - IntPtr pbKeyID, - int cbKeyID); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("a7184082-a4aa-4dde-ac9c-e75dbd1117ce"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMWriter3 : IWMDRMWriter2 - { - #region IWMDRMWriter Methods - - new void GenerateKeySeed( - [Out] StringBuilder pwszKeySeed, - ref int pcwchLength - ); - - new void GenerateKeyID( - [Out] StringBuilder pwszKeyID, - ref int pcwchLength - ); - - new void GenerateSigningKeyPair( - [Out] StringBuilder pwszPrivKey, - ref int pcwchPrivKeyLength, - [Out] StringBuilder pwszPubKey, - ref int pcwchPubKeyLength - ); - - new void SetDRMAttribute( - [In] short wStreamNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - #endregion - - #region IWMDRMWriter2 Methods - - new void SetWMDRMNetEncryption( - [MarshalAs(UnmanagedType.Bool)] bool fSamplesEncrypted, - IntPtr pbKeyID, - int cbKeyID); - - #endregion - - void SetProtectStreamSamples( - [In, MarshalAs(UnmanagedType.LPStruct)] ImportInitStruct pImportInitStruct); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("6967F2C9-4E26-4b57-8894-799880F7AC7B"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMLicenseRevocationAgent - { - void GetLRBChallenge( - IntPtr pMachineID, - int dwMachineIDLength, - IntPtr pChallenge, - int dwChallengeLength, - IntPtr pChallengeOutput, - out int pdwChallengeOutputLength); - - void ProcessLRB( - IntPtr pSignedLRB, - int dwSignedLRBLength, - IntPtr pSignedACK, - out int pdwSignedACKLength); - }; - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("6A9FD8EE-B651-4bf0-B849-7D4ECE79A2B1"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMProximityDetection - { - void StartDetection( - IntPtr pbRegistrationMsg, - int cbRegistrationMsg, - IntPtr pbLocalAddress, - int cbLocalAddress, - int dwExtraPortsAllowed, - out INSSBuffer ppRegistrationResponseMsg, - IWMStatusCallback pCallback, - IntPtr pvContext); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("18A2E7F8-428F-4acd-8A00-E64639BC93DE"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAdvanced6 : IWMReaderAdvanced5 - { - #region IWMReaderAdvanced Methods - - new void SetUserProvidedClock( - [In, MarshalAs(UnmanagedType.Bool)] bool fUserClock - ); - - new void GetUserProvidedClock( - [MarshalAs(UnmanagedType.Bool)] out bool pfUserClock - ); - - new void DeliverTime( - [In] long cnsTime - ); - - new void SetManualStreamSelection( - [In, MarshalAs(UnmanagedType.Bool)] bool fSelection - ); - - new void GetManualStreamSelection( - [MarshalAs(UnmanagedType.Bool)] out bool pfSelection - ); - - new void SetStreamsSelected( - [In] short cStreamCount, - [In] short[] pwStreamNumbers, - [In] StreamSelection[] pSelections - ); - - new void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - new void SetReceiveSelectionCallbacks( - [In, MarshalAs(UnmanagedType.Bool)] bool fGetCallbacks - ); - - new void GetReceiveSelectionCallbacks( - [MarshalAs(UnmanagedType.Bool)] out bool pfGetCallbacks - ); - - new void SetReceiveStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fReceiveStreamSamples - ); - - new void GetReceiveStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfReceiveStreamSamples - ); - - new void SetAllocateForOutput( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForOutput( - [In] int dwOutputNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void SetAllocateForStream( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForStream( - [In] short dwSreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void GetStatistics( - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WMReaderStatistics pStatistics - ); - - new void SetClientInfo( - [In, MarshalAs(UnmanagedType.LPStruct)] WMReaderClientInfo pClientInfo - ); - - new void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - new void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - new void NotifyLateDelivery( - long cnsLateness - ); - - #endregion - - #region IWMReaderAdvanced2 Methods - - new void SetPlayMode( - [In] PlayMode Mode - ); - - new void GetPlayMode( - out PlayMode pMode - ); - - new void GetBufferProgress( - out int pdwPercent, - out long pcnsBuffering - ); - - new void GetDownloadProgress( - out int pdwPercent, - out long pqwBytesDownloaded, - out long pcnsDownload - ); - - new void GetSaveAsProgress( - out int pdwPercent - ); - - new void SaveFileAs( - [In] string pwszFilename - ); - - new void GetProtocolName( - [Out] StringBuilder pwszProtocol, - ref int pcchProtocol - ); - - new void StartAtMarker( - [In] short wMarkerIndex, - [In] long cnsDuration, - [In] float fRate, - [In] IntPtr pvContext - ); - - new void GetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void SetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - new void Preroll( - [In] long cnsStart, - [In] long cnsDuration, - [In] float fRate - ); - - new void SetLogClientID( - [In, MarshalAs(UnmanagedType.Bool)] bool fLogClientID - ); - - new void GetLogClientID( - [MarshalAs(UnmanagedType.Bool)] out bool pfLogClientID - ); - - new void StopBuffering(); - - new void OpenStream( - [In] IStream pStream, - [In] IWMReaderCallback pCallback, - [In] IntPtr pvContext - ); - - #endregion - - #region IWMReaderAdvanced3 Methods - - new void StopNetStreaming(); - - new void StartAtPosition( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvOffsetStart, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvDuration, - [In] OffsetFormat dwOffsetFormat, - [In] float fRate, - [In] IntPtr pvContext - ); - - #endregion - - #region IWMReaderAdvanced4 Methods - - new void GetLanguageCount( - [In] int dwOutputNum, - out short pwLanguageCount - ); - - new void GetLanguage( - [In] int dwOutputNum, - [In] short wLanguage, - [Out] StringBuilder pwszLanguageString, - ref short pcchLanguageStringLength - ); - - new void GetMaxSpeedFactor( - out double pdblFactor - ); - - new void IsUsingFastCache( - [MarshalAs(UnmanagedType.Bool)] out bool pfUsingFastCache - ); - - new void AddLogParam( - [In] string wszNameSpace, - [In] string wszName, - [In] string wszValue - ); - - new void SendLogParams(); - - new void CanSaveFileAs( - [MarshalAs(UnmanagedType.Bool)] out bool pfCanSave - ); - - new void CancelSaveFileAs(); - - new void GetURL( - [Out] StringBuilder pwszURL, - ref int pcchURL - ); - - #endregion - - #region IWMReaderAdvanced5 Methods - - new void SetPlayerHook( - int dwOutputNum, - IWMPlayerHook pHook); - - #endregion - - void SetProtectStreamSamples( - IntPtr pbCertificate, - int cbCertificate, - int dwCertificateType, - int dwFlags, - IntPtr pbInitializationVector, - out int pcbInitializationVector); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("a4503bec-5508-4148-97ac-bfa75760a70d"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMRegisteredDevice - { - void GetDeviceSerialNumber( - out Val16 pSerialNumber); - - void GetDeviceCertificate( - out INSSBuffer ppCertificate); - - void GetDeviceType( - out int pdwType); - - void GetAttributeCount( - out int pcAttributes); - - void GetAttributeByIndex( - int dwIndex, - [MarshalAs(UnmanagedType.BStr)] out string pbstrName, - [MarshalAs(UnmanagedType.BStr)] out string pbstrValue); - - void GetAttributeByName( - [MarshalAs(UnmanagedType.BStr)] string bstrName, - [MarshalAs(UnmanagedType.BStr)] out string pbstrValue); - - void SetAttributeByName( - [MarshalAs(UnmanagedType.BStr)] string bstrName, - [MarshalAs(UnmanagedType.BStr)] string bstrValue); - - void Approve( - [MarshalAs(UnmanagedType.Bool)] bool fApprove); - - void IsValid( - [MarshalAs(UnmanagedType.Bool)] out bool pfValid); - - void IsApproved( - [MarshalAs(UnmanagedType.Bool)] out bool pfApproved); - - void IsWmdrmCompliant( - [MarshalAs(UnmanagedType.Bool)] out bool pfCompliant); - - void IsOpened( - [MarshalAs(UnmanagedType.Bool)] out bool pfOpened); - - void Open(); - - void Close(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("990641B0-739F-4E94-A808-9888DA8F75AF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMCodecVideoAccelerator - { - void NegotiateConnection( - [In, MarshalAs(UnmanagedType.Interface)] object pIAMVA, - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType - ); - - void SetPlayerNotify( - [In] IWMPlayerTimestampHook pHook - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("9F0AA3B6-7267-4D89-88F2-BA915AA5C4C6"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMImageInfo - { - void GetImageCount( - out int pcImages - ); - - void GetImage( - [In] int wIndex, - ref short pcchMIMEType, - [Out] StringBuilder pwszMIMEType, - ref short pcchDescription, - [Out] StringBuilder pwszDescription, - out short pImageType, - ref int pcbImageData, - out byte[] pbImageData - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("6F497062-F2E2-4624-8EA7-9DD40D81FC8D"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWatermarkInfo - { - void GetWatermarkEntryCount( - [In] WaterMarkEntryType wmetType, - out int pdwCount - ); - - void GetWatermarkEntry( - [In] WaterMarkEntryType wmetType, - [In] int dwEntryNum, - out WaterMarkEntry pEntry - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("61103CA4-2033-11D2-9EF1-006097D2D7CF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMSBufferAllocator - { - void AllocateBuffer( - [In] int dwMaxBufferSize, - out INSSBuffer ppBuffer - ); - - void AllocatePageSizeBuffer( - [In] int dwMaxBufferSize, - out INSSBuffer ppBuffer - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("D98EE251-34E0-4A2D-9312-9B4C788D9FA1"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMCodecAMVideoAccelerator - { - void SetAcceleratorInterface( - [In, MarshalAs(UnmanagedType.Interface)] object pIAMVA - ); - - void NegotiateConnection( - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType - ); - - void SetPlayerNotify( - [In] IWMPlayerTimestampHook pHook - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("28580DDA-D98E-48D0-B7AE-69E473A02825"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMPlayerTimestampHook - { - void MapTimestamp( - [In] long rtIn, out long prtOut - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("BDDC4D08-944D-4D52-A612-46C3FDA07DD4"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAccelerator - { - void GetCodecInterface( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid, - out IntPtr ppvCodecInterface - ); - - void Notify( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pSubtype - ); - } - -#endif - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("45086030-F7E4-486a-B504-826BB5792A3B"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IConfigAsfWriter - { - void ConfigureFilterUsingProfileId( - [In] int dwProfileId); - - void GetCurrentProfileId( - [Out] out int pdwProfileId); - - void ConfigureFilterUsingProfileGuid( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidProfile); - - void GetCurrentProfileGuid( - [Out] out Guid pProfileGuid); - - void ConfigureFilterUsingProfile( - [In] IWMProfile pProfile); - - void GetCurrentProfileGuid( - [Out] out IWMProfile ppProfile); - - void SetIndexMode( - [In, MarshalAs(UnmanagedType.Bool)] bool bIndexFile); - - void GetIndexMode( - [Out, MarshalAs(UnmanagedType.Bool)] out bool pbIndexFile); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("E1CD3524-03D7-11D2-9EED-006097D2D7CF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface INSSBuffer - { - void GetLength( - out int pdwLength - ); - - void SetLength( - [In] int dwLength - ); - - void GetMaxLength( - out int pdwLength - ); - - void GetBuffer( - out IntPtr ppdwBuffer - ); - - void GetBufferAndLength( - out IntPtr ppdwBuffer, - out int pdwLength - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("BB3C6389-1633-4E92-AF14-9F3173BA39D0"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMAddressAccess - { - void GetAccessEntryCount( - [In] AEType aeType, - out int pcEntries - ); - - void GetAccessEntry( - [In] AEType aeType, - [In] int dwEntryNum, - out WMAddressAccessEntry pAddrAccessEntry - ); - - void AddAccessEntry( - [In] AEType aeType, - [In] ref WMAddressAccessEntry pAddrAccessEntry - ); - - void RemoveAccessEntry( - [In] AEType aeType, - [In] int dwEntryNum - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("65A83FC2-3E98-4D4D-81B5-2A742886B33D"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMAddressAccess2 : IWMAddressAccess - { - #region IWMAddressAccess Methods - - new void GetAccessEntryCount( - [In] AEType aeType, - out int pcEntries - ); - - new void GetAccessEntry( - [In] AEType aeType, - [In] int dwEntryNum, - out WMAddressAccessEntry pAddrAccessEntry - ); - - new void AddAccessEntry( - [In] AEType aeType, - [In] ref WMAddressAccessEntry pAddrAccessEntry - ); - - new void RemoveAccessEntry( - [In] AEType aeType, - [In] int dwEntryNum - ); - - #endregion - - void GetAccessEntryEx( - [In] AEType aeType, - [In] int dwEntryNum, - [MarshalAs(UnmanagedType.BStr)] out string pbstrAddress, - [MarshalAs(UnmanagedType.BStr)] out string pbstrMask - ); - - void AddAccessEntryEx( - [In] AEType aeType, - [In, MarshalAs(UnmanagedType.BStr)] string bstrAddress, - [In, MarshalAs(UnmanagedType.BStr)] string bstrMask - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("3C8E0DA6-996F-4FF3-A1AF-4838F9377E2E"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMBackupRestoreProps - { - void GetPropCount( - out short pcProps - ); - - void GetPropByIndex( - [In] short wIndex, - [Out] string pwszName, - ref short pcchNameLen, - out AttrDataType pType, - out byte[] pValue, - ref short pcbLength - ); - - void GetPropByName( - [In] string pszName, - out AttrDataType pType, - out byte[] pValue, - ref short pcbLength - ); - - void SetProp( - [In] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] short cbLength - ); - - void RemoveProp( - [In] string pcwszName - ); - - void RemoveAllProps(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("AD694AF1-F8D9-42F8-BC47-70311B0C4F9E"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMBandwidthSharing : IWMStreamList - { - #region IWMStreamList Methods - - new void GetStreams( - [Out, MarshalAs(UnmanagedType.LPArray)] short[] pwStreamNumArray, - ref short pcStreams - ); - - new void AddStream( - [In] short wStreamNum - ); - - new void RemoveStream( - [In] short wStreamNum - ); - - #endregion - - void GetType( - out Guid pguidType - ); - - void SetType( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType - ); - - void GetBandwidth( - out int pdwBitrate, - out int pmsBufferWindow - ); - - void SetBandwidth( - [In] int dwBitrate, - [In] int msBufferWindow - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("73C66010-A299-41DF-B1F0-CCF03B09C1C6"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMClientConnections - { - void GetClientCount( - out int pcClients - ); - - void GetClientProperties( - [In] int dwClientNum, - out WMClientProperties pClientProperties - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("4091571E-4701-4593-BB3D-D5F5F0C74246"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMClientConnections2 : IWMClientConnections - { - #region IWMClientConnections Methods - - new void GetClientCount( - out int pcClients - ); - - new void GetClientProperties( - [In] int dwClientNum, - out WMClientProperties pClientProperties - ); - - #endregion - - void GetClientInfo( - [In] int dwClientNum, - [Out] StringBuilder pwszNetworkAddress, - ref int pcchNetworkAddress, - [Out] StringBuilder pwszPort, - ref int pcchPort, - [Out] StringBuilder pwszDNSName, - ref int pcchDNSName - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("A970F41E-34DE-4A98-B3BA-E4B3CA7528F0"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMCodecInfo - { - void GetCodecInfoCount( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - out int pcCodecs - ); - - void GetCodecFormatCount( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - out int pcFormat - ); - - void GetCodecFormat( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In] int dwFormatIndex, - out IWMStreamConfig ppIStreamConfig - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("AA65E273-B686-4056-91EC-DD768D4DF710"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMCodecInfo2 : IWMCodecInfo - { - #region IWMCodecInfo Methods - - new void GetCodecInfoCount( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - out int pcCodecs - ); - - new void GetCodecFormatCount( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - out int pcFormat - ); - - new void GetCodecFormat( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In] int dwFormatIndex, - out IWMStreamConfig ppIStreamConfig - ); - - #endregion - - void GetCodecName( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [Out] StringBuilder wszName, - ref int pcchName - ); - - void GetCodecFormatDesc( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In] int dwFormatIndex, - out IWMStreamConfig ppIStreamConfig, - [Out] StringBuilder wszDesc, - ref int pcchDesc - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("7E51F487-4D93-4F98-8AB4-27D0565ADC51"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMCodecInfo3 : IWMCodecInfo2 - { - #region IWMCodecInfo Methods - - new void GetCodecInfoCount( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - out int pcCodecs - ); - - new void GetCodecFormatCount( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - out int pcFormat - ); - - new void GetCodecFormat( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In] int dwFormatIndex, - out IWMStreamConfig ppIStreamConfig - ); - - #endregion - - #region IWMCodecInfo2 Methods - - new void GetCodecName( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [Out] StringBuilder wszName, - ref int pcchName - ); - - new void GetCodecFormatDesc( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In] int dwFormatIndex, - out IWMStreamConfig ppIStreamConfig, - [Out] StringBuilder wszDesc, - ref int pcchDesc - ); - - #endregion - - void GetCodecFormatProp( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In] int dwFormatIndex, - [In, MarshalAs(UnmanagedType.LPWStr)] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref int pdwSize - ); - - void GetCodecProp( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In, MarshalAs(UnmanagedType.LPWStr)] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref int pdwSize - ); - - void SetCodecEnumerationSetting( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In, MarshalAs(UnmanagedType.LPWStr)] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] int dwSize - ); - - void GetCodecEnumerationSetting( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType, - [In] int dwCodecIndex, - [In, MarshalAs(UnmanagedType.LPWStr)] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref int pdwSize - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("342E0EB7-E651-450C-975B-2ACE2C90C48E"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMCredentialCallback - { - void AcquireCredentials( - [In, MarshalAs(UnmanagedType.LPWStr)] string pwszRealm, - [In, MarshalAs(UnmanagedType.LPWStr)] string pwszSite, - [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] char[] pwszUser, - [In] int cchUser, - [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=5)] char[] pwszPassword, - [In] int cchPassword, - [In] int hrStatus, - ref CredentialFlags pdwFlags - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("FF130EBC-A6C3-42A6-B401-C3382C3E08B3"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMDRMEditor - { - void GetDRMProperty( - [In] string pwstrName, - out AttrDataType pdwType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BDA-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMHeaderInfo - { - void GetAttributeCount( - [In] short wStreamNum, - out short pcAttributes - ); - - void GetAttributeByIndex( - [In] short wIndex, - [In] ref short pwStreamNum, - [Out] StringBuilder pwszName, - ref short pcchNameLen, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - void GetAttributeByName( - [In] ref short pwStreamNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - void SetAttribute( - [In] short wStreamNum, - [In] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] short cbLength - ); - - void GetMarkerCount( - out short pcMarkers - ); - - void GetMarker( - [In] short wIndex, - [Out] StringBuilder pwszMarkerName, - ref short pcchMarkerNameLen, - out long pcnsMarkerTime - ); - - void AddMarker( - [In] string pwszMarkerName, - [In] long cnsMarkerTime - ); - - void RemoveMarker( - [In] short wIndex - ); - - void GetScriptCount( - out short pcScripts - ); - - void GetScript( - [In] short wIndex, - [Out] StringBuilder pwszType, - ref short pcchTypeLen, - [Out] StringBuilder pwszCommand, - ref short pcchCommandLen, - out long pcnsScriptTime - ); - - void AddScript( - [In] string pwszType, - [In] string pwszCommand, - [In] long cnsScriptTime - ); - - void RemoveScript( - [In] short wIndex - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("15CF9781-454E-482E-B393-85FAE487A810"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMHeaderInfo2 : IWMHeaderInfo - { - #region IWMHeaderInfo Methods - - new void GetAttributeCount( - [In] short wStreamNum, - out short pcAttributes - ); - - new void GetAttributeByIndex( - [In] short wIndex, - ref short pwStreamNum, - [Out] StringBuilder pwszName, - ref short pcchNameLen, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void GetAttributeByName( - ref short pwStreamNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void SetAttribute( - [In] short wStreamNum, - [In] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] short cbLength - ); - - new void GetMarkerCount( - out short pcMarkers - ); - - new void GetMarker( - [In] short wIndex, - [Out] StringBuilder pwszMarkerName, - ref short pcchMarkerNameLen, - out long pcnsMarkerTime - ); - - new void AddMarker( - [In] string pwszMarkerName, - [In] long cnsMarkerTime - ); - - new void RemoveMarker( - [In] short wIndex - ); - - new void GetScriptCount( - out short pcScripts - ); - - new void GetScript( - [In] short wIndex, - [Out] StringBuilder pwszType, - ref short pcchTypeLen, - [Out] StringBuilder pwszCommand, - ref short pcchCommandLen, - out long pcnsScriptTime - ); - - new void AddScript( - [In] string pwszType, - [In] string pwszCommand, - [In] long cnsScriptTime - ); - - new void RemoveScript( - [In] short wIndex - ); - - #endregion - - void GetCodecInfoCount( - out int pcCodecInfos - ); - - void GetCodecInfo( - [In] int wIndex, - ref short pcchName, - [Out] StringBuilder pwszName, - ref short pcchDescription, - [Out] StringBuilder pwszDescription, - out CodecInfoType pCodecType, - ref short pcbCodecInfo, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbCodecInfo - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("15CC68E3-27CC-4ECD-B222-3F5D02D80BD5"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMHeaderInfo3 : IWMHeaderInfo2 - { - #region IWMHeaderInfo Methods - - new void GetAttributeCount( - [In] short wStreamNum, - out short pcAttributes - ); - - new void GetAttributeByIndex( - [In] short wIndex, - ref short pwStreamNum, - [Out] StringBuilder pwszName, - ref short pcchNameLen, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void GetAttributeByName( - ref short pwStreamNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void SetAttribute( - [In] short wStreamNum, - [In] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] short cbLength - ); - - new void GetMarkerCount( - out short pcMarkers - ); - - new void GetMarker( - [In] short wIndex, - [Out] StringBuilder pwszMarkerName, - ref short pcchMarkerNameLen, - out long pcnsMarkerTime - ); - - new void AddMarker( - [In] string pwszMarkerName, - [In] long cnsMarkerTime - ); - - new void RemoveMarker( - [In] short wIndex - ); - - new void GetScriptCount( - out short pcScripts - ); - - new void GetScript( - [In] short wIndex, - [Out] StringBuilder pwszType, - ref short pcchTypeLen, - [Out] StringBuilder pwszCommand, - ref short pcchCommandLen, - out long pcnsScriptTime - ); - - new void AddScript( - [In] string pwszType, - [In] string pwszCommand, - [In] long cnsScriptTime - ); - - new void RemoveScript( - [In] short wIndex - ); - - #endregion - - #region IWMHeaderInfo2 Methods - - new void GetCodecInfoCount( - out int pcCodecInfos - ); - - new void GetCodecInfo( - [In] int wIndex, - ref short pcchName, - [Out] StringBuilder pwszName, - ref short pcchDescription, - [Out] StringBuilder pwszDescription, - out CodecInfoType pCodecType, - ref short pcbCodecInfo, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbCodecInfo - ); - - #endregion - - void GetAttributeCountEx( - [In] short wStreamNum, - out short pcAttributes - ); - - void GetAttributeIndices( - [In] short wStreamNum, - [In] string pwszName, - [In] WmShort pwLangIndex, - [Out, MarshalAs(UnmanagedType.LPArray)] short[] pwIndices, - ref short pwCount - ); - - void GetAttributeByIndexEx( - [In] short wStreamNum, - [In] short wIndex, - [Out] StringBuilder pwszName, - ref short pwNameLen, - out AttrDataType pType, - out short pwLangIndex, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref int pdwDataLength - ); - - void ModifyAttribute( - [In] short wStreamNum, - [In] short wIndex, - [In] AttrDataType Type, - [In] short wLangIndex, - [In, MarshalAs(UnmanagedType.LPArray)] byte [] pValue, - [In] int dwLength - ); - - void AddAttribute( - [In] short wStreamNum, - [In] string pszName, - out short pwIndex, - [In] AttrDataType Type, - [In] short wLangIndex, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] int dwLength - ); - - void DeleteAttribute( - [In] short wStreamNum, - [In] short wIndex - ); - - void AddCodecInfo( - [In] string pwszName, - [In] string pwszDescription, - [In] CodecInfoType codecType, - [In] short cbCodecInfo, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbCodecInfo - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("6D7CDC71-9888-11D3-8EDC-00C04F6109CF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMIndexer - { - void StartIndexing( - [In] string pwszURL, - [In] IWMStatusCallback pCallback, - [In] IntPtr pvContext - ); - - void Cancel(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("B70F1E42-6255-4DF0-A6B9-02B212D9E2BB"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMIndexer2 : IWMIndexer - { - #region IWMIndexer Methods - - new void StartIndexing( - [In] string pwszURL, - [In] IWMStatusCallback pCallback, - [In] IntPtr pvContext - ); - - new void Cancel(); - - #endregion - - void Configure( - [In] short wStreamNum, - [In] IndexerType nIndexerType, - [In] WmInt pvInterval, - [In] WmShort pvIndexType - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BD5-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMInputMediaProps : IWMMediaProps - { - #region IWMMediaProps Methods - - new void GetType( - out Guid pguidType - ); - - new void GetMediaType( - [In, Out, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(MTMarshaler))] AMMediaType pType, - ref int pcbType - ); - - new void SetMediaType( - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pType - ); - - #endregion - - void GetConnectionName( - [Out] StringBuilder pwszName, - ref short pcchName - ); - - void GetGroupName( - [Out] StringBuilder pwszName, - ref short pcchName - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("6816DAD3-2B4B-4C8E-8149-874C3483A753"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMIStreamProps - { - void GetProperty( - [In] StringBuilder pszName, - out AttrDataType pType, - IntPtr pValue, - ref int pdwSize - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("DF683F00-2D49-4D8E-92B7-FB19F6A0DC57"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMLanguageList - { - void GetLanguageCount( - out short pwCount - ); - - void GetLanguageDetails( - [In] short wIndex, - [Out] StringBuilder pwszLanguageString, - ref short pcchLanguageStringLength - ); - - void AddLanguageByRFC1766String( - [In] string pwszLanguageString, - out short pwIndex - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("05E5AC9F-3FB6-4508-BB43-A4067BA1EBE8"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMLicenseBackup - { - void BackupLicenses( - [In] BackupRestoreFlags dwFlags, - [In] IWMStatusCallback pCallback - ); - - void CancelLicenseBackup(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("C70B6334-A22E-4EFB-A245-15E65A004A13"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMLicenseRestore - { - void RestoreLicenses( - [In] BackupRestoreFlags dwFlags, - [In] IWMStatusCallback pCallback - ); - - void CancelLicenseRestore(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BCE-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMMediaProps - { - void GetType( - out Guid pguidType - ); - - void GetMediaType( - [In, Out, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(MTMarshaler))] AMMediaType pType, - ref int pcbType - ); - - void SetMediaType( - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pType - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BD9-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMMetadataEditor - { - void Open( - [In] string pwszFilename - ); - - void Close(); - - void Flush(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("203CFFE3-2E18-4FDF-B59D-6E71530534CF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMMetadataEditor2 : IWMMetadataEditor - { - #region IWMMetadataEditor Methods - - new void Open( - [In] string pwszFilename - ); - - new void Close(); - - new void Flush(); - - #endregion - - void OpenEx( - [In] string pwszFilename, - [In] MetaDataAccess dwDesiredAccess, - [In] MetaDataShare dwShareMode - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BDE-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMMutualExclusion : IWMStreamList - { - #region IWMStreamList Methods - - new void GetStreams( - [Out, MarshalAs(UnmanagedType.LPArray)] short[] pwStreamNumArray, - ref short pcStreams - ); - - new void AddStream( - [In] short wStreamNum - ); - - new void RemoveStream( - [In] short wStreamNum - ); - - #endregion - - void GetType( - out Guid pguidType - ); - - void SetType( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("0302B57D-89D1-4BA2-85C9-166F2C53EB91"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMMutualExclusion2 : IWMMutualExclusion - { - #region IWMStreamList Methods - - new void GetStreams( - [Out, MarshalAs(UnmanagedType.LPArray)] short[] pwStreamNumArray, - ref short pcStreams - ); - - new void AddStream( - [In] short wStreamNum - ); - - new void RemoveStream( - [In] short wStreamNum - ); - - #endregion - - #region IWMMutualExclusion Methods - - new void GetType( - out Guid pguidType - ); - - new void SetType( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidType - ); - - #endregion - - void GetName( - [Out] StringBuilder pwszName, - ref short pcchName - ); - - void SetName( - [In] string pwszName - ); - - void GetRecordCount( - out short pwRecordCount - ); - - void AddRecord(); - - void RemoveRecord( - [In] short wRecordNumber - ); - - void GetRecordName( - [In] short wRecordNumber, - [Out] StringBuilder pwszRecordName, - ref short pcchRecordName - ); - - void SetRecordName( - [In] short wRecordNumber, - [In] string pwszRecordName - ); - - void GetStreamsForRecord( - [In] short wRecordNumber, - [Out, MarshalAs(UnmanagedType.LPArray)] short[] pwStreamNumArray, - ref short pcStreams - ); - - void AddStreamForRecord( - [In] short wRecordNumber, - [In] short wStreamNumber - ); - - void RemoveStreamForRecord( - [In] short wRecordNumber, - [In] short wStreamNumber - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BD7-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMOutputMediaProps : IWMMediaProps - { - #region IWMMediaProps Methods - - new void GetType( - out Guid pguidType - ); - - new void GetMediaType( - [In, Out, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(MTMarshaler))] AMMediaType pType, - ref int pcbType - ); - - new void SetMediaType( - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pType - ); - - #endregion - - void GetStreamGroupName( - [Out] StringBuilder pwszName, - ref short pcchName - ); - - void GetConnectionName( - [Out] StringBuilder pwszName, - ref short pcchName - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("CDFB97AB-188F-40B3-B643-5B7903975C59"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMPacketSize - { - void GetMaxPacketSize( - out int pdwMaxPacketSize - ); - - void SetMaxPacketSize( - [In] int dwMaxPacketSize - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("8BFC2B9E-B646-4233-A877-1C6A079669DC"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMPacketSize2 : IWMPacketSize - { - #region IWMPacketSize Methods - - new void GetMaxPacketSize( - out int pdwMaxPacketSize - ); - - new void SetMaxPacketSize( - [In] int dwMaxPacketSize - ); - - #endregion - - void GetMinPacketSize( - out int pdwMinPacketSize - ); - - void SetMinPacketSize( - [In] int dwMinPacketSize - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BDB-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMProfile - { - void GetVersion( - out WMVersion pdwVersion - ); - - void GetName( - [Out] StringBuilder pwszName, - ref int pcchName - ); - - void SetName( - [In] string pwszName - ); - - void GetDescription( - [Out] StringBuilder pwszDescription, - ref int pcchDescription - ); - - void SetDescription( - [In] string pwszDescription - ); - - void GetStreamCount( - out int pcStreams - ); - - void GetStream( - [In] int dwStreamIndex, - out IWMStreamConfig ppConfig - ); - - void GetStreamByNumber( - [In] short wStreamNum, - out IWMStreamConfig ppConfig - ); - - void RemoveStream( - [In] IWMStreamConfig pConfig - ); - - void RemoveStreamByNumber( - [In] short wStreamNum - ); - - void AddStream( - [In] IWMStreamConfig pConfig - ); - - void ReconfigStream( - [In] IWMStreamConfig pConfig - ); - - void CreateNewStream( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidStreamType, - out IWMStreamConfig ppConfig - ); - - void GetMutualExclusionCount( - out int pcME - ); - - void GetMutualExclusion( - [In] int dwMEIndex, - out IWMMutualExclusion ppME - ); - - void RemoveMutualExclusion( - [In] IWMMutualExclusion pME - ); - - void AddMutualExclusion( - [In] IWMMutualExclusion pME - ); - - void CreateNewMutualExclusion( - out IWMMutualExclusion ppME - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("07E72D33-D94E-4BE7-8843-60AE5FF7E5F5"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMProfile2 : IWMProfile - { - #region IWMProfile Methods - - new void GetVersion( - out WMVersion pdwVersion - ); - - new void GetName( - [Out] StringBuilder pwszName, - ref int pcchName - ); - - new void SetName( - [In] string pwszName - ); - - new void GetDescription( - [Out] StringBuilder pwszDescription, - ref int pcchDescription - ); - - new void SetDescription( - [In] string pwszDescription - ); - - new void GetStreamCount( - out int pcStreams - ); - - new void GetStream( - [In] int dwStreamIndex, - out IWMStreamConfig ppConfig - ); - - new void GetStreamByNumber( - [In] short wStreamNum, - out IWMStreamConfig ppConfig - ); - - new void RemoveStream( - [In] IWMStreamConfig pConfig - ); - - new void RemoveStreamByNumber( - [In] short wStreamNum - ); - - new void AddStream( - [In] IWMStreamConfig pConfig - ); - - new void ReconfigStream( - [In] IWMStreamConfig pConfig - ); - - new void CreateNewStream( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidStreamType, - out IWMStreamConfig ppConfig - ); - - new void GetMutualExclusionCount( - out int pcME - ); - - new void GetMutualExclusion( - [In] int dwMEIndex, - out IWMMutualExclusion ppME - ); - - new void RemoveMutualExclusion( - [In] IWMMutualExclusion pME - ); - - new void AddMutualExclusion( - [In] IWMMutualExclusion pME - ); - - new void CreateNewMutualExclusion( - out IWMMutualExclusion ppME - ); - - #endregion - - void GetProfileID( - out Guid pguidID - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("00EF96CC-A461-4546-8BCD-C9A28F0E06F5"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMProfile3 : IWMProfile2 - { - #region IWMProfile Methods - - new void GetVersion( - out WMVersion pdwVersion - ); - - new void GetName( - [Out] StringBuilder pwszName, - ref int pcchName - ); - - new void SetName( - [In] string pwszName - ); - - new void GetDescription( - [Out] StringBuilder pwszDescription, - ref int pcchDescription - ); - - new void SetDescription( - [In] string pwszDescription - ); - - new void GetStreamCount( - out int pcStreams - ); - - new void GetStream( - [In] int dwStreamIndex, - out IWMStreamConfig ppConfig - ); - - new void GetStreamByNumber( - [In] short wStreamNum, - out IWMStreamConfig ppConfig - ); - - new void RemoveStream( - [In] IWMStreamConfig pConfig - ); - - new void RemoveStreamByNumber( - [In] short wStreamNum - ); - - new void AddStream( - [In] IWMStreamConfig pConfig - ); - - new void ReconfigStream( - [In] IWMStreamConfig pConfig - ); - - new void CreateNewStream( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidStreamType, - out IWMStreamConfig ppConfig - ); - - new void GetMutualExclusionCount( - out int pcME - ); - - new void GetMutualExclusion( - [In] int dwMEIndex, - out IWMMutualExclusion ppME - ); - - new void RemoveMutualExclusion( - [In] IWMMutualExclusion pME - ); - - new void AddMutualExclusion( - [In] IWMMutualExclusion pME - ); - - new void CreateNewMutualExclusion( - out IWMMutualExclusion ppME - ); - - #endregion - - #region IWMProfile2 Methods - - new void GetProfileID( - out Guid pguidID - ); - - #endregion - - void GetStorageFormat( - out StorageFormat pnStorageFormat - ); - - void SetStorageFormat( - [In] StorageFormat nStorageFormat - ); - - void GetBandwidthSharingCount( - out int pcBS - ); - - void GetBandwidthSharing( - [In] int dwBSIndex, - out IWMBandwidthSharing ppBS - ); - - void RemoveBandwidthSharing( - [In] IWMBandwidthSharing pBS - ); - - void AddBandwidthSharing( - [In] IWMBandwidthSharing pBS - ); - - void CreateNewBandwidthSharing( - out IWMBandwidthSharing ppBS - ); - - void GetStreamPrioritization( - out IWMStreamPrioritization ppSP - ); - - void SetStreamPrioritization( - [In] IWMStreamPrioritization pSP - ); - - void RemoveStreamPrioritization(); - - void CreateNewStreamPrioritization( - out IWMStreamPrioritization ppSP - ); - - void GetExpectedPacketCount( - [In] long msDuration, - out long pcPackets - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("D16679F2-6CA0-472D-8D31-2F5D55AEE155"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMProfileManager - { - void CreateEmptyProfile( - [In] WMVersion dwVersion, - out IWMProfile ppProfile - ); - - void LoadProfileByID( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidProfile, - out IWMProfile ppProfile - ); - - void LoadProfileByData( - [In] string pwszProfile, - out IWMProfile ppProfile - ); - - void SaveProfile( - [In] IWMProfile pIWMProfile, - [Out] StringBuilder pwszProfile, - ref int pdwLength - ); - - void GetSystemProfileCount( - out int pcProfiles - ); - - void LoadSystemProfile( - [In] int dwProfileIndex, - out IWMProfile ppProfile - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("7A924E51-73C1-494D-8019-23D37ED9B89A"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMProfileManager2 : IWMProfileManager - { - #region IWMProfileManager Methods - - new void CreateEmptyProfile( - [In] WMVersion dwVersion, - out IWMProfile ppProfile - ); - - new void LoadProfileByID( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidProfile, - out IWMProfile ppProfile - ); - - new void LoadProfileByData( - [In] string pwszProfile, - out IWMProfile ppProfile - ); - - new void SaveProfile( - [In] IWMProfile pIWMProfile, - [In] StringBuilder pwszProfile, - ref int pdwLength - ); - - new void GetSystemProfileCount( - out int pcProfiles - ); - - new void LoadSystemProfile( - [In] int dwProfileIndex, - out IWMProfile ppProfile - ); - - #endregion - - void GetSystemProfileVersion( - out WMVersion pdwVersion - ); - - void SetSystemProfileVersion( - WMVersion dwVersion - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("BA4DCC78-7EE0-4AB8-B27A-DBCE8BC51454"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMProfileManagerLanguage - { - void GetUserLanguageID( - out short wLangID - ); - - void SetUserLanguageID( - short wLangID - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("72995A79-5090-42A4-9C8C-D9D0B6D34BE5"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMPropertyVault - { - void GetPropertyCount( - out int pdwCount - ); - - void GetPropertyByName( - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref int pdwSize - ); - - void SetProperty( - [In] string pszName, - [In] AttrDataType pType, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] int dwSize - ); - - void GetPropertyByIndex( - [In] int dwIndex, - [Out] StringBuilder pszName, - ref int pdwNameLen, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref int pdwSize - ); - - void CopyPropertiesFrom( - [In] IWMPropertyVault pIWMPropertyVault - ); - - void Clear(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BD6-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReader - { - void Open( - [In] string pwszURL, - [In] IWMReaderCallback pCallback, - [In] IntPtr pvContext - ); - - void Close(); - - void GetOutputCount( - out int pcOutputs - ); - - void GetOutputProps( - [In] int dwOutputNum, - out IWMOutputMediaProps ppOutput - ); - - void SetOutputProps( - [In] int dwOutputNum, - [In] IWMOutputMediaProps pOutput - ); - - void GetOutputFormatCount( - [In] int dwOutputNumber, - out int pcFormats - ); - - void GetOutputFormat( - [In] int dwOutputNumber, - [In] int dwFormatNumber, - out IWMOutputMediaProps ppProps - ); - - void Start( - [In] long cnsStart, - [In] long cnsDuration, - [In] float fRate, - [In] IntPtr pvContext - ); - - void Stop(); - - void Pause(); - - void Resume(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BEA-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAdvanced - { - void SetUserProvidedClock( - [In, MarshalAs(UnmanagedType.Bool)] bool fUserClock - ); - - void GetUserProvidedClock( - [MarshalAs(UnmanagedType.Bool)] out bool pfUserClock - ); - - void DeliverTime( - [In] long cnsTime - ); - - void SetManualStreamSelection( - [In, MarshalAs(UnmanagedType.Bool)] bool fSelection - ); - - void GetManualStreamSelection( - [MarshalAs(UnmanagedType.Bool)] out bool pfSelection - ); - - void SetStreamsSelected( - [In] short cStreamCount, - [In, MarshalAs(UnmanagedType.LPArray)] short[] pwStreamNumbers, - [In, MarshalAs(UnmanagedType.LPArray)] StreamSelection[] pSelections - ); - - void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - void SetReceiveSelectionCallbacks( - [In, MarshalAs(UnmanagedType.Bool)] bool fGetCallbacks - ); - - void GetReceiveSelectionCallbacks( - [MarshalAs(UnmanagedType.Bool)] out bool pfGetCallbacks - ); - - void SetReceiveStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fReceiveStreamSamples - ); - - void GetReceiveStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfReceiveStreamSamples - ); - - void SetAllocateForOutput( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - void GetAllocateForOutput( - [In] int dwOutputNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - void SetAllocateForStream( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - void GetAllocateForStream( - [In] short dwSreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - void GetStatistics( - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WMReaderStatistics pStatistics - ); - - void SetClientInfo( - [In, MarshalAs(UnmanagedType.LPStruct)] WMReaderClientInfo pClientInfo - ); - - void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - void NotifyLateDelivery( - long cnsLateness - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("AE14A945-B90C-4D0D-9127-80D665F7D73E"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAdvanced2 : IWMReaderAdvanced - { - #region IWMReaderAdvanced Methods - - new void SetUserProvidedClock( - [In, MarshalAs(UnmanagedType.Bool)] bool fUserClock - ); - - new void GetUserProvidedClock( - [MarshalAs(UnmanagedType.Bool)] out bool pfUserClock - ); - - new void DeliverTime( - [In] long cnsTime - ); - - new void SetManualStreamSelection( - [In, MarshalAs(UnmanagedType.Bool)] bool fSelection - ); - - new void GetManualStreamSelection( - [MarshalAs(UnmanagedType.Bool)] out bool pfSelection - ); - - new void SetStreamsSelected( - [In] short cStreamCount, - [In] short[] pwStreamNumbers, - [In] StreamSelection[] pSelections - ); - - new void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - new void SetReceiveSelectionCallbacks( - [In, MarshalAs(UnmanagedType.Bool)] bool fGetCallbacks - ); - - new void GetReceiveSelectionCallbacks( - [MarshalAs(UnmanagedType.Bool)] out bool pfGetCallbacks - ); - - new void SetReceiveStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fReceiveStreamSamples - ); - - new void GetReceiveStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfReceiveStreamSamples - ); - - new void SetAllocateForOutput( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForOutput( - [In] int dwOutputNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void SetAllocateForStream( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForStream( - [In] short dwSreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void GetStatistics( - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WMReaderStatistics pStatistics - ); - - new void SetClientInfo( - [In, MarshalAs(UnmanagedType.LPStruct)] WMReaderClientInfo pClientInfo - ); - - new void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - new void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - new void NotifyLateDelivery( - long cnsLateness - ); - - #endregion - - void SetPlayMode( - [In] PlayMode Mode - ); - - void GetPlayMode( - out PlayMode pMode - ); - - void GetBufferProgress( - out int pdwPercent, - out long pcnsBuffering - ); - - void GetDownloadProgress( - out int pdwPercent, - out long pqwBytesDownloaded, - out long pcnsDownload - ); - - void GetSaveAsProgress( - out int pdwPercent - ); - - void SaveFileAs( - [In] string pwszFilename - ); - - void GetProtocolName( - [Out] StringBuilder pwszProtocol, - ref int pcchProtocol - ); - - void StartAtMarker( - [In] short wMarkerIndex, - [In] long cnsDuration, - [In] float fRate, - [In] IntPtr pvContext - ); - - void GetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - void SetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] short cbLength - ); - - void Preroll( - [In] long cnsStart, - [In] long cnsDuration, - [In] float fRate - ); - - void SetLogClientID( - [In, MarshalAs(UnmanagedType.Bool)] bool fLogClientID - ); - - void GetLogClientID( - [MarshalAs(UnmanagedType.Bool)] out bool pfLogClientID - ); - - void StopBuffering(); - - void OpenStream( - [In] IStream pStream, - [In] IWMReaderCallback pCallback, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("5DC0674B-F04B-4A4E-9F2A-B1AFDE2C8100"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAdvanced3 : IWMReaderAdvanced2 - { - #region IWMReaderAdvanced Methods - - new void SetUserProvidedClock( - [In, MarshalAs(UnmanagedType.Bool)] bool fUserClock - ); - - new void GetUserProvidedClock( - [MarshalAs(UnmanagedType.Bool)] out bool pfUserClock - ); - - new void DeliverTime( - [In] long cnsTime - ); - - new void SetManualStreamSelection( - [In, MarshalAs(UnmanagedType.Bool)] bool fSelection - ); - - new void GetManualStreamSelection( - [MarshalAs(UnmanagedType.Bool)] out bool pfSelection - ); - - new void SetStreamsSelected( - [In] short cStreamCount, - [In] short[] pwStreamNumbers, - [In] StreamSelection[] pSelections - ); - - new void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - new void SetReceiveSelectionCallbacks( - [In, MarshalAs(UnmanagedType.Bool)] bool fGetCallbacks - ); - - new void GetReceiveSelectionCallbacks( - [MarshalAs(UnmanagedType.Bool)] out bool pfGetCallbacks - ); - - new void SetReceiveStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fReceiveStreamSamples - ); - - new void GetReceiveStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfReceiveStreamSamples - ); - - new void SetAllocateForOutput( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForOutput( - [In] int dwOutputNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void SetAllocateForStream( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForStream( - [In] short dwSreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void GetStatistics( - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WMReaderStatistics pStatistics - ); - - new void SetClientInfo( - [In, MarshalAs(UnmanagedType.LPStruct)] WMReaderClientInfo pClientInfo - ); - - new void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - new void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - new void NotifyLateDelivery( - long cnsLateness - ); - - #endregion - - #region IWMReaderAdvanced2 Methods - - new void SetPlayMode( - [In] PlayMode Mode - ); - - new void GetPlayMode( - out PlayMode pMode - ); - - new void GetBufferProgress( - out int pdwPercent, - out long pcnsBuffering - ); - - new void GetDownloadProgress( - out int pdwPercent, - out long pqwBytesDownloaded, - out long pcnsDownload - ); - - new void GetSaveAsProgress( - out int pdwPercent - ); - - new void SaveFileAs( - [In] string pwszFilename - ); - - new void GetProtocolName( - [Out] StringBuilder pwszProtocol, - ref int pcchProtocol - ); - - new void StartAtMarker( - [In] short wMarkerIndex, - [In] long cnsDuration, - [In] float fRate, - [In] IntPtr pvContext - ); - - new void GetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void SetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - new void Preroll( - [In] long cnsStart, - [In] long cnsDuration, - [In] float fRate - ); - - new void SetLogClientID( - [In, MarshalAs(UnmanagedType.Bool)] bool fLogClientID - ); - - new void GetLogClientID( - [MarshalAs(UnmanagedType.Bool)] out bool pfLogClientID - ); - - new void StopBuffering(); - - new void OpenStream( - [In] IStream pStream, - [In] IWMReaderCallback pCallback, - [In] IntPtr pvContext - ); - - #endregion - - void StopNetStreaming(); - - void StartAtPosition( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvOffsetStart, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvDuration, - [In] OffsetFormat dwOffsetFormat, - [In] float fRate, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("945A76A2-12AE-4D48-BD3C-CD1D90399B85"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAdvanced4 : IWMReaderAdvanced3 - { - #region IWMReaderAdvanced Methods - - new void SetUserProvidedClock( - [In, MarshalAs(UnmanagedType.Bool)] bool fUserClock - ); - - new void GetUserProvidedClock( - [MarshalAs(UnmanagedType.Bool)] out bool pfUserClock - ); - - new void DeliverTime( - [In] long cnsTime - ); - - new void SetManualStreamSelection( - [In, MarshalAs(UnmanagedType.Bool)] bool fSelection - ); - - new void GetManualStreamSelection( - [MarshalAs(UnmanagedType.Bool)] out bool pfSelection - ); - - new void SetStreamsSelected( - [In] short cStreamCount, - [In] short[] pwStreamNumbers, - [In] StreamSelection[] pSelections - ); - - new void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - new void SetReceiveSelectionCallbacks( - [In, MarshalAs(UnmanagedType.Bool)] bool fGetCallbacks - ); - - new void GetReceiveSelectionCallbacks( - [MarshalAs(UnmanagedType.Bool)] out bool pfGetCallbacks - ); - - new void SetReceiveStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fReceiveStreamSamples - ); - - new void GetReceiveStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfReceiveStreamSamples - ); - - new void SetAllocateForOutput( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForOutput( - [In] int dwOutputNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void SetAllocateForStream( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForStream( - [In] short dwSreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void GetStatistics( - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WMReaderStatistics pStatistics - ); - - new void SetClientInfo( - [In, MarshalAs(UnmanagedType.LPStruct)] WMReaderClientInfo pClientInfo - ); - - new void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - new void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - new void NotifyLateDelivery( - long cnsLateness - ); - - #endregion - - #region IWMReaderAdvanced2 Methods - - new void SetPlayMode( - [In] PlayMode Mode - ); - - new void GetPlayMode( - out PlayMode pMode - ); - - new void GetBufferProgress( - out int pdwPercent, - out long pcnsBuffering - ); - - new void GetDownloadProgress( - out int pdwPercent, - out long pqwBytesDownloaded, - out long pcnsDownload - ); - - new void GetSaveAsProgress( - out int pdwPercent - ); - - new void SaveFileAs( - [In] string pwszFilename - ); - - new void GetProtocolName( - [Out] StringBuilder pwszProtocol, - ref int pcchProtocol - ); - - new void StartAtMarker( - [In] short wMarkerIndex, - [In] long cnsDuration, - [In] float fRate, - [In] IntPtr pvContext - ); - - new void GetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void SetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - new void Preroll( - [In] long cnsStart, - [In] long cnsDuration, - [In] float fRate - ); - - new void SetLogClientID( - [In, MarshalAs(UnmanagedType.Bool)] bool fLogClientID - ); - - new void GetLogClientID( - [MarshalAs(UnmanagedType.Bool)] out bool pfLogClientID - ); - - new void StopBuffering(); - - new void OpenStream( - [In] IStream pStream, - [In] IWMReaderCallback pCallback, - [In] IntPtr pvContext - ); - - #endregion - - #region IWMReaderAdvanced3 Methods - - new void StopNetStreaming(); - - new void StartAtPosition( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvOffsetStart, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvDuration, - [In] OffsetFormat dwOffsetFormat, - [In] float fRate, - [In] IntPtr pvContext - ); - - #endregion - - void GetLanguageCount( - [In] int dwOutputNum, - out short pwLanguageCount - ); - - void GetLanguage( - [In] int dwOutputNum, - [In] short wLanguage, - [Out] StringBuilder pwszLanguageString, - ref short pcchLanguageStringLength - ); - - void GetMaxSpeedFactor( - out double pdblFactor - ); - - void IsUsingFastCache( - [MarshalAs(UnmanagedType.Bool)] out bool pfUsingFastCache - ); - - void AddLogParam( - [In] string wszNameSpace, - [In] string wszName, - [In] string wszValue - ); - - void SendLogParams(); - - void CanSaveFileAs( - [MarshalAs(UnmanagedType.Bool)] out bool pfCanSave - ); - - void CancelSaveFileAs(); - - void GetURL( - [Out] StringBuilder pwszURL, - ref int pcchURL - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("9F762FA7-A22E-428D-93C9-AC82F3AAFE5A"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAllocatorEx - { - void AllocateForStreamEx( - [In] short wStreamNum, - [In] int cbBuffer, - out INSSBuffer ppBuffer, - [In] SampleFlagEx dwFlags, - [In] long cnsSampleTime, - [In] long cnsSampleDuration, - [In] IntPtr pvContext - ); - - void AllocateForOutputEx( - [In] int dwOutputNum, - [In] int cbBuffer, - out INSSBuffer ppBuffer, - [In] SampleFlagEx dwFlags, - [In] long cnsSampleTime, - [In] long cnsSampleDuration, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BD8-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderCallback : IWMStatusCallback - { - #region IWMStatusCallback Methods - - new void OnStatus( - [In] Status iStatus, - [In] int hr, - [In] AttrDataType dwType, - [In] IntPtr pValue, - [In] IntPtr pvContext - ); - - #endregion - - void OnSample( - [In] int dwOutputNum, - [In] long cnsSampleTime, - [In] long cnsSampleDuration, - [In] SampleFlag dwFlags, - [In] INSSBuffer pSample, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BEB-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderCallbackAdvanced - { - void OnStreamSample( - [In] short wStreamNum, - [In] long cnsSampleTime, - [In] long cnsSampleDuration, - [In] SampleFlag dwFlags, - [In] INSSBuffer pSample, - [In] IntPtr pvContext - ); - - void OnTime( - [In] long cnsCurrentTime, - [In] IntPtr pvContext - ); - - void OnStreamSelection( - [In] short wStreamCount, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] short[] pStreamNumbers, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] StreamSelection[] pSelections, - [In] IntPtr pvContext - ); - - void OnOutputPropsChanged( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType, - [In] IntPtr pvContext - ); - - void AllocateForStream( - [In] short wStreamNum, - [In] int cbBuffer, - out INSSBuffer ppBuffer, - [In] IntPtr pvContext - ); - - void AllocateForOutput( - [In] int dwOutputNum, - [In] int cbBuffer, - out INSSBuffer ppBuffer, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BEC-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderNetworkConfig - { - void GetBufferingTime( - out long pcnsBufferingTime - ); - - void SetBufferingTime( - [In] long cnsBufferingTime - ); - - void GetUDPPortRanges( - [Out, MarshalAs(UnmanagedType.LPArray)] WMPortNumberRange[] pRangeArray, - ref int pcRanges - ); - - void SetUDPPortRanges( - [In, MarshalAs(UnmanagedType.LPArray)] WMPortNumberRange[] pRangeArray, - [In] int cRanges - ); - - void GetProxySettings( - [In] string pwszProtocol, - out ProxySettings pProxySetting - ); - - void SetProxySettings( - [In] string pwszProtocol, - [In] ProxySettings ProxySetting - ); - - void GetProxyHostName( - [In] string pwszProtocol, - [Out] StringBuilder pwszHostName, - ref int pcchHostName - ); - - void SetProxyHostName( - [In] string pwszProtocol, - [In] string pwszHostName - ); - - void GetProxyPort( - [In] string pwszProtocol, - out int pdwPort - ); - - void SetProxyPort( - [In] string pwszProtocol, - [In] int dwPort - ); - - void GetProxyExceptionList( - [In] string pwszProtocol, - [Out] StringBuilder pwszExceptionList, - ref int pcchExceptionList - ); - - void SetProxyExceptionList( - [In] string pwszProtocol, - [In] string pwszExceptionList - ); - - void GetProxyBypassForLocal( - [In] string pwszProtocol, - [MarshalAs(UnmanagedType.Bool)] out bool pfBypassForLocal - ); - - void SetProxyBypassForLocal( - [In] string pwszProtocol, - [In, MarshalAs(UnmanagedType.Bool)] bool fBypassForLocal - ); - - void GetForceRerunAutoProxyDetection( - [MarshalAs(UnmanagedType.Bool)] out bool pfForceRerunDetection - ); - - void SetForceRerunAutoProxyDetection( - [In, MarshalAs(UnmanagedType.Bool)] bool fForceRerunDetection - ); - - void GetEnableMulticast( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableMulticast - ); - - void SetEnableMulticast( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableMulticast - ); - - void GetEnableHTTP( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableHTTP - ); - - void SetEnableHTTP( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableHTTP - ); - - void GetEnableUDP( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableUDP - ); - - void SetEnableUDP( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableUDP - ); - - void GetEnableTCP( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableTCP - ); - - void SetEnableTCP( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableTCP - ); - - void ResetProtocolRollover(); - - void GetConnectionBandwidth( - out int pdwConnectionBandwidth - ); - - void SetConnectionBandwidth( - [In] int dwConnectionBandwidth - ); - - void GetNumProtocolsSupported( - out int pcProtocols - ); - - void GetSupportedProtocolName( - [In] int dwProtocolNum, - [Out] StringBuilder pwszProtocolName, - ref int pcchProtocolName - ); - - void AddLoggingUrl( - [In] string pwszURL - ); - - void GetLoggingUrl( - [In] int dwIndex, - [Out] StringBuilder pwszURL, - ref int pcchURL - ); - - void GetLoggingUrlCount( - out int pdwUrlCount - ); - - void ResetLoggingUrlList(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("D979A853-042B-4050-8387-C939DB22013F"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderNetworkConfig2 : IWMReaderNetworkConfig - { - #region IWMReaderNetworkConfig Methods - - new void GetBufferingTime( - out long pcnsBufferingTime - ); - - new void SetBufferingTime( - [In] long cnsBufferingTime - ); - - new void GetUDPPortRanges( - [Out, MarshalAs(UnmanagedType.LPArray)] WMPortNumberRange[] pRangeArray, - ref int pcRanges - ); - - new void SetUDPPortRanges( - [In, MarshalAs(UnmanagedType.LPArray)] WMPortNumberRange[] pRangeArray, - [In] int cRanges - ); - - new void GetProxySettings( - [In] string pwszProtocol, - out ProxySettings pProxySetting - ); - - new void SetProxySettings( - [In] string pwszProtocol, - [In] ProxySettings ProxySetting - ); - - new void GetProxyHostName( - [In] string pwszProtocol, - [Out] StringBuilder pwszHostName, - ref int pcchHostName - ); - - new void SetProxyHostName( - [In] string pwszProtocol, - [In] string pwszHostName - ); - - new void GetProxyPort( - [In] string pwszProtocol, - out int pdwPort - ); - - new void SetProxyPort( - [In] string pwszProtocol, - [In] int dwPort - ); - - new void GetProxyExceptionList( - [In] string pwszProtocol, - [Out] StringBuilder pwszExceptionList, - ref int pcchExceptionList - ); - - new void SetProxyExceptionList( - [In] string pwszProtocol, - [In] string pwszExceptionList - ); - - new void GetProxyBypassForLocal( - [In] string pwszProtocol, - [MarshalAs(UnmanagedType.Bool)] out bool pfBypassForLocal - ); - - new void SetProxyBypassForLocal( - [In] string pwszProtocol, - [In, MarshalAs(UnmanagedType.Bool)] bool fBypassForLocal - ); - - new void GetForceRerunAutoProxyDetection( - [MarshalAs(UnmanagedType.Bool)] out bool pfForceRerunDetection - ); - - new void SetForceRerunAutoProxyDetection( - [In, MarshalAs(UnmanagedType.Bool)] bool fForceRerunDetection - ); - - new void GetEnableMulticast( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableMulticast - ); - - new void SetEnableMulticast( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableMulticast - ); - - new void GetEnableHTTP( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableHTTP - ); - - new void SetEnableHTTP( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableHTTP - ); - - new void GetEnableUDP( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableUDP - ); - - new void SetEnableUDP( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableUDP - ); - - new void GetEnableTCP( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableTCP - ); - - new void SetEnableTCP( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableTCP - ); - - new void ResetProtocolRollover(); - - new void GetConnectionBandwidth( - out int pdwConnectionBandwidth - ); - - new void SetConnectionBandwidth( - [In] int dwConnectionBandwidth - ); - - new void GetNumProtocolsSupported( - out int pcProtocols - ); - - new void GetSupportedProtocolName( - [In] int dwProtocolNum, - [Out] StringBuilder pwszProtocolName, - ref int pcchProtocolName - ); - - new void AddLoggingUrl( - [In] string pwszURL - ); - - new void GetLoggingUrl( - [In] int dwIndex, - [Out] StringBuilder pwszURL, - ref int pcchURL - ); - - new void GetLoggingUrlCount( - out int pdwUrlCount - ); - - new void ResetLoggingUrlList(); - - #endregion - - void GetEnableContentCaching( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableContentCaching - ); - - void SetEnableContentCaching( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableContentCaching - ); - - void GetEnableFastCache( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableFastCache - ); - - void SetEnableFastCache( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableFastCache - ); - - void GetAcceleratedStreamingDuration( - out long pcnsAccelDuration - ); - - void SetAcceleratedStreamingDuration( - [In] long cnsAccelDuration - ); - - void GetAutoReconnectLimit( - out int pdwAutoReconnectLimit - ); - - void SetAutoReconnectLimit( - [In] int dwAutoReconnectLimit - ); - - void GetEnableResends( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableResends - ); - - void SetEnableResends( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableResends - ); - - void GetEnableThinning( - [MarshalAs(UnmanagedType.Bool)] out bool pfEnableThinning - ); - - void SetEnableThinning( - [In, MarshalAs(UnmanagedType.Bool)] bool fEnableThinning - ); - - void GetMaxNetPacketSize( - out int pdwMaxNetPacketSize - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BED-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderStreamClock - { - void GetTime( - out long pcnsNow - ); - - void SetTimer( - [In] long cnsWhen, - [In] IntPtr pvParam, - out int pdwTimerId - ); - - void KillTimer( - [In] int dwTimerId - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("FDBE5592-81A1-41EA-93BD-735CAD1ADC05"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderTypeNegotiation - { - void TryOutputProps( - [In] int dwOutputNum, - [In] IWMOutputMediaProps pOutput - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("CF4B1F99-4DE2-4E49-A363-252740D99BC1"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMRegisterCallback - { - void Advise( - [In] IWMStatusCallback pCallback, - [In] IntPtr pvContext - ); - - void Unadvise( - [In] IWMStatusCallback pCallback, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("6D7CDC70-9888-11D3-8EDC-00C04F6109CF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMStatusCallback - { - void OnStatus( - [In] Status iStatus, - [In] int hr, - [In] AttrDataType dwType, - [In] IntPtr pValue, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BDC-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMStreamConfig - { - void GetStreamType( - out Guid pguidStreamType - ); - - void GetStreamNumber( - out short pwStreamNum - ); - - void SetStreamNumber( - [In] short wStreamNum - ); - - void GetStreamName( - [Out] StringBuilder pwszStreamName, - ref short pcchStreamName - ); - - void SetStreamName( - [In] string pwszStreamName - ); - - void GetConnectionName( - [Out] StringBuilder pwszInputName, - ref short pcchInputName - ); - - void SetConnectionName( - [In] string pwszInputName - ); - - void GetBitrate( - out int pdwBitrate - ); - - void SetBitrate( - [In] int pdwBitrate - ); - - void GetBufferWindow( - out int pmsBufferWindow - ); - - void SetBufferWindow( - [In] int msBufferWindow - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("7688D8CB-FC0D-43BD-9459-5A8DEC200CFA"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMStreamConfig2 : IWMStreamConfig - { - #region IWMStreamConfig Methods - - new void GetStreamType( - out Guid pguidStreamType - ); - - new void GetStreamNumber( - out short pwStreamNum - ); - - new void SetStreamNumber( - [In] short wStreamNum - ); - - new void GetStreamName( - [Out] StringBuilder pwszStreamName, - ref short pcchStreamName - ); - - new void SetStreamName( - [In] string pwszStreamName - ); - - new void GetConnectionName( - [Out] StringBuilder pwszInputName, - ref short pcchInputName - ); - - new void SetConnectionName( - [In] string pwszInputName - ); - - new void GetBitrate( - out int pdwBitrate - ); - - new void SetBitrate( - [In] int pdwBitrate - ); - - new void GetBufferWindow( - out int pmsBufferWindow - ); - - new void SetBufferWindow( - [In] int msBufferWindow - ); - - #endregion - - void GetTransportType( - out TransportType pnTransportType - ); - - void SetTransportType( - [In] TransportType nTransportType - ); - - void AddDataUnitExtension( - [In] Guid guidExtensionSystemID, - [In] short cbExtensionDataSize, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbExtensionSystemInfo, - [In] int cbExtensionSystemInfo - ); - - void GetDataUnitExtensionCount( - out short pcDataUnitExtensions - ); - - void GetDataUnitExtension( - [In] short wDataUnitExtensionNumber, - out Guid pguidExtensionSystemID, - out short pcbExtensionDataSize, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbExtensionSystemInfo, - ref int pcbExtensionSystemInfo - ); - - void RemoveAllDataUnitExtensions(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("CB164104-3AA9-45A7-9AC9-4DAEE131D6E1"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMStreamConfig3 : IWMStreamConfig2 - { - #region IWMStreamConfig Methods - - new void GetStreamType( - out Guid pguidStreamType - ); - - new void GetStreamNumber( - out short pwStreamNum - ); - - new void SetStreamNumber( - [In] short wStreamNum - ); - - new void GetStreamName( - [Out] StringBuilder pwszStreamName, - ref short pcchStreamName - ); - - new void SetStreamName( - [In] string pwszStreamName - ); - - new void GetConnectionName( - [Out] StringBuilder pwszInputName, - ref short pcchInputName - ); - - new void SetConnectionName( - [In] string pwszInputName - ); - - new void GetBitrate( - out int pdwBitrate - ); - - new void SetBitrate( - [In] int pdwBitrate - ); - - new void GetBufferWindow( - out int pmsBufferWindow - ); - - new void SetBufferWindow( - [In] int msBufferWindow - ); - - #endregion - - #region IWMStreamConfig2 Methods - - new void GetTransportType( - out TransportType pnTransportType - ); - - new void SetTransportType( - [In] TransportType nTransportType - ); - - new void AddDataUnitExtension( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidExtensionSystemID, - [In] short cbExtensionDataSize, - [In] byte[] pbExtensionSystemInfo, - [In] int cbExtensionSystemInfo - ); - - new void GetDataUnitExtensionCount( - out short pcDataUnitExtensions - ); - - new void GetDataUnitExtension( - [In] short wDataUnitExtensionNumber, - out Guid pguidExtensionSystemID, - out short pcbExtensionDataSize, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbExtensionSystemInfo, - ref int pcbExtensionSystemInfo - ); - - new void RemoveAllDataUnitExtensions(); - - #endregion - - void GetLanguage( - [Out] StringBuilder pwszLanguageString, - ref short pcchLanguageStringLength - ); - - void SetLanguage( - [In] string pwszLanguageString - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BDD-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMStreamList - { - void GetStreams( - [Out, MarshalAs(UnmanagedType.LPArray)] short[] pwStreamNumArray, - ref short pcStreams - ); - - void AddStream( - [In] short wStreamNum - ); - - void RemoveStream( - [In] short wStreamNum - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("8C1C6090-F9A8-4748-8EC3-DD1108BA1E77"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMStreamPrioritization - { - void GetPriorityRecords( - [Out, MarshalAs(UnmanagedType.LPArray)] WMStreamPrioritizationRecord [] pRecordArray, - ref short pcRecords - ); - - void SetPriorityRecords( - [In, MarshalAs(UnmanagedType.LPArray)] WMStreamPrioritizationRecord [] pRecordArray, - [In] short cRecords - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("9397F121-7705-4DC9-B049-98B698188414"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMSyncReader - { - void Open( - [In] string pwszFilename - ); - - void Close(); - - void SetRange( - [In] long cnsStartTime, - [In] long cnsDuration - ); - - void SetRangeByFrame( - [In] short wStreamNum, - [In] long qwFrameNumber, - [In] long cFramesToRead - ); - - void GetNextSample( - [In] short wStreamNum, - out INSSBuffer ppSample, - out long pcnsSampleTime, - out long pcnsDuration, - out SampleFlag pdwFlags, - out int pdwOutputNum, - out short pwStreamNum - ); - - void SetStreamsSelected( - [In] short cStreamCount, - [In, MarshalAs(UnmanagedType.LPArray)] short[] pwStreamNumbers, - [In, MarshalAs(UnmanagedType.LPArray)] StreamSelection[] pSelections - ); - - void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - void SetReadStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fCompressed - ); - - void GetReadStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfCompressed - ); - - void GetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - void SetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] short cbLength - ); - - void GetOutputCount( - out int pcOutputs - ); - - void GetOutputProps( - [In] int dwOutputNum, - out IWMOutputMediaProps ppOutput - ); - - void SetOutputProps( - [In] int dwOutputNum, - [In] IWMOutputMediaProps pOutput - ); - - void GetOutputFormatCount( - [In] int dwOutputNum, - out int pcFormats - ); - - void GetOutputFormat( - [In] int dwOutputNum, - [In] int dwFormatNum, - out IWMOutputMediaProps ppProps - ); - - void GetOutputNumberForStream( - [In] short wStreamNum, - out int pdwOutputNum - ); - - void GetStreamNumberForOutput( - [In] int dwOutputNum, - out short pwStreamNum - ); - - void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - void OpenStream( - [In] IStream pStream - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("FAED3D21-1B6B-4AF7-8CB6-3E189BBC187B"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMSyncReader2 : IWMSyncReader - { - #region IWMSyncReader Methods - - new void Open( - [In] string pwszFilename - ); - - new void Close(); - - new void SetRange( - [In] long cnsStartTime, - [In] long cnsDuration - ); - - new void SetRangeByFrame( - [In] short wStreamNum, - [In] long qwFrameNumber, - [In] long cFramesToRead - ); - - new void GetNextSample( - [In] short wStreamNum, - out INSSBuffer ppSample, - out long pcnsSampleTime, - out long pcnsDuration, - out SampleFlag pdwFlags, - out int pdwOutputNum, - out short pwStreamNum - ); - - new void SetStreamsSelected( - [In] short cStreamCount, - [In] short[] pwStreamNumbers, - [In] StreamSelection[] pSelections - ); - - new void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - new void SetReadStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fCompressed - ); - - new void GetReadStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfCompressed - ); - - new void GetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void SetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - new void GetOutputCount( - out int pcOutputs - ); - - new void GetOutputProps( - [In] int dwOutputNum, - out IWMOutputMediaProps ppOutput - ); - - new void SetOutputProps( - [In] int dwOutputNum, - [In] IWMOutputMediaProps pOutput - ); - - new void GetOutputFormatCount( - [In] int dwOutputNum, - out int pcFormats - ); - - new void GetOutputFormat( - [In] int dwOutputNum, - [In] int dwFormatNum, - out IWMOutputMediaProps ppProps - ); - - new void GetOutputNumberForStream( - [In] short wStreamNum, - out int pdwOutputNum - ); - - new void GetStreamNumberForOutput( - [In] int dwOutputNum, - out short pwStreamNum - ); - - new void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - new void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - new void OpenStream( - [In] IStream pStream - ); - - #endregion - - void SetRangeByTimecode( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.LPStruct)] TimeCodeExtensionData pStart, - [In, MarshalAs(UnmanagedType.LPStruct)] TimeCodeExtensionData pEnd - ); - - void SetRangeByFrameEx( - [In] short wStreamNum, - [In] long qwFrameNumber, - [In] long cFramesToRead, - out long pcnsStartTime - ); - - void SetAllocateForOutput( - [In] int dwOutputNum, - [In] IWMReaderAllocatorEx pAllocator - ); - - void GetAllocateForOutput( - [In] int dwOutputNum, - out IWMReaderAllocatorEx ppAllocator - ); - - void SetAllocateForStream( - [In] short wStreamNum, - [In] IWMReaderAllocatorEx pAllocator - ); - - void GetAllocateForStream( - [In] short dwSreamNum, - out IWMReaderAllocatorEx ppAllocator - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BCF-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMVideoMediaProps : IWMMediaProps - { - #region IWMMediaProps Methods - - new void GetType( - out Guid pguidType - ); - - new void GetMediaType( - [In, Out, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(MTMarshaler))] AMMediaType pType, - ref int pcbType - ); - - new void SetMediaType( - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pType - ); - - #endregion - - void GetMaxKeyFrameSpacing( - out long pllTime - ); - - void SetMaxKeyFrameSpacing( - [In] long llTime - ); - - void GetQuality( - out int pdwQuality - ); - - void SetQuality( - [In] int dwQuality - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BD4-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriter - { - void SetProfileByID( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid guidProfile - ); - - void SetProfile( - [In] IWMProfile pProfile - ); - - void SetOutputFilename( - [In] string pwszFilename - ); - - void GetInputCount( - out int pcInputs - ); - - void GetInputProps( - [In] int dwInputNum, - out IWMInputMediaProps ppInput - ); - - void SetInputProps( - [In] int dwInputNum, - [In] IWMInputMediaProps pInput - ); - - void GetInputFormatCount( - [In] int dwInputNumber, - out int pcFormats - ); - - void GetInputFormat( - [In] int dwInputNumber, - [In] int dwFormatNumber, - out IWMInputMediaProps pProps - ); - - void BeginWriting(); - - void EndWriting(); - - void AllocateSample( - [In] int dwSampleSize, - out INSSBuffer ppSample - ); - - void WriteSample( - [In] int dwInputNum, - [In] long cnsSampleTime, - [In] SampleFlag dwFlags, - [In] INSSBuffer pSample - ); - - void Flush(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BE3-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterAdvanced - { - void GetSinkCount( - out int pcSinks - ); - - void GetSink( - [In] int dwSinkNum, - out IWMWriterSink ppSink - ); - - void AddSink( - [In] IWMWriterSink pSink - ); - - void RemoveSink( - [In] IWMWriterSink pSink - ); - - void WriteStreamSample( - [In] short wStreamNum, - [In] long cnsSampleTime, - [In] int msSampleSendTime, - [In] long cnsSampleDuration, - [In] SampleFlag dwFlags, - [In] INSSBuffer pSample - ); - - void SetLiveSource( - [In, MarshalAs(UnmanagedType.Bool)] bool fIsLiveSource - ); - - void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - void GetWriterTime( - out long pcnsCurrentTime - ); - - void GetStatistics( - [In] short wStreamNum, - out WriterStatistics pStats - ); - - void SetSyncTolerance( - [In] int msWindow - ); - - void GetSyncTolerance( - out int pmsWindow - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("962DC1EC-C046-4DB8-9CC7-26CEAE500817"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterAdvanced2 : IWMWriterAdvanced - { - #region IWMWriterAdvanced Methods - - new void GetSinkCount( - out int pcSinks - ); - - new void GetSink( - [In] int dwSinkNum, - out IWMWriterSink ppSink - ); - - new void AddSink( - [In] IWMWriterSink pSink - ); - - new void RemoveSink( - [In] IWMWriterSink pSink - ); - - new void WriteStreamSample( - [In] short wStreamNum, - [In] long cnsSampleTime, - [In] int msSampleSendTime, - [In] long cnsSampleDuration, - [In] SampleFlag dwFlags, - [In] INSSBuffer pSample - ); - - new void SetLiveSource( - [In, MarshalAs(UnmanagedType.Bool)] bool fIsLiveSource - ); - - new void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - new void GetWriterTime( - out long pcnsCurrentTime - ); - - new void GetStatistics( - [In] short wStreamNum, - out WriterStatistics pStats - ); - - new void SetSyncTolerance( - [In] int msWindow - ); - - new void GetSyncTolerance( - out int pmsWindow - ); - - #endregion - - void GetInputSetting( - [In] int dwInputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - void SetInputSetting( - [In] int dwInputNum, - [In] string pszName, - [In] AttrDataType Type, - [In, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - [In] short cbLength - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("2CD6492D-7C37-4E76-9D3B-59261183A22E"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterAdvanced3 : IWMWriterAdvanced2 - { - #region IWMWriterAdvanced Methods - - new void GetSinkCount( - out int pcSinks - ); - - new void GetSink( - [In] int dwSinkNum, - out IWMWriterSink ppSink - ); - - new void AddSink( - [In] IWMWriterSink pSink - ); - - new void RemoveSink( - [In] IWMWriterSink pSink - ); - - new void WriteStreamSample( - [In] short wStreamNum, - [In] long cnsSampleTime, - [In] int msSampleSendTime, - [In] long cnsSampleDuration, - [In] SampleFlag dwFlags, - [In] INSSBuffer pSample - ); - - new void SetLiveSource( - [In, MarshalAs(UnmanagedType.Bool)] bool fIsLiveSource - ); - - new void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - new void GetWriterTime( - out long pcnsCurrentTime - ); - - new void GetStatistics( - [In] short wStreamNum, - out WriterStatistics pStats - ); - - new void SetSyncTolerance( - [In] int msWindow - ); - - new void GetSyncTolerance( - out int pmsWindow - ); - - new void GetInputSetting( - [In] int dwInputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - #endregion - - #region IWMWriterAdvanced2 Methods - - new void SetInputSetting( - [In] int dwInputNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - #endregion - - void GetStatisticsEx( - [In] short wStreamNum, - out WMWriterStatisticsEx pStats - ); - - void SetNonBlocking(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BE5-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterFileSink : IWMWriterSink - { - #region IWMWriterSink Methods - - new void OnHeader( - [In] INSSBuffer pHeader - ); - - new void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - new void AllocateDataUnit( - [In] int cbDataUnit, - out INSSBuffer ppDataUnit - ); - - new void OnDataUnit( - [In] INSSBuffer pDataUnit - ); - - new void OnEndWriting(); - - #endregion - - void Open( - [In] string pwszFilename - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("14282BA7-4AEF-4205-8CE5-C229035A05BC"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterFileSink2 : IWMWriterFileSink - { - #region IWMWriterSink Methods - - new void OnHeader( - [In] INSSBuffer pHeader - ); - - new void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - new void AllocateDataUnit( - [In] int cbDataUnit, - out INSSBuffer ppDataUnit - ); - - new void OnDataUnit( - [In] INSSBuffer pDataUnit - ); - - new void OnEndWriting(); - - #endregion - - #region IWMWriterFileSink Methods - - new void Open( - [In] string pwszFilename - ); - - #endregion - - void Start( - [In] long cnsStartTime - ); - - void Stop( - [In] long cnsStopTime - ); - - void IsStopped( - [MarshalAs(UnmanagedType.Bool)] out bool pfStopped - ); - - void GetFileDuration( - out long pcnsDuration - ); - - void GetFileSize( - out long pcbFile - ); - - void Close(); - - void IsClosed( - [MarshalAs(UnmanagedType.Bool)] out bool pfClosed - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("3FEA4FEB-2945-47A7-A1DD-C53A8FC4C45C"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterFileSink3 : IWMWriterFileSink2 - { - #region IWMWriterSink Methods - - new void OnHeader( - [In] INSSBuffer pHeader - ); - - new void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - new void AllocateDataUnit( - [In] int cbDataUnit, - out INSSBuffer ppDataUnit - ); - - new void OnDataUnit( - [In] INSSBuffer pDataUnit - ); - - new void OnEndWriting(); - - #endregion - - #region IWMWriterFileSink Methods - - new void Open( - [In] string pwszFilename - ); - - #endregion - - #region IWMWriterFileSink2 Methods - - new void Start( - [In] long cnsStartTime - ); - - new void Stop( - [In] long cnsStopTime - ); - - new void IsStopped( - [MarshalAs(UnmanagedType.Bool)] out bool pfStopped - ); - - new void GetFileDuration( - out long pcnsDuration - ); - - new void GetFileSize( - out long pcbFile - ); - - new void Close(); - - new void IsClosed( - [MarshalAs(UnmanagedType.Bool)] out bool pfClosed - ); - - #endregion - - void SetAutoIndexing( - [In, MarshalAs(UnmanagedType.Bool)] bool fDoAutoIndexing - ); - - void GetAutoIndexing( - [MarshalAs(UnmanagedType.Bool)] out bool pfAutoIndexing - ); - - void SetControlStream( - [In] short wStreamNumber, - [In, MarshalAs(UnmanagedType.Bool)] bool fShouldControlStartAndStop - ); - - void GetMode( - out FileSinkMode pdwFileSinkMode - ); - - void OnDataUnitEx( - [In, MarshalAs(UnmanagedType.LPStruct)] FileSinkDataUnit pFileSinkDataUnit - ); - - void SetUnbufferedIO( - [In, MarshalAs(UnmanagedType.Bool)] bool fUnbufferedIO, - [In, MarshalAs(UnmanagedType.Bool)] bool fRestrictMemUsage - ); - - void GetUnbufferedIO( - [MarshalAs(UnmanagedType.Bool)] out bool pfUnbufferedIO - ); - - void CompleteOperations(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BE7-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterNetworkSink : IWMWriterSink - { - #region IWMWriterSink Methods - - new void OnHeader( - [In] INSSBuffer pHeader - ); - - new void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - new void AllocateDataUnit( - [In] int cbDataUnit, - out INSSBuffer ppDataUnit - ); - - new void OnDataUnit( - [In] INSSBuffer pDataUnit - ); - - new void OnEndWriting(); - - #endregion - - void SetMaximumClients( - [In] int dwMaxClients - ); - - void GetMaximumClients( - out int pdwMaxClients - ); - - void SetNetworkProtocol( - [In] NetProtocol protocol - ); - - void GetNetworkProtocol( - out NetProtocol pProtocol - ); - - void GetHostURL( - [Out] StringBuilder pwszURL, - ref int pcchURL - ); - - void Open( - ref int pdwPortNum - ); - - void Disconnect(); - - void Close(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("81E20CE4-75EF-491A-8004-FC53C45BDC3E"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterPostView - { - void SetPostViewCallback( - IWMWriterPostViewCallback pCallback, - IntPtr pvContext - ); - - void SetReceivePostViewSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fReceivePostViewSamples - ); - - void GetReceivePostViewSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfReceivePostViewSamples - ); - - void GetPostViewProps( - [In] short wStreamNumber, - out IWMMediaProps ppOutput - ); - - void SetPostViewProps( - [In] short wStreamNumber, - [In] IWMMediaProps pOutput - ); - - void GetPostViewFormatCount( - [In] short wStreamNumber, - out int pcFormats - ); - - void GetPostViewFormat( - [In] short wStreamNumber, - [In] int dwFormatNumber, - out IWMMediaProps ppProps - ); - - void SetAllocateForPostView( - [In] short wStreamNumber, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - void GetAllocateForPostView( - [In] short wStreamNumber, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("D9D6549D-A193-4F24-B308-03123D9B7F8D"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterPostViewCallback : IWMStatusCallback - { - #region IWMStatusCallback Methods - - new void OnStatus( - [In] Status iStatus, - [In] int hr, - [In] AttrDataType dwType, - [In] IntPtr pValue, - [In] IntPtr pvContext - ); - - #endregion - - void OnPostViewSample( - [In] short wStreamNumber, - [In] long cnsSampleTime, - [In] long cnsSampleDuration, - [In] SampleFlag dwFlags, - [In] INSSBuffer pSample, - [In] IntPtr pvContext - ); - - void AllocateForPostView( - [In] short wStreamNum, - [In] int cbBuffer, - out INSSBuffer ppBuffer, - [In] IntPtr pvContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("FC54A285-38C4-45B5-AA23-85B9F7CB424B"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterPreprocess - { - void GetMaxPreprocessingPasses( - [In] int dwInputNum, - [In] int dwFlags, - out int pdwMaxNumPasses - ); - - void SetNumPreprocessingPasses( - [In] int dwInputNum, - [In] int dwFlags, - [In] int dwNumPasses - ); - - void BeginPreprocessingPass( - [In] int dwInputNum, - [In] int dwFlags - ); - - void PreprocessSample( - [In] int dwInputNum, - [In] long cnsSampleTime, - [In] int dwFlags, - [In] INSSBuffer pSample - ); - - void EndPreprocessingPass( - [In] int dwInputNum, - [In] int dwFlags - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("DC10E6A5-072C-467D-BF57-6330A9DDE12A"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterPushSink : IWMWriterSink - { - #region IWMWriterSink Methods - - new void OnHeader( - [In] INSSBuffer pHeader - ); - - new void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - new void AllocateDataUnit( - [In] int cbDataUnit, - out INSSBuffer ppDataUnit - ); - - new void OnDataUnit( - [In] INSSBuffer pDataUnit - ); - - new void OnEndWriting(); - - #endregion - - void Connect( - [In] string pwszURL, - [In] string pwszTemplateURL, - [In, MarshalAs(UnmanagedType.Bool)] bool fAutoDestroy - ); - - void Disconnect(); - - void EndSession(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("96406BE4-2B2B-11D3-B36B-00C04F6108FF"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMWriterSink - { - void OnHeader( - [In] INSSBuffer pHeader - ); - - void IsRealTime( - [MarshalAs(UnmanagedType.Bool)] out bool pfRealTime - ); - - void AllocateDataUnit( - [In] int cbDataUnit, - out INSSBuffer ppDataUnit - ); - - void OnDataUnit( - [In] INSSBuffer pDataUnit - ); - - void OnEndWriting(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("0C0E4080-9081-11D2-BEEC-0060082F2054"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface INSNetSourceCreator - { - void Initialize(); - - void CreateNetSource( - [In] string pszStreamName, - [In, MarshalAs(UnmanagedType.IUnknown)] object pMonitor, - [In] byte[] pData, - [In, MarshalAs(UnmanagedType.IUnknown)] object pUserContext, - [In, MarshalAs(UnmanagedType.IUnknown)] object pCallback, - [In] long qwContext - ); - - void GetNetSourceProperties( - [In] string pszStreamName, - [MarshalAs(UnmanagedType.IUnknown)] out object ppPropertiesNode - ); - - void GetNetSourceSharedNamespace( - [MarshalAs(UnmanagedType.IUnknown)] out object ppSharedNamespace - ); - - void GetNetSourceAdminInterface( - [In] string pszStreamName, - [MarshalAs(UnmanagedType.Struct)] out object pVal - ); - - void GetNumProtocolsSupported( - out int pcProtocols - ); - - void GetProtocolName( - [In] int dwProtocolNum, - [Out] StringBuilder pwszProtocolName, - ref short pcchProtocolName - ); - - void Shutdown(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("4F528693-1035-43FE-B428-757561AD3A68"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface INSSBuffer2 : INSSBuffer - { - #region INSSBuffer Methods - - new void GetLength( - out int pdwLength - ); - - new void SetLength( - [In] int dwLength - ); - - new void GetMaxLength( - out int pdwLength - ); - - new void GetBuffer( - out IntPtr ppdwBuffer - ); - - new void GetBufferAndLength( - out IntPtr ppdwBuffer, - out int pdwLength - ); - - #endregion - - void GetSampleProperties( - [In] int cbProperties, - out byte[] pbProperties - ); - - void SetSampleProperties( - [In] int cbProperties, - [In] byte[] pbProperties - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("C87CEAAF-75BE-4BC4-84EB-AC2798507672"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface INSSBuffer3 : INSSBuffer2 - { - #region INSSBuffer Methods - - new void GetLength( - out int pdwLength - ); - - new void SetLength( - [In] int dwLength - ); - - new void GetMaxLength( - out int pdwLength - ); - - new void GetBuffer( - out IntPtr ppdwBuffer - ); - - new void GetBufferAndLength( - out IntPtr ppdwBuffer, - out int pdwLength - ); - - #endregion - - #region INSSBuffer2 Methods - - new void GetSampleProperties( - [In] int cbProperties, - out byte[] pbProperties - ); - - new void SetSampleProperties( - [In] int cbProperties, - [In] byte[] pbProperties - ); - - #endregion - - void SetProperty( - [In] Guid WM_SampleExtensionGUID, - [In] IntPtr pvBufferProperty, - [In] int dwBufferPropertySize - ); - - void GetProperty( - [In] Guid WM_SampleExtensionGUID, - [Out] IntPtr pvBufferProperty, - ref int pdwBufferPropertySize - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("B6B8FD5A-32E2-49D4-A910-C26CC85465ED"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface INSSBuffer4 : INSSBuffer3 - { - #region INSSBuffer Methods - - new void GetLength( - out int pdwLength - ); - - new void SetLength( - [In] int dwLength - ); - - new void GetMaxLength( - out int pdwLength - ); - - new void GetBuffer( - out IntPtr ppdwBuffer - ); - - new void GetBufferAndLength( - out IntPtr ppdwBuffer, - out int pdwLength - ); - - #endregion - - #region INSSBuffer2 Methods - - new void GetSampleProperties( - [In] int cbProperties, - out byte[] pbProperties - ); - - new void SetSampleProperties( - [In] int cbProperties, - [In] byte[] pbProperties - ); - - #endregion - - #region INSSBuffer3 Methods - - new void SetProperty( - [In] Guid guidBufferProperty, - [In] IntPtr pvBufferProperty, - [In] int dwBufferPropertySize - ); - - new void GetProperty( - [In] Guid guidBufferProperty, - [Out] IntPtr pvBufferProperty, - ref int pdwBufferPropertySize - ); - - #endregion - - void GetPropertyCount( - out int pcBufferProperties - ); - - void GetPropertyByIndex( - [In] int dwBufferPropertyIndex, - out Guid pguidBufferProperty, - [Out] IntPtr pvBufferProperty, - ref int pdwBufferPropertySize - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("8BB23E5F-D127-4AFB-8D02-AE5B66D54C78"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMSInternalAdminNetSource - { - void Initialize( - [In, MarshalAs(UnmanagedType.IUnknown)] object pSharedNamespace, - [In, MarshalAs(UnmanagedType.IUnknown)] object pNamespaceNode, - [In] INSNetSourceCreator pNetSourceCreator, - [In] int fEmbeddedInServer - ); - - void GetNetSourceCreator( - out INSNetSourceCreator ppNetSourceCreator - ); - - void SetCredentials( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrName, - [In, MarshalAs(UnmanagedType.BStr)] string bstrPassword, - [In, MarshalAs(UnmanagedType.Bool)] bool fPersist, - [In, MarshalAs(UnmanagedType.Bool)] bool fConfirmedGood - ); - - void GetCredentials( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [MarshalAs(UnmanagedType.BStr)] out string pbstrName, - [MarshalAs(UnmanagedType.BStr)] out string pbstrPassword, - [MarshalAs(UnmanagedType.Bool)] out bool pfConfirmedGood - ); - - void DeleteCredentials( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm - ); - - void GetCredentialFlags( - out CredentialFlag lpdwFlags - ); - - void SetCredentialFlags( - [In] CredentialFlag dwFlags - ); - - [PreserveSig] - int FindProxyForURL( - [In, MarshalAs(UnmanagedType.BStr)] string bstrProtocol, - [In, MarshalAs(UnmanagedType.BStr)] string bstrHost, - [MarshalAs(UnmanagedType.Bool)] out bool pfProxyEnabled, - [MarshalAs(UnmanagedType.BStr)] out string pbstrProxyServer, - out int pdwProxyPort, - ref int pdwProxyContext - ); - - void RegisterProxyFailure( - [In] int hrParam, - [In] int dwProxyContext - ); - - void ShutdownProxyContext( - [In] int dwProxyContext - ); - - void IsUsingIE( - [In] int dwProxyContext, - [MarshalAs(UnmanagedType.Bool)] out bool pfIsUsingIE - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("E74D58C3-CF77-4B51-AF17-744687C43EAE"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMSInternalAdminNetSource2 - { - void SetCredentialsEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy, - [In, MarshalAs(UnmanagedType.BStr)] string bstrName, - [In, MarshalAs(UnmanagedType.BStr)] string bstrPassword, - [In, MarshalAs(UnmanagedType.Bool)] bool fPersist, - [In, MarshalAs(UnmanagedType.Bool)] bool fConfirmedGood - ); - - void GetCredentialsEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy, - out NetSourceURLCredPolicySettings pdwUrlPolicy, - [MarshalAs(UnmanagedType.BStr)] out string pbstrName, - [MarshalAs(UnmanagedType.BStr)] out string pbstrPassword, - [MarshalAs(UnmanagedType.Bool)] out bool pfConfirmedGood - ); - - void DeleteCredentialsEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy - ); - - void FindProxyForURLEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrProtocol, - [In, MarshalAs(UnmanagedType.BStr)] string bstrHost, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [MarshalAs(UnmanagedType.Bool)] out bool pfProxyEnabled, - [MarshalAs(UnmanagedType.BStr)] out string pbstrProxyServer, - out int pdwProxyPort, - ref int pdwProxyContext - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("6B63D08E-4590-44AF-9EB3-57FF1E73BF80"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMSInternalAdminNetSource3 : IWMSInternalAdminNetSource2 - { - #region IWMSInternalAdminNetSource2 Methods - - new void SetCredentialsEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy, - [In, MarshalAs(UnmanagedType.BStr)] string bstrName, - [In, MarshalAs(UnmanagedType.BStr)] string bstrPassword, - [In, MarshalAs(UnmanagedType.Bool)] bool fPersist, - [In, MarshalAs(UnmanagedType.Bool)] bool fConfirmedGood - ); - - new void GetCredentialsEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy, - out NetSourceURLCredPolicySettings pdwUrlPolicy, - [MarshalAs(UnmanagedType.BStr)] out string pbstrName, - [MarshalAs(UnmanagedType.BStr)] out string pbstrPassword, - [MarshalAs(UnmanagedType.Bool)] out bool pfConfirmedGood - ); - - new void DeleteCredentialsEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy - ); - - new void FindProxyForURLEx( - [In, MarshalAs(UnmanagedType.BStr)] string bstrProtocol, - [In, MarshalAs(UnmanagedType.BStr)] string bstrHost, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [MarshalAs(UnmanagedType.Bool)] out bool pfProxyEnabled, - [MarshalAs(UnmanagedType.BStr)] out string pbstrProxyServer, - out int pdwProxyPort, - ref int pdwProxyContext - ); - - #endregion - - void GetNetSourceCreator2( - [MarshalAs(UnmanagedType.IUnknown)] out object ppNetSourceCreator - ); - - [PreserveSig] - int FindProxyForURLEx2( - [In, MarshalAs(UnmanagedType.BStr)] string bstrProtocol, - [In, MarshalAs(UnmanagedType.BStr)] string bstrHost, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [MarshalAs(UnmanagedType.Bool)] out bool pfProxyEnabled, - [MarshalAs(UnmanagedType.BStr)] out string pbstrProxyServer, - out int pdwProxyPort, - ref long pqwProxyContext - ); - - void RegisterProxyFailure2( - [In] int hrParam, - [In] long qwProxyContext - ); - - void ShutdownProxyContext2( - [In] long qwProxyContext - ); - - void IsUsingIE2( - [In] long qwProxyContext, - [MarshalAs(UnmanagedType.Bool)] out bool pfIsUsingIE - ); - - void SetCredentialsEx2( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy, - [In, MarshalAs(UnmanagedType.BStr)] string bstrName, - [In, MarshalAs(UnmanagedType.BStr)] string bstrPassword, - [In, MarshalAs(UnmanagedType.Bool)] bool fPersist, - [In, MarshalAs(UnmanagedType.Bool)] bool fConfirmedGood, - [In, MarshalAs(UnmanagedType.Bool)] bool fClearTextAuthentication - ); - - void GetCredentialsEx2( - [In, MarshalAs(UnmanagedType.BStr)] string bstrRealm, - [In, MarshalAs(UnmanagedType.BStr)] string bstrUrl, - [In, MarshalAs(UnmanagedType.Bool)] bool fProxy, - [In, MarshalAs(UnmanagedType.Bool)] bool fClearTextAuthentication, - out NetSourceURLCredPolicySettings pdwUrlPolicy, - [MarshalAs(UnmanagedType.BStr)] out string pbstrName, - [MarshalAs(UnmanagedType.BStr)] out string pbstrPassword, - [MarshalAs(UnmanagedType.Bool)] out bool pfConfirmedGood - ); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("e5b7ca9a-0f1c-4f66-9002-74ec50d8b304"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMPlayerHook - { - void PreDecode(); - } - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("24C44DB0-55D1-49ae-A5CC-F13815E36363"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderAdvanced5 : IWMReaderAdvanced4 - { - #region IWMReaderAdvanced Methods - - new void SetUserProvidedClock( - [In, MarshalAs(UnmanagedType.Bool)] bool fUserClock - ); - - new void GetUserProvidedClock( - [MarshalAs(UnmanagedType.Bool)] out bool pfUserClock - ); - - new void DeliverTime( - [In] long cnsTime - ); - - new void SetManualStreamSelection( - [In, MarshalAs(UnmanagedType.Bool)] bool fSelection - ); - - new void GetManualStreamSelection( - [MarshalAs(UnmanagedType.Bool)] out bool pfSelection - ); - - new void SetStreamsSelected( - [In] short cStreamCount, - [In] short[] pwStreamNumbers, - [In] StreamSelection[] pSelections - ); - - new void GetStreamSelected( - [In] short wStreamNum, - out StreamSelection pSelection - ); - - new void SetReceiveSelectionCallbacks( - [In, MarshalAs(UnmanagedType.Bool)] bool fGetCallbacks - ); - - new void GetReceiveSelectionCallbacks( - [MarshalAs(UnmanagedType.Bool)] out bool pfGetCallbacks - ); - - new void SetReceiveStreamSamples( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fReceiveStreamSamples - ); - - new void GetReceiveStreamSamples( - [In] short wStreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfReceiveStreamSamples - ); - - new void SetAllocateForOutput( - [In] int dwOutputNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForOutput( - [In] int dwOutputNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void SetAllocateForStream( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.Bool)] bool fAllocate - ); - - new void GetAllocateForStream( - [In] short dwSreamNum, - [MarshalAs(UnmanagedType.Bool)] out bool pfAllocate - ); - - new void GetStatistics( - [In, Out, MarshalAs(UnmanagedType.LPStruct)] WMReaderStatistics pStatistics - ); - - new void SetClientInfo( - [In, MarshalAs(UnmanagedType.LPStruct)] WMReaderClientInfo pClientInfo - ); - - new void GetMaxOutputSampleSize( - [In] int dwOutput, - out int pcbMax - ); - - new void GetMaxStreamSampleSize( - [In] short wStream, - out int pcbMax - ); - - new void NotifyLateDelivery( - long cnsLateness - ); - - #endregion - - #region IWMReaderAdvanced2 Methods - - new void SetPlayMode( - [In] PlayMode Mode - ); - - new void GetPlayMode( - out PlayMode pMode - ); - - new void GetBufferProgress( - out int pdwPercent, - out long pcnsBuffering - ); - - new void GetDownloadProgress( - out int pdwPercent, - out long pqwBytesDownloaded, - out long pcnsDownload - ); - - new void GetSaveAsProgress( - out int pdwPercent - ); - - new void SaveFileAs( - [In] string pwszFilename - ); - - new void GetProtocolName( - [Out] StringBuilder pwszProtocol, - ref int pcchProtocol - ); - - new void StartAtMarker( - [In] short wMarkerIndex, - [In] long cnsDuration, - [In] float fRate, - [In] IntPtr pvContext - ); - - new void GetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - out AttrDataType pType, - [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pValue, - ref short pcbLength - ); - - new void SetOutputSetting( - [In] int dwOutputNum, - [In] string pszName, - [In] AttrDataType Type, - [In] byte[] pValue, - [In] short cbLength - ); - - new void Preroll( - [In] long cnsStart, - [In] long cnsDuration, - [In] float fRate - ); - - new void SetLogClientID( - [In, MarshalAs(UnmanagedType.Bool)] bool fLogClientID - ); - - new void GetLogClientID( - [MarshalAs(UnmanagedType.Bool)] out bool pfLogClientID - ); - - new void StopBuffering(); - - new void OpenStream( - [In] IStream pStream, - [In] IWMReaderCallback pCallback, - [In] IntPtr pvContext - ); - - #endregion - - #region IWMReaderAdvanced3 Methods - - new void StopNetStreaming(); - - new void StartAtPosition( - [In] short wStreamNum, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvOffsetStart, - [In, MarshalAs(UnmanagedType.LPStruct)] RA3Union pvDuration, - [In] OffsetFormat dwOffsetFormat, - [In] float fRate, - [In] IntPtr pvContext - ); - - #endregion - - #region IWMReaderAdvanced4 Methods - - new void GetLanguageCount( - [In] int dwOutputNum, - out short pwLanguageCount - ); - - new void GetLanguage( - [In] int dwOutputNum, - [In] short wLanguage, - [Out] StringBuilder pwszLanguageString, - ref short pcchLanguageStringLength - ); - - new void GetMaxSpeedFactor( - out double pdblFactor - ); - - new void IsUsingFastCache( - [MarshalAs(UnmanagedType.Bool)] out bool pfUsingFastCache - ); - - new void AddLogParam( - [In] string wszNameSpace, - [In] string wszName, - [In] string wszValue - ); - - new void SendLogParams(); - - new void CanSaveFileAs( - [MarshalAs(UnmanagedType.Bool)] out bool pfCanSave - ); - - new void CancelSaveFileAs(); - - new void GetURL( - [Out] StringBuilder pwszURL, - ref int pcchURL - ); - - #endregion - - void SetPlayerHook( - int dwOutputNum, - IWMPlayerHook pHook); - }; - - [ComImport, SuppressUnmanagedCodeSecurity, - Guid("f28c0300-9baa-4477-a846-1744d9cbf533"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - public interface IWMReaderPlaylistBurn - { - void InitPlaylistBurn( - int cFiles, - [In, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.LPWStr)] string[] ppwszFilenames, - IWMStatusCallback pCallback, - IntPtr pvContext); - - void GetInitResults( - int cFiles, - [Out, MarshalAs(UnmanagedType.LPArray)] int[] phrStati); - - void Cancel(); - - void EndPlaylistBurn( - int hrBurnResult); - }; - - #endregion -} diff --git a/WindowsMediaLib/WMDefs.cs b/WindowsMediaLib/WMDefs.cs deleted file mode 100644 index 971d356..0000000 --- a/WindowsMediaLib/WMDefs.cs +++ /dev/null @@ -1,795 +0,0 @@ -#region license - -/* -WindowsMediaLib - Provide access to Windows Media interfaces via .NET -Copyright (C) 2008 -http://sourceforge.net/projects/windowsmedianet - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#endregion - -// The definitions in this namespace duplicate ones found in DirectShowLib. -// To avoid ambiguous references when using both libs, do NOT use -// "using WindowsMediaLib.Defs;" - -using System; -using System.Drawing; -using System.Runtime.InteropServices; -using System.Reflection; - -namespace WindowsMediaLib.Defs -{ - public static class MediaType - { - public static readonly Guid Null = Guid.Empty; - - /// MEDIATYPE_Video 'vids' - public static readonly Guid Video = new Guid(0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_Interleaved 'iavs' - public static readonly Guid Interleaved = new Guid(0x73766169, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_Audio 'auds' - public static readonly Guid Audio = new Guid(0x73647561, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_Text 'txts' - public static readonly Guid Texts = new Guid(0x73747874, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_Stream - public static readonly Guid Stream = new Guid(0xe436eb83, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIATYPE_VBI - public static readonly Guid VBI = new Guid(0xf72a76e1, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba); - - /// MEDIATYPE_Midi - public static readonly Guid Midi = new Guid(0x7364696D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_File - public static readonly Guid File = new Guid(0x656c6966, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_ScriptCommand - public static readonly Guid ScriptCommand = new Guid(0x73636d64, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_AUXLine21Data - public static readonly Guid AuxLine21Data = new Guid(0x670aea80, 0x3a82, 0x11d0, 0xb7, 0x9b, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7); - - /// MEDIATYPE_Timecode - public static readonly Guid Timecode = new Guid(0x0482dee3, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIATYPE_LMRT - public static readonly Guid LMRT = new Guid(0x74726c6d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_URL_STREAM - public static readonly Guid URLStream = new Guid(0x736c7275, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIATYPE_AnalogVideo - public static readonly Guid AnalogVideo = new Guid(0x0482dde1, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIATYPE_AnalogAudio - public static readonly Guid AnalogAudio = new Guid(0x0482dee1, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIATYPE_MPEG2_SECTIONS - public static readonly Guid Mpeg2Sections = new Guid(0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5); - - /// MEDIATYPE_DTVCCData - public static readonly Guid DTVCCData = new Guid(0xfb77e152, 0x53b2, 0x499c, 0xb4, 0x6b, 0x50, 0x9f, 0xc3, 0x3e, 0xdf, 0xd7); - - /// MEDIATYPE_MSTVCaption - public static readonly Guid MSTVCaption = new Guid(0xB88B8A89, 0xB049, 0x4C80, 0xAD, 0xCF, 0x58, 0x98, 0x98, 0x5E, 0x22, 0xC1); - - /// WMMEDIATYPE_Image 'imag' - public static readonly Guid Image = new Guid(0x34a50fd8, 0x8aa5, 0x4386, 0x81, 0xfe, 0xa0, 0xef, 0xe0, 0x48, 0x8e, 0x31); - - /// WMMEDIATYPE_FileTransfer 'fxfr' - public static readonly Guid FileTransfer = new Guid(0xd9e47579, 0x930e, 0x4427, 0xad, 0xfc, 0xad, 0x80, 0xf2, 0x90, 0xe4, 0x70); - - /// WMMEDIATYPE_Text 'text' - public static readonly Guid Text = new Guid(0x9bba1ea7, 0x5ab2, 0x4829, 0xba, 0x57, 0x9, 0x40, 0x20, 0x9b, 0xcf, 0x3e); - } - - public static class MediaSubType - { - public static readonly Guid Null = Guid.Empty; - - /// MEDIASUBTYPE_CLPL - public static readonly Guid CLPL = new Guid(0x4C504C43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_YUYV - public static readonly Guid YUYV = new Guid(0x56595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IYUV - public static readonly Guid IYUV = new Guid(0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_YVU9 - public static readonly Guid YVU9 = new Guid(0x39555659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_Y411 - public static readonly Guid Y411 = new Guid(0x31313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_Y41P - public static readonly Guid Y41P = new Guid(0x50313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_YUY2 - public static readonly Guid YUY2 = new Guid(0x32595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_YVYU - public static readonly Guid YVYU = new Guid(0x55595659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_UYVY - public static readonly Guid UYVY = new Guid(0x59565955, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_Y211 - public static readonly Guid Y211 = new Guid(0x31313259, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_CLJR - public static readonly Guid CLJR = new Guid(0x524a4c43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IF09 - public static readonly Guid IF09 = new Guid(0x39304649, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_CPLA - public static readonly Guid CPLA = new Guid(0x414c5043, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_MJPG - public static readonly Guid MJPG = new Guid(0x47504A4D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_TVMJ - public static readonly Guid TVMJ = new Guid(0x4A4D5654, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_WAKE - public static readonly Guid WAKE = new Guid(0x454B4157, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_CFCC - public static readonly Guid CFCC = new Guid(0x43434643, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IJPG - public static readonly Guid IJPG = new Guid(0x47504A49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_Plum - public static readonly Guid PLUM = new Guid(0x6D756C50, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_DVCS - public static readonly Guid DVCS = new Guid(0x53435644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_DVSD - public static readonly Guid DVSD = new Guid(0x44535644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_MDVF - public static readonly Guid MDVF = new Guid(0x4656444D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_RGB1 - public static readonly Guid RGB1 = new Guid(0xe436eb78, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_RGB4 - public static readonly Guid RGB4 = new Guid(0xe436eb79, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_RGB8 - public static readonly Guid RGB8 = new Guid(0xe436eb7a, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_RGB565 - public static readonly Guid RGB565 = new Guid(0xe436eb7b, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_RGB555 - public static readonly Guid RGB555 = new Guid(0xe436eb7c, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_RGB24 - public static readonly Guid RGB24 = new Guid(0xe436eb7d, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_RGB32 - public static readonly Guid RGB32 = new Guid(0xe436eb7e, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_ARGB1555 - public static readonly Guid ARGB1555 = new Guid(0x297c55af, 0xe209, 0x4cb3, 0xb7, 0x57, 0xc7, 0x6d, 0x6b, 0x9c, 0x88, 0xa8); - - /// MEDIASUBTYPE_ARGB4444 - public static readonly Guid ARGB4444 = new Guid(0x6e6415e6, 0x5c24, 0x425f, 0x93, 0xcd, 0x80, 0x10, 0x2b, 0x3d, 0x1c, 0xca); - - /// MEDIASUBTYPE_ARGB32 - public static readonly Guid ARGB32 = new Guid(0x773c9ac0, 0x3274, 0x11d0, 0xb7, 0x24, 0x00, 0xaa, 0x00, 0x6c, 0x1a, 0x01); - - /// MEDIASUBTYPE_A2R10G10B10 - public static readonly Guid A2R10G10B10 = new Guid(0x2f8bb76d, 0xb644, 0x4550, 0xac, 0xf3, 0xd3, 0x0c, 0xaa, 0x65, 0xd5, 0xc5); - - /// MEDIASUBTYPE_A2B10G10R10 - public static readonly Guid A2B10G10R10 = new Guid(0x576f7893, 0xbdf6, 0x48c4, 0x87, 0x5f, 0xae, 0x7b, 0x81, 0x83, 0x45, 0x67); - - /// MEDIASUBTYPE_AYUV - public static readonly Guid AYUV = new Guid(0x56555941, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_AI44 - public static readonly Guid AI44 = new Guid(0x34344941, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IA44 - public static readonly Guid IA44 = new Guid(0x34344149, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_RGB32_D3D_DX7_RT - public static readonly Guid RGB32_D3D_DX7_RT = new Guid(0x32335237, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_RGB16_D3D_DX7_RT - public static readonly Guid RGB16_D3D_DX7_RT = new Guid(0x36315237, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_ARGB32_D3D_DX7_RT - public static readonly Guid ARGB32_D3D_DX7_RT = new Guid(0x38384137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_ARGB4444_D3D_DX7_RT - public static readonly Guid ARGB4444_D3D_DX7_RT = new Guid(0x34344137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_ARGB1555_D3D_DX7_RT - public static readonly Guid ARGB1555_D3D_DX7_RT = new Guid(0x35314137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_RGB32_D3D_DX9_RT - public static readonly Guid RGB32_D3D_DX9_RT = new Guid(0x32335239, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_RGB16_D3D_DX9_RT - public static readonly Guid RGB16_D3D_DX9_RT = new Guid(0x36315239, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_ARGB32_D3D_DX9_RT - public static readonly Guid ARGB32_D3D_DX9_RT = new Guid(0x38384139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_ARGB4444_D3D_DX9_RT - public static readonly Guid ARGB4444_D3D_DX9_RT = new Guid(0x34344139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_ARGB1555_D3D_DX9_RT - public static readonly Guid ARGB1555_D3D_DX9_RT = new Guid(0x35314139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_YV12 - public static readonly Guid YV12 = new Guid(0x32315659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_NV12 - public static readonly Guid NV12 = new Guid(0x3231564E, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IMC1 - public static readonly Guid IMC1 = new Guid(0x31434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IMC2 - public static readonly Guid IMC2 = new Guid(0x32434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IMC3 - public static readonly Guid IMC3 = new Guid(0x33434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IMC4 - public static readonly Guid IMC4 = new Guid(0x34434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_S340 - public static readonly Guid S340 = new Guid(0x30343353, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_S342 - public static readonly Guid S342 = new Guid(0x32343353, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_Overlay - public static readonly Guid Overlay = new Guid(0xe436eb7f, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_MPEG1Packet - public static readonly Guid MPEG1Packet = new Guid(0xe436eb80, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_MPEG1Payload - public static readonly Guid MPEG1Payload = new Guid(0xe436eb81, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_MPEG1AudioPayload - public static readonly Guid MPEG1AudioPayload = new Guid(0x00000050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// MEDIATYPE_MPEG1SystemStream - public static readonly Guid MPEG1SystemStream = new Guid(0xe436eb82, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_MPEG1System - public static readonly Guid MPEG1System = new Guid(0xe436eb84, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_MPEG1VideoCD - public static readonly Guid MPEG1VideoCD = new Guid(0xe436eb85, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_MPEG1Video - public static readonly Guid MPEG1Video = new Guid(0xe436eb86, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_MPEG1Audio - public static readonly Guid MPEG1Audio = new Guid(0xe436eb87, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_Avi - public static readonly Guid Avi = new Guid(0xe436eb88, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_Asf - public static readonly Guid Asf = new Guid(0x3db80f90, 0x9412, 0x11d1, 0xad, 0xed, 0x00, 0x00, 0xf8, 0x75, 0x4b, 0x99); - - /// MEDIASUBTYPE_QTMovie - public static readonly Guid QTMovie = new Guid(0xe436eb89, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_QTRpza - public static readonly Guid QTRpza = new Guid(0x617a7072, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_QTSmc - public static readonly Guid QTSmc = new Guid(0x20636d73, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_QTRle - public static readonly Guid QTRle = new Guid(0x20656c72, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_QTJpeg - public static readonly Guid QTJpeg = new Guid(0x6765706a, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_PCMAudio_Obsolete - public static readonly Guid PCMAudio_Obsolete = new Guid(0xe436eb8a, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_PCM - public static readonly Guid PCM = new Guid(0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// MEDIASUBTYPE_WAVE - public static readonly Guid WAVE = new Guid(0xe436eb8b, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_AU - public static readonly Guid AU = new Guid(0xe436eb8c, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_AIFF - public static readonly Guid AIFF = new Guid(0xe436eb8d, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_dvhd - public static readonly Guid dvhd = new Guid(0x64687664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_dvsl - public static readonly Guid dvsl = new Guid(0x6c737664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_dv25 - public static readonly Guid dv25 = new Guid(0x35327664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_dv50 - public static readonly Guid dv50 = new Guid(0x30357664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_dvh1 - public static readonly Guid dvh1 = new Guid(0x31687664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_Line21_BytePair - public static readonly Guid Line21_BytePair = new Guid(0x6e8d4a22, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7); - - /// MEDIASUBTYPE_Line21_GOPPacket - public static readonly Guid Line21_GOPPacket = new Guid(0x6e8d4a23, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7); - - /// MEDIASUBTYPE_Line21_VBIRawData - public static readonly Guid Line21_VBIRawData = new Guid(0x6e8d4a24, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7); - - /// MEDIASUBTYPE_TELETEXT - public static readonly Guid TELETEXT = new Guid(0xf72a76e3, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba); - - /// MEDIASUBTYPE_WSS - public static readonly Guid WSS = new Guid(0x2791D576, 0x8E7A, 0x466F, 0x9E, 0x90, 0x5D, 0x3F, 0x30, 0x83, 0x73, 0x8B); - - /// MEDIASUBTYPE_VPS - public static readonly Guid VPS = new Guid(0xa1b3f620, 0x9792, 0x4d8d, 0x81, 0xa4, 0x86, 0xaf, 0x25, 0x77, 0x20, 0x90); - - /// MEDIASUBTYPE_DRM_Audio - public static readonly Guid DRM_Audio = new Guid(0x00000009, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_IEEE_FLOAT - public static readonly Guid IEEE_FLOAT = new Guid(0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_DOLBY_AC3_SPDIF - public static readonly Guid DOLBY_AC3_SPDIF = new Guid(0x00000092, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_RAW_SPORT - public static readonly Guid RAW_SPORT = new Guid(0x00000240, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_SPDIF_TAG_241h - public static readonly Guid SPDIF_TAG_241h = new Guid(0x00000241, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_DssVideo - public static readonly Guid DssVideo = new Guid(0xa0af4f81, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a); - - /// MEDIASUBTYPE_DssAudio - public static readonly Guid DssAudio = new Guid(0xa0af4f82, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a); - - /// MEDIASUBTYPE_VPVideo - public static readonly Guid VPVideo = new Guid(0x5a9b6a40, 0x1a22, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a); - - /// MEDIASUBTYPE_VPVBI - public static readonly Guid VPVBI = new Guid(0x5a9b6a41, 0x1a22, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a); - - /// MEDIASUBTYPE_AnalogVideo_NTSC_M - public static readonly Guid AnalogVideo_NTSC_M = new Guid(0x0482dde2, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_B - public static readonly Guid AnalogVideo_PAL_B = new Guid(0x0482dde5, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_D - public static readonly Guid AnalogVideo_PAL_D = new Guid(0x0482dde6, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_G - public static readonly Guid AnalogVideo_PAL_G = new Guid(0x0482dde7, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_H - public static readonly Guid AnalogVideo_PAL_H = new Guid(0x0482dde8, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_I - public static readonly Guid AnalogVideo_PAL_I = new Guid(0x0482dde9, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_M - public static readonly Guid AnalogVideo_PAL_M = new Guid(0x0482ddea, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_N - public static readonly Guid AnalogVideo_PAL_N = new Guid(0x0482ddeb, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_PAL_N_COMBO - public static readonly Guid AnalogVideo_PAL_N_COMBO = new Guid(0x0482ddec, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_SECAM_B - public static readonly Guid AnalogVideo_SECAM_B = new Guid(0x0482ddf0, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_SECAM_D - public static readonly Guid AnalogVideo_SECAM_D = new Guid(0x0482ddf1, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_SECAM_G - public static readonly Guid AnalogVideo_SECAM_G = new Guid(0x0482ddf2, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_SECAM_H - public static readonly Guid AnalogVideo_SECAM_H = new Guid(0x0482ddf3, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_SECAM_K - public static readonly Guid AnalogVideo_SECAM_K = new Guid(0x0482ddf4, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_SECAM_K1 - public static readonly Guid AnalogVideo_SECAM_K1 = new Guid(0x0482ddf5, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_AnalogVideo_SECAM_L - public static readonly Guid AnalogVideo_SECAM_L = new Guid(0x0482ddf6, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// MEDIASUBTYPE_I420 - public static readonly Guid I420 = new Guid(0x30323449, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// WMMEDIASUBTYPE_VIDEOIMAGE - public static readonly Guid VideoImage = new Guid(0x1d4a45f2, 0xe5f6, 0x4b44, 0x83, 0x88, 0xf0, 0xae, 0x5c, 0x0e, 0x0c, 0x37); - - /// WMMEDIASUBTYPE_MPEG2_VIDEO - public static readonly Guid Mpeg2Video = new Guid(0xe06d8026, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// WMMEDIASUBTYPE_WebStream - public static readonly Guid WebStream = new Guid(0x776257d4, 0xc627, 0x41cb, 0x8f, 0x81, 0x7a, 0xc7, 0xff, 0x1c, 0x40, 0xcc); - - /// MEDIASUBTYPE_MPEG2_AUDIO - public static readonly Guid Mpeg2Audio = new Guid(0xe06d802b, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// MEDIASUBTYPE_DOLBY_AC3 - public static readonly Guid DolbyAC3 = new Guid(0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// MEDIASUBTYPE_DVB_SI - public static readonly Guid DvbSI = new Guid(0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x09, 0xc1, 0xa4, 0x08); - - /// MEDIASUBTYPE_ATSC_SI - public static readonly Guid AtscSI = new Guid(0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33); - - /// MEDIASUBTYPE_MPEG2DATA - public static readonly Guid Mpeg2Data = new Guid(0xc892e55b, 0x252d, 0x42b5, 0xa3, 0x16, 0xd9, 0x97, 0xe7, 0xa5, 0xd9, 0x95); - - /// MEDIASUBTYPE_MPEG2_PROGRAM - public static readonly Guid Mpeg2Program = new Guid(0xe06d8022, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// MEDIASUBTYPE_MPEG2_TRANSPORT - public static readonly Guid Mpeg2Transport = new Guid(0xe06d8023, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE - public static readonly Guid Mpeg2TransportStride = new Guid(0x138aa9a4, 0x1ee2, 0x4c5b, 0x98, 0x8e, 0x19, 0xab, 0xfd, 0xbc, 0x8a, 0x11); - - /// MEDIASUBTYPE_None - public static readonly Guid None = new Guid(0xe436eb8e, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - - /// MEDIASUBTYPE_H264 - public static readonly Guid H264 = new Guid(0x34363248, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_NV24 - public static readonly Guid NV24 = new Guid(0x3432564E, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// MEDIASUBTYPE_708_608Data - public static readonly Guid Data708_608 = new Guid(0xaf414bc, 0x4ed2, 0x445e, 0x98, 0x39, 0x8f, 0x9, 0x55, 0x68, 0xab, 0x3c); - - /// MEDIASUBTYPE_DtvCcData - public static readonly Guid DtvCcData = new Guid(0xF52ADDAA, 0x36F0, 0x43F5, 0x95, 0xEA, 0x6D, 0x86, 0x64, 0x84, 0x26, 0x2A); - - /// MEDIASUBTYPE_P422 - public static readonly Guid P422 = new Guid(0x32323450, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); - - /// WMMEDIASUBTYPE_MP43 - public static readonly Guid MP43 = new Guid(0x3334504D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_MP4S - public static readonly Guid MP4S = new Guid(0x5334504D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_M4S2 - public static readonly Guid M4S2 = new Guid(0x3253344D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMV1 - public static readonly Guid WMV1 = new Guid(0x31564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMV2 - public static readonly Guid WMV2 = new Guid(0x32564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_MSS1 - public static readonly Guid MSS1 = new Guid(0x3153534D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMAudioV9 - public static readonly Guid WMAudioV9 = new Guid(0x00000162, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMAudio_Lossless - public static readonly Guid WMAudio_Lossless = new Guid(0x00000163, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_MSS2 - public static readonly Guid MSS2 = new Guid(0x3253534D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMSP1 - public static readonly Guid WMSP1 = new Guid(0x0000000A, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMSP2 - public static readonly Guid WMSP2 = new Guid(0x0000000B, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMV3 - public static readonly Guid WMV3 = new Guid(0x33564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMVP - public static readonly Guid WMVP = new Guid(0x50564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WVP2 - public static readonly Guid WVP2 = new Guid(0x32505657, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMVA - public static readonly Guid WMVA = new Guid(0x41564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WVC1 - public static readonly Guid WVC1 = new Guid(0x31435657, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMAudioV8 - public static readonly Guid WMAudioV8 = new Guid(0x00000161, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMAudioV7 - public static readonly Guid WMAudioV7 = new Guid(0x00000161, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_WMAudioV2 - public static readonly Guid WMAudioV2 = new Guid(0x00000161, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_ACELPnet - public static readonly Guid ACELPnet = new Guid(0x00000130, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - - /// WMMEDIASUBTYPE_MP3 - public static readonly Guid MP3 = new Guid(0x00000055, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); - } - - public static class FormatType - { - public static readonly Guid Null = Guid.Empty; - - /// FORMAT_None - public static readonly Guid None = new Guid(0x0F6417D6, 0xc318, 0x11d0, 0xa4, 0x3f, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96); - - /// FORMAT_VideoInfo - public static readonly Guid VideoInfo = new Guid(0x05589f80, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a); - - /// FORMAT_VideoInfo2 - public static readonly Guid VideoInfo2 = new Guid(0xf72a76A0, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba); - - /// FORMAT_WaveFormatEx - public static readonly Guid WaveEx = new Guid(0x05589f81, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a); - - /// FORMAT_MPEGVideo - public static readonly Guid MpegVideo = new Guid(0x05589f82, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a); - - /// FORMAT_MPEGStreams - public static readonly Guid MpegStreams = new Guid(0x05589f83, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a); - - /// FORMAT_DvInfo - public static readonly Guid DvInfo = new Guid(0x05589f84, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a); - - /// FORMAT_AnalogVideo - public static readonly Guid AnalogVideo = new Guid(0x0482dde0, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65); - - /// FORMAT_MPEG2Video - public static readonly Guid Mpeg2Video = new Guid(0xe06d80e3, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// FORMAT_DolbyAC3 - public static readonly Guid DolbyAC3 = new Guid(0xe06d80e4, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// FORMAT_MPEG2Audio - public static readonly Guid Mpeg2Audio = new Guid(0xe06d80e5, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); - - /// FORMAT_525WSS - public static readonly Guid WSS525 = new Guid(0xc7ecf04d, 0x4582, 0x4869, 0x9a, 0xbb, 0xbf, 0xb5, 0x23, 0xb6, 0x2e, 0xdf); - - /// WMFORMAT_Script - public static readonly Guid Script = new Guid(0x5c8510f2, 0xdebe, 0x4ca7, 0xbb, 0xa5, 0xf0, 0x7a, 0x10, 0x4f, 0x8d, 0xff); - - /// WMFORMAT_WebStream - public static readonly Guid WebStream = new Guid(0xda1e6b13, 0x8359, 0x4050, 0xb3, 0x98, 0x38, 0x8e, 0x96, 0x5b, 0xf0, 0x0c); - } - - /// - /// From WM_MEDIA_TYPE - When you are done with an instance of this class, - /// it should be released with FreeWMMediaType() to avoid leaking - /// - [StructLayout(LayoutKind.Sequential), UnmanagedName("WM_MEDIA_TYPE")] - public class AMMediaType - { - public Guid majorType; - public Guid subType; - [MarshalAs(UnmanagedType.Bool)] public bool fixedSizeSamples; - [MarshalAs(UnmanagedType.Bool)] public bool temporalCompression; - public int sampleSize; - public Guid formatType; - public IntPtr unkPtr; // IUnknown Pointer - public int formatSize; - public IntPtr formatPtr; // Pointer to a buff determined by formatType - } - - - /// - /// From BITMAPINFOHEADER - /// - [StructLayout(LayoutKind.Sequential, Pack = 2), UnmanagedName("BITMAPINFOHEADER")] - public struct BitmapInfoHeader - { - public int Size; - public int Width; - public int Height; - public short Planes; - public short BitCount; - public int Compression; - public int ImageSize; - public int XPelsPerMeter; - public int YPelsPerMeter; - public int ClrUsed; - public int ClrImportant; - } - - - /// - /// From VIDEOINFOHEADER - /// - [StructLayout(LayoutKind.Sequential), UnmanagedName("VIDEOINFOHEADER")] - public class VideoInfoHeader - { - public Rectangle SrcRect; - public Rectangle TargetRect; - public int BitRate; - public int BitErrorRate; - public long AvgTimePerFrame; - public BitmapInfoHeader BmiHeader; - } - - - /// - /// From VIDEOINFOHEADER2 - /// - [StructLayout(LayoutKind.Sequential), UnmanagedName("VIDEOINFOHEADER2")] - public class VideoInfoHeader2 - { - public Rectangle SrcRect; - public Rectangle TargetRect; - public int BitRate; - public int BitErrorRate; - public long AvgTimePerFrame; - public int InterlaceFlags; - public int CopyProtectFlags; - public int PictAspectRatioX; - public int PictAspectRatioY; - public int ControlFlags; - public int Reserved2; - public BitmapInfoHeader BmiHeader; - } - - - /// - /// From WAVEFORMAT - /// - [StructLayout(LayoutKind.Sequential, Pack=2), UnmanagedName("WAVEFORMAT")] - public class WaveFormat - { - public short wFormatTag; /* format type */ - public short nChannels; /* number of channels (i.e. mono, stereo, etc.) */ - public int nSamplesPerSec; /* sample rate */ - public int nAvgBytesPerSec; /* for buffer estimation */ - public short nBlockAlign; /* block size of data */ - } - - /// - /// From WAVEFORMATEX - /// - [StructLayout(LayoutKind.Sequential), UnmanagedName("WAVEFORMATEX")] - public class WaveFormatEx : WaveFormat - { - public short wBitsPerSample; - public short cbSize; - } - - static public class AMToString - { - /// - /// Produces a usable string that describes the MediaType object - /// - /// Concatenation of MajorType + SubType + FormatType + Fixed + Temporal + SampleSize.ToString - public static string AMMediaTypeToString(AMMediaType pmt) - { - return string.Format("{0} {1} {2} {3} {4} {5}", - MediaTypeToString(pmt.majorType), - MediaSubTypeToString(pmt.subType), - MediaFormatTypeToString(pmt.formatType), - (pmt.fixedSizeSamples ? "FixedSamples" : "NotFixedSamples"), - (pmt.temporalCompression ? "temporalCompression" : "NottemporalCompression"), - pmt.sampleSize.ToString()); - } - - /// - /// Converts AMMediaType.MajorType Guid to a readable string - /// - /// MajorType Guid as a readable string or Guid if unrecognized - public static string MediaTypeToString(Guid guid) - { - // Walk the MediaSubType class looking for a match - return WalkClass(typeof(MediaType), guid); - } - - /// - /// Converts the AMMediaType.SubType Guid to a readable string - /// - /// SubType Guid as a readable string or Guid if unrecognized - public static string MediaSubTypeToString(Guid guid) - { - // Walk the MediaSubType class looking for a match - string s = WalkClass(typeof(MediaSubType), guid); - - // There is a special set of Guids that contain the FourCC code - // as part of the Guid. If we haven't found a name, check to see if - // it is one of those. - if (s == guid.ToString() && FourCC.IsA4ccSubtype(guid)) - { - s = new FourCC(guid).ToString(); - } - - return s; - } - - /// - /// Converts the AMMediaType.FormatType Guid to a readable string - /// - /// FormatType Guid as a readable string or Guid if unrecognized - public static string MediaFormatTypeToString(Guid guid) - { - // Walk the FormatType class looking for a match - return WalkClass(typeof(FormatType), guid); - - } - - /// - /// Use reflection to walk a class looking for a property containing a specified guid - /// - /// Class to scan - /// Guid to scan for - /// String representing property name that matches, or Guid.ToString() for no match - private static string WalkClass(Type MyType, Guid guid) - { - object o = null; - - // Read the fields from the class - FieldInfo[] Fields = MyType.GetFields(); - - // Walk the returned array - foreach (FieldInfo m in Fields) - { - // Read the value of the property. The parameter is ignored. - o = m.GetValue(o); - - // Compare it with the sought value - if ((Guid)o == guid) - { - return m.Name; - } - } - - return guid.ToString(); - } - } - -} diff --git a/WindowsMediaLib/WMUtils.cs b/WindowsMediaLib/WMUtils.cs deleted file mode 100644 index 512db2b..0000000 --- a/WindowsMediaLib/WMUtils.cs +++ /dev/null @@ -1,2069 +0,0 @@ -#region license - -/* -WindowsMediaLib - Provide access to Windows Media interfaces via .NET -Copyright (C) 2008 -http://sourceforge.net/projects/windowsmedianet - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#endregion - -using System; -using System.Text; -using System.Runtime.InteropServices; -using System.Security; -using System.Diagnostics; - -using WindowsMediaLib.Defs; - -namespace WindowsMediaLib -{ - static public class WMUtils - { - /// - /// Free the nested structures and release any - /// COM objects within an WMMediaType struct. - /// - public static void FreeWMMediaType(AMMediaType mediaType) - { - if (mediaType != null) - { - if (mediaType.formatSize != 0) - { - Marshal.FreeCoTaskMem(mediaType.formatPtr); - mediaType.formatSize = 0; - mediaType.formatPtr = IntPtr.Zero; - } - if (mediaType.unkPtr != IntPtr.Zero) - { - Marshal.Release(mediaType.unkPtr); - mediaType.unkPtr = IntPtr.Zero; - } - } - } - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMValidateData( - byte[] pbData, - ref int pdwDataSize - ); - - [DllImport("WMVCore.dll", ExactSpelling = true, CharSet = CharSet.Unicode, PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern int WMCheckURLExtension( - string pwszURL - ); - - [DllImport("WMVCore.dll", ExactSpelling = true, CharSet = CharSet.Unicode, PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCheckURLScheme( - string pwszURLScheme - ); - - [DllImport("WMVCore.dll", ExactSpelling = true, CharSet = CharSet.Unicode, PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMIsAvailableOffline( - string pwszURL, - string pwszLanguage, - [MarshalAs(UnmanagedType.Bool)] out bool pfIsAvailableOffline - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateEditor( - out IWMMetadataEditor ppMetadataEditor - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateWriterNetworkSink( - out IWMWriterNetworkSink ppSink - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateWriter( - IntPtr pUnkCert, - out IWMWriter ppWriter - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateProfileManager( - out IWMProfileManager ppProfileManager - ); - - [DllImport("WMVCore.dll", ExactSpelling = true, CharSet = CharSet.Unicode, PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMIsContentProtected( - string pwszFileName, - [MarshalAs(UnmanagedType.Bool)] out bool pfIsProtected - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateReader( - IntPtr pUnkCert, - Rights dwRights, - out IWMReader ppReader - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateSyncReader( - IntPtr pUnkCert, - Rights dwRights, - out IWMSyncReader ppSyncReader); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateIndexer( - out IWMIndexer ppIndexer - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateBackupRestorer( - IWMStatusCallback pCallback, - out IWMLicenseBackup ppBackup - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateWriterFileSink( - out IWMWriterFileSink ppSink - ); - - [DllImport("WMVCore.dll", PreserveSig = false), SuppressUnmanagedCodeSecurity] - public static extern void WMCreateWriterPushSink( - out IWMWriterPushSink ppSink - ); - - } - - abstract public class COMBase - { - protected const int S_Ok = 0; - protected const int S_False = 0; - - protected const int E_NotImplemented = unchecked((int)0x80004001); - protected const int E_NoInterface = unchecked((int)0x80004002); - protected const int E_Pointer = unchecked((int)0x80004003); - protected const int E_Abort = unchecked((int)0x80004004); - protected const int E_Fail = unchecked((int)0x80004005); - protected const int E_Unexpected = unchecked((int)0x8000FFFF); - protected const int E_OutOfMemory = unchecked((int)0x8007000E); - protected const int E_InvalidArgument = unchecked((int)0x80070057); - protected const int E_BufferTooSmall = unchecked((int)0x8007007a); - - protected static bool Succeeded(int hr) - { - return hr >= 0; - } - - protected static bool Failed(int hr) - { - return hr < 0; - } - - protected static void SafeRelease(object o) - { - if (o != null) - { - if (Marshal.IsComObject(o)) - { - Marshal.ReleaseComObject(o); - } - else - { - IDisposable iDis = o as IDisposable; - if (iDis != null) - { - iDis.Dispose(); - } - } - } - } - - protected static void TRACE(string s) - { - Debug.WriteLine(s); - } - } - - static public class NSResults - { - public const int S_CALLPENDING = unchecked((int)0x000D0000); - public const int S_CALLABORTED = unchecked((int)0x000D0001); - public const int S_STREAM_TRUNCATED = unchecked((int)0x000D0002); - public const int W_SERVER_BANDWIDTH_LIMIT = unchecked((int)0x800D0003); - public const int W_FILE_BANDWIDTH_LIMIT = unchecked((int)0x800D0004); - public const int E_NOCONNECTION = unchecked((int)0xC00D0005); - public const int E_CANNOTCONNECT = unchecked((int)0xC00D0006); - public const int E_CANNOTDESTROYTITLE = unchecked((int)0xC00D0007); - public const int E_CANNOTRENAMETITLE = unchecked((int)0xC00D0008); - public const int E_CANNOTOFFLINEDISK = unchecked((int)0xC00D0009); - public const int E_CANNOTONLINEDISK = unchecked((int)0xC00D000A); - public const int E_NOREGISTEREDWALKER = unchecked((int)0xC00D000B); - public const int E_NOFUNNEL = unchecked((int)0xC00D000C); - public const int E_NO_LOCALPLAY = unchecked((int)0xC00D000D); - public const int E_NETWORK_BUSY = unchecked((int)0xC00D000E); - public const int E_TOO_MANY_SESS = unchecked((int)0xC00D000F); - public const int E_ALREADY_CONNECTED = unchecked((int)0xC00D0010); - public const int E_INVALID_INDEX = unchecked((int)0xC00D0011); - public const int E_PROTOCOL_MISMATCH = unchecked((int)0xC00D0012); - public const int E_TIMEOUT = unchecked((int)0xC00D0013); - public const int E_NET_WRITE = unchecked((int)0xC00D0014); - public const int E_NET_READ = unchecked((int)0xC00D0015); - public const int E_DISK_WRITE = unchecked((int)0xC00D0016); - public const int E_DISK_READ = unchecked((int)0xC00D0017); - public const int E_FILE_WRITE = unchecked((int)0xC00D0018); - public const int E_FILE_READ = unchecked((int)0xC00D0019); - public const int E_FILE_NOT_FOUND = unchecked((int)0xC00D001A); - public const int E_FILE_EXISTS = unchecked((int)0xC00D001B); - public const int E_INVALID_NAME = unchecked((int)0xC00D001C); - public const int E_FILE_OPEN_FAILED = unchecked((int)0xC00D001D); - public const int E_FILE_ALLOCATION_FAILED = unchecked((int)0xC00D001E); - public const int E_FILE_INIT_FAILED = unchecked((int)0xC00D001F); - public const int E_FILE_PLAY_FAILED = unchecked((int)0xC00D0020); - public const int E_SET_DISK_UID_FAILED = unchecked((int)0xC00D0021); - public const int E_INDUCED = unchecked((int)0xC00D0022); - public const int E_CCLINK_DOWN = unchecked((int)0xC00D0023); - public const int E_INTERNAL = unchecked((int)0xC00D0024); - public const int E_BUSY = unchecked((int)0xC00D0025); - public const int E_UNRECOGNIZED_STREAM_TYPE = unchecked((int)0xC00D0026); - public const int E_NETWORK_SERVICE_FAILURE = unchecked((int)0xC00D0027); - public const int E_NETWORK_RESOURCE_FAILURE = unchecked((int)0xC00D0028); - public const int E_CONNECTION_FAILURE = unchecked((int)0xC00D0029); - public const int E_SHUTDOWN = unchecked((int)0xC00D002A); - public const int E_INVALID_REQUEST = unchecked((int)0xC00D002B); - public const int E_INSUFFICIENT_BANDWIDTH = unchecked((int)0xC00D002C); - public const int E_NOT_REBUILDING = unchecked((int)0xC00D002D); - public const int E_LATE_OPERATION = unchecked((int)0xC00D002E); - public const int E_INVALID_DATA = unchecked((int)0xC00D002F); - public const int E_FILE_BANDWIDTH_LIMIT = unchecked((int)0xC00D0030); - public const int E_OPEN_FILE_LIMIT = unchecked((int)0xC00D0031); - public const int E_BAD_CONTROL_DATA = unchecked((int)0xC00D0032); - public const int E_NO_STREAM = unchecked((int)0xC00D0033); - public const int E_STREAM_END = unchecked((int)0xC00D0034); - public const int E_SERVER_NOT_FOUND = unchecked((int)0xC00D0035); - public const int E_DUPLICATE_NAME = unchecked((int)0xC00D0036); - public const int E_DUPLICATE_ADDRESS = unchecked((int)0xC00D0037); - public const int E_BAD_MULTICAST_ADDRESS = unchecked((int)0xC00D0038); - public const int E_BAD_ADAPTER_ADDRESS = unchecked((int)0xC00D0039); - public const int E_BAD_DELIVERY_MODE = unchecked((int)0xC00D003A); - public const int E_INVALID_CHANNEL = unchecked((int)0xC00D003B); - public const int E_INVALID_STREAM = unchecked((int)0xC00D003C); - public const int E_INVALID_ARCHIVE = unchecked((int)0xC00D003D); - public const int E_NOTITLES = unchecked((int)0xC00D003E); - public const int E_INVALID_CLIENT = unchecked((int)0xC00D003F); - public const int E_INVALID_BLACKHOLE_ADDRESS = unchecked((int)0xC00D0040); - public const int E_INCOMPATIBLE_FORMAT = unchecked((int)0xC00D0041); - public const int E_INVALID_KEY = unchecked((int)0xC00D0042); - public const int E_INVALID_PORT = unchecked((int)0xC00D0043); - public const int E_INVALID_TTL = unchecked((int)0xC00D0044); - public const int E_STRIDE_REFUSED = unchecked((int)0xC00D0045); - public const int E_MMSAUTOSERVER_CANTFINDWALKER = unchecked((int)0xC00D0046); - public const int E_MAX_BITRATE = unchecked((int)0xC00D0047); - public const int E_LOGFILEPERIOD = unchecked((int)0xC00D0048); - public const int E_MAX_CLIENTS = unchecked((int)0xC00D0049); - public const int E_LOG_FILE_SIZE = unchecked((int)0xC00D004A); - public const int E_MAX_FILERATE = unchecked((int)0xC00D004B); - public const int E_WALKER_UNKNOWN = unchecked((int)0xC00D004C); - public const int E_WALKER_SERVER = unchecked((int)0xC00D004D); - public const int E_WALKER_USAGE = unchecked((int)0xC00D004E); - public const int I_TIGER_START = unchecked((int)0x400D004F); - public const int E_TIGER_FAIL = unchecked((int)0xC00D0050); - public const int I_CUB_START = unchecked((int)0x400D0051); - public const int I_CUB_RUNNING = unchecked((int)0x400D0052); - public const int E_CUB_FAIL = unchecked((int)0xC00D0053); - public const int I_DISK_START = unchecked((int)0x400D0054); - public const int E_DISK_FAIL = unchecked((int)0xC00D0055); - public const int I_DISK_REBUILD_STARTED = unchecked((int)0x400D0056); - public const int I_DISK_REBUILD_FINISHED = unchecked((int)0x400D0057); - public const int I_DISK_REBUILD_ABORTED = unchecked((int)0x400D0058); - public const int I_LIMIT_FUNNELS = unchecked((int)0x400D0059); - public const int I_START_DISK = unchecked((int)0x400D005A); - public const int I_STOP_DISK = unchecked((int)0x400D005B); - public const int I_STOP_CUB = unchecked((int)0x400D005C); - public const int I_KILL_USERSESSION = unchecked((int)0x400D005D); - public const int I_KILL_CONNECTION = unchecked((int)0x400D005E); - public const int I_REBUILD_DISK = unchecked((int)0x400D005F); - public const int W_UNKNOWN_EVENT = unchecked((int)0x800D0060); - public const int E_MAX_FUNNELS_ALERT = unchecked((int)0xC00D0060); - public const int E_ALLOCATE_FILE_FAIL = unchecked((int)0xC00D0061); - public const int E_PAGING_ERROR = unchecked((int)0xC00D0062); - public const int E_BAD_BLOCK0_VERSION = unchecked((int)0xC00D0063); - public const int E_BAD_DISK_UID = unchecked((int)0xC00D0064); - public const int E_BAD_FSMAJOR_VERSION = unchecked((int)0xC00D0065); - public const int E_BAD_STAMPNUMBER = unchecked((int)0xC00D0066); - public const int E_PARTIALLY_REBUILT_DISK = unchecked((int)0xC00D0067); - public const int E_ENACTPLAN_GIVEUP = unchecked((int)0xC00D0068); - public const int E_NO_FORMATS = unchecked((int)0xC00D006B); - public const int E_NO_REFERENCES = unchecked((int)0xC00D006C); - public const int E_WAVE_OPEN = unchecked((int)0xC00D006D); - public const int I_LOGGING_FAILED = unchecked((int)0x400D006E); - public const int E_CANNOTCONNECTEVENTS = unchecked((int)0xC00D006F); - public const int I_LIMIT_BANDWIDTH = unchecked((int)0x400D0070); - public const int E_NO_DEVICE = unchecked((int)0xC00D0071); - public const int E_NO_SPECIFIED_DEVICE = unchecked((int)0xC00D0072); - //public const int E_NOTFOUND = unchecked((int)0xC00D07F0); - public const int E_NOTHING_TO_DO = unchecked((int)0xC00D07F1); - public const int E_NO_MULTICAST = unchecked((int)0xC00D07F2); - public const int E_MONITOR_GIVEUP = unchecked((int)0xC00D00C8); - public const int E_REMIRRORED_DISK = unchecked((int)0xC00D00C9); - public const int E_INSUFFICIENT_DATA = unchecked((int)0xC00D00CA); - public const int E_ASSERT = unchecked((int)0xC00D00CB); - public const int E_BAD_ADAPTER_NAME = unchecked((int)0xC00D00CC); - public const int E_NOT_LICENSED = unchecked((int)0xC00D00CD); - public const int E_NO_SERVER_CONTACT = unchecked((int)0xC00D00CE); - public const int E_TOO_MANY_TITLES = unchecked((int)0xC00D00CF); - public const int E_TITLE_SIZE_EXCEEDED = unchecked((int)0xC00D00D0); - public const int E_UDP_DISABLED = unchecked((int)0xC00D00D1); - public const int E_TCP_DISABLED = unchecked((int)0xC00D00D2); - public const int E_HTTP_DISABLED = unchecked((int)0xC00D00D3); - public const int E_LICENSE_EXPIRED = unchecked((int)0xC00D00D4); - public const int E_TITLE_BITRATE = unchecked((int)0xC00D00D5); - public const int E_EMPTY_PROGRAM_NAME = unchecked((int)0xC00D00D6); - public const int E_MISSING_CHANNEL = unchecked((int)0xC00D00D7); - public const int E_NO_CHANNELS = unchecked((int)0xC00D00D8); - public const int E_INVALID_INDEX2 = unchecked((int)0xC00D00D9); - public const int E_CUB_FAIL_LINK = unchecked((int)0xC00D0190); - public const int I_CUB_UNFAIL_LINK = unchecked((int)0x400D0191); - public const int E_BAD_CUB_UID = unchecked((int)0xC00D0192); - public const int I_RESTRIPE_START = unchecked((int)0x400D0193); - public const int I_RESTRIPE_DONE = unchecked((int)0x400D0194); - public const int E_GLITCH_MODE = unchecked((int)0xC00D0195); - public const int I_RESTRIPE_DISK_OUT = unchecked((int)0x400D0196); - public const int I_RESTRIPE_CUB_OUT = unchecked((int)0x400D0197); - public const int I_DISK_STOP = unchecked((int)0x400D0198); - public const int I_CATATONIC_FAILURE = unchecked((int)0x800D0199); - public const int I_CATATONIC_AUTO_UNFAIL = unchecked((int)0x800D019A); - public const int E_NO_MEDIA_PROTOCOL = unchecked((int)0xC00D019B); - public const int E_INVALID_INPUT_FORMAT = unchecked((int)0xC00D0BB8); - public const int E_MSAUDIO_NOT_INSTALLED = unchecked((int)0xC00D0BB9); - public const int E_UNEXPECTED_MSAUDIO_ERROR = unchecked((int)0xC00D0BBA); - public const int E_INVALID_OUTPUT_FORMAT = unchecked((int)0xC00D0BBB); - public const int E_NOT_CONFIGURED = unchecked((int)0xC00D0BBC); - public const int E_PROTECTED_CONTENT = unchecked((int)0xC00D0BBD); - public const int E_LICENSE_REQUIRED = unchecked((int)0xC00D0BBE); - public const int E_TAMPERED_CONTENT = unchecked((int)0xC00D0BBF); - public const int E_LICENSE_OUTOFDATE = unchecked((int)0xC00D0BC0); - public const int E_LICENSE_INCORRECT_RIGHTS = unchecked((int)0xC00D0BC1); - public const int E_AUDIO_CODEC_NOT_INSTALLED = unchecked((int)0xC00D0BC2); - public const int E_AUDIO_CODEC_ERROR = unchecked((int)0xC00D0BC3); - public const int E_VIDEO_CODEC_NOT_INSTALLED = unchecked((int)0xC00D0BC4); - public const int E_VIDEO_CODEC_ERROR = unchecked((int)0xC00D0BC5); - public const int E_INVALIDPROFILE = unchecked((int)0xC00D0BC6); - public const int E_INCOMPATIBLE_VERSION = unchecked((int)0xC00D0BC7); - public const int S_REBUFFERING = unchecked((int)0x000D0BC8); - public const int S_DEGRADING_QUALITY = unchecked((int)0x000D0BC9); - public const int E_OFFLINE_MODE = unchecked((int)0xC00D0BCA); - public const int E_NOT_CONNECTED = unchecked((int)0xC00D0BCB); - public const int E_TOO_MUCH_DATA = unchecked((int)0xC00D0BCC); - public const int E_UNSUPPORTED_PROPERTY = unchecked((int)0xC00D0BCD); - public const int E_8BIT_WAVE_UNSUPPORTED = unchecked((int)0xC00D0BCE); - public const int E_NO_MORE_SAMPLES = unchecked((int)0xC00D0BCF); - public const int E_INVALID_SAMPLING_RATE = unchecked((int)0xC00D0BD0); - public const int E_MAX_PACKET_SIZE_TOO_SMALL = unchecked((int)0xC00D0BD1); - public const int E_LATE_PACKET = unchecked((int)0xC00D0BD2); - public const int E_DUPLICATE_PACKET = unchecked((int)0xC00D0BD3); - public const int E_SDK_BUFFERTOOSMALL = unchecked((int)0xC00D0BD4); - public const int E_INVALID_NUM_PASSES = unchecked((int)0xC00D0BD5); - public const int E_ATTRIBUTE_READ_ONLY = unchecked((int)0xC00D0BD6); - public const int E_ATTRIBUTE_NOT_ALLOWED = unchecked((int)0xC00D0BD7); - public const int E_INVALID_EDL = unchecked((int)0xC00D0BD8); - public const int E_DATA_UNIT_EXTENSION_TOO_LARGE = unchecked((int)0xC00D0BD9); - public const int E_CODEC_DMO_ERROR = unchecked((int)0xC00D0BDA); - public const int E_NO_CD = unchecked((int)0xC00D0FA0); - public const int E_CANT_READ_DIGITAL = unchecked((int)0xC00D0FA1); - public const int E_DEVICE_DISCONNECTED = unchecked((int)0xC00D0FA2); - public const int E_DEVICE_NOT_SUPPORT_FORMAT = unchecked((int)0xC00D0FA3); - public const int E_SLOW_READ_DIGITAL = unchecked((int)0xC00D0FA4); - public const int E_MIXER_INVALID_LINE = unchecked((int)0xC00D0FA5); - public const int E_MIXER_INVALID_CONTROL = unchecked((int)0xC00D0FA6); - public const int E_MIXER_INVALID_VALUE = unchecked((int)0xC00D0FA7); - public const int E_MIXER_UNKNOWN_MMRESULT = unchecked((int)0xC00D0FA8); - public const int E_USER_STOP = unchecked((int)0xC00D0FA9); - public const int E_MP3_FORMAT_NOT_FOUND = unchecked((int)0xC00D0FAA); - public const int E_CD_READ_ERROR_NO_CORRECTION = unchecked((int)0xC00D0FAB); - public const int E_CD_READ_ERROR = unchecked((int)0xC00D0FAC); - public const int E_CD_SLOW_COPY = unchecked((int)0xC00D0FAD); - public const int E_CD_COPYTO_CD = unchecked((int)0xC00D0FAE); - public const int E_MIXER_NODRIVER = unchecked((int)0xC00D0FAF); - public const int E_REDBOOK_ENABLED_WHILE_COPYING = unchecked((int)0xC00D0FB0); - public const int E_CD_REFRESH = unchecked((int)0xC00D0FB1); - public const int E_CD_DRIVER_PROBLEM = unchecked((int)0xC00D0FB2); - public const int E_WONT_DO_DIGITAL = unchecked((int)0xC00D0FB3); - public const int E_WMPXML_NOERROR = unchecked((int)0xC00D0FB4); - public const int E_WMPXML_ENDOFDATA = unchecked((int)0xC00D0FB5); - public const int E_WMPXML_PARSEERROR = unchecked((int)0xC00D0FB6); - public const int E_WMPXML_ATTRIBUTENOTFOUND = unchecked((int)0xC00D0FB7); - public const int E_WMPXML_PINOTFOUND = unchecked((int)0xC00D0FB8); - public const int E_WMPXML_EMPTYDOC = unchecked((int)0xC00D0FB9); - public const int E_WMP_WINDOWSAPIFAILURE = unchecked((int)0xC00D0FC8); - public const int E_WMP_RECORDING_NOT_ALLOWED = unchecked((int)0xC00D0FC9); - public const int E_DEVICE_NOT_READY = unchecked((int)0xC00D0FCA); - public const int E_DAMAGED_FILE = unchecked((int)0xC00D0FCB); - public const int E_MPDB_GENERIC = unchecked((int)0xC00D0FCC); - public const int E_FILE_FAILED_CHECKS = unchecked((int)0xC00D0FCD); - public const int E_MEDIA_LIBRARY_FAILED = unchecked((int)0xC00D0FCE); - public const int E_SHARING_VIOLATION = unchecked((int)0xC00D0FCF); - public const int E_NO_ERROR_STRING_FOUND = unchecked((int)0xC00D0FD0); - public const int E_WMPOCX_NO_REMOTE_CORE = unchecked((int)0xC00D0FD1); - public const int E_WMPOCX_NO_ACTIVE_CORE = unchecked((int)0xC00D0FD2); - public const int E_WMPOCX_NOT_RUNNING_REMOTELY = unchecked((int)0xC00D0FD3); - public const int E_WMPOCX_NO_REMOTE_WINDOW = unchecked((int)0xC00D0FD4); - public const int E_WMPOCX_ERRORMANAGERNOTAVAILABLE = unchecked((int)0xC00D0FD5); - public const int E_PLUGIN_NOTSHUTDOWN = unchecked((int)0xC00D0FD6); - public const int E_WMP_CANNOT_FIND_FOLDER = unchecked((int)0xC00D0FD7); - public const int E_WMP_STREAMING_RECORDING_NOT_ALLOWED = unchecked((int)0xC00D0FD8); - public const int E_WMP_PLUGINDLL_NOTFOUND = unchecked((int)0xC00D0FD9); - public const int E_NEED_TO_ASK_USER = unchecked((int)0xC00D0FDA); - public const int E_WMPOCX_PLAYER_NOT_DOCKED = unchecked((int)0xC00D0FDB); - public const int E_WMP_EXTERNAL_NOTREADY = unchecked((int)0xC00D0FDC); - public const int E_WMP_MLS_STALE_DATA = unchecked((int)0xC00D0FDD); - public const int E_WMP_UI_SUBCONTROLSNOTSUPPORTED = unchecked((int)0xC00D0FDE); - public const int E_WMP_UI_VERSIONMISMATCH = unchecked((int)0xC00D0FDF); - public const int E_WMP_UI_NOTATHEMEFILE = unchecked((int)0xC00D0FE0); - public const int E_WMP_UI_SUBELEMENTNOTFOUND = unchecked((int)0xC00D0FE1); - public const int E_WMP_UI_VERSIONPARSE = unchecked((int)0xC00D0FE2); - public const int E_WMP_UI_VIEWIDNOTFOUND = unchecked((int)0xC00D0FE3); - public const int E_WMP_UI_PASSTHROUGH = unchecked((int)0xC00D0FE4); - public const int E_WMP_UI_OBJECTNOTFOUND = unchecked((int)0xC00D0FE5); - public const int E_WMP_UI_SECONDHANDLER = unchecked((int)0xC00D0FE6); - public const int E_WMP_UI_NOSKININZIP = unchecked((int)0xC00D0FE7); - public const int S_WMP_UI_VERSIONMISMATCH = unchecked((int)0x000D0FE8); - public const int S_WMP_EXCEPTION = unchecked((int)0x000D0FE9); - public const int E_WMP_URLDOWNLOADFAILED = unchecked((int)0xC00D0FEA); - public const int E_WMPOCX_UNABLE_TO_LOAD_SKIN = unchecked((int)0xC00D0FEB); - public const int E_WMP_INVALID_SKIN = unchecked((int)0xC00D0FEC); - public const int E_WMP_SENDMAILFAILED = unchecked((int)0xC00D0FED); - public const int E_WMP_SAVEAS_READONLY = unchecked((int)0xC00D0FF0); - public const int E_WMP_RBC_JPGMAPPINGIMAGE = unchecked((int)0xC00D1004); - public const int E_WMP_JPGTRANSPARENCY = unchecked((int)0xC00D1005); - public const int E_WMP_INVALID_MAX_VAL = unchecked((int)0xC00D1009); - public const int E_WMP_INVALID_MIN_VAL = unchecked((int)0xC00D100A); - public const int E_WMP_CS_JPGPOSITIONIMAGE = unchecked((int)0xC00D100E); - public const int E_WMP_CS_NOTEVENLYDIVISIBLE = unchecked((int)0xC00D100F); - public const int E_WMPZIP_NOTAZIPFILE = unchecked((int)0xC00D1018); - public const int E_WMPZIP_CORRUPT = unchecked((int)0xC00D1019); - public const int E_WMPZIP_FILENOTFOUND = unchecked((int)0xC00D101A); - public const int E_WMP_IMAGE_FILETYPE_UNSUPPORTED = unchecked((int)0xC00D1022); - public const int E_WMP_IMAGE_INVALID_FORMAT = unchecked((int)0xC00D1023); - public const int E_WMP_GIF_UNEXPECTED_ENDOFFILE = unchecked((int)0xC00D1024); - public const int E_WMP_GIF_INVALID_FORMAT = unchecked((int)0xC00D1025); - public const int E_WMP_GIF_BAD_VERSION_NUMBER = unchecked((int)0xC00D1026); - public const int E_WMP_GIF_NO_IMAGE_IN_FILE = unchecked((int)0xC00D1027); - public const int E_WMP_PNG_INVALIDFORMAT = unchecked((int)0xC00D1028); - public const int E_WMP_PNG_UNSUPPORTED_BITDEPTH = unchecked((int)0xC00D1029); - public const int E_WMP_PNG_UNSUPPORTED_COMPRESSION = unchecked((int)0xC00D102A); - public const int E_WMP_PNG_UNSUPPORTED_FILTER = unchecked((int)0xC00D102B); - public const int E_WMP_PNG_UNSUPPORTED_INTERLACE = unchecked((int)0xC00D102C); - public const int E_WMP_PNG_UNSUPPORTED_BAD_CRC = unchecked((int)0xC00D102D); - public const int E_WMP_BMP_INVALID_BITMASK = unchecked((int)0xC00D102E); - public const int E_WMP_BMP_TOPDOWN_DIB_UNSUPPORTED = unchecked((int)0xC00D102F); - public const int E_WMP_BMP_BITMAP_NOT_CREATED = unchecked((int)0xC00D1030); - public const int E_WMP_BMP_COMPRESSION_UNSUPPORTED = unchecked((int)0xC00D1031); - public const int E_WMP_BMP_INVALID_FORMAT = unchecked((int)0xC00D1032); - public const int E_WMP_JPG_JERR_ARITHCODING_NOTIMPL = unchecked((int)0xC00D1033); - public const int E_WMP_JPG_INVALID_FORMAT = unchecked((int)0xC00D1034); - public const int E_WMP_JPG_BAD_DCTSIZE = unchecked((int)0xC00D1035); - public const int E_WMP_JPG_BAD_VERSION_NUMBER = unchecked((int)0xC00D1036); - public const int E_WMP_JPG_BAD_PRECISION = unchecked((int)0xC00D1037); - public const int E_WMP_JPG_CCIR601_NOTIMPL = unchecked((int)0xC00D1038); - public const int E_WMP_JPG_NO_IMAGE_IN_FILE = unchecked((int)0xC00D1039); - public const int E_WMP_JPG_READ_ERROR = unchecked((int)0xC00D103A); - public const int E_WMP_JPG_FRACT_SAMPLE_NOTIMPL = unchecked((int)0xC00D103B); - public const int E_WMP_JPG_IMAGE_TOO_BIG = unchecked((int)0xC00D103C); - public const int E_WMP_JPG_UNEXPECTED_ENDOFFILE = unchecked((int)0xC00D103D); - public const int E_WMP_JPG_SOF_UNSUPPORTED = unchecked((int)0xC00D103E); - public const int E_WMP_JPG_UNKNOWN_MARKER = unchecked((int)0xC00D103F); - public const int S_WMP_LOADED_GIF_IMAGE = unchecked((int)0x000D1040); - public const int S_WMP_LOADED_PNG_IMAGE = unchecked((int)0x000D1041); - public const int S_WMP_LOADED_BMP_IMAGE = unchecked((int)0x000D1042); - public const int S_WMP_LOADED_JPG_IMAGE = unchecked((int)0x000D1043); - public const int E_WMG_RATEUNAVAILABLE = unchecked((int)0xC00D104A); - public const int E_WMG_PLUGINUNAVAILABLE = unchecked((int)0xC00D104B); - public const int E_WMG_CANNOTQUEUE = unchecked((int)0xC00D104C); - public const int E_WMG_PREROLLLICENSEACQUISITIONNOTALLOWED = unchecked((int)0xC00D104D); - public const int E_WMG_UNEXPECTEDPREROLLSTATUS = unchecked((int)0xC00D104E); - public const int E_WMG_INVALIDSTATE = unchecked((int)0xC00D1054); - public const int E_WMG_SINKALREADYEXISTS = unchecked((int)0xC00D1055); - public const int E_WMG_NOSDKINTERFACE = unchecked((int)0xC00D1056); - public const int E_WMG_NOTALLOUTPUTSRENDERED = unchecked((int)0xC00D1057); - public const int E_WMG_FILETRANSFERNOTALLOWED = unchecked((int)0xC00D1058); - public const int E_WMR_UNSUPPORTEDSTREAM = unchecked((int)0xC00D1059); - public const int E_WMR_PINNOTFOUND = unchecked((int)0xC00D105A); - public const int E_WMR_WAITINGONFORMATSWITCH = unchecked((int)0xC00D105B); - public const int E_WMR_NOSOURCEFILTER = unchecked((int)0xC00D105C); - public const int E_WMR_PINTYPENOMATCH = unchecked((int)0xC00D105D); - public const int E_WMR_NOCALLBACKAVAILABLE = unchecked((int)0xC00D105E); - public const int S_WMR_ALREADYRENDERED = unchecked((int)0x000D105F); - public const int S_WMR_PINTYPEPARTIALMATCH = unchecked((int)0x000D1060); - public const int S_WMR_PINTYPEFULLMATCH = unchecked((int)0x000D1061); - public const int E_WMR_SAMPLEPROPERTYNOTSET = unchecked((int)0xC00D1062); - public const int E_WMR_CANNOT_RENDER_BINARY_STREAM = unchecked((int)0xC00D1063); - public const int E_WMG_LICENSE_TAMPERED = unchecked((int)0xC00D1064); - public const int E_WMR_WILLNOT_RENDER_BINARY_STREAM = unchecked((int)0xC00D1065); - public const int E_WMX_UNRECOGNIZED_PLAYLIST_FORMAT = unchecked((int)0xC00D1068); - public const int E_ASX_INVALIDFORMAT = unchecked((int)0xC00D1069); - public const int E_ASX_INVALIDVERSION = unchecked((int)0xC00D106A); - public const int E_ASX_INVALID_REPEAT_BLOCK = unchecked((int)0xC00D106B); - public const int E_ASX_NOTHING_TO_WRITE = unchecked((int)0xC00D106C); - public const int E_URLLIST_INVALIDFORMAT = unchecked((int)0xC00D106D); - public const int E_WMX_ATTRIBUTE_DOES_NOT_EXIST = unchecked((int)0xC00D106E); - public const int E_WMX_ATTRIBUTE_ALREADY_EXISTS = unchecked((int)0xC00D106F); - public const int E_WMX_ATTRIBUTE_UNRETRIEVABLE = unchecked((int)0xC00D1070); - public const int E_WMX_ITEM_DOES_NOT_EXIST = unchecked((int)0xC00D1071); - public const int E_WMX_ITEM_TYPE_ILLEGAL = unchecked((int)0xC00D1072); - public const int E_WMX_ITEM_UNSETTABLE = unchecked((int)0xC00D1073); - public const int E_WMX_PLAYLIST_EMPTY = unchecked((int)0xC00D1074); - public const int E_MLS_SMARTPLAYLIST_FILTER_NOT_REGISTERED = unchecked((int)0xC00D1075); - public const int E_WMX_INVALID_FORMAT_OVER_NESTING = unchecked((int)0xC00D1076); - public const int E_WMPCORE_NOSOURCEURLSTRING = unchecked((int)0xC00D107C); - public const int E_WMPCORE_COCREATEFAILEDFORGITOBJECT = unchecked((int)0xC00D107D); - public const int E_WMPCORE_FAILEDTOGETMARSHALLEDEVENTHANDLERINTERFACE = unchecked((int)0xC00D107E); - public const int E_WMPCORE_BUFFERTOOSMALL = unchecked((int)0xC00D107F); - public const int E_WMPCORE_UNAVAILABLE = unchecked((int)0xC00D1080); - public const int E_WMPCORE_INVALIDPLAYLISTMODE = unchecked((int)0xC00D1081); - public const int E_WMPCORE_ITEMNOTINPLAYLIST = unchecked((int)0xC00D1086); - public const int E_WMPCORE_PLAYLISTEMPTY = unchecked((int)0xC00D1087); - public const int E_WMPCORE_NOBROWSER = unchecked((int)0xC00D1088); - public const int E_WMPCORE_UNRECOGNIZED_MEDIA_URL = unchecked((int)0xC00D1089); - public const int E_WMPCORE_GRAPH_NOT_IN_LIST = unchecked((int)0xC00D108A); - public const int E_WMPCORE_PLAYLIST_EMPTY_OR_SINGLE_MEDIA = unchecked((int)0xC00D108B); - public const int E_WMPCORE_ERRORSINKNOTREGISTERED = unchecked((int)0xC00D108C); - public const int E_WMPCORE_ERRORMANAGERNOTAVAILABLE = unchecked((int)0xC00D108D); - public const int E_WMPCORE_WEBHELPFAILED = unchecked((int)0xC00D108E); - public const int E_WMPCORE_MEDIA_ERROR_RESUME_FAILED = unchecked((int)0xC00D108F); - public const int E_WMPCORE_NO_REF_IN_ENTRY = unchecked((int)0xC00D1090); - public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_NAME_EMPTY = unchecked((int)0xC00D1091); - public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_NAME_ILLEGAL = unchecked((int)0xC00D1092); - public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_VALUE_EMPTY = unchecked((int)0xC00D1093); - public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_VALUE_ILLEGAL = unchecked((int)0xC00D1094); - public const int E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_NAME_EMPTY = unchecked((int)0xC00D1095); - public const int E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_NAME_ILLEGAL = unchecked((int)0xC00D1096); - public const int E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_VALUE_EMPTY = unchecked((int)0xC00D1097); - public const int E_WMPCORE_LIST_ENTRY_NO_REF = unchecked((int)0xC00D1098); - public const int E_WMPCORE_MISNAMED_FILE = unchecked((int)0xC00D1099); - public const int E_WMPCORE_CODEC_NOT_TRUSTED = unchecked((int)0xC00D109A); - public const int E_WMPCORE_CODEC_NOT_FOUND = unchecked((int)0xC00D109B); - public const int E_WMPCORE_CODEC_DOWNLOAD_NOT_ALLOWED = unchecked((int)0xC00D109C); - public const int E_WMPCORE_ERROR_DOWNLOADING_PLAYLIST = unchecked((int)0xC00D109D); - public const int E_WMPCORE_FAILED_TO_BUILD_PLAYLIST = unchecked((int)0xC00D109E); - public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_NONE = unchecked((int)0xC00D109F); - public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_EXHAUSTED = unchecked((int)0xC00D10A0); - public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_NAME_NOT_FOUND = unchecked((int)0xC00D10A1); - public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_MORPH_FAILED = unchecked((int)0xC00D10A2); - public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_INIT_FAILED = unchecked((int)0xC00D10A3); - public const int E_WMPCORE_MEDIA_ALTERNATE_REF_EMPTY = unchecked((int)0xC00D10A4); - public const int E_WMPCORE_PLAYLIST_NO_EVENT_NAME = unchecked((int)0xC00D10A5); - public const int E_WMPCORE_PLAYLIST_EVENT_ATTRIBUTE_ABSENT = unchecked((int)0xC00D10A6); - public const int E_WMPCORE_PLAYLIST_EVENT_EMPTY = unchecked((int)0xC00D10A7); - public const int E_WMPCORE_PLAYLIST_STACK_EMPTY = unchecked((int)0xC00D10A8); - public const int E_WMPCORE_CURRENT_MEDIA_NOT_ACTIVE = unchecked((int)0xC00D10A9); - public const int E_WMPCORE_USER_CANCEL = unchecked((int)0xC00D10AB); - public const int E_WMPCORE_PLAYLIST_REPEAT_EMPTY = unchecked((int)0xC00D10AC); - public const int E_WMPCORE_PLAYLIST_REPEAT_START_MEDIA_NONE = unchecked((int)0xC00D10AD); - public const int E_WMPCORE_PLAYLIST_REPEAT_END_MEDIA_NONE = unchecked((int)0xC00D10AE); - public const int E_WMPCORE_INVALID_PLAYLIST_URL = unchecked((int)0xC00D10AF); - public const int E_WMPCORE_MISMATCHED_RUNTIME = unchecked((int)0xC00D10B0); - public const int E_WMPCORE_PLAYLIST_IMPORT_FAILED_NO_ITEMS = unchecked((int)0xC00D10B1); - public const int E_WMPCORE_VIDEO_TRANSFORM_FILTER_INSERTION = unchecked((int)0xC00D10B2); - public const int E_WMPCORE_MEDIA_UNAVAILABLE = unchecked((int)0xC00D10B3); - public const int E_WMPCORE_WMX_ENTRYREF_NO_REF = unchecked((int)0xC00D10B4); - public const int E_WMPCORE_NO_PLAYABLE_MEDIA_IN_PLAYLIST = unchecked((int)0xC00D10B5); - public const int E_WMPCORE_PLAYLIST_EMPTY_NESTED_PLAYLIST_SKIPPED_ITEMS = unchecked((int)0xC00D10B6); - public const int E_WMPCORE_BUSY = unchecked((int)0xC00D10B7); - public const int E_WMPCORE_MEDIA_CHILD_PLAYLIST_UNAVAILABLE = unchecked((int)0xC00D10B8); - public const int E_WMPCORE_MEDIA_NO_CHILD_PLAYLIST = unchecked((int)0xC00D10B9); - public const int E_WMPCORE_FILE_NOT_FOUND = unchecked((int)0xC00D10BA); - public const int E_WMPCORE_TEMP_FILE_NOT_FOUND = unchecked((int)0xC00D10BB); - public const int E_WMDM_REVOKED = unchecked((int)0xC00D10BC); - public const int E_DDRAW_GENERIC = unchecked((int)0xC00D10BD); - public const int E_DISPLAY_MODE_CHANGE_FAILED = unchecked((int)0xC00D10BE); - public const int E_PLAYLIST_CONTAINS_ERRORS = unchecked((int)0xC00D10BF); - public const int E_CHANGING_PROXY_NAME = unchecked((int)0xC00D10C0); - public const int E_CHANGING_PROXY_PORT = unchecked((int)0xC00D10C1); - public const int E_CHANGING_PROXY_EXCEPTIONLIST = unchecked((int)0xC00D10C2); - public const int E_CHANGING_PROXYBYPASS = unchecked((int)0xC00D10C3); - public const int E_CHANGING_PROXY_PROTOCOL_NOT_FOUND = unchecked((int)0xC00D10C4); - public const int E_GRAPH_NOAUDIOLANGUAGE = unchecked((int)0xC00D10C5); - public const int E_GRAPH_NOAUDIOLANGUAGESELECTED = unchecked((int)0xC00D10C6); - public const int E_CORECD_NOTAMEDIACD = unchecked((int)0xC00D10C7); - public const int E_WMPCORE_MEDIA_URL_TOO_LONG = unchecked((int)0xC00D10C8); - public const int E_WMPFLASH_CANT_FIND_COM_SERVER = unchecked((int)0xC00D10C9); - public const int E_WMPFLASH_INCOMPATIBLEVERSION = unchecked((int)0xC00D10CA); - public const int E_WMPOCXGRAPH_IE_DISALLOWS_ACTIVEX_CONTROLS = unchecked((int)0xC00D10CB); - public const int E_NEED_CORE_REFERENCE = unchecked((int)0xC00D10CC); - public const int E_MEDIACD_READ_ERROR = unchecked((int)0xC00D10CD); - public const int E_IE_DISALLOWS_ACTIVEX_CONTROLS = unchecked((int)0xC00D10CE); - public const int E_FLASH_PLAYBACK_NOT_ALLOWED = unchecked((int)0xC00D10CF); - public const int E_UNABLE_TO_CREATE_RIP_LOCATION = unchecked((int)0xC00D10D0); - public const int E_WMPCORE_SOME_CODECS_MISSING = unchecked((int)0xC00D10D1); - public const int S_WMPCORE_PLAYLISTCLEARABORT = unchecked((int)0x000D10FE); - public const int S_WMPCORE_PLAYLISTREMOVEITEMABORT = unchecked((int)0x000D10FF); - public const int S_WMPCORE_PLAYLIST_CREATION_PENDING = unchecked((int)0x000D1102); - public const int S_WMPCORE_MEDIA_VALIDATION_PENDING = unchecked((int)0x000D1103); - public const int S_WMPCORE_PLAYLIST_REPEAT_SECONDARY_SEGMENTS_IGNORED = unchecked((int)0x000D1104); - public const int S_WMPCORE_COMMAND_NOT_AVAILABLE = unchecked((int)0x000D1105); - public const int S_WMPCORE_PLAYLIST_NAME_AUTO_GENERATED = unchecked((int)0x000D1106); - public const int S_WMPCORE_PLAYLIST_IMPORT_MISSING_ITEMS = unchecked((int)0x000D1107); - public const int S_WMPCORE_PLAYLIST_COLLAPSED_TO_SINGLE_MEDIA = unchecked((int)0x000D1108); - public const int S_WMPCORE_MEDIA_CHILD_PLAYLIST_OPEN_PENDING = unchecked((int)0x000D1109); - public const int S_WMPCORE_MORE_NODES_AVAIABLE = unchecked((int)0x000D110A); - public const int E_WMPIM_USEROFFLINE = unchecked((int)0xC00D1126); - public const int E_WMPIM_USERCANCELED = unchecked((int)0xC00D1127); - public const int E_WMPIM_DIALUPFAILED = unchecked((int)0xC00D1128); - public const int E_WINSOCK_ERROR_STRING = unchecked((int)0xC00D1129); - public const int E_WMPBR_NOLISTENER = unchecked((int)0xC00D1130); - public const int E_WMPBR_BACKUPCANCEL = unchecked((int)0xC00D1131); - public const int E_WMPBR_RESTORECANCEL = unchecked((int)0xC00D1132); - public const int E_WMPBR_ERRORWITHURL = unchecked((int)0xC00D1133); - public const int E_WMPBR_NAMECOLLISION = unchecked((int)0xC00D1134); - public const int S_WMPBR_SUCCESS = unchecked((int)0x000D1135); - public const int S_WMPBR_PARTIALSUCCESS = unchecked((int)0x000D1136); - public const int E_WMPBR_DRIVE_INVALID = unchecked((int)0xC00D1137); - public const int S_WMPEFFECT_TRANSPARENT = unchecked((int)0x000D1144); - public const int S_WMPEFFECT_OPAQUE = unchecked((int)0x000D1145); - public const int S_OPERATION_PENDING = unchecked((int)0x000D114E); - public const int E_DVD_NO_SUBPICTURE_STREAM = unchecked((int)0xC00D1162); - public const int E_DVD_COPY_PROTECT = unchecked((int)0xC00D1163); - public const int E_DVD_AUTHORING_PROBLEM = unchecked((int)0xC00D1164); - public const int E_DVD_INVALID_DISC_REGION = unchecked((int)0xC00D1165); - public const int E_DVD_COMPATIBLE_VIDEO_CARD = unchecked((int)0xC00D1166); - public const int E_DVD_MACROVISION = unchecked((int)0xC00D1167); - public const int E_DVD_SYSTEM_DECODER_REGION = unchecked((int)0xC00D1168); - public const int E_DVD_DISC_DECODER_REGION = unchecked((int)0xC00D1169); - public const int E_DVD_NO_VIDEO_STREAM = unchecked((int)0xC00D116A); - public const int E_DVD_NO_AUDIO_STREAM = unchecked((int)0xC00D116B); - public const int E_DVD_GRAPH_BUILDING = unchecked((int)0xC00D116C); - public const int E_DVD_NO_DECODER = unchecked((int)0xC00D116D); - public const int E_DVD_PARENTAL = unchecked((int)0xC00D116E); - public const int E_DVD_CANNOT_JUMP = unchecked((int)0xC00D116F); - public const int E_DVD_DEVICE_CONTENTION = unchecked((int)0xC00D1170); - public const int E_DVD_NO_VIDEO_MEMORY = unchecked((int)0xC00D1171); - public const int E_DVD_CANNOT_COPY_PROTECTED = unchecked((int)0xC00D1172); - public const int E_DVD_REQUIRED_PROPERTY_NOT_SET = unchecked((int)0xC00D1173); - public const int E_DVD_INVALID_TITLE_CHAPTER = unchecked((int)0xC00D1174); - public const int E_NO_CD_BURNER = unchecked((int)0xC00D1176); - public const int E_DEVICE_IS_NOT_READY = unchecked((int)0xC00D1177); - public const int E_PDA_UNSUPPORTED_FORMAT = unchecked((int)0xC00D1178); - public const int E_NO_PDA = unchecked((int)0xC00D1179); - public const int E_PDA_UNSPECIFIED_ERROR = unchecked((int)0xC00D117A); - public const int E_MEMSTORAGE_BAD_DATA = unchecked((int)0xC00D117B); - public const int E_PDA_FAIL_SELECT_DEVICE = unchecked((int)0xC00D117C); - public const int E_PDA_FAIL_READ_WAVE_FILE = unchecked((int)0xC00D117D); - public const int E_IMAPI_LOSSOFSTREAMING = unchecked((int)0xC00D117E); - public const int E_PDA_DEVICE_FULL = unchecked((int)0xC00D117F); - public const int E_FAIL_LAUNCH_ROXIO_PLUGIN = unchecked((int)0xC00D1180); - public const int E_PDA_DEVICE_FULL_IN_SESSION = unchecked((int)0xC00D1181); - public const int E_IMAPI_MEDIUM_INVALIDTYPE = unchecked((int)0xC00D1182); - public const int E_WMP_PROTOCOL_PROBLEM = unchecked((int)0xC00D1194); - public const int E_WMP_NO_DISK_SPACE = unchecked((int)0xC00D1195); - public const int E_WMP_LOGON_FAILURE = unchecked((int)0xC00D1196); - public const int E_WMP_CANNOT_FIND_FILE = unchecked((int)0xC00D1197); - public const int E_WMP_SERVER_INACCESSIBLE = unchecked((int)0xC00D1198); - public const int E_WMP_UNSUPPORTED_FORMAT = unchecked((int)0xC00D1199); - public const int E_WMP_DSHOW_UNSUPPORTED_FORMAT = unchecked((int)0xC00D119A); - public const int E_WMP_PLAYLIST_EXISTS = unchecked((int)0xC00D119B); - public const int E_WMP_NONMEDIA_FILES = unchecked((int)0xC00D119C); - public const int E_WMP_INVALID_ASX = unchecked((int)0xC00D119D); - public const int E_WMP_ALREADY_IN_USE = unchecked((int)0xC00D119E); - public const int E_WMP_IMAPI_FAILURE = unchecked((int)0xC00D119F); - public const int E_WMP_WMDM_FAILURE = unchecked((int)0xC00D11A0); - public const int E_WMP_CODEC_NEEDED_WITH_4CC = unchecked((int)0xC00D11A1); - public const int E_WMP_CODEC_NEEDED_WITH_FORMATTAG = unchecked((int)0xC00D11A2); - public const int E_WMP_MSSAP_NOT_AVAILABLE = unchecked((int)0xC00D11A3); - public const int E_WMP_WMDM_INTERFACEDEAD = unchecked((int)0xC00D11A4); - public const int E_WMP_WMDM_NOTCERTIFIED = unchecked((int)0xC00D11A5); - public const int E_WMP_WMDM_LICENSE_NOTEXIST = unchecked((int)0xC00D11A6); - public const int E_WMP_WMDM_LICENSE_EXPIRED = unchecked((int)0xC00D11A7); - public const int E_WMP_WMDM_BUSY = unchecked((int)0xC00D11A8); - public const int E_WMP_WMDM_NORIGHTS = unchecked((int)0xC00D11A9); - public const int E_WMP_WMDM_INCORRECT_RIGHTS = unchecked((int)0xC00D11AA); - public const int E_WMP_IMAPI_GENERIC = unchecked((int)0xC00D11AB); - public const int E_WMP_IMAPI_DEVICE_NOTPRESENT = unchecked((int)0xC00D11AD); - public const int E_WMP_IMAPI_STASHINUSE = unchecked((int)0xC00D11AE); - public const int E_WMP_IMAPI_LOSS_OF_STREAMING = unchecked((int)0xC00D11AF); - public const int E_WMP_SERVER_UNAVAILABLE = unchecked((int)0xC00D11B0); - public const int E_WMP_FILE_OPEN_FAILED = unchecked((int)0xC00D11B1); - public const int E_WMP_VERIFY_ONLINE = unchecked((int)0xC00D11B2); - public const int E_WMP_SERVER_NOT_RESPONDING = unchecked((int)0xC00D11B3); - public const int E_WMP_DRM_CORRUPT_BACKUP = unchecked((int)0xC00D11B4); - public const int E_WMP_DRM_LICENSE_SERVER_UNAVAILABLE = unchecked((int)0xC00D11B5); - public const int E_WMP_NETWORK_FIREWALL = unchecked((int)0xC00D11B6); - public const int E_WMP_NO_REMOVABLE_MEDIA = unchecked((int)0xC00D11B7); - public const int E_WMP_PROXY_CONNECT_TIMEOUT = unchecked((int)0xC00D11B8); - public const int E_WMP_NEED_UPGRADE = unchecked((int)0xC00D11B9); - public const int E_WMP_AUDIO_HW_PROBLEM = unchecked((int)0xC00D11BA); - public const int E_WMP_INVALID_PROTOCOL = unchecked((int)0xC00D11BB); - public const int E_WMP_INVALID_LIBRARY_ADD = unchecked((int)0xC00D11BC); - public const int E_WMP_MMS_NOT_SUPPORTED = unchecked((int)0xC00D11BD); - public const int E_WMP_NO_PROTOCOLS_SELECTED = unchecked((int)0xC00D11BE); - public const int E_WMP_GOFULLSCREEN_FAILED = unchecked((int)0xC00D11BF); - public const int E_WMP_NETWORK_ERROR = unchecked((int)0xC00D11C0); - public const int E_WMP_CONNECT_TIMEOUT = unchecked((int)0xC00D11C1); - public const int E_WMP_MULTICAST_DISABLED = unchecked((int)0xC00D11C2); - public const int E_WMP_SERVER_DNS_TIMEOUT = unchecked((int)0xC00D11C3); - public const int E_WMP_PROXY_NOT_FOUND = unchecked((int)0xC00D11C4); - public const int E_WMP_TAMPERED_CONTENT = unchecked((int)0xC00D11C5); - public const int E_WMP_OUTOFMEMORY = unchecked((int)0xC00D11C6); - public const int E_WMP_AUDIO_CODEC_NOT_INSTALLED = unchecked((int)0xC00D11C7); - public const int E_WMP_VIDEO_CODEC_NOT_INSTALLED = unchecked((int)0xC00D11C8); - public const int E_WMP_IMAPI_DEVICE_INVALIDTYPE = unchecked((int)0xC00D11C9); - public const int E_WMP_DRM_DRIVER_AUTH_FAILURE = unchecked((int)0xC00D11CA); - public const int E_WMP_NETWORK_RESOURCE_FAILURE = unchecked((int)0xC00D11CB); - public const int E_WMP_UPGRADE_APPLICATION = unchecked((int)0xC00D11CC); - public const int E_WMP_UNKNOWN_ERROR = unchecked((int)0xC00D11CD); - public const int E_WMP_INVALID_KEY = unchecked((int)0xC00D11CE); - public const int E_WMP_CD_ANOTHER_USER = unchecked((int)0xC00D11CF); - public const int E_WMP_DRM_NEEDS_AUTHORIZATION = unchecked((int)0xC00D11D0); - public const int E_WMP_BAD_DRIVER = unchecked((int)0xC00D11D1); - public const int E_WMP_ACCESS_DENIED = unchecked((int)0xC00D11D2); - public const int E_WMP_LICENSE_RESTRICTS = unchecked((int)0xC00D11D3); - public const int E_WMP_INVALID_REQUEST = unchecked((int)0xC00D11D4); - public const int E_WMP_CD_STASH_NO_SPACE = unchecked((int)0xC00D11D5); - public const int E_WMP_DRM_NEW_HARDWARE = unchecked((int)0xC00D11D6); - public const int E_WMP_DRM_INVALID_SIG = unchecked((int)0xC00D11D7); - public const int E_WMP_DRM_CANNOT_RESTORE = unchecked((int)0xC00D11D8); - public const int E_CD_NO_BUFFERS_READ = unchecked((int)0xC00D11F8); - public const int E_CD_EMPTY_TRACK_QUEUE = unchecked((int)0xC00D11F9); - public const int E_CD_NO_READER = unchecked((int)0xC00D11FA); - public const int E_CD_ISRC_INVALID = unchecked((int)0xC00D11FB); - public const int E_CD_MEDIA_CATALOG_NUMBER_INVALID = unchecked((int)0xC00D11FC); - public const int E_SLOW_READ_DIGITAL_WITH_ERRORCORRECTION = unchecked((int)0xC00D11FD); - public const int E_CD_SPEEDDETECT_NOT_ENOUGH_READS = unchecked((int)0xC00D11FE); - public const int E_CD_QUEUEING_DISABLED = unchecked((int)0xC00D11FF); - public const int E_WMP_POLICY_VALUE_NOT_CONFIGURED = unchecked((int)0xC00D122A); - public const int E_WMP_HWND_NOTFOUND = unchecked((int)0xC00D125C); - public const int E_BKGDOWNLOAD_WRONG_NO_FILES = unchecked((int)0xC00D125D); - public const int E_BKGDOWNLOAD_COMPLETECANCELLEDJOB = unchecked((int)0xC00D125E); - public const int E_BKGDOWNLOAD_CANCELCOMPLETEDJOB = unchecked((int)0xC00D125F); - public const int E_BKGDOWNLOAD_NOJOBPOINTER = unchecked((int)0xC00D1260); - public const int E_BKGDOWNLOAD_INVALIDJOBSIGNATURE = unchecked((int)0xC00D1261); - public const int E_BKGDOWNLOAD_FAILED_TO_CREATE_TEMPFILE = unchecked((int)0xC00D1262); - public const int E_BKGDOWNLOAD_PLUGIN_FAILEDINITIALIZE = unchecked((int)0xC00D1263); - public const int E_BKGDOWNLOAD_PLUGIN_FAILEDTOMOVEFILE = unchecked((int)0xC00D1264); - public const int E_BKGDOWNLOAD_CALLFUNCFAILED = unchecked((int)0xC00D1265); - public const int E_BKGDOWNLOAD_CALLFUNCTIMEOUT = unchecked((int)0xC00D1266); - public const int E_BKGDOWNLOAD_CALLFUNCENDED = unchecked((int)0xC00D1267); - public const int E_BKGDOWNLOAD_WMDUNPACKFAILED = unchecked((int)0xC00D1268); - public const int E_BKGDOWNLOAD_FAILEDINITIALIZE = unchecked((int)0xC00D1269); - public const int E_INTERFACE_NOT_REGISTERED_IN_GIT = unchecked((int)0xC00D126A); - public const int E_BKGDOWNLOAD_INVALID_FILE_NAME = unchecked((int)0xC00D126B); - public const int E_IMAGE_DOWNLOAD_FAILED = unchecked((int)0xC00D128E); - public const int E_WMP_UDRM_NOUSERLIST = unchecked((int)0xC00D12C0); - public const int E_WMP_DRM_NOT_ACQUIRING = unchecked((int)0xC00D12C1); - public const int E_WMP_BSTR_TOO_LONG = unchecked((int)0xC00D12F2); - public const int E_WMP_AUTOPLAY_INVALID_STATE = unchecked((int)0xC00D12FC); - public const int E_CURL_NOTSAFE = unchecked((int)0xC00D1324); - public const int E_CURL_INVALIDCHAR = unchecked((int)0xC00D1325); - public const int E_CURL_INVALIDHOSTNAME = unchecked((int)0xC00D1326); - public const int E_CURL_INVALIDPATH = unchecked((int)0xC00D1327); - public const int E_CURL_INVALIDSCHEME = unchecked((int)0xC00D1328); - public const int E_CURL_INVALIDURL = unchecked((int)0xC00D1329); - public const int E_CURL_CANTWALK = unchecked((int)0xC00D132B); - public const int E_CURL_INVALIDPORT = unchecked((int)0xC00D132C); - public const int E_CURLHELPER_NOTADIRECTORY = unchecked((int)0xC00D132D); - public const int E_CURLHELPER_NOTAFILE = unchecked((int)0xC00D132E); - public const int E_CURL_CANTDECODE = unchecked((int)0xC00D132F); - public const int E_CURLHELPER_NOTRELATIVE = unchecked((int)0xC00D1330); - public const int E_CURL_INVALIDBUFFERSIZE = unchecked((int)0xC00D1355); - public const int E_SUBSCRIPTIONSERVICE_PLAYBACK_DISALLOWED = unchecked((int)0xC00D1356); - public const int E_ADVANCEDEDIT_TOO_MANY_PICTURES = unchecked((int)0xC00D136A); - public const int E_REDIRECT = unchecked((int)0xC00D1388); - public const int E_STALE_PRESENTATION = unchecked((int)0xC00D1389); - public const int E_NAMESPACE_WRONG_PERSIST = unchecked((int)0xC00D138A); - public const int E_NAMESPACE_WRONG_TYPE = unchecked((int)0xC00D138B); - public const int E_NAMESPACE_NODE_CONFLICT = unchecked((int)0xC00D138C); - public const int E_NAMESPACE_NODE_NOT_FOUND = unchecked((int)0xC00D138D); - public const int E_NAMESPACE_BUFFER_TOO_SMALL = unchecked((int)0xC00D138E); - public const int E_NAMESPACE_TOO_MANY_CALLBACKS = unchecked((int)0xC00D138F); - public const int E_NAMESPACE_DUPLICATE_CALLBACK = unchecked((int)0xC00D1390); - public const int E_NAMESPACE_CALLBACK_NOT_FOUND = unchecked((int)0xC00D1391); - public const int E_NAMESPACE_NAME_TOO_LONG = unchecked((int)0xC00D1392); - public const int E_NAMESPACE_DUPLICATE_NAME = unchecked((int)0xC00D1393); - public const int E_NAMESPACE_EMPTY_NAME = unchecked((int)0xC00D1394); - public const int E_NAMESPACE_INDEX_TOO_LARGE = unchecked((int)0xC00D1395); - public const int E_NAMESPACE_BAD_NAME = unchecked((int)0xC00D1396); - public const int E_NAMESPACE_WRONG_SECURITY = unchecked((int)0xC00D1397); - public const int E_CACHE_ARCHIVE_CONFLICT = unchecked((int)0xC00D13EC); - public const int E_CACHE_ORIGIN_SERVER_NOT_FOUND = unchecked((int)0xC00D13ED); - public const int E_CACHE_ORIGIN_SERVER_TIMEOUT = unchecked((int)0xC00D13EE); - public const int E_CACHE_NOT_BROADCAST = unchecked((int)0xC00D13EF); - public const int E_CACHE_CANNOT_BE_CACHED = unchecked((int)0xC00D13F0); - public const int E_CACHE_NOT_MODIFIED = unchecked((int)0xC00D13F1); - public const int E_CANNOT_REMOVE_PUBLISHING_POINT = unchecked((int)0xC00D1450); - public const int E_CANNOT_REMOVE_PLUGIN = unchecked((int)0xC00D1451); - public const int E_WRONG_PUBLISHING_POINT_TYPE = unchecked((int)0xC00D1452); - public const int E_UNSUPPORTED_LOAD_TYPE = unchecked((int)0xC00D1453); - public const int E_INVALID_PLUGIN_LOAD_TYPE_CONFIGURATION = unchecked((int)0xC00D1454); - public const int E_INVALID_PUBLISHING_POINT_NAME = unchecked((int)0xC00D1455); - public const int E_TOO_MANY_MULTICAST_SINKS = unchecked((int)0xC00D1456); - public const int E_PUBLISHING_POINT_INVALID_REQUEST_WHILE_STARTED = unchecked((int)0xC00D1457); - public const int E_MULTICAST_PLUGIN_NOT_ENABLED = unchecked((int)0xC00D1458); - public const int E_INVALID_OPERATING_SYSTEM_VERSION = unchecked((int)0xC00D1459); - public const int E_PUBLISHING_POINT_REMOVED = unchecked((int)0xC00D145A); - public const int E_INVALID_PUSH_PUBLISHING_POINT_START_REQUEST = unchecked((int)0xC00D145B); - public const int E_UNSUPPORTED_LANGUAGE = unchecked((int)0xC00D145C); - public const int E_WRONG_OS_VERSION = unchecked((int)0xC00D145D); - public const int E_PUBLISHING_POINT_STOPPED = unchecked((int)0xC00D145E); - public const int E_PLAYLIST_ENTRY_ALREADY_PLAYING = unchecked((int)0xC00D14B4); - public const int E_EMPTY_PLAYLIST = unchecked((int)0xC00D14B5); - public const int E_PLAYLIST_PARSE_FAILURE = unchecked((int)0xC00D14B6); - public const int E_PLAYLIST_UNSUPPORTED_ENTRY = unchecked((int)0xC00D14B7); - public const int E_PLAYLIST_ENTRY_NOT_IN_PLAYLIST = unchecked((int)0xC00D14B8); - public const int E_PLAYLIST_ENTRY_SEEK = unchecked((int)0xC00D14B9); - public const int E_PLAYLIST_RECURSIVE_PLAYLISTS = unchecked((int)0xC00D14BA); - public const int E_PLAYLIST_TOO_MANY_NESTED_PLAYLISTS = unchecked((int)0xC00D14BB); - public const int E_PLAYLIST_SHUTDOWN = unchecked((int)0xC00D14BC); - public const int E_PLAYLIST_END_RECEDING = unchecked((int)0xC00D14BD); - public const int I_PLAYLIST_CHANGE_RECEDING = unchecked((int)0x400D14BE); - public const int E_DATAPATH_NO_SINK = unchecked((int)0xC00D1518); - public const int S_PUBLISHING_POINT_STARTED_WITH_FAILED_SINKS = unchecked((int)0x000D1519); - public const int E_INVALID_PUSH_TEMPLATE = unchecked((int)0xC00D151A); - public const int E_INVALID_PUSH_PUBLISHING_POINT = unchecked((int)0xC00D151B); - public const int E_CRITICAL_ERROR = unchecked((int)0xC00D151C); - public const int E_NO_NEW_CONNECTIONS = unchecked((int)0xC00D151D); - public const int E_WSX_INVALID_VERSION = unchecked((int)0xC00D151E); - public const int E_HEADER_MISMATCH = unchecked((int)0xC00D151F); - public const int E_PUSH_DUPLICATE_PUBLISHING_POINT_NAME = unchecked((int)0xC00D1520); - public const int E_NO_SCRIPT_ENGINE = unchecked((int)0xC00D157C); - public const int E_PLUGIN_ERROR_REPORTED = unchecked((int)0xC00D157D); - public const int E_SOURCE_PLUGIN_NOT_FOUND = unchecked((int)0xC00D157E); - public const int E_PLAYLIST_PLUGIN_NOT_FOUND = unchecked((int)0xC00D157F); - public const int E_DATA_SOURCE_ENUMERATION_NOT_SUPPORTED = unchecked((int)0xC00D1580); - public const int E_MEDIA_PARSER_INVALID_FORMAT = unchecked((int)0xC00D1581); - public const int E_SCRIPT_DEBUGGER_NOT_INSTALLED = unchecked((int)0xC00D1582); - public const int E_FEATURE_REQUIRES_ENTERPRISE_SERVER = unchecked((int)0xC00D1583); - public const int E_WIZARD_RUNNING = unchecked((int)0xC00D1584); - public const int E_INVALID_LOG_URL = unchecked((int)0xC00D1585); - public const int E_INVALID_MTU_RANGE = unchecked((int)0xC00D1586); - public const int E_INVALID_PLAY_STATISTICS = unchecked((int)0xC00D1587); - public const int E_LOG_NEED_TO_BE_SKIPPED = unchecked((int)0xC00D1588); - public const int E_HTTP_TEXT_DATACONTAINER_SIZE_LIMIT_EXCEEDED = unchecked((int)0xC00D1589); - public const int E_PORT_IN_USE = unchecked((int)0xC00D158A); - public const int E_PORT_IN_USE_HTTP = unchecked((int)0xC00D158B); - public const int E_HTTP_TEXT_DATACONTAINER_INVALID_SERVER_RESPONSE = unchecked((int)0xC00D158C); - public const int E_ARCHIVE_REACH_QUOTA = unchecked((int)0xC00D158D); - public const int E_ARCHIVE_ABORT_DUE_TO_BCAST = unchecked((int)0xC00D158E); - public const int E_ARCHIVE_GAP_DETECTED = unchecked((int)0xC00D158F); - public const int E_BAD_MARKIN = unchecked((int)0xC00D1B58); - public const int E_BAD_MARKOUT = unchecked((int)0xC00D1B59); - public const int E_NOMATCHING_MEDIASOURCE = unchecked((int)0xC00D1B5A); - public const int E_UNSUPPORTED_SOURCETYPE = unchecked((int)0xC00D1B5B); - public const int E_TOO_MANY_AUDIO = unchecked((int)0xC00D1B5C); - public const int E_TOO_MANY_VIDEO = unchecked((int)0xC00D1B5D); - public const int E_NOMATCHING_ELEMENT = unchecked((int)0xC00D1B5E); - public const int E_MISMATCHED_MEDIACONTENT = unchecked((int)0xC00D1B5F); - public const int E_CANNOT_DELETE_ACTIVE_SOURCEGROUP = unchecked((int)0xC00D1B60); - public const int E_AUDIODEVICE_BUSY = unchecked((int)0xC00D1B61); - public const int E_AUDIODEVICE_UNEXPECTED = unchecked((int)0xC00D1B62); - public const int E_AUDIODEVICE_BADFORMAT = unchecked((int)0xC00D1B63); - public const int E_VIDEODEVICE_BUSY = unchecked((int)0xC00D1B64); - public const int E_VIDEODEVICE_UNEXPECTED = unchecked((int)0xC00D1B65); - public const int E_INVALIDCALL_WHILE_ENCODER_RUNNING = unchecked((int)0xC00D1B66); - public const int E_NO_PROFILE_IN_SOURCEGROUP = unchecked((int)0xC00D1B67); - public const int E_VIDEODRIVER_UNSTABLE = unchecked((int)0xC00D1B68); - public const int E_VIDCAPSTARTFAILED = unchecked((int)0xC00D1B69); - public const int E_VIDSOURCECOMPRESSION = unchecked((int)0xC00D1B6A); - public const int E_VIDSOURCESIZE = unchecked((int)0xC00D1B6B); - public const int E_ICMQUERYFORMAT = unchecked((int)0xC00D1B6C); - public const int E_VIDCAPCREATEWINDOW = unchecked((int)0xC00D1B6D); - public const int E_VIDCAPDRVINUSE = unchecked((int)0xC00D1B6E); - public const int E_NO_MEDIAFORMAT_IN_SOURCE = unchecked((int)0xC00D1B6F); - public const int E_NO_VALID_OUTPUT_STREAM = unchecked((int)0xC00D1B70); - public const int E_NO_VALID_SOURCE_PLUGIN = unchecked((int)0xC00D1B71); - public const int E_NO_ACTIVE_SOURCEGROUP = unchecked((int)0xC00D1B72); - public const int E_NO_SCRIPT_STREAM = unchecked((int)0xC00D1B73); - public const int E_INVALIDCALL_WHILE_ARCHIVAL_RUNNING = unchecked((int)0xC00D1B74); - public const int E_INVALIDPACKETSIZE = unchecked((int)0xC00D1B75); - public const int E_PLUGIN_CLSID_INVALID = unchecked((int)0xC00D1B76); - public const int E_UNSUPPORTED_ARCHIVETYPE = unchecked((int)0xC00D1B77); - public const int E_UNSUPPORTED_ARCHIVEOPERATION = unchecked((int)0xC00D1B78); - public const int E_ARCHIVE_FILENAME_NOTSET = unchecked((int)0xC00D1B79); - public const int E_SOURCEGROUP_NOTPREPARED = unchecked((int)0xC00D1B7A); - public const int E_PROFILE_MISMATCH = unchecked((int)0xC00D1B7B); - public const int E_INCORRECTCLIPSETTINGS = unchecked((int)0xC00D1B7C); - public const int E_NOSTATSAVAILABLE = unchecked((int)0xC00D1B7D); - public const int E_NOTARCHIVING = unchecked((int)0xC00D1B7E); - public const int E_INVALIDCALL_WHILE_ENCODER_STOPPED = unchecked((int)0xC00D1B7F); - public const int E_NOSOURCEGROUPS = unchecked((int)0xC00D1B80); - public const int E_INVALIDINPUTFPS = unchecked((int)0xC00D1B81); - public const int E_NO_DATAVIEW_SUPPORT = unchecked((int)0xC00D1B82); - public const int E_CODEC_UNAVAILABLE = unchecked((int)0xC00D1B83); - public const int E_ARCHIVE_SAME_AS_INPUT = unchecked((int)0xC00D1B84); - public const int E_SOURCE_NOTSPECIFIED = unchecked((int)0xC00D1B85); - public const int E_NO_REALTIME_TIMECOMPRESSION = unchecked((int)0xC00D1B86); - public const int E_UNSUPPORTED_ENCODER_DEVICE = unchecked((int)0xC00D1B87); - public const int E_UNEXPECTED_DISPLAY_SETTINGS = unchecked((int)0xC00D1B88); - public const int E_NO_AUDIODATA = unchecked((int)0xC00D1B89); - public const int E_INPUTSOURCE_PROBLEM = unchecked((int)0xC00D1B8A); - public const int E_WME_VERSION_MISMATCH = unchecked((int)0xC00D1B8B); - public const int E_NO_REALTIME_PREPROCESS = unchecked((int)0xC00D1B8C); - public const int E_NO_REPEAT_PREPROCESS = unchecked((int)0xC00D1B8D); - public const int E_CANNOT_PAUSE_LIVEBROADCAST = unchecked((int)0xC00D1B8E); - public const int E_DRM_PROFILE_NOT_SET = unchecked((int)0xC00D1B8F); - public const int E_DUPLICATE_DRMPROFILE = unchecked((int)0xC00D1B90); - public const int E_INVALID_DEVICE = unchecked((int)0xC00D1B91); - public const int E_SPEECHEDL_ON_NON_MIXEDMODE = unchecked((int)0xC00D1B92); - public const int E_DRM_PASSWORD_TOO_LONG = unchecked((int)0xC00D1B93); - public const int E_DEVCONTROL_FAILED_SEEK = unchecked((int)0xC00D1B94); - public const int E_INTERLACE_REQUIRE_SAMESIZE = unchecked((int)0xC00D1B95); - public const int E_TOO_MANY_DEVICECONTROL = unchecked((int)0xC00D1B96); - public const int E_NO_MULTIPASS_FOR_LIVEDEVICE = unchecked((int)0xC00D1B97); - public const int E_MISSING_AUDIENCE = unchecked((int)0xC00D1B98); - public const int E_AUDIENCE_CONTENTTYPE_MISMATCH = unchecked((int)0xC00D1B99); - public const int E_MISSING_SOURCE_INDEX = unchecked((int)0xC00D1B9A); - public const int E_NUM_LANGUAGE_MISMATCH = unchecked((int)0xC00D1B9B); - public const int E_LANGUAGE_MISMATCH = unchecked((int)0xC00D1B9C); - public const int E_VBRMODE_MISMATCH = unchecked((int)0xC00D1B9D); - public const int E_INVALID_INPUT_AUDIENCE_INDEX = unchecked((int)0xC00D1B9E); - public const int E_INVALID_INPUT_LANGUAGE = unchecked((int)0xC00D1B9F); - public const int E_INVALID_INPUT_STREAM = unchecked((int)0xC00D1BA0); - public const int E_EXPECT_MONO_WAV_INPUT = unchecked((int)0xC00D1BA1); - public const int E_INPUT_WAVFORMAT_MISMATCH = unchecked((int)0xC00D1BA2); - public const int E_RECORDQ_DISK_FULL = unchecked((int)0xC00D1BA3); - public const int E_NO_PAL_INVERSE_TELECINE = unchecked((int)0xC00D1BA4); - public const int E_ACTIVE_SG_DEVICE_DISCONNECTED = unchecked((int)0xC00D1BA5); - public const int E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED = unchecked((int)0xC00D1BA6); - public const int E_NO_FRAMES_SUBMITTED_TO_ANALYZER = unchecked((int)0xC00D1BA7); - public const int E_INPUT_DOESNOT_SUPPORT_SMPTE = unchecked((int)0xC00D1BA8); - public const int E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS = unchecked((int)0xC00D1BA9); - public const int E_BAD_CONTENTEDL = unchecked((int)0xC00D1BAA); - public const int E_INTERLACEMODE_MISMATCH = unchecked((int)0xC00D1BAB); - public const int E_NONSQUAREPIXELMODE_MISMATCH = unchecked((int)0xC00D1BAC); - public const int E_SMPTEMODE_MISMATCH = unchecked((int)0xC00D1BAD); - public const int E_END_OF_TAPE = unchecked((int)0xC00D1BAE); - public const int E_NO_MEDIA_IN_AUDIENCE = unchecked((int)0xC00D1BAF); - public const int E_NO_AUDIENCES = unchecked((int)0xC00D1BB0); - public const int E_NO_AUDIO_COMPAT = unchecked((int)0xC00D1BB1); - public const int E_INVALID_VBR_COMPAT = unchecked((int)0xC00D1BB2); - public const int E_NO_PROFILE_NAME = unchecked((int)0xC00D1BB3); - public const int E_INVALID_VBR_WITH_UNCOMP = unchecked((int)0xC00D1BB4); - public const int E_MULTIPLE_VBR_AUDIENCES = unchecked((int)0xC00D1BB5); - public const int E_UNCOMP_COMP_COMBINATION = unchecked((int)0xC00D1BB6); - public const int E_MULTIPLE_AUDIO_CODECS = unchecked((int)0xC00D1BB7); - public const int E_MULTIPLE_AUDIO_FORMATS = unchecked((int)0xC00D1BB8); - public const int E_AUDIO_BITRATE_STEPDOWN = unchecked((int)0xC00D1BB9); - public const int E_INVALID_AUDIO_PEAKRATE = unchecked((int)0xC00D1BBA); - public const int E_INVALID_AUDIO_PEAKRATE_2 = unchecked((int)0xC00D1BBB); - public const int E_INVALID_AUDIO_BUFFERMAX = unchecked((int)0xC00D1BBC); - public const int E_MULTIPLE_VIDEO_CODECS = unchecked((int)0xC00D1BBD); - public const int E_MULTIPLE_VIDEO_SIZES = unchecked((int)0xC00D1BBE); - public const int E_INVALID_VIDEO_BITRATE = unchecked((int)0xC00D1BBF); - public const int E_VIDEO_BITRATE_STEPDOWN = unchecked((int)0xC00D1BC0); - public const int E_INVALID_VIDEO_PEAKRATE = unchecked((int)0xC00D1BC1); - public const int E_INVALID_VIDEO_PEAKRATE_2 = unchecked((int)0xC00D1BC2); - public const int E_INVALID_VIDEO_WIDTH = unchecked((int)0xC00D1BC3); - public const int E_INVALID_VIDEO_HEIGHT = unchecked((int)0xC00D1BC4); - public const int E_INVALID_VIDEO_FPS = unchecked((int)0xC00D1BC5); - public const int E_INVALID_VIDEO_KEYFRAME = unchecked((int)0xC00D1BC6); - public const int E_INVALID_VIDEO_IQUALITY = unchecked((int)0xC00D1BC7); - public const int E_INVALID_VIDEO_CQUALITY = unchecked((int)0xC00D1BC8); - public const int E_INVALID_VIDEO_BUFFER = unchecked((int)0xC00D1BC9); - public const int E_INVALID_VIDEO_BUFFERMAX = unchecked((int)0xC00D1BCA); - public const int E_INVALID_VIDEO_BUFFERMAX_2 = unchecked((int)0xC00D1BCB); - public const int E_INVALID_VIDEO_WIDTH_ALIGN = unchecked((int)0xC00D1BCC); - public const int E_INVALID_VIDEO_HEIGHT_ALIGN = unchecked((int)0xC00D1BCD); - public const int E_MULTIPLE_SCRIPT_BITRATES = unchecked((int)0xC00D1BCE); - public const int E_INVALID_SCRIPT_BITRATE = unchecked((int)0xC00D1BCF); - public const int E_MULTIPLE_FILE_BITRATES = unchecked((int)0xC00D1BD0); - public const int E_INVALID_FILE_BITRATE = unchecked((int)0xC00D1BD1); - public const int E_SAME_AS_INPUT_COMBINATION = unchecked((int)0xC00D1BD2); - public const int E_SOURCE_CANNOT_LOOP = unchecked((int)0xC00D1BD3); - public const int E_INVALID_FOLDDOWN_COEFFICIENTS = unchecked((int)0xC00D1BD4); - public const int E_DRMPROFILE_NOTFOUND = unchecked((int)0xC00D1BD5); - public const int E_INVALID_TIMECODE = unchecked((int)0xC00D1BD6); - public const int E_NO_AUDIO_TIMECOMPRESSION = unchecked((int)0xC00D1BD7); - public const int E_NO_TWOPASS_TIMECOMPRESSION = unchecked((int)0xC00D1BD8); - public const int E_TIMECODE_REQUIRES_VIDEOSTREAM = unchecked((int)0xC00D1BD9); - public const int E_NO_MBR_WITH_TIMECODE = unchecked((int)0xC00D1BDA); - public const int E_INVALID_INTERLACEMODE = unchecked((int)0xC00D1BDB); - public const int E_INVALID_INTERLACE_COMPAT = unchecked((int)0xC00D1BDC); - public const int E_INVALID_NONSQUAREPIXEL_COMPAT = unchecked((int)0xC00D1BDD); - public const int E_INVALID_SOURCE_WITH_DEVICE_CONTROL = unchecked((int)0xC00D1BDE); - public const int E_CANNOT_GENERATE_BROADCAST_INFO_FOR_QUALITYVBR = unchecked((int)0xC00D1BDF); - public const int E_EXCEED_MAX_DRM_PROFILE_LIMIT = unchecked((int)0xC00D1BE0); - public const int E_DEVICECONTROL_UNSTABLE = unchecked((int)0xC00D1BE1); - public const int E_INVALID_PIXEL_ASPECT_RATIO = unchecked((int)0xC00D1BE2); - public const int E_AUDIENCE__LANGUAGE_CONTENTTYPE_MISMATCH = unchecked((int)0xC00D1BE3); - public const int E_INVALID_PROFILE_CONTENTTYPE = unchecked((int)0xC00D1BE4); - public const int E_TRANSFORM_PLUGIN_NOT_FOUND = unchecked((int)0xC00D1BE5); - public const int E_TRANSFORM_PLUGIN_INVALID = unchecked((int)0xC00D1BE6); - public const int E_EDL_REQUIRED_FOR_DEVICE_MULTIPASS = unchecked((int)0xC00D1BE7); - public const int E_INVALID_VIDEO_WIDTH_FOR_INTERLACED_ENCODING = unchecked((int)0xC00D1BE8); - public const int E_DRM_INVALID_APPLICATION = unchecked((int)0xC00D2711); - public const int E_DRM_LICENSE_STORE_ERROR = unchecked((int)0xC00D2712); - public const int E_DRM_SECURE_STORE_ERROR = unchecked((int)0xC00D2713); - public const int E_DRM_LICENSE_STORE_SAVE_ERROR = unchecked((int)0xC00D2714); - public const int E_DRM_SECURE_STORE_UNLOCK_ERROR = unchecked((int)0xC00D2715); - public const int E_DRM_INVALID_CONTENT = unchecked((int)0xC00D2716); - public const int E_DRM_UNABLE_TO_OPEN_LICENSE = unchecked((int)0xC00D2717); - public const int E_DRM_INVALID_LICENSE = unchecked((int)0xC00D2718); - public const int E_DRM_INVALID_MACHINE = unchecked((int)0xC00D2719); - public const int E_DRM_ENUM_LICENSE_FAILED = unchecked((int)0xC00D271B); - public const int E_DRM_INVALID_LICENSE_REQUEST = unchecked((int)0xC00D271C); - public const int E_DRM_UNABLE_TO_INITIALIZE = unchecked((int)0xC00D271D); - public const int E_DRM_UNABLE_TO_ACQUIRE_LICENSE = unchecked((int)0xC00D271E); - public const int E_DRM_INVALID_LICENSE_ACQUIRED = unchecked((int)0xC00D271F); - public const int E_DRM_NO_RIGHTS = unchecked((int)0xC00D2720); - public const int E_DRM_KEY_ERROR = unchecked((int)0xC00D2721); - public const int E_DRM_ENCRYPT_ERROR = unchecked((int)0xC00D2722); - public const int E_DRM_DECRYPT_ERROR = unchecked((int)0xC00D2723); - public const int E_DRM_LICENSE_INVALID_XML = unchecked((int)0xC00D2725); - public const int S_DRM_LICENSE_ACQUIRED = unchecked((int)0x000D2726); - public const int S_DRM_INDIVIDUALIZED = unchecked((int)0x000D2727); - public const int E_DRM_NEEDS_INDIVIDUALIZATION = unchecked((int)0xC00D2728); - public const int E_DRM_ALREADY_INDIVIDUALIZED = unchecked((int)0xC00D2729); - public const int E_DRM_ACTION_NOT_QUERIED = unchecked((int)0xC00D272A); - public const int E_DRM_ACQUIRING_LICENSE = unchecked((int)0xC00D272B); - public const int E_DRM_INDIVIDUALIZING = unchecked((int)0xC00D272C); - public const int E_DRM_PARAMETERS_MISMATCHED = unchecked((int)0xC00D272F); - public const int E_DRM_UNABLE_TO_CREATE_LICENSE_OBJECT = unchecked((int)0xC00D2730); - public const int E_DRM_UNABLE_TO_CREATE_INDI_OBJECT = unchecked((int)0xC00D2731); - public const int E_DRM_UNABLE_TO_CREATE_ENCRYPT_OBJECT = unchecked((int)0xC00D2732); - public const int E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT = unchecked((int)0xC00D2733); - public const int E_DRM_UNABLE_TO_CREATE_PROPERTIES_OBJECT = unchecked((int)0xC00D2734); - public const int E_DRM_UNABLE_TO_CREATE_BACKUP_OBJECT = unchecked((int)0xC00D2735); - public const int E_DRM_INDIVIDUALIZE_ERROR = unchecked((int)0xC00D2736); - public const int E_DRM_LICENSE_OPEN_ERROR = unchecked((int)0xC00D2737); - public const int E_DRM_LICENSE_CLOSE_ERROR = unchecked((int)0xC00D2738); - public const int E_DRM_GET_LICENSE_ERROR = unchecked((int)0xC00D2739); - public const int E_DRM_QUERY_ERROR = unchecked((int)0xC00D273A); - public const int E_DRM_REPORT_ERROR = unchecked((int)0xC00D273B); - public const int E_DRM_GET_LICENSESTRING_ERROR = unchecked((int)0xC00D273C); - public const int E_DRM_GET_CONTENTSTRING_ERROR = unchecked((int)0xC00D273D); - public const int E_DRM_MONITOR_ERROR = unchecked((int)0xC00D273E); - public const int E_DRM_UNABLE_TO_SET_PARAMETER = unchecked((int)0xC00D273F); - public const int E_DRM_INVALID_APPDATA = unchecked((int)0xC00D2740); - public const int E_DRM_INVALID_APPDATA_VERSION = unchecked((int)0xC00D2741); - public const int E_DRM_BACKUP_EXISTS = unchecked((int)0xC00D2742); - public const int E_DRM_BACKUP_CORRUPT = unchecked((int)0xC00D2743); - public const int E_DRM_BACKUPRESTORE_BUSY = unchecked((int)0xC00D2744); - public const int S_DRM_MONITOR_CANCELLED = unchecked((int)0x000D2746); - public const int S_DRM_ACQUIRE_CANCELLED = unchecked((int)0x000D2747); - public const int E_DRM_LICENSE_UNUSABLE = unchecked((int)0xC00D2748); - public const int E_DRM_INVALID_PROPERTY = unchecked((int)0xC00D2749); - public const int E_DRM_SECURE_STORE_NOT_FOUND = unchecked((int)0xC00D274A); - public const int E_DRM_CACHED_CONTENT_ERROR = unchecked((int)0xC00D274B); - public const int E_DRM_INDIVIDUALIZATION_INCOMPLETE = unchecked((int)0xC00D274C); - public const int E_DRM_DRIVER_AUTH_FAILURE = unchecked((int)0xC00D274D); - public const int E_DRM_NEED_UPGRADE_MSSAP = unchecked((int)0xC00D274E); - public const int E_DRM_REOPEN_CONTENT = unchecked((int)0xC00D274F); - public const int E_DRM_DRIVER_DIGIOUT_FAILURE = unchecked((int)0xC00D2750); - public const int E_DRM_INVALID_SECURESTORE_PASSWORD = unchecked((int)0xC00D2751); - public const int E_DRM_APPCERT_REVOKED = unchecked((int)0xC00D2752); - public const int E_DRM_RESTORE_FRAUD = unchecked((int)0xC00D2753); - public const int E_DRM_HARDWARE_INCONSISTENT = unchecked((int)0xC00D2754); - public const int E_DRM_SDMI_TRIGGER = unchecked((int)0xC00D2755); - public const int E_DRM_SDMI_NOMORECOPIES = unchecked((int)0xC00D2756); - public const int E_DRM_UNABLE_TO_CREATE_HEADER_OBJECT = unchecked((int)0xC00D2757); - public const int E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT = unchecked((int)0xC00D2758); - public const int E_DRM_LICENSE_NOTACQUIRED = unchecked((int)0xC00D2759); - public const int E_DRM_UNABLE_TO_CREATE_CODING_OBJECT = unchecked((int)0xC00D275A); - public const int E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT = unchecked((int)0xC00D275B); - public const int E_DRM_BUFFER_TOO_SMALL = unchecked((int)0xC00D275C); - public const int E_DRM_UNSUPPORTED_PROPERTY = unchecked((int)0xC00D275D); - public const int E_DRM_ERROR_BAD_NET_RESP = unchecked((int)0xC00D275E); - public const int E_DRM_STORE_NOTALLSTORED = unchecked((int)0xC00D275F); - public const int E_DRM_SECURITY_COMPONENT_SIGNATURE_INVALID = unchecked((int)0xC00D2760); - public const int E_DRM_INVALID_DATA = unchecked((int)0xC00D2761); - public const int E_DRM_UNABLE_TO_CONTACT_SERVER = unchecked((int)0xC00D2762); - public const int E_DRM_UNABLE_TO_CREATE_AUTHENTICATION_OBJECT = unchecked((int)0xC00D2763); - public const int E_DRM_NOT_CONFIGURED = unchecked((int)0xC00D2764); - public const int E_DRM_DEVICE_ACTIVATION_CANCELED = unchecked((int)0xC00D2765); - public const int E_DRM_LICENSE_EXPIRED = unchecked((int)0xC00D27D8); - public const int E_DRM_LICENSE_NOTENABLED = unchecked((int)0xC00D27D9); - public const int E_DRM_LICENSE_APPSECLOW = unchecked((int)0xC00D27DA); - public const int E_DRM_STORE_NEEDINDI = unchecked((int)0xC00D27DB); - public const int E_DRM_STORE_NOTALLOWED = unchecked((int)0xC00D27DC); - public const int E_DRM_LICENSE_APP_NOTALLOWED = unchecked((int)0xC00D27DD); - public const int S_DRM_NEEDS_INDIVIDUALIZATION = unchecked((int)0x000D27DE); - public const int E_DRM_LICENSE_CERT_EXPIRED = unchecked((int)0xC00D27DF); - public const int E_DRM_LICENSE_SECLOW = unchecked((int)0xC00D27E0); - public const int E_DRM_LICENSE_CONTENT_REVOKED = unchecked((int)0xC00D27E1); - public const int E_DRM_LICENSE_NOSAP = unchecked((int)0xC00D280A); - public const int E_DRM_LICENSE_NOSVP = unchecked((int)0xC00D280B); - public const int E_DRM_LICENSE_NOWDM = unchecked((int)0xC00D280C); - public const int E_DRM_LICENSE_NOTRUSTEDCODEC = unchecked((int)0xC00D280D); - public const int E_DRM_NEEDS_UPGRADE_TEMPFILE = unchecked((int)0xC00D283D); - public const int E_DRM_NEED_UPGRADE_PD = unchecked((int)0xC00D283E); - public const int E_DRM_SIGNATURE_FAILURE = unchecked((int)0xC00D283F); - public const int E_DRM_LICENSE_SERVER_INFO_MISSING = unchecked((int)0xC00D2840); - public const int E_DRM_BUSY = unchecked((int)0xC00D2841); - public const int E_DRM_PD_TOO_MANY_DEVICES = unchecked((int)0xC00D2842); - public const int E_DRM_INDIV_FRAUD = unchecked((int)0xC00D2843); - public const int E_DRM_INDIV_NO_CABS = unchecked((int)0xC00D2844); - public const int E_DRM_INDIV_SERVICE_UNAVAILABLE = unchecked((int)0xC00D2845); - public const int E_DRM_RESTORE_SERVICE_UNAVAILABLE = unchecked((int)0xC00D2846); - public const int S_REBOOT_RECOMMENDED = unchecked((int)0x000D2AF8); - public const int S_REBOOT_REQUIRED = unchecked((int)0x000D2AF9); - public const int E_REBOOT_RECOMMENDED = unchecked((int)0xC00D2AFA); - public const int E_REBOOT_REQUIRED = unchecked((int)0xC00D2AFB); - public const int E_UNKNOWN_PROTOCOL = unchecked((int)0xC00D2EE0); - public const int E_REDIRECT_TO_PROXY = unchecked((int)0xC00D2EE1); - public const int E_INTERNAL_SERVER_ERROR = unchecked((int)0xC00D2EE2); - public const int E_BAD_REQUEST = unchecked((int)0xC00D2EE3); - public const int E_ERROR_FROM_PROXY = unchecked((int)0xC00D2EE4); - public const int E_PROXY_TIMEOUT = unchecked((int)0xC00D2EE5); - public const int E_SERVER_UNAVAILABLE = unchecked((int)0xC00D2EE6); - public const int E_REFUSED_BY_SERVER = unchecked((int)0xC00D2EE7); - public const int E_INCOMPATIBLE_SERVER = unchecked((int)0xC00D2EE8); - public const int E_MULTICAST_DISABLED = unchecked((int)0xC00D2EE9); - public const int E_INVALID_REDIRECT = unchecked((int)0xC00D2EEA); - public const int E_ALL_PROTOCOLS_DISABLED = unchecked((int)0xC00D2EEB); - public const int E_MSBD_NO_LONGER_SUPPORTED = unchecked((int)0xC00D2EEC); - public const int E_PROXY_NOT_FOUND = unchecked((int)0xC00D2EED); - public const int E_CANNOT_CONNECT_TO_PROXY = unchecked((int)0xC00D2EEE); - public const int E_SERVER_DNS_TIMEOUT = unchecked((int)0xC00D2EEF); - public const int E_PROXY_DNS_TIMEOUT = unchecked((int)0xC00D2EF0); - public const int E_CLOSED_ON_SUSPEND = unchecked((int)0xC00D2EF1); - public const int E_CANNOT_READ_PLAYLIST_FROM_MEDIASERVER = unchecked((int)0xC00D2EF2); - public const int E_SESSION_NOT_FOUND = unchecked((int)0xC00D2EF3); - public const int E_REQUIRE_STREAMING_CLIENT = unchecked((int)0xC00D2EF4); - public const int E_PLAYLIST_ENTRY_HAS_CHANGED = unchecked((int)0xC00D2EF5); - public const int E_PROXY_ACCESSDENIED = unchecked((int)0xC00D2EF6); - public const int E_PROXY_SOURCE_ACCESSDENIED = unchecked((int)0xC00D2EF7); - public const int E_NETWORK_SINK_WRITE = unchecked((int)0xC00D2EF8); - public const int E_FIREWALL = unchecked((int)0xC00D2EF9); - public const int E_MMS_NOT_SUPPORTED = unchecked((int)0xC00D2EFA); - public const int E_SERVER_ACCESSDENIED = unchecked((int)0xC00D2EFB); - public const int E_RESOURCE_GONE = unchecked((int)0xC00D2EFC); - public const int E_NO_EXISTING_PACKETIZER = unchecked((int)0xC00D2EFD); - public const int E_BAD_SYNTAX_IN_SERVER_RESPONSE = unchecked((int)0xC00D2EFE); - public const int I_RECONNECTED = unchecked((int)0x400D2EFF); - public const int E_RESET_SOCKET_CONNECTION = unchecked((int)0xC00D2F00); - public const int I_NOLOG_STOP = unchecked((int)0x400D2F01); - public const int E_TOO_MANY_HOPS = unchecked((int)0xC00D2F02); - public const int I_EXISTING_PACKETIZER = unchecked((int)0x400D2F03); - public const int I_MANUAL_PROXY = unchecked((int)0x400D2F04); - public const int E_TOO_MUCH_DATA_FROM_SERVER = unchecked((int)0xC00D2F05); - public const int E_CONNECT_TIMEOUT = unchecked((int)0xC00D2F06); - public const int E_PROXY_CONNECT_TIMEOUT = unchecked((int)0xC00D2F07); - public const int E_SESSION_INVALID = unchecked((int)0xC00D2F08); - public const int S_EOSRECEDING = unchecked((int)0x000D2F09); - public const int E_PACKETSINK_UNKNOWN_FEC_STREAM = unchecked((int)0xC00D2F0A); - public const int E_PUSH_CANNOTCONNECT = unchecked((int)0xC00D2F0B); - public const int E_INCOMPATIBLE_PUSH_SERVER = unchecked((int)0xC00D2F0C); - public const int S_CHANGENOTICE = unchecked((int)0x000D2F0D); - public const int E_END_OF_PLAYLIST = unchecked((int)0xC00D32C8); - public const int E_USE_FILE_SOURCE = unchecked((int)0xC00D32C9); - public const int E_PROPERTY_NOT_FOUND = unchecked((int)0xC00D32CA); - public const int E_PROPERTY_READ_ONLY = unchecked((int)0xC00D32CC); - public const int E_TABLE_KEY_NOT_FOUND = unchecked((int)0xC00D32CD); - public const int E_INVALID_QUERY_OPERATOR = unchecked((int)0xC00D32CF); - public const int E_INVALID_QUERY_PROPERTY = unchecked((int)0xC00D32D0); - public const int E_PROPERTY_NOT_SUPPORTED = unchecked((int)0xC00D32D2); - public const int E_SCHEMA_CLASSIFY_FAILURE = unchecked((int)0xC00D32D4); - public const int E_METADATA_FORMAT_NOT_SUPPORTED = unchecked((int)0xC00D32D5); - public const int E_METADATA_NO_EDITING_CAPABILITY = unchecked((int)0xC00D32D6); - public const int E_METADATA_CANNOT_SET_LOCALE = unchecked((int)0xC00D32D7); - public const int E_METADATA_LANGUAGE_NOT_SUPORTED = unchecked((int)0xC00D32D8); - public const int E_METADATA_NO_RFC1766_NAME_FOR_LOCALE = unchecked((int)0xC00D32D9); - public const int E_METADATA_NOT_AVAILABLE = unchecked((int)0xC00D32DA); - public const int E_METADATA_CACHE_DATA_NOT_AVAILABLE = unchecked((int)0xC00D32DB); - public const int E_METADATA_INVALID_DOCUMENT_TYPE = unchecked((int)0xC00D32DC); - public const int E_METADATA_IDENTIFIER_NOT_AVAILABLE = unchecked((int)0xC00D32DD); - public const int E_METADATA_CANNOT_RETRIEVE_FROM_OFFLINE_CACHE = unchecked((int)0xC00D32DE); - - public const int I_NO_EVENTS = unchecked((int)0x400D0069); - public const int E_REGKEY_NOT_FOUND = unchecked((int)0xC00D006A); - } - - static public class WMError - { - #region Private methods - - /// - /// From #defines in WinBase.h - /// - [Flags] - private enum LoadLibraryExFlags - { - DontResolveDllReferences = 0x00000001, - LoadLibraryAsDataFile = 0x00000002, - LoadWithAlteredSearchPath = 0x00000008, - LoadIgnoreCodeAuthzLevel = 0x00000010 - } - - /// - /// From FORMAT_MESSAGE_* defines in WinBase.h - /// - [Flags] - private enum FormatMessageFlags - { - AllocateBuffer = 0x00000100, - IgnoreInserts = 0x00000200, - FromString = 0x00000400, - FromHmodule = 0x00000800, - FromSystem = 0x00001000, - ArgumentArray = 0x00002000, - MaxWidthMask = 0x000000FF - } - - [DllImport("kernel32.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "FormatMessageW"), SuppressUnmanagedCodeSecurity] - private static extern int FormatMessage(FormatMessageFlags dwFlags, IntPtr lpSource, - int dwMessageId, int dwLanguageId, ref IntPtr lpBuffer, int nSize, IntPtr Arguments); - - [DllImport("kernel32.dll", ExactSpelling = true, CharSet = CharSet.Unicode, EntryPoint = "LoadLibraryExW"), SuppressUnmanagedCodeSecurity] - private static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, LoadLibraryExFlags dwFlags); - - [DllImport("kernel32.dll"), SuppressUnmanagedCodeSecurity] - [return: MarshalAs(UnmanagedType.Bool)] - private static extern bool FreeLibrary(IntPtr hFile); - - [DllImport("kernel32.dll", SetLastError = true), SuppressUnmanagedCodeSecurity] - private static extern IntPtr LocalFree(IntPtr hMem); - - #endregion - - public static string GetErrorText(int hr) - { - string sRet = null; - IntPtr hModule; - FormatMessageFlags dwFormatFlags = FormatMessageFlags.AllocateBuffer | FormatMessageFlags.IgnoreInserts | FormatMessageFlags.FromSystem; - int dwBufferLength; - IntPtr ip = IntPtr.Zero; - - // Load the Windows Media error message dll - hModule = LoadLibraryEx("wmerror.dll", IntPtr.Zero, LoadLibraryExFlags.LoadLibraryAsDataFile); - if (hModule != IntPtr.Zero) - { - // If the load succeeds, make sure we look in it - dwFormatFlags |= FormatMessageFlags.FromHmodule; - } - - // Scan both the Windows Media library, and the system library looking for the message - dwBufferLength = FormatMessage( - dwFormatFlags, - hModule, // module to get message from (NULL == system) - hr, // error number to get message for - 0, // default language - ref ip, - 0, - IntPtr.Zero - ); - - try - { - // Convert the returned buffer to a string. If ip is null (due to not finding - // the message), no exception is thrown. sRet just stays null. The - // try/finally is for the (remote) possibility that we run out of memory - // creating the string. - sRet = Marshal.PtrToStringUni(ip); - } - finally - { - // Cleanup - FreeLibrary(hModule); - LocalFree(ip); - } - - return sRet; - } - - /// - /// If hr has a "failed" status code (E_*), throw an exception. Note that status - /// messages (S_*) are not considered failure codes. If Windows Media error text - /// is available, it is used to build the exception, otherwise a generic com error - /// is thrown. - /// - /// The HRESULT to check - public static void ThrowExceptionForHR(int hr) - { - // If an error has occurred - if (hr < 0) - { - // If a string is returned, build a com error from it - string buf = GetErrorText(hr); - if (buf != null) - { - throw new COMException(buf, hr); - } - else - { - // No string, just use standard com error - Marshal.ThrowExceptionForHR(hr); - } - } - } - - } - - [AttributeUsage(AttributeTargets.Enum | AttributeTargets.Struct | AttributeTargets.Class)] - internal class UnmanagedNameAttribute : Attribute - { - private string m_Name; - - public UnmanagedNameAttribute(string s) - { - m_Name = s; - } - - public override string ToString() - { - return m_Name; - } - } - - static public class Constants - { - //////////////////////////////////////////////////////////////// - // - // These are the special case attributes that give information - // about the Windows Media file. - // - public const int g_dwWMSpecialAttributes = 20; - public const string g_wszWMDuration = "Duration"; - public const string g_wszWMBitrate = "Bitrate"; - public const string g_wszWMSeekable = "Seekable"; - public const string g_wszWMStridable = "Stridable"; - public const string g_wszWMBroadcast = "Broadcast"; - public const string g_wszWMProtected = "Is_Protected"; - public const string g_wszWMTrusted = "Is_Trusted"; - public const string g_wszWMSignature_Name = "Signature_Name"; - public const string g_wszWMHasAudio = "HasAudio"; - public const string g_wszWMHasImage = "HasImage"; - public const string g_wszWMHasScript = "HasScript"; - public const string g_wszWMHasVideo = "HasVideo"; - public const string g_wszWMCurrentBitrate = "CurrentBitrate"; - public const string g_wszWMOptimalBitrate = "OptimalBitrate"; - public const string g_wszWMHasAttachedImages = "HasAttachedImages"; - public const string g_wszWMSkipBackward = "Can_Skip_Backward"; - public const string g_wszWMSkipForward = "Can_Skip_Forward"; - public const string g_wszWMNumberOfFrames = "NumberOfFrames"; - public const string g_wszWMFileSize = "FileSize"; - public const string g_wszWMHasArbitraryDataStream = "HasArbitraryDataStream"; - public const string g_wszWMHasFileTransferStream = "HasFileTransferStream"; - public const string g_wszWMContainerFormat = "WM/ContainerFormat"; - - //////////////////////////////////////////////////////////////// - // - // The content description object supports 5 basic attributes. - // - public const int g_dwWMContentAttributes = 5; - public const string g_wszWMTitle = "Title"; - public const string g_wszWMAuthor = "Author"; - public const string g_wszWMDescription = "Description"; - public const string g_wszWMRating = "Rating"; - public const string g_wszWMCopyright = "Copyright"; - - //////////////////////////////////////////////////////////////// - // - // These attributes are used to configure and query DRM settings in the reader and writer. - // - public const string g_wszWMUse_DRM = "Use_DRM"; - public const string g_wszWMDRM_Flags = "DRM_Flags"; - public const string g_wszWMDRM_Level = "DRM_Level"; - public const string g_wszWMUse_Advanced_DRM = "Use_Advanced_DRM"; - public const string g_wszWMDRM_KeySeed = "DRM_KeySeed"; - public const string g_wszWMDRM_KeyID = "DRM_KeyID"; - public const string g_wszWMDRM_ContentID = "DRM_ContentID"; - public const string g_wszWMDRM_SourceID = "DRM_SourceID"; - public const string g_wszWMDRM_IndividualizedVersion = "DRM_IndividualizedVersion"; - public const string g_wszWMDRM_LicenseAcqURL = "DRM_LicenseAcqURL"; - public const string g_wszWMDRM_V1LicenseAcqURL = "DRM_V1LicenseAcqURL"; - public const string g_wszWMDRM_HeaderSignPrivKey = "DRM_HeaderSignPrivKey"; - public const string g_wszWMDRM_LASignaturePrivKey = "DRM_LASignaturePrivKey"; - public const string g_wszWMDRM_LASignatureCert = "DRM_LASignatureCert"; - public const string g_wszWMDRM_LASignatureLicSrvCert = "DRM_LASignatureLicSrvCert"; - public const string g_wszWMDRM_LASignatureRootCert = "DRM_LASignatureRootCert"; - - //////////////////////////////////////////////////////////////// - // - // These are the additional attributes defined in the WM attribute - // namespace that give information about the content. - // - public const string g_wszWMAlbumTitle = "WM/AlbumTitle"; - public const string g_wszWMTrack = "WM/Track"; - public const string g_wszWMPromotionURL = "WM/PromotionURL"; - public const string g_wszWMAlbumCoverURL = "WM/AlbumCoverURL"; - public const string g_wszWMGenre = "WM/Genre"; - public const string g_wszWMYear = "WM/Year"; - public const string g_wszWMGenreID = "WM/GenreID"; - public const string g_wszWMMCDI = "WM/MCDI"; - public const string g_wszWMComposer = "WM/Composer"; - public const string g_wszWMLyrics = "WM/Lyrics"; - public const string g_wszWMTrackNumber = "WM/TrackNumber"; - public const string g_wszWMToolName = "WM/ToolName"; - public const string g_wszWMToolVersion = "WM/ToolVersion"; - public const string g_wszWMIsVBR = "IsVBR"; - public const string g_wszWMAlbumArtist = "WM/AlbumArtist"; - - //////////////////////////////////////////////////////////////// - // - // These optional attributes may be used to give information - // about the branding of the content. - // - public const string g_wszWMBannerImageType = "BannerImageType"; - public const string g_wszWMBannerImageData = "BannerImageData"; - public const string g_wszWMBannerImageURL = "BannerImageURL"; - public const string g_wszWMCopyrightURL = "CopyrightURL"; - //////////////////////////////////////////////////////////////// - // - // Optional attributes, used to give information - // about video stream properties. - // - public const string g_wszWMAspectRatioX = "AspectRatioX"; - public const string g_wszWMAspectRatioY = "AspectRatioY"; - //////////////////////////////////////////////////////////////// - // - // Optional attributes, used to give information - // about the overall streaming properties of VBR files. - // This attribute takes the format: - // WORD wReserved (must be 0) - // WM_LEAKY_BUCKET_PAIR pair1 - // WM_LEAKY_BUCKET_PAIR pair2 - // ... - // - public const string g_wszASFLeakyBucketPairs = "ASFLeakyBucketPairs"; - //////////////////////////////////////////////////////////////// - // - // The NSC file supports the following attributes. - // - public const int g_dwWMNSCAttributes = 5; - public const string g_wszWMNSCName = "NSC_Name"; - public const string g_wszWMNSCAddress = "NSC_Address"; - public const string g_wszWMNSCPhone = "NSC_Phone"; - public const string g_wszWMNSCEmail = "NSC_Email"; - public const string g_wszWMNSCDescription = "NSC_Description"; - - //////////////////////////////////////////////////////////////// - // - // Attributes introduced in V9 - // - public const string g_wszWMWriter = "WM/Writer"; - public const string g_wszWMConductor = "WM/Conductor"; - public const string g_wszWMProducer = "WM/Producer"; - public const string g_wszWMDirector = "WM/Director"; - public const string g_wszWMContentGroupDescription = "WM/ContentGroupDescription"; - public const string g_wszWMSubTitle = "WM/SubTitle"; - public const string g_wszWMPartOfSet = "WM/PartOfSet"; - public const string g_wszWMProtectionType = "WM/ProtectionType"; - public const string g_wszWMVideoHeight = "WM/VideoHeight"; - public const string g_wszWMVideoWidth = "WM/VideoWidth"; - public const string g_wszWMVideoFrameRate = "WM/VideoFrameRate"; - public const string g_wszWMMediaClassPrimaryID = "WM/MediaClassPrimaryID"; - public const string g_wszWMMediaClassSecondaryID = "WM/MediaClassSecondaryID"; - public const string g_wszWMPeriod = "WM/Period"; - public const string g_wszWMCategory = "WM/Category"; - public const string g_wszWMPicture = "WM/Picture"; - public const string g_wszWMLyrics_Synchronised = "WM/Lyrics_Synchronised"; - public const string g_wszWMOriginalLyricist = "WM/OriginalLyricist"; - public const string g_wszWMOriginalArtist = "WM/OriginalArtist"; - public const string g_wszWMOriginalAlbumTitle = "WM/OriginalAlbumTitle"; - public const string g_wszWMOriginalReleaseYear = "WM/OriginalReleaseYear"; - public const string g_wszWMOriginalFilename = "WM/OriginalFilename"; - public const string g_wszWMPublisher = "WM/Publisher"; - public const string g_wszWMEncodedBy = "WM/EncodedBy"; - public const string g_wszWMEncodingSettings = "WM/EncodingSettings"; - public const string g_wszWMEncodingTime = "WM/EncodingTime"; - public const string g_wszWMAuthorURL = "WM/AuthorURL"; - public const string g_wszWMUserWebURL = "WM/UserWebURL"; - public const string g_wszWMAudioFileURL = "WM/AudioFileURL"; - public const string g_wszWMAudioSourceURL = "WM/AudioSourceURL"; - public const string g_wszWMLanguage = "WM/Language"; - public const string g_wszWMParentalRating = "WM/ParentalRating"; - public const string g_wszWMBeatsPerMinute = "WM/BeatsPerMinute"; - public const string g_wszWMInitialKey = "WM/InitialKey"; - public const string g_wszWMMood = "WM/Mood"; - public const string g_wszWMText = "WM/Text"; - public const string g_wszWMDVDID = "WM/DVDID"; - public const string g_wszWMWMContentID = "WM/WMContentID"; - public const string g_wszWMWMCollectionID = "WM/WMCollectionID"; - public const string g_wszWMWMCollectionGroupID = "WM/WMCollectionGroupID"; - public const string g_wszWMUniqueFileIdentifier = "WM/UniqueFileIdentifier"; - public const string g_wszWMModifiedBy = "WM/ModifiedBy"; - public const string g_wszWMRadioStationName = "WM/RadioStationName"; - public const string g_wszWMRadioStationOwner = "WM/RadioStationOwner"; - public const string g_wszWMPlaylistDelay = "WM/PlaylistDelay"; - public const string g_wszWMCodec = "WM/Codec"; - public const string g_wszWMDRM = "WM/DRM"; - public const string g_wszWMISRC = "WM/ISRC"; - public const string g_wszWMProvider = "WM/Provider"; - public const string g_wszWMProviderRating = "WM/ProviderRating"; - public const string g_wszWMProviderStyle = "WM/ProviderStyle"; - public const string g_wszWMContentDistributor = "WM/ContentDistributor"; - public const string g_wszWMSubscriptionContentID = "WM/SubscriptionContentID"; - public const string g_wszWMWMADRCPeakReference = "WM/WMADRCPeakReference"; - public const string g_wszWMWMADRCPeakTarget = "WM/WMADRCPeakTarget"; - public const string g_wszWMWMADRCAverageReference = "WM/WMADRCAverageReference"; - public const string g_wszWMWMADRCAverageTarget = "WM/WMADRCAverageTarget"; - //////////////////////////////////////////////////////////////// - // - // Attributes introduced in V10 - // - public const string g_wszWMStreamTypeInfo = "WM/StreamTypeInfo"; - public const string g_wszWMPeakBitrate = "WM/PeakBitrate"; - public const string g_wszWMASFPacketCount = "WM/ASFPacketCount"; - public const string g_wszWMASFSecurityObjectsSize = "WM/ASFSecurityObjectsSize"; - public const string g_wszWMSharedUserRating = "WM/SharedUserRating"; - public const string g_wszWMSubTitleDescription = "WM/SubTitleDescription"; - public const string g_wszWMMediaCredits = "WM/MediaCredits"; - public const string g_wszWMParentalRatingReason = "WM/ParentalRatingReason"; - public const string g_wszWMOriginalReleaseTime = "WM/OriginalReleaseTime"; - public const string g_wszWMMediaStationCallSign = "WM/MediaStationCallSign"; - public const string g_wszWMMediaStationName = "WM/MediaStationName"; - public const string g_wszWMMediaNetworkAffiliation = "WM/MediaNetworkAffiliation"; - public const string g_wszWMMediaOriginalChannel = "WM/MediaOriginalChannel"; - public const string g_wszWMMediaOriginalBroadcastDateTime = "WM/MediaOriginalBroadcastDateTime"; - public const string g_wszWMMediaIsStereo = "WM/MediaIsStereo"; - public const string g_wszWMVideoClosedCaptioning = "WM/VideoClosedCaptioning"; - public const string g_wszWMMediaIsRepeat = "WM/MediaIsRepeat"; - public const string g_wszWMMediaIsLive = "WM/MediaIsLive"; - public const string g_wszWMMediaIsTape = "WM/MediaIsTape"; - public const string g_wszWMMediaIsDelay = "WM/MediaIsDelay"; - public const string g_wszWMMediaIsSubtitled = "WM/MediaIsSubtitled"; - public const string g_wszWMMediaIsPremiere = "WM/MediaIsPremiere"; - public const string g_wszWMMediaIsFinale = "WM/MediaIsFinale"; - public const string g_wszWMMediaIsSAP = "WM/MediaIsSAP"; - public const string g_wszWMProviderCopyright = "WM/ProviderCopyright"; - //////////////////////////////////////////////////////////////// - // - // Attributes introduced in V11 - // - public const string g_wszWMISAN = "WM/ISAN"; - public const string g_wszWMADID = "WM/ADID"; - public const string g_wszWMWMShadowFileSourceFileType = "WM/WMShadowFileSourceFileType"; - public const string g_wszWMWMShadowFileSourceDRMType = "WM/WMShadowFileSourceDRMType"; - public const string g_wszWMWMCPDistributor = "WM/WMCPDistributor"; - public const string g_wszWMWMCPDistributorID = "WM/WMCPDistributorID"; - //////////////////////////////////////////////////////////////// - // - // These are setting names for use in Get/SetOutputSetting - // - public const string g_wszEarlyDataDelivery = "EarlyDataDelivery"; - public const string g_wszJustInTimeDecode = "JustInTimeDecode"; - public const string g_wszSingleOutputBuffer = "SingleOutputBuffer"; - public const string g_wszSoftwareScaling = "SoftwareScaling"; - public const string g_wszDeliverOnReceive = "DeliverOnReceive"; - public const string g_wszScrambledAudio = "ScrambledAudio"; - public const string g_wszDedicatedDeliveryThread = "DedicatedDeliveryThread"; - public const string g_wszEnableDiscreteOutput = "EnableDiscreteOutput"; - public const string g_wszSpeakerConfig = "SpeakerConfig"; - public const string g_wszDynamicRangeControl = "DynamicRangeControl"; - public const string g_wszAllowInterlacedOutput = "AllowInterlacedOutput"; - public const string g_wszVideoSampleDurations = "VideoSampleDurations"; - public const string g_wszStreamLanguage = "StreamLanguage"; - public const string g_wszEnableWMAProSPDIFOutput = "EnableWMAProSPDIFOutput"; - - //////////////////////////////////////////////////////////////// - // - // These are setting names for use in Get/SetInputSetting - // - public const string g_wszDeinterlaceMode = "DeinterlaceMode"; - public const string g_wszInitialPatternForInverseTelecine = "InitialPatternForInverseTelecine"; - public const string g_wszJPEGCompressionQuality = "JPEGCompressionQuality"; - public const string g_wszWatermarkCLSID = "WatermarkCLSID"; - public const string g_wszWatermarkConfig = "WatermarkConfig"; - public const string g_wszInterlacedCoding = "InterlacedCoding"; - public const string g_wszFixedFrameRate = "FixedFrameRate"; - - //////////////////////////////////////////////////////////////// - // - // All known IWMPropertyVault property names - // - // g_wszOriginalSourceFormatTag is obsolete and has been superceded by g_wszOriginalWaveFormat - public const string g_wszOriginalSourceFormatTag = "_SOURCEFORMATTAG"; - public const string g_wszOriginalWaveFormat = "_ORIGINALWAVEFORMAT"; - public const string g_wszEDL = "_EDL"; - public const string g_wszComplexity = "_COMPLEXITYEX"; - public const string g_wszDecoderComplexityRequested = "_DECODERCOMPLEXITYPROFILE"; - - //////////////////////////////////////////////////////////////// - // - // All known IWMIStreamProps property names - // - public const string g_wszReloadIndexOnSeek = "ReloadIndexOnSeek"; - public const string g_wszStreamNumIndexObjects = "StreamNumIndexObjects"; - public const string g_wszFailSeekOnError = "FailSeekOnError"; - public const string g_wszPermitSeeksBeyondEndOfStream = "PermitSeeksBeyondEndOfStream"; - public const string g_wszUsePacketAtSeekPoint = "UsePacketAtSeekPoint"; - public const string g_wszSourceBufferTime = "SourceBufferTime"; - public const string g_wszSourceMaxBytesAtOnce = "SourceMaxBytesAtOnce"; - - //////////////////////////////////////////////////////////////// - // - // VBR encoding settings - // - public const string g_wszVBREnabled = "_VBRENABLED"; - public const string g_wszVBRQuality = "_VBRQUALITY"; - public const string g_wszVBRBitrateMax = "_RMAX"; - public const string g_wszVBRBufferWindowMax = "_BMAX"; - - //////////////////////////////////////////////////////////////// - // - // VBR Video settings - // - public const string g_wszVBRPeak = "VBR Peak"; - public const string g_wszBufferAverage = "Buffer Average"; - - //////////////////////////////////////////////////////////////// - // - // Codec encoding complexity settings - // - // g_wszComplexity should be used to set desired encoding complexity on the - // stream's IWMPropertyVault (see above for definition) - // The below settings can be queried from IWMCodecInfo3::GetCodecProp() - // - public const string g_wszComplexityMax = "_COMPLEXITYEXMAX"; - public const string g_wszComplexityOffline = "_COMPLEXITYEXOFFLINE"; - public const string g_wszComplexityLive = "_COMPLEXITYEXLIVE"; - public const string g_wszIsVBRSupported = "_ISVBRSUPPORTED"; - //////////////////////////////////////////////////////////////// - // - // Codec enumeration settings - // - // g_wszVBREnabled can be used as a codec enumeration setting (see above for definition) - public const string g_wszNumPasses = "_PASSESUSED"; - - //////////////////////////////////////////////////////////////// - // - // These are WMA Voice V9 attribute names and values - // - public const string g_wszMusicSpeechClassMode = "MusicSpeechClassMode"; - public const string g_wszMusicClassMode = "MusicClassMode"; - public const string g_wszSpeechClassMode = "SpeechClassMode"; - public const string g_wszMixedClassMode = "MixedClassMode"; - - //////////////////////////////////////////////////////////////// - // - // The WMA Voice V9 supports the following format property. - // - public const string g_wszSpeechCaps = "SpeechFormatCap"; - - //////////////////////////////////////////////////////////////// - // - // Multi-channel WMA properties - // - public const string g_wszPeakValue = "PeakValue"; - public const string g_wszAverageLevel = "AverageLevel"; - public const string g_wszFold6To2Channels3 = "Fold6To2Channels3"; - public const string g_wszFoldToChannelsTemplate = "Fold%luTo%luChannels%lu"; - - //////////////////////////////////////////////////////////////// - // - // Complexity profile description strings - // - public const string g_wszDeviceConformanceTemplate = "DeviceConformanceTemplate"; - - //////////////////////////////////////////////////////////////// - // - // Frame interpolation on video decode - // - public const string g_wszEnableFrameInterpolation = "EnableFrameInterpolation"; - - //////////////////////////////////////////////////////////////// - // - // Needs previous sample for Delta frame on video decode - // - public const string g_wszNeedsPreviousSample = "NeedsPreviousSample"; - - public const string g_wszWMDRM_ACTIONLIST_TAG = "ACTIONLIST"; - public const string g_wszWMDRM_ACTION_TAG = "ACTION"; - public const string g_wszWMDRM_RIGHT_PLAYBACK = "Play"; - public const string g_wszWMDRM_RIGHT_COPY = "Copy"; - public const string g_wszWMDRM_RIGHT_PLAYLIST_BURN = "PlaylistBurn"; - public const string g_wszWMDRM_RIGHT_CREATE_THUMBNAIL_IMAGE = "CreateThumbnailImage"; - public const string g_wszWMDRM_RIGHT_COPY_TO_CD = "Print.redbook"; - public const string g_wszWMDRM_RIGHT_COPY_TO_SDMI_DEVICE = "Transfer.SDMI"; - public const string g_wszWMDRM_RIGHT_COPY_TO_NON_SDMI_DEVICE = "Transfer.NONSDMI"; - public const string g_wszWMDRM_RIGHT_BACKUP = "Backup"; - public const string g_wszWMDRM_RIGHT_COLLABORATIVE_PLAY = "CollaborativePlay"; - public const string g_wszWMDRM_ActionAllowed = "ActionAllowed."; - public const string g_wszWMDRM_ActionAllowed_Playback = "ActionAllowed.Play"; - public const string g_wszWMDRM_ActionAllowed_Copy = "ActionAllowed.Copy"; - public const string g_wszWMDRM_ActionAllowed_PlaylistBurn = "ActionAllowed.PlaylistBurn"; - public const string g_wszWMDRM_ActionAllowed_CreateThumbnailImage = "ActionAllowed.CreateThumbnailImage"; - public const string g_wszWMDRM_ActionAllowed_CopyToCD = "ActionAllowed.Print.redbook"; - public const string g_wszWMDRM_ActionAllowed_CopyToSDMIDevice = "ActionAllowed.Transfer.SDMI"; - public const string g_wszWMDRM_ActionAllowed_CopyToNonSDMIDevice = "ActionAllowed.Transfer.NONSDMI"; - public const string g_wszWMDRM_ActionAllowed_Backup = "ActionAllowed.Backup"; - public const string g_wszWMDRM_ActionAllowed_CollaborativePlay = "ActionAllowed.CollaborativePlay"; - public const string g_wszWMDRM_LicenseState = "LicenseStateData."; - public const string g_wszWMDRM_LicenseState_Playback = "LicenseStateData.Play"; - public const string g_wszWMDRM_LicenseState_Copy = "LicenseStateData.Copy"; - public const string g_wszWMDRM_LicenseState_PlaylistBurn = "LicenseStateData.PlaylistBurn"; - public const string g_wszWMDRM_LicenseState_CreateThumbnailImage = "LicenseStateData.CreateThumbnailImage"; - public const string g_wszWMDRM_LicenseState_CopyToCD = "LicenseStateData.Print.redbook"; - public const string g_wszWMDRM_LicenseState_CopyToSDMIDevice = "LicenseStateData.Transfer.SDMI"; - public const string g_wszWMDRM_LicenseState_CopyToNonSDMIDevice = "LicenseStateData.Transfer.NONSDMI"; - public const string g_wszWMDRM_LicenseState_Backup = "LicenseStateData.Backup"; - public const string g_wszWMDRM_LicenseState_CollaborativePlay = "LicenseStateData.CollaborativePlay"; - public const string g_wszWMDRMNET_Revocation = "WMDRMNET_REVOCATION"; - public const string g_wszWMDRM_SAPLEVEL = "SAPLEVEL"; - public const string g_wszWMDRM_SAPRequired = "SAPRequired"; - public const string g_wszWMDRM_PRIORITY = "PRIORITY"; - public const string g_wszWMDRM_ISSUEDATE = "ISSUEDATE"; - public const string g_wszWMDRM_UplinkID = "UplinkID"; - public const string g_wszWMDRM_REVINFOVERSION = "REVINFOVERSION"; - - public const string g_wszWMDRM_IsDRM = "IsDRM"; - public const string g_wszWMDRM_IsDRMCached = "IsDRMCached"; - public const string g_wszWMDRM_BaseLicenseAcqURL = "BaseLAURL"; - public const string g_wszWMDRM_Rights = "Rights"; - public const string g_wszWMDRM_LicenseID = "LID"; - public const string g_wszWMDRM_DRMHeader = "DRMHeader."; - public const string g_wszWMDRM_DRMHeader_KeyID = "DRMHeader.KID"; - public const string g_wszWMDRM_DRMHeader_LicenseAcqURL = "DRMHeader.LAINFO"; - public const string g_wszWMDRM_DRMHeader_ContentID = "DRMHeader.CID"; - public const string g_wszWMDRM_DRMHeader_IndividualizedVersion = "DRMHeader.SECURITYVERSION"; - public const string g_wszWMDRM_DRMHeader_ContentDistributor = "DRMHeader.ContentDistributor"; - public const string g_wszWMDRM_DRMHeader_SubscriptionContentID = "DRMHeader.SubscriptionContentID"; - } - - [StructLayout(LayoutKind.Sequential)] - public class WmShort - { - private short m_value; - - public WmShort() - { - m_value = 0; - } - - public WmShort(short v) - { - m_value = v; - } - - public override string ToString() - { - return m_value.ToString(); - } - - public override int GetHashCode() - { - return m_value.GetHashCode(); - } - - public static implicit operator short(WmShort l) - { - return l.m_value; - } - - public static implicit operator WmShort(short l) - { - return new WmShort(l); - } - - public short ToInt16() - { - return m_value; - } - - public void Assign(short f) - { - m_value = f; - } - - public static WmShort FromInt16(short l) - { - return new WmShort(l); - } - } - - [StructLayout(LayoutKind.Sequential)] - public class WmInt - { - private int m_value; - - public WmInt() - { - m_value = 0; - } - - public WmInt(int v) - { - m_value = v; - } - - public override string ToString() - { - return m_value.ToString(); - } - - public override int GetHashCode() - { - return m_value.GetHashCode(); - } - - public static implicit operator int(WmInt l) - { - return l.m_value; - } - - public static implicit operator WmInt(int l) - { - return new WmInt(l); - } - - public int ToInt32() - { - return m_value; - } - - public void Assign(int f) - { - m_value = f; - } - - public static WmInt FromInt32(int l) - { - return new WmInt(l); - } - } - - [StructLayout(LayoutKind.Sequential)] - public class FourCC - { - protected const string m_SubTypeExtension = "-0000-0010-8000-00aa00389b71"; - private int m_fourCC; - - public FourCC(string fcc) - { - if (fcc.Length != 4) - { - throw new ArgumentException(fcc + " is not a valid FourCC"); - } - - byte[] asc = Encoding.ASCII.GetBytes(fcc); - - LoadFromBytes(asc[0], asc[1], asc[2], asc[3]); - } - - public FourCC(char a, char b, char c, char d) - : this(new string(new char[] { a, b, c, d })) - { } - - public FourCC(int fcc) - { - m_fourCC = fcc; - } - - public FourCC(byte[] b) - { - if (b.Length != 4) - { - throw new Exception("Invalid byte array passed to FourCC"); - } - - LoadFromBytes(b[0], b[1], b[2], b[3]); - } - - public FourCC(byte a, byte b, byte c, byte d) - { - LoadFromBytes(a, b, c, d); - } - - public FourCC(Guid g) - { - if (!IsA4ccSubtype(g)) - { - throw new Exception("Not a FourCC Guid"); - } - - byte[] asc; - asc = g.ToByteArray(); - - LoadFromBytes(asc[0], asc[1], asc[2], asc[3]); - } - - public void LoadFromBytes(byte a, byte b, byte c, byte d) - { - m_fourCC = a; - m_fourCC |= b << 8; - m_fourCC |= c << 16; - m_fourCC |= d << 24; - } - - public int ToInt32() - { - return m_fourCC; - } - - public byte[] GetBytes() - { - byte[] b = new byte[4]; - - b[0] = (byte)(m_fourCC & 0xff); - b[1] = (byte)((m_fourCC >> 8) & 0xff); - b[2] = (byte)((m_fourCC >> 16) & 0xff); - b[3] = (byte)((m_fourCC >> 24) & 0xff); - - return b; - } - - public static explicit operator int(FourCC f) - { - return f.ToInt32(); - } - - public Guid ToMediaSubtype() - { - return new Guid(m_fourCC.ToString("X") + m_SubTypeExtension); - } - - public static bool operator ==(FourCC fcc1, FourCC fcc2) - { - // If both are null, or both are same instance, return true. - if (Object.ReferenceEquals(fcc1, fcc2)) - { - return true; - } - - // If one is null, but not both, return false. - if (((object)fcc1 == null) || ((object)fcc2 == null)) - { - return false; - } - - return fcc1.m_fourCC == fcc2.m_fourCC; - } - - public static bool operator !=(FourCC fcc1, FourCC fcc2) - { - return !(fcc1 == fcc2); - } - - public override bool Equals(object obj) - { - if (!(obj is FourCC)) - return false; - - return (obj as FourCC).m_fourCC == m_fourCC; - } - - public override int GetHashCode() - { - return m_fourCC.GetHashCode(); - } - - public override string ToString() - { - char c; - char[] ca = new char[4]; - - c = Convert.ToChar(m_fourCC & 255); - if (!Char.IsLetterOrDigit(c)) - { - c = ' '; - } - ca[0] = c; - - c = Convert.ToChar((m_fourCC >> 8) & 255); - if (!Char.IsLetterOrDigit(c)) - { - c = ' '; - } - ca[1] = c; - - c = Convert.ToChar((m_fourCC >> 16) & 255); - if (!Char.IsLetterOrDigit(c)) - { - c = ' '; - } - ca[2] = c; - - c = Convert.ToChar((m_fourCC >> 24) & 255); - if (!Char.IsLetterOrDigit(c)) - { - c = ' '; - } - ca[3] = c; - - string s = new string(ca); - - return s; - } - - public static bool IsA4ccSubtype(Guid g) - { - return (g.ToString().Contains(m_SubTypeExtension)); - } - } - - #region Internal - - // These classes are used internally and there is probably no reason you will ever - // need to use them directly. - - internal class MTMarshaler : ICustomMarshaler - { - [DllImport("Kernel32.dll", EntryPoint = "RtlMoveMemory"), SuppressUnmanagedCodeSecurity] - private static extern void CopyMemory(IntPtr Destination, IntPtr Source, int Length); - - protected AMMediaType m_mt; - - public IntPtr MarshalManagedToNative(object managedObj) - { - m_mt = managedObj as AMMediaType; - - IntPtr ip = Marshal.AllocCoTaskMem(Marshal.SizeOf(m_mt) + m_mt.formatSize); - - // This class is only used for output. No need to burn the cpu cycles to copy - // over data that just gets overwritten. - - //Marshal.StructureToPtr(m_mt, ip, false); - - //if ((m_mt.formatSize > 0) && (m_mt.formatPtr != IntPtr.Zero)) - //{ - // CopyMemory(new IntPtr(ip.ToInt64() + Marshal.SizeOf(m_mt)), m_mt.formatPtr, m_mt.formatSize); - //} - - return ip; - } - - // Called just after invoking the COM method. The IntPtr is the same one that just got returned - // from MarshalManagedToNative. The return value is unused. - public object MarshalNativeToManaged(IntPtr pNativeData) - { - if (m_mt == null) - { - m_mt = new AMMediaType(); - } - Marshal.PtrToStructure(pNativeData, m_mt); - - if (m_mt.formatSize > 0) - { - IntPtr ip = m_mt.formatPtr; - - m_mt.formatPtr = Marshal.AllocCoTaskMem(m_mt.formatSize); - CopyMemory(m_mt.formatPtr, ip, m_mt.formatSize); - } - - return m_mt; - } - - // It appears this routine is never called - public void CleanUpManagedData(object ManagedObj) - { - m_mt = null; - } - - public void CleanUpNativeData(IntPtr pNativeData) - { - Marshal.FreeCoTaskMem(pNativeData); - } - - // The number of bytes to marshal out - never called - public int GetNativeDataSize() - { - return -1; - } - - // This method is called by interop to create the custom marshaler. The (optional) - // cookie is the value specified in MarshalCookie="asdf", or "" is none is specified. - public static ICustomMarshaler GetInstance(string cookie) - { - return new MTMarshaler(); - } - } - - - #endregion -} diff --git a/WindowsMediaLib/WindowsMediaLib.csproj b/WindowsMediaLib/WindowsMediaLib.csproj deleted file mode 100644 index cae6b76..0000000 --- a/WindowsMediaLib/WindowsMediaLib.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net40;net20 - 1.1.0.0 - WindowsMediaLib - WindowsMediaLib - WindowsMediaLib - .NET Interfaces for calling Windows Media. - Copyright (c) 2008-2018 snarfle - snarfle - true - ..\bin\$(Configuration)\plugins - https://svn.code.sf.net/p/windowsmedianet/code/ - svn - - - - - - False - - - - diff --git a/WindowsMediaLib/WindowsMediaLib.csproj.user b/WindowsMediaLib/WindowsMediaLib.csproj.user deleted file mode 100644 index e98b7a3..0000000 --- a/WindowsMediaLib/WindowsMediaLib.csproj.user +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - en-US - false - - \ No newline at end of file