Click here to Skip to main content
Click here to Skip to main content
 
Add your own
alternative version

BSEtunes

, 24 Apr 2010 CPOL
BSEtunes is a MySQL based, full manageable, networkable single or multiuser jukebox application
BSE.Platten.zip
BSE.Platten
BSE.Platten.vssscc
mssccprj.scc
vssver2.scc
BSE.CoverFlow.WPFLib
BSE.CoverFlow.WPFLib.csproj.user
BSE.CoverFlow.WPFLib.csproj.vspscc
mssccprj.scc
vssver2.scc
Images
close.png
exit.png
next.png
next_disabled.png
Note.jpg
pause.png
PlayButton.png
previous.png
previous_disabled.png
stop.png
vssver2.scc
Properties
Settings.settings
vssver2.scc
Resources
vssver2.scc
BSE.Platten.Admin
BSE.Platten.Admin.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
Settings.settings
vssver2.scc
Resources
Album16.gif
BSEadmin.ico
cdimport.png
cdrip.png
cd_hoeren.png
clearsearch.png
DataContainer_MoveFirsHS.png
DataContainer_MoveLastHS.png
DataContainer_MoveNextHS.png
DataContainer_MovePreviousHS.png
DataContainer_NewRecordHS.png
diskinfo.png
DRIVEDSC.png
DRIVENET.png
Edit_UndoHS.png
exportimage.png
findfile.png
FindHS.png
freedb.png
Genre16.png
Image.png
InsertPictureHS.png
Interpret16.png
OptionsHS.png
PieChart3DHS.png
PieChartHS.png
ProtectFormHS.png
RefreshDocViewHS.png
saveHS.png
search.png
song.png
system.png
tagger.png
tools_16.png
vssver2.scc
BSE.Platten.Admin.WinApp
BSE.Platten.Admin.WinApp.csproj.user
BSE.Platten.Admin.WinApp.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
Settings.settings
vssver2.scc
Resources
BSEadmin.ico
vssver2.scc
BSE.Platten.Audio
bse.ico
BSE.Platten.Audio.csproj.vspscc
mssccprj.scc
vssver2.scc
Options
vssver2.scc
Player
vssver2.scc
Properties
vssver2.scc
Resources
FillDownHS.png
FillLeftHS.png
Folder256.png
FolderFind.png
FolderOpen256.png
GoLtrHS.png
MoveNext.png
MovePrevious.png
OptionsHS.png
PauseHS.png
PlayHS.png
Slider.gif
Start.png
StopHS.png
vssver2.scc
WinControls
vssver2.scc
WMFSDK
vssver2.scc
BSE.Platten.BO
BSE.Platten.BO.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
vssver2.scc
BSE.Platten.Common
BSE.Platten.Common.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
vssver2.scc
Resources
BSEsplash.png
DRIVEDSC.png
DRIVENET.png
Network.png
splash.png
vssver2.scc
BSE.Platten.Covers
BSE.Platten.Covers.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
Settings.settings
vssver2.scc
BSE.Platten.FreeDb
BSE.Platten.FreeDb.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
vssver2.scc
Resources
OpenCD.png
vssver2.scc
BSE.Platten.Ripper
BSE.Platten.Ripper.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
vssver2.scc
Resources
OpenCD.png
OptionsHS.png
vssver2.scc
BSE.Platten.Statistik
BSE.Platten.Statistik.csproj.vspscc
mssccprj.scc
vssver2.scc
Properties
vssver2.scc
BSE.Platten.Tunes
BSE.Platten.Tunes.csproj.user
BSE.Platten.Tunes.csproj.vspscc
mssccprj.scc
vssver2.scc
Filters
vssver2.scc
Properties
Settings.settings
vssver2.scc
Resources
About.png
Album16.gif
AudioCD.png
AudioFile.png
AutoList.png
broadcast.png
BSE.png
BSEAbout.png
BSEsplash.png
BSEtunes.ico
BSE_16.png
cd_hoeren.png
coverflow.png
DataContainer_MoveNextHS.png
delete.gif
diskinfo.png
Filter2HS.png
FindHS.png
Folder256.png
FolderOpen256.png
Genre16.gif
Interpret16.gif
keinBild.gif
NewPlaylist16.gif
OptionsHS.png
PauseHS.png
RefreshDocViewHS.png
Removabledrive.png
saveHS.png
search.png
shuffle.png
Shuffle_icon.png
song.png
splash1.png
StopHS.png
TaskHS.png
TrackInfo.gif
vssver2.scc
wiedergabe16.gif
BSEadminSetup
BSEadminSetup.vdproj
BSEadminSetup.vdproj.vspscc
mssccprj.scc
vssver2.scc
Debug
Release
BSEtunesSetup
BSEtunesSetup.vdproj
BSEtunesSetup.vdproj.vspscc
mssccprj.scc
vssver2.scc
Debug
Release
dll
BSE.CDDrives.DLL
BSE.Charts.DLL
BSE.Configuration.DLL
BSE.RemovableDrives.DLL
BSE.Shell.DLL
BSE.Windows.Forms.DLL
Lame
lame_enc.dll
vssver2.scc
lame-3.97
BSE.Platten_en.zip
BSE.CoverFlow.WPFLib.csproj.user
close.png
exit.png
next.png
next_disabled.png
Note.jpg
pause.png
PlayButton.png
previous.png
previous_disabled.png
stop.png
vssver2.scc
Settings.settings
vssver2.scc
vssver2.scc
BSE.Platten.Admin.csproj.user
Settings.settings
vssver2.scc
Album16.gif
BSEadmin.ico
cdimport.png
cdrip.png
cd_hoeren.png
clearsearch.png
DataContainer_MoveFirsHS.png
DataContainer_MoveLastHS.png
DataContainer_MoveNextHS.png
DataContainer_MovePreviousHS.png
DataContainer_NewRecordHS.png
diskinfo.png
DRIVEDSC.png
DRIVENET.png
Edit_UndoHS.png
exportimage.png
findfile.png
FindHS.png
freedb.png
Genre16.png
Image.png
InsertPictureHS.png
Interpret16.png
OptionsHS.png
PieChart3DHS.png
PieChartHS.png
ProtectFormHS.png
RefreshDocViewHS.png
saveHS.png
search.png
song.png
system.png
tagger.png
tools_16.png
vssver2.scc
BSE.Platten.Admin.WinApp.csproj.user
Settings.settings
vssver2.scc
BSEadmin.ico
vssver2.scc
bse.ico
BSE.Platten.Audio.csproj.user
vssver2.scc
vssver2.scc
vssver2.scc
FillDownHS.png
FillLeftHS.png
Folder256.png
FolderFind.png
FolderOpen256.png
GoLtrHS.png
MoveNext.png
MovePrevious.png
OptionsHS.png
PauseHS.png
PlayHS.png
Slider.gif
Start.png
StopHS.png
vssver2.scc
vssver2.scc
vssver2.scc
BSE.Platten.BO.csproj.user
vssver2.scc
BSE.Platten.Common.csproj.user
vssver2.scc
BSEsplash.png
DRIVEDSC.png
DRIVENET.png
Network.png
splash.png
vssver2.scc
BSE.Platten.Covers.csproj.user
Settings.settings
vssver2.scc
BSE.Platten.FreeDb.csproj.user
vssver2.scc
OpenCD.png
vssver2.scc
AudioWriter
vssver2.scc
BSE.Platten.Ripper.csproj.user
Lame
vssver2.scc
vssver2.scc
OpenCD.png
OptionsHS.png
vssver2.scc
BSE.Platten.Statistik.csproj.user
vssver2.scc
BSE.Platten.Tunes.csproj.user
vssver2.scc
Settings.settings
vssver2.scc
About.png
Album16.gif
AudioCD.png
AudioFile.png
AutoList.png
broadcast.png
BSE.png
BSEAbout.png
BSEsplash.png
BSEtunes.ico
BSE_16.png
cd_hoeren.png
coverflow.png
DataContainer_MoveNextHS.png
delete.gif
diskinfo.png
Filter2HS.png
FindHS.png
Folder256.png
FolderOpen256.png
Genre16.gif
Interpret16.gif
keinBild.gif
NewPlaylist16.gif
OptionsHS.png
PauseHS.png
RefreshDocViewHS.png
Removabledrive.png
saveHS.png
search.png
shuffle.png
Shuffle_icon.png
song.png
splash1.png
StopHS.png
TaskHS.png
TrackInfo.gif
vssver2.scc
wiedergabe16.gif
BSEadminSetup.vdproj
BSEtunesSetup.vdproj
BSE.CDDrives.DLL
BSE.Charts.DLL
BSE.Configuration.DLL
BSE.RemovableDrives.DLL
BSE.Shell.DLL
BSE.ThreadedShell.DLL
BSE.Windows.Forms.DLL
lame_enc.dll
MySQL.chm.zip
MySQL.chm
MySqlCreateDataBase5x.sql.zip
//Widows Media Format Interfaces
//
//  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
//  PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 
//  REMAINS UNCHANGED.
//
//  Email:  yetiicb@hotmail.com
//
//  Copyright (C) 2002-2004 Idael Cardoso. 
//
using System;
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics.CodeAnalysis;

namespace BSE.Platten.Audio.WMFSDK
{
    /// <summary>
    /// The WMT_STREAM_SELECTION enumeration type defines the playback status of a stream.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    public enum WMT_STREAM_SELECTION
    {
        /// <summary>
        /// No samples will be delivered for the stream.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_OFF = 0,
        /// <summary>
        /// Only samples with cleanpoints will be delivered for the stream.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CLEANPOINT_ONLY = 1,
        /// <summary>
        /// All samples will be delivered for the stream.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_ON = 2,
    };
    /// <summary>
    /// The WMT_ATTR_DATATYPE enumeration defines the data type for a variably typed property.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    public enum WMT_ATTR_DATATYPE
    {
        /// <summary>
        /// The property is a 4-byte DWORD value.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TYPE_DWORD = 0,
        /// <summary>
        /// The property is a null-terminated Unicode string.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TYPE_STRING = 1,
        /// <summary>
        /// The property is an array of bytes.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TYPE_BINARY = 2,
        /// <summary>
        /// The property is a 4-byte Boolean value.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TYPE_BOOL = 3,
        /// <summary>
        /// The property is an 8-byte QWORD value.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TYPE_QWORD = 4,
        /// <summary>
        /// The property is a 2-byte WORD value.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TYPE_WORD = 5,
        /// <summary>
        /// The property is a 128-bit (6-byte) GUID.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TYPE_GUID = 6,
    };
    /// <summary>
    /// The WMT_VERSION enumeration type defines the versions of the Windows Media Format SDK.
    /// Every profile you create will have an associated version identified by one of these enumerations.
    /// The version associated with a profile dictates the types of data allowed.
    /// For example, data unit extensions were introduced with version 8. A profile defined as version 7
    /// cannot include data unit extensions. Under most circumstances, you will create profiles
    /// for the most current version.
    /// </summary>
    /// <remarks>
    /// The version assigned to a profile does not directly relate to the codecs used in the profile's individual
    /// streams. However, it is recommended that you use codecs of the same version as the profile. Unless
    /// you have specific requirements to the contrary, you should always use the latest version.
    /// </remarks>
    [SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue")]
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    public enum WMT_VERSION
    {
        /// <summary>
        /// Compatible with version 4 of the Windows Media Format SDK.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        WMT_VER_4_0 = 0x00040000,
        /// <summary>
        /// Compatible with the Windows Media Format 7 SDK.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        WMT_VER_7_0 = 0x00070000,
        /// <summary>
        /// Compatible with the Windows Media Format 8.2 SDK.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        WMT_VER_8_0 = 0x00080000,
        /// <summary>
        /// Compatible with the Windows Media Format 9 Series SDK, and with the Windows Media Format 9.5 SDK.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        WMT_VER_9_0 = 0x00090000,
    };
    /// <summary>
    /// The WMT_STORAGE_FORMAT enumeration type defines the file types that can be manipulated with this SDK.
    /// </summary>
    /// <remarks>
    /// Storage format MP3 is supported for reading, but not writing.
    /// </remarks>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    public enum WMT_STORAGE_FORMAT
    {
        /// <summary>
        /// The file is encoded in MP3 format.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_Storage_Format_MP3,
        /// <summary>
        /// The file is encoded in Windows Media Format.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_Storage_Format_V1
    };
    /// <summary>
    /// The WMT_TRANSPORT_TYPE enumeration type defines the transport types supported by this SDK.
    /// </summary>
    /// <remarks>
    /// This enumeration indicates the type of data communication protocol (reliable or unreliable).
    /// </remarks>
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    public enum WMT_TRANSPORT_TYPE
    {
        /// <summary>
        /// The transport type is not reliable.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        WMT_Transport_Type_Unreliable,
        /// <summary>
        /// The transport type is reliable.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        WMT_Transport_Type_Reliable
    };
    /// <summary>
    /// The WMT_STATUS enumeration type defines a range of file status information. Members of WMT_STATUS are passed
    /// to the common callback function, IWMStatusCallback.OnStatus, so that the application can respond to the
    /// changing status of the objects being used.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    public enum WMT_STATUS
    {
        /// <summary>
        /// An error occurred.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_ERROR = 0,
        /// <summary>
        /// A file was opened.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_OPENED = 1,
        /// <summary>
        /// The reader object is beginning to buffer content.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_BUFFERING_START = 2,
        /// <summary>
        /// The reader object has finished buffering content.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_BUFFERING_STOP = 3,
        /// <summary>
        /// The end of the file has been reached. Both this member and the next one, WMT_END_OF_FILE,
        /// have the value 4.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_EOF = 4,
        /// <summary>
        /// The end of the file has been reached. Both this member and the previous one, WMT_EOF, have the value 4.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_END_OF_FILE = 4,
        /// <summary>
        /// The end of a segment has been encountered.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_END_OF_SEGMENT = 5,
        /// <summary>
        /// The end of a server-side playlist has been reached.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_END_OF_STREAMING = 6,
        /// <summary>
        /// The reader object is locating requested data.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_LOCATING = 7,
        /// <summary>
        /// A reporting object is connecting to server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CONNECTING = 8,
        /// <summary>
        /// There is no license and the content is protected by version 1 digital rights management.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_NO_RIGHTS = 9,
        /// <summary>
        /// The file loaded in the reader object contains compressed data for which no codec could be found.
        /// The pValue parameter in OnStatus contains a GUID. The first DWORD of this GUID contains the FOURCC or
        /// the format tag of the missing codec. The remaining bytes of the GUID can be ignored.
        /// 
        /// The hr parameter in OnStatus may equal S_OK, although a missing codec would normally be considered
        /// an error. Also, this event may be followed by WMT_STARTED with hr equal to S_OK, even if codecs
        /// are missing for every stream in the file. In that case, however, the application will not
        /// receive any decoded samples, and should stop the reader object.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_MISSING_CODEC = 10,
        /// <summary>
        /// A reporting object has begun operations.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_STARTED = 11,
        /// <summary>
        /// A reporting object has ceased operations.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_STOPPED = 12,
        /// <summary>
        /// A file was closed.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CLOSED = 13,
        /// <summary>
        /// The reader object is playing content at above normal speed, or in reverse.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_STRIDING = 14,
        /// <summary>
        /// Timer event.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_TIMER = 15,
        /// <summary>
        /// Progress update from the indexer object.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_INDEX_PROGRESS = 16,
        /// <summary>
        /// The reader object has begun saving a file from a server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_SAVEAS_START = 17,
        /// <summary>
        /// The reader has stopped saving a file from a server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_SAVEAS_STOP = 18,
        /// <summary>
        /// The current file's header object contains certain attributes that are different from those of the
        /// previous file. This event is sent when playing a server-side playlist. Use the IWMHeaderInfo interface
        /// to query for any of the following attributes in a new file: Stridable, Broadcast, Seekable,
        /// and HasImage.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_NEW_SOURCEFLAGS = 19,
        /// <summary>
        /// The current file's header object contains metadata attributes that are different from
        /// those of the previous file. This event is sent when playing a server-side playlist.
        /// Use the IWMHeaderInfo interface to query for any metadata attribute you are interested in.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_NEW_METADATA = 20,
        /// <summary>
        /// A license backup or restore has started.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_BACKUPRESTORE_BEGIN = 21,
        /// <summary>
        /// The next source in the playlist was opened.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_SOURCE_SWITCH = 22,
        /// <summary>
        /// The license acquisition process has completed. The pValue parameter in OnStatus contains a
        /// WM_GET_LICENSE_DATA structure. The hr member of this structure indicates whether the license
        /// was successfully acquired.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_ACQUIRE_LICENSE = 23,
        /// <summary>
        /// Individualization status message.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_INDIVIDUALIZE = 24,
        /// <summary>
        /// The file loaded in the reader object cannot be played without a security update.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_NEEDS_INDIVIDUALIZATION = 25,
        /// <summary>
        /// There is no license and the content is protected by version 7 digital rights management.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_NO_RIGHTS_EX = 26,
        /// <summary>
        /// A license backup or restore has finished.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_BACKUPRESTORE_END = 27,
        /// <summary>
        /// The backup restorer object is connecting to a server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_BACKUPRESTORE_CONNECTING = 28,
        /// <summary>
        /// The backup restorer object is disconnecting from a server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_BACKUPRESTORE_DISCONNECTING = 29,
        /// <summary>
        /// Error relating to the URL.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_ERROR_WITHURL = 30,
        /// <summary>
        /// The backup restorer object cannot back up one or more licenses because the right has been disallowed by
        /// the content owner.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RESTRICTED_LICENSE = 31,
        /// <summary>
        /// Sent when a client (a playing application or server) connects to a writer network sink object. The
        /// pValue parameter of the IWMStatusCallback::OnStatus callback is set to a WM_CLIENT_PROPERTIES
        /// structure. New applications should wait for WMT_CLIENT_CONNECT_EX instead.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CLIENT_CONNECT = 32,
        /// <summary>
        /// Sent when a client (a playing application or server) disconnects from a writer network sink object.
        /// The pValue parameter of the IWMStatusCallback::OnStatus callback is set to a WM_CLIENT_PROPERTIES
        /// structure. The values in this structure are identical to those sent on connection.
        /// New applications should wait for WMT_CLIENT_DISCONNECT_EX instead.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CLIENT_DISCONNECT = 33,
        /// <summary>
        /// Change in output properties.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_NATIVE_OUTPUT_PROPS_CHANGED = 34,
        /// <summary>
        /// Start of automatic reconnection to a server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RECONNECT_START = 35,
        /// <summary>
        /// End of automatic reconnection to a server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RECONNECT_END = 36,
        /// <summary>
        /// Sent when a client (a playing application or server) connects to a writer network sink object.
        /// The pValue parameter of the IWMStatusCallback::OnStatus callback is set to
        /// a WM_CLIENT_PROPERTIES_EX structure.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CLIENT_CONNECT_EX = 37,
        /// <summary>
        /// Sent when a client (a playing application or server) disconnects from a writer network
        /// sink object. The pValue parameter of the IWMStatusCallback.OnStatus callback is set
        /// to a WM_CLIENT_PROPERTIES_EX structure. The client properties are identical to those
        /// sent on connection except for the pwszDNSName member, which may have changed.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CLIENT_DISCONNECT_EX = 38,
        /// <summary>
        /// Change to the forward error correction span.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_SET_FEC_SPAN = 39,
        /// <summary>
        /// The reader is ready to begin buffering content.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_PREROLL_READY = 40,
        /// <summary>
        /// The reader is finished buffering.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_PREROLL_COMPLETE = 41,
        /// <summary>
        /// Sent by a writer network sink when one or more properties of a connected client changes.
        /// The pValue parameter of the IWMStatusCallback.OnStatus callback is set to a WM_CLIENT_PROPERTIES_EX
        /// structure. This usually means that a DNS name is present for a client for which none was available
        /// at connection.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CLIENT_PROPERTIES = 42,
        /// <summary>
        /// Sent before a WMT_NO_RIGHTS or WMT_NO_RIGHTS_EX status message. The pValue parameter is set to one
        /// of the WMT_DRMLA_TRUST constants indicating whether the license acquisition URL is completely trusted.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_LICENSEURL_SIGNATURE_STATE = 43
    };
    /// <summary>
    /// The WMT_PLAY_MODE enumeration type defines the playback options of the reader.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Naming", "CA1712:DoNotPrefixEnumValuesWithTypeName")]
    public enum WMT_PLAY_MODE
    {
        /// <summary>
        /// The reader will select the most appropriate play mode based on the location of the content.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_PLAY_MODE_AUTOSELECT = 0,
        /// <summary>
        /// The reader will read files from a local storage location.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_PLAY_MODE_LOCAL = 1,
        /// <summary>
        /// The reader will download files from network locations.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_PLAY_MODE_DOWNLOAD = 2,
        /// <summary>
        /// The reader will stream files from network locations.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_PLAY_MODE_STREAMING = 3,
    };
    /// <summary>
    /// The WMT_OFFSET_FORMAT enumeration type defines the types of offsets used in this SDK.
    /// </summary>
    /// <remarks>
    /// WMT_OFFSET_FORMAT is used as an input parameter to IWMReaderAdvanced3.StartAtPosition.
    /// The value passed specifies whether the reader should begin playback at a specified presentation time,
    /// frame number, or offset into a playlist.
    /// </remarks>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Naming", "CA1712:DoNotPrefixEnumValuesWithTypeName")]
    public enum WMT_OFFSET_FORMAT
    {
        /// <summary>
        /// An offset into a file is specified by presentation time in 100-nanosecond units.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_OFFSET_FORMAT_100NS,
        /// <summary>
        /// An offset into a file is specified by frame number.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_OFFSET_FORMAT_FRAME_NUMBERS,
        /// <summary>
        /// An offset of playlist entries.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_OFFSET_FORMAT_PLAYLIST_OFFSET,
        /// <summary>
        /// An offset into a file is specified by presentation time as identified by SMTPE time codes.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_OFFSET_FORMAT_TIMECODE
    };
    /// <summary>
    /// The WMT_CODEC_INFO_TYPE enumeration type defines the broad categories of codecs supported by this SDK.
    /// </summary>
    /// <remarks>
    /// This type is used when adding or retrieving the codecs used in a file using IWMHeaderInfo2.GetCodecInfo
    /// and IWMHeaderInfo3::AddCodecInfo. When enumerating codecs with the methods of
    /// IWMCodecInfo, IWMCodecInfo2, and IWMCodecInfo3, you do not use this type. Those methods use the
    /// major media type GUIDs instead.
    /// </remarks>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32")]
    public enum WMT_CODEC_INFO_TYPE : uint
    {
        /// <summary>
        /// Audio codec.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CODECINFO_AUDIO = 0,
        /// <summary>
        /// Video codec.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CODECINFO_VIDEO = 1,
        /// <summary>
        /// Codec of an unknown type.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_CODECINFO_UNKNOWN = 0xFFFFFFFF,
    };

    /// <summary>
    /// The WMT_RIGHTS enumeration type defines the rights that may be specified in a DRM license.
    /// </summary>
    /// <remarks>
    /// These values are bit flags, so one or more can be set by combining them with the bitwise OR operator.
    /// When using Windows Media DRM 10, WMT_RIGHT_COPY_TO_NON_SDMI_DEVICE, WMT_RIGHT_COPY_TO_SDMI_DEVICE,
    /// and WMT_RIGHT_COPY_TO_CD are superseded by WMT_RIGHT_COPY. Limitations on the devices to which 
    /// the content may be copied are specified by using output protection levels (OPLs).
    /// </remarks>
    [Flags]
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames")]
    [SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue")]
    [SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32")]
    public enum WMT_RIGHTS : uint
    {
        /// <summary>
        /// This rigth is not defined in the WMF SDK, I added it to
        /// play files with no DRM
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_NO_DRM = 0x00000000,
        /// <summary>
        /// Specifies the right to play content without restriction.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_PLAYBACK = 0x00000001,
        /// <summary>
        /// Specifies the right to copy content to a device not compliant with the Secure Digital Music
        /// Initiative (SDMI).
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_COPY_TO_NON_SDMI_DEVICE = 0x00000002,
        /// <summary>
        /// Specifies the right to copy content to a CD.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_COPY_TO_CD = 0x00000008,
        /// <summary>
        /// Specifies the right to copy content to a device compliant with the Secure Digital Music Initiative (SDMI).
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_COPY_TO_SDMI_DEVICE = 0x00000010,
        /// <summary>
        /// Specifies the right to play content one time only.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_ONE_TIME = 0x00000020,
        /// <summary>
        /// Specifies the right to save content from a server.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_SAVE_STREAM_PROTECTED = 0x00000040,
        /// <summary>
        /// Reserved for future use. Do not use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_SDMI_TRIGGER = 0x00010000,
        /// <summary>
        /// Reserved for future use. Do not use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_RIGHT_SDMI_NOMORECOPIES = 0x00020000
    }
    /// <summary>
    /// The WMT_INDEXER_TYPE enumeration type defines the types of indexing supported by the indexer.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    public enum WMT_INDEXER_TYPE
    {
        /// <summary>
        /// The indexer will construct an index using presentation times as indexes.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_IT_PRESENTATION_TIME,
        /// <summary>
        /// The indexer will construct an index using frame numbers as indexes.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_IT_FRAME_NUMBERS,
        /// <summary>
        /// The indexer will construct an index using SMPTE time codes as indexes.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_IT_TIMECODE
    };
    /// <summary>
    /// The WMT_INDEX_TYPE enumeration type defines the type of object that will be associated with an index.
    /// Because the time specified by an index will not usually correspond exactly with an object in the file,
    /// the indexer must associate the index with an object in the bit stream close to the specified time.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue")]
    public enum WMT_INDEX_TYPE
    {
        /// <summary>
        /// The index will associate indexes with the nearest data unit, or packet, in the Windows Media file.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_IT_NEAREST_DATA_UNIT = 1,
        /// <summary>
        /// The index will associate indexes with the nearest data object, or compressed sample, in the Windows Media file.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_IT_NEAREST_OBJECT,
        /// <summary>
        /// The index will associate indexes with the nearest cleanpoint, or video key frame, in the Windows Media file. This is the default index type.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_IT_NEAREST_CLEAN_POINT
    };
    /// <summary>
    /// The WMT_STREAM_SELECTION enumeration type defines the types of protocols that the network sink supports.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    public enum WMT_NET_PROTOCOL
    {
        /// <summary>
        /// The network sink supports hypertext transfer protocol (HTTP).
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
        WMT_PROTOCOL_HTTP = 0,
    };

    /// <summary>
    /// The WMT_TIMECODE_EXTENSION_DATA structure contains information needed for a single SMPTE time code sample
    /// extension. One of these structures will be attached to every video frame that requires a SMPTE time code.
    /// </summary>
    /// <remarks>
    /// One of the more common SMPTE user scenarios is assembling a bunch of clips from their source reels into
    /// a prospective edit, and preserving the source reel time code in the edit. The time code in this type of
    /// file consists of a set of disjointed SMPTE ranges, where each range corresponds to the linear time code
    /// from its source reel.
    /// Because these ranges are not guaranteed to be in any sort of time-related order (in other words, the first
    /// range may occur earlier in time than the second range), the concept of a range is supported in the
    /// Windows Media Format SDK time code index and interfaces. SMPTE time code MUST increase in time over a
    /// given range. Minor discontinuities within the range (such as dropped frames, or drop-frame counting) need
    /// not be marked within the range.
    /// Ranges are guaranteed to be monotonically increasing (in other words, 0, 1, 2, 3, � ) with a WMV file.
    /// SMPTE time code values are guaranteed to be increasing within a given range in a WMV file,
    /// but not across ranges.
    /// </remarks>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes")]
    [StructLayout(LayoutKind.Sequential)]
    public struct WMT_TIMECODE_EXTENSION_DATA
    {
        /// <summary>
        /// WORD specifying the range to which the time code belongs. See Remarks.
        /// </summary>
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public ushort wRange;
        /// <summary>
        /// DWORD containing the time code. Time code is stored so that the hexadecimal value is read as if it were
        /// a decimal value. That is, the time code value 0x01133512 does not represent decimal 18035986, rather
        /// it specifies 1 hour, 13 minutes, 35 seconds, and 12 frames.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public uint dwTimecode;
        /// <summary>
        /// DWORD containing any information that the user desires. Typically, this member is used to store shot
        /// or take numbers, or other information pertinent to the production process.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public uint dwUserbits;
        /// <summary>
        /// DWORD provided for maintaining any AM_TIMECODE flags that are present in source material. These flags
        /// are not used by any of the objects in the Windows Media Format SDK. For more information about
        /// AM_TIMECODE flags, refer to the SMPTE time code specification.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public uint dwAmFlags;
    };
    /// <summary>
    /// The WM_STREAM_PRIORITY_RECORD structure contains a stream number and specifies whether delivery of that
    /// stream is mandatory.
    /// </summary>
    /// <remarks>
    /// WM_STREAM_PRIORITY_RECORD is used in an array by the IWMStreamPrioritization interface.
    /// Each member of the array specifies a stream; the lower the element number in the array, the higher
    /// the priority of the stream.
    /// </remarks>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes")]
    [StructLayout(LayoutKind.Sequential)]
    public struct WM_STREAM_PRIORITY_RECORD
    {
        /// <summary>
        /// WORD containing the stream number.
        /// </summary>
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public ushort wStreamNumber;
        /// <summary>
        /// Flag indicating whether the listed stream is mandatory. Mandatory streams will not be dropped regardless
        /// of their position in the priority list.
        /// </summary>
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        [MarshalAs(UnmanagedType.Bool)]
        public bool fMandatory;
    };
    /// <summary>
    /// The WM_MEDIA_TYPE structure is the primary structure used to describe media formats for the objects of
    /// the Windows Media Format SDK. For more information about media formats and what they are used for,
    /// see Formats.
    /// </summary>
    /// <remarks>
    /// This is the same as the DirectShow structure AM_MEDIA_TYPE but is redefined in this SDK to avoid
    /// conflict with DirectShow names.
    /// </remarks>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes")]
    [StructLayout(LayoutKind.Sequential)]
    public struct WM_MEDIA_TYPE
    {
        /// <summary>
        /// Major type of the media sample. For example, WMMEDIATYPE_Video specifies a video stream. For a list
        /// of possible major media types, see Media Types.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public Guid majortype;
        /// <summary>
        /// Subtype of the media sample. The subtype defines a specific format (usually an encoding scheme) within a
        /// major media type. For example, WMMEDIASUBTYPE_WMV3 specifies a video stream encoded with the
        /// Windows Media Video 9 codec. Subtypes can be uncompressed or compressed. For lists of possible
        /// media subtypes, see Uncompressed Media Subtypes and Compressed Media Subtypes.
        /// </summary>
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public Guid subtype;
        /// <summary>
        /// Set to true if the samples are of a fixed size. Compressed audio samples are of a fixed size while
        /// video samples are not.
        /// </summary>
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        [MarshalAs(UnmanagedType.Bool)]
        public bool bFixedSizeSamples;
        /// <summary>
        /// Set to true if the samples are temporally compressed. Temporal compression is compression where some
        /// samples describe the changes in content from the previous sample, instead of describing the sample 
        /// in its entirety. Only compressed video can be temporally compressed. By definition, no media type
        /// can use both fixed sized samples and temporal compression.
        /// </summary>
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        [MarshalAs(UnmanagedType.Bool)]
        public bool bTemporalCompression;
        /// <summary>
        /// Long integer containing the size of the sample, in bytes. This member is used only if bFixedSizeSamples
        /// is true.
        /// </summary>
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public uint lSampleSize;
        /// <summary>
        /// GUID of the format type. The format type specifies the additional structure used to identify the
        /// media format. This structure is pointed to by pbFormat
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public Guid formattype;
        /// <summary>
        /// Not used. Should be NULL.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible")]
        public IntPtr pUnk;
        /// <summary>
        /// Size, in bytes, of the structure pointed to by pbFormat.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        public uint cbFormat;
        /// <summary>
        /// Pointer to the format structure of the media type. The structure referenced is determined by the format type GUID.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
        [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible")]
        public IntPtr pbFormat;
    };
    /// <summary>
    /// The IWMMediaProps interface sets and retrieves the WM_MEDIA_TYPE structure for an input, stream, or output.
    /// 
    /// In the case of inputs and streams, the contents of the media type structure determine what actions the
    /// writer object will perform on the input data when writing the file. Typically, the input media type is 
    /// an uncompressed type and the stream is a compressed type, so that the contents of their respective media
    /// type structures will determine the settings passed by the writer to the codec that will compress the
    /// stream.
    /// 
    /// In the case of outputs, the media type structure determines the settings used to decompress the contents
    /// of a stream. The Windows Media codecs are capable of delivering output content in a variety of formats.
    /// 
    /// The methods of IWMMediaProps are inherited by IWMVideoMediaProps, which provides access to additional
    /// settings for specifying video media types. The methods are also inherited by IWMInputMediaProps and
    /// IWMOutputMediaProps.
    /// 
    /// An instance of the IWMMediaProps interface exists for every stream configuration object,
    /// input media properties object, and output media properties object. You can retrieve a pointer to
    /// this interface by calling the QueryInterface method of any other interface in one of those objects.
    /// </summary>
    [ComImport]
    [Guid("96406BCE-2B2B-11d3-B36B-00C04F6108FF")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IWMMediaProps
    {
        /// <summary>
        /// Retrieves the major type of the media (audio, video, or script).
        /// </summary>
        /// <param name="pguidType">Pointer to a GUID specifying the media type.</param>
        [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        [SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords")]
        void GetType([Out] out Guid pguidType);
        /// <summary>
        /// Retrieves a WM_MEDIA_TYPE structure describing the media type.
        /// </summary>
        /// <param name="pType">Pointer to a WM_MEDIA_TYPE structure. If this parameter is set to NULL,
        /// this method returns the size of the buffer required in the pcbType parameter.</param>
        /// <param name="pcbType">On input, the size of the pType buffer. On output, if pType is set to NULL,
        /// the value this points to is set to the size of the buffer needed to hold the media type structure.</param>
        [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        void GetMediaType( /*[out] WM_MEDIA_TYPE* */ IntPtr pType,
                           [In, Out] ref uint pcbType);
        /// <summary>
        /// Specifies a WM_MEDIA_TYPE structure describing the media type.
        /// </summary>
        /// <param name="pType">Pointer to the WM_MEDIA_TYPE structure describing the input, stream, or output.</param>
        [SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        void SetMediaType([In] ref WM_MEDIA_TYPE pType);
    }
    /// <summary>
    /// With this interface, the application can specify additional video-specific parameters not available
    /// on the IWMMediaProps interface.
    /// 
    /// To get access to the methods of this interface, call QueryInterface on a stream configuration object.
    /// For more information, see IWMStreamConfig Interface).
    /// 
    /// Methods
    /// 
    /// The IWMVideoMediaProps interface inherits from IWMMediaProps.
    /// </summary>
    [ComImport]
    [Guid("96406BCF-2B2B-11d3-B36B-00C04F6108FF")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IWMVideoMediaProps : IWMMediaProps
    {
        /// <summary>
        /// Retrieves the major type of the media (audio, video, or script).
        /// </summary>
        /// <param name="pguidType">Pointer to a GUID specifying the media type.</param>
        new void GetType([Out] out Guid pguidType);
        /// <summary>
        /// Retrieves a WM_MEDIA_TYPE structure describing the media type.
        /// </summary>
        /// <param name="pType">Pointer to a WM_MEDIA_TYPE structure. If this parameter is set to NULL,
        /// this method returns the size of the buffer required in the pcbType parameter.</param>
        /// <param name="pcbType">On input, the size of the pType buffer. On output, if pType is set to NULL,
        /// the value this points to is set to the size of the buffer needed to hold the media type structure.</param>
        new void GetMediaType( /*[out] WM_MEDIA_TYPE* */ IntPtr pType,
          [In, Out] ref uint pcbType);
        /// <summary>
        /// Specifies a WM_MEDIA_TYPE structure describing the media type.
        /// </summary>
        /// <param name="pType">Pointer to the WM_MEDIA_TYPE structure describing the input, stream, or output.</param>
        new void SetMediaType([In] ref WM_MEDIA_TYPE pType);
        /// <summary>
        /// Retrieves the maximum interval between key frames.
        /// </summary>
        /// <param name="pllTime">Pointer to a variable that receives the interval in 100-nanosecond units.</param>
        [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        void GetMaxKeyFrameSpacing([Out] out long pllTime);
        /// <summary>
        /// Specifies the maximum interval between key frames.
        /// </summary>
        /// <param name="llTime">Maximum key-frame spacing in 100-nanosecond units.</param>
        void SetMaxKeyFrameSpacing([In] long llTime);
        /// <summary>
        /// Retrieves the quality setting for the video stream.
        /// </summary>
        /// <param name="pdwQuality">Pointer to a DWORD containing the quality setting.</param>
        [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        void GetQuality([Out] out uint pdwQuality);
        /// <summary>
        /// Specifies the quality setting for the video stream.
        /// </summary>
        /// <param name="dwQuality">DWORD specifying the quality setting, in the range from zero (maximum frame rate)
        /// to 100 (maximum image quality).</param>
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        void SetQuality([In] uint dwQuality);
    }
    /// <summary>
    /// The IWMInputMediaProps interface is used to retrieve the properties of digital media that will be
    /// passed to the writer.
    /// 
    /// An input media properties object is created by a call to either the IWMWriter.GetInputProps or
    /// IWMWriter.GetInputFormat method.
    /// 
    /// Methods
    /// 
    /// The IWMInputMediaProps interface inherits from IWMMediaProps.
    /// </summary>
    [ComImport]
    [Guid("96406BD5-2B2B-11d3-B36B-00C04F6108FF")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IWMInputMediaProps : IWMMediaProps
    {
        /// <summary>
        /// Retrieves the major type of the media (audio, video, or script).
        /// </summary>
        /// <param name="pguidType">Pointer to a GUID specifying the media type.</param>
        new void GetType([Out] out Guid pguidType);
        /// <summary>
        /// Retrieves a WM_MEDIA_TYPE structure describing the media type.
        /// </summary>
        /// <param name="pType">Pointer to a WM_MEDIA_TYPE structure. If this parameter is set to NULL,
        /// this method returns the size of the buffer required in the pcbType parameter.</param>
        /// <param name="pcbType">On input, the size of the pType buffer. On output, if pType is set to NULL,
        /// the value this points to is set to the size of the buffer needed to hold the media type structure.</param>
        new void GetMediaType( /*[out] WM_MEDIA_TYPE* */ IntPtr pType,
          [In, Out] ref uint pcbType);
        /// <summary>
        /// Specifies a WM_MEDIA_TYPE structure describing the media type.
        /// </summary>
        /// <param name="pType">Pointer to the WM_MEDIA_TYPE structure describing the input, stream, or output.</param>
        new void SetMediaType([In] ref WM_MEDIA_TYPE pType);
        /// <summary>
        /// Retrieves the connection name specified in the profile.
        /// </summary>
        /// <param name="pwszName">Pointer to a wide-character null-terminated string containing the connection name.
        /// Pass NULL to retrieve the length required for the name.</param>
        /// <param name="pcchName">On input, a pointer to a variable containing the length of the pwszName array
        /// in wide characters (2 bytes). On output, if the method succeeds, the variable contains the length
        /// of the name, including the terminating null character.</param>
        [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        void GetConnectionName([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pwszName,
                               [In, Out] ref ushort pcchName);
        /// <summary>
        /// Not implemented in this release. Returns an empty string.
        /// </summary>
        /// <param name="pwszName">Pointer to a wide-character null-terminated string containing the name.
        /// Pass NULL to retrieve the length required for the name.</param>
        /// <param name="pcchName">On input, a pointer to a variable containing the length of the pwszName array
        /// in wide characters (2 bytes). On output, if the method succeeds, the variable contains the length
        /// of the name, including the terminating null character.</param>
        [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
        void GetGroupName([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pwszName,
                          [In, Out] ref ushort pcchName);
    }
    /// <summary>
    /// The IWMOutputMediaProps interface is used to retrieve the properties of an output stream.
    /// 
    /// An IWMOutputMediaProps object is created by a call to IWMReader.GetOutputFormat or
    /// IWMReader.GetOutputProps.
    /// 
    /// Methods
    /// 
    /// The IWMOutputMediaProps interface inherits from IWMMediaProps.
    /// </summary>
    [ComImport]
    [Guid("96406BD7-2B2B-11d3-B36B-00C04F6108FF")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IWMOutputMediaProps : IWMMedi