Windows Media Format SDK Interfaces

The following two tables describe the interfaces supported by this SDK and show their relationship to objects and other interfaces.

Interface Description
INSNetSourceCreator Creates an administrative network source plug-in, which can be used to cache passwords and locate proxy servers.
INSSBuffer Controls a buffer stored in a buffer object. This interface is used for passing samples to and from methods in this SDK.
INSSBuffer2 Inherits from INSSBuffer. The new methods of this interface are undocumented because they are not implemented in this release.
INSSBuffer3 Sets and retrieves buffer properties. Buffer properties are used to convey information with a buffer when passed to or from methods of this SDK.
INSSBuffer4 Enumerates buffer properties.
IReferenceClock Provides access to a standard reference clock.
IRMGetLicense Performs client-side license acquisition.
IWMAddressAccess Controls IP access lists on the writer network sink object.
IWMAddressAccess2 Adds IPv6 support to the IWMAddressAccess interface.
IWMAuthorizer Provides access to certificates.
IWMBackupRestoreProps Sets, retrieves, and removes the properties required by the IWMLicenseBackup and IWMLicenseRestore interfaces.
IWMBandwidthSharing Configures bandwidth sharing objects. Bandwidth sharing objects are created by profile objects to specify streams that, regardless of their individual bit rates, will never use more than a certain amount of bandwidth between them.
IWMClientConnections Retrieves information about clients connected to a writer network sink object.
IWMClientConnections2 Retrieves advanced information about clients connected to a writer network sink object.
IWMCodecAMVideoAccelerator Exposed by the Windows Media Decoder DMO and called by a media player's source filter to set up the various connections required to enable DirectX VA for decoding of Windows Media Video content.
IWMCodecInfo Retrieves the available formats for the supported audio codecs loaded on the system. These formats are used when creating audio streams in profiles.
IWMCodecInfo2 Provides access to the names of codecs and descriptions of the formats supported by each.
IWMCodecInfo3 Provides access to codec properties and audio format properties. Also enables you to query codecs for feature support.
IWMCodecVideoAccelerator This interface is not supported. Use IWMCodecAMVideoAccelerator instead.
IWMCredentialCallback Acquires the credentials of users and checks that they have permission to access a remote site.
IWMDeviceRegistration Manages the device registration database, which contains entries for digital media playback devices connected to local networks.
IWMDRMEditor Enables applications to examine DRM header properties without having a license for the protected content.
IWMDRMMessageParser Parses messages received from digital media playback devices.
IWMDRMReader Acquires licenses, configures DRM properties, and individualizes clients.
IWMDRMReader2 Reads licenses created by using the Windows Media Rights Manager 10 SDK.
IWMDRMReader3 Enables content transcription by providing a method to get protection systems approved by a license.
IWMDRMTranscryptor Converts DRM-protected content into a data stream that can be sent using the Windows Media DRM 10 for Network Devices secure transfer protocol.
IWMDRMWriter Provides license creation capabilities from the writer object.
IWMDRMWriter2 Configures the writer to accept stream samples containing data encrypted for streaming to devices that support Windows Media DRM 10 for Network Devices.
IWMDRMWriter3 Enables writing of encrypted stream samples for importing protected content.
IWMGetSecureChannel This interface is used by one communication party to get the other party's IWMSecureChannel interface.
IWMHeaderInfo Manages header information, such as metadata, markers, and so on.
IWMHeaderInfo2 Provides access to information about the codecs used to create the file.
IWMHeaderInfo3 Provides attribute language support and other advanced metadata features.
IWMImageInfo Retrieves ID3v2 "APIC" frames from a file. Use of this interface should be avoided in favor of the WM/Picture attribute.
IWMIndexer Provides methods to manually index files.
IWMIndexer2 Provides indexing configuration options.
IWMInputMediaProps Manages the properties of an input media stream.
IWMIStreamProps Reads the properties of an IStream object.
IWMLanguageList Manages the language list for an ASF file.
IWMLicenseBackup Backs up licenses, typically so that they can be restored onto another computer.
IWMLicenseRestore Restores licenses.
IWMMediaProps Provides access to the media type structure for a stream.
IWMMetadataEditor Provides file management for metadata editing.
IWMMetadataEditor2 Provides an improved method for opening files for use by the metadata editor.
IWMMutualExclusion Configures mutual exclusion objects. A mutual exclusion object is created by a profile object to specify a group of mutually exclusive streams.
IWMMutualExclusion2 Adds grouping and naming support for mutual exclusion.
IWMOutputMediaProps Manages the properties of an output stream.
IWMPacketSize Manages the maximum size of packets in an ASF file.
IWMPacketSize2 Manages the minimum size of packets in an ASF file.
IWMPlayerHook Implemented by a player application that uses DirectX Video Acceleration (DirectX VA). It enables application-specific processing to be performed when samples from a video stream are passed to the DirectX VA enabled video card for decompression.
IWMPlayerTimestampHook Implemented on the player or player source filter. It enables the filter to modify the time stamps on the video samples before delivering them downstream.
IWMProfile Manages the creation and editing of profiles. Profiles describe the format of a file, such as stream type, bit rates, and so on. Most applications use existing profiles and do not need to implement this interface.
IWMProfile2 Provides access to profile IDs.
IWMProfile3 Provides methods for dealing with bandwidth sharing, stream prioritization, and other advanced features supported by profiles.
IWMProfileManager Manages the loading and saving of profiles.
IWMProfileManager2 Manages the version numbers of system profiles used by the profile manager object.
IWMProfileManagerLanguage Manages the language of the enumerated system profiles.
IWMPropertyVault Provides a standardized interface for managing properties.
IWMProximityDetection Validates a device on a local network. A device must be validated before it can receive data using the Windows Media DRM 10 for Network Devices secure transfer protocol.
IWMReader Manages the asynchronous reading of ASF files.
IWMReaderAccelerator Implemented on the WM Reader object. It is called by a player or a player source filter to obtain interfaces from the decoder DMO.
IWMReaderAdvanced Provides advanced features of the reader, such as a user-provided clock, buffer allocation, return statistics, and receiving stream selection notifications.
IWMReaderAdvanced2 Provides an additional range of advanced methods for an existing reader object.
IWMReaderAdvanced3 Provides additional advanced methods for the reader object.
IWMReaderAdvanced4 Provides support for language selection and other advanced reading features.
IWMReaderAdvanced5 Enables you to associate a player-hook callback interface with the reader object.
IWMReaderAdvanced6 Enables sample protection.
IWMReaderAllocatorEx Provides expanded alternatives to the AllocateForOutput and AllocateForStream methods of the IWMReaderCallbackAdvanced interface.
IWMReaderCallback Implemented by the application to provide sample and status information about a current reading operation.
IWMReaderCallbackAdvanced Optionally implemented by the application to provide advanced functionality to an existing reader callback object.
IWMReaderNetworkConfig Manages network configuration settings.
IWMReaderNetworkConfig2 Provides additional network configuration features.
IWMReaderPlaylistBurn Confirms the DRM rights for copying the files in a playlist to CD.
IWMReaderStreamClock Used to set and cancel timers on stream clocks, as well as to retrieve the current value of the stream clock.
IWMReaderTimecode Provides information about SMPTE time codes in a file.
IWMReaderTypeNegotiation Provides a single method that can be used to test whether certain changes to the output properties of a stream are working properly.
IWMRegisterCallback Enables the application to get status messages from a sink object.
IWMRegisteredDevice Provides access to the data in an entry in the device registration database.
IWMSBufferAllocator Provides methods for allocating buffers on a server.
IWMSecureChannel Provides methods that allow two DLLs to validate each other and perform secure communication
IWMSInternalAdminNetSource Manages the password cache and proxy location.
IWMSInternalAdminNetSource2 Provides more secure password caching methods than IWMSInternalAdminNetSource.
IWMSInternalAdminNetSource3 Provides an improved method to locate proxy servers.
IWMStatusCallback Implemented by the application to respond to the status of several objects of this SDK.
IWMStreamConfig Manages the configuration of streams for use in profiles.
IWMStreamConfig2 Provides additional stream-manipulation methods.
IWMStreamConfig3 Manages language information for streams.
IWMStreamList Manages the various objects that define relationships between streams.
IWMStreamPrioritization Provides methods to configure the stream prioritization object.
IWMSyncReader Provides the ability to read files with synchronous calls.
IWMSyncReader2 Adds SMPTE time code support to the synchronous reader.
IWMVideoMediaProps Manages the properties of a video stream.
IWMWatermarkInfo Provides access to the available watermarks.
IWMWriter Used as the main interface for writing ASF files.
IWMWriterAdvanced Provides advanced functionality for an existing writer object.
IWMWriterAdvanced2 Provides some advanced functionality, particularly for handling deinterlaced video.
IWMWriterAdvanced3 Provides methods for detailed writer statistics.
IWMWriterFileSink Manages a file sink object.
IWMWriterFileSink2 Provides extended management of a file sink object.
IWMWriterFileSink3 Further extends the functionality of the file sink object.
IWMWriterNetworkSink Manages a network sink object.
IWMWriterPostView Manages the output of samples from the writer. Used to verify encoded content for a file during the encoding process.
IWMWriterPostViewCallback Implemented by the application to receive postview samples from the writer.
IWMWriterPreprocess Manages settings for multi-pass encoding.
IWMWriterPushSink Manages a push sink object.
IWMWriterSink Manages raw Windows Media Format input from the writer interfaces. Used as a base interface for the other writer sink interfaces.


The following table shows the inheritance of each interface and the objects from which an instance can be obtained.

Interface Inherits from Objects
INSNetSourceCreator IUnknown Source Creator Object
INSSBuffer IUnknown Buffer Object
INSSBuffer2 INSSBuffer Buffer Object
INSSBuffer3 INSSBuffer2 Buffer Object
INSSBuffer4 INSSBuffer3 Buffer Object
IReferenceClock IUnknown Reader Object
IWMAddressAccess IUnknown Writer Network Sink Object
IWMAddressAccess2 IWMAddressAccess Writer Network Sink Object
IWMBackupRestoreProps IUnknown Backup Restorer Object
IWMBandwidthSharing IWMStreamList Bandwidth Sharing Object
IWMClientConnections IUnknown Writer Network Sink Object
IWMClientConnections2 IWMClientConnections Writer Network Sink Object
IWMCodecAMVideoAccelerator IUnknown Windows Media decoder DMO
IWMCodecInfo IUnknown Profile Manager Object
IWMCodecInfo2 IWMCodecInfo Profile Manager Object
IWMCodecInfo3 IWMCodecInfo2 Profile Manager Object
IWMCredentialCallback IUnknown Implemented by the application
IWMDRMEditor IUnknown Metadata Editor Object
IWMDRMReader IUnknown Reader Object
IWMDRMWriter IUnknown Writer Object
IWMHeaderInfo IUnknown Metadata Editor Object, Reader Object, Synchronous Reader Object, Writer Object
IWMHeaderInfo2 IWMHeaderInfo Metadata Editor Object, Reader Object, Synchronous Reader Object, Writer Object
IWMHeaderInfo3 IWMHeaderInfo2 Metadata Editor Object, Reader Object, Synchronous Reader Object, Writer Object
IWMImageInfo IUnknown Metadata Editor Object, Reader Object, Synchronous Reader Object
IWMIndexer IUnknown Indexer Object
IWMIndexer2 IWMIndexer Indexer Object
IWMInputMediaProps IWMMediaProps Input Media Properties Object
IWMIStreamProps IUnknown Stream object (IStream)
IWMLanguageList IUnknown Profile Object, Metadata Editor Object, Reader Object, Synchronous Reader Object, Writer Object
IWMLicenseBackup IUnknown Backup Restorer Object
IWMLicenseRestore IUnknown Backup Restorer Object
IWMMediaProps IUnknown Input Media Properties Object, Output Media Properties Object, Stream Configuration Object
IWMMetadataEditor IUnknown Metadata Editor Object
IWMMetadataEditor2 IWMMetadataEditor Metadata Editor Object
IWMMutualExclusion IWMStreamList Mutual Exclusion Object
IWMMutualExclusion2 IWMMutualExclusion Mutual Exclusion Object
IWMOutputMediaProps IUnknown Output Media Properties Object
IWMPacketSize IUnknown Profile Manager Object
IWMPacketSize2 IWMPacketSize Profile Manager Object
IWMPlayerHook IUnknown Implemented by the application
IWMPlayerTimestampHook IUnknown Source filter
IWMProfile IUnknown Profile Object
IWMProfile2 IWMProfile Profile Object
IWMProfile3 IWMProfile2 Profile Object
IWMProfileManager IUnknown Profile Manager Object
IWMProfileManager2 IWMProfileManager Profile Manager Object
IWMProfileManagerLanguage IUnknown Profile Manager Object
IWMPropertyVault IUnknown Stream Configuration Object
IWMReader IUnknown Reader Object
IWMReaderAccelerator IUnknown Reader Object
IWMReaderAdvanced IUnknown Reader Object
IWMReaderAdvanced2 IWMReaderAdvanced Reader Object
IWMReaderAdvanced3 IWMReaderAdvanced2 Reader Object
IWMReaderAdvanced4 IWMReaderAdvanced3 Reader Object
IWMReaderAllocatorEx IUnknown Implemented by the application
IWMReaderCallback IWMStatusCallback Implemented by the application
IWMReaderCallbackAdvanced IUnknown Implemented by the application
IWMReaderNetworkConfig IUnknown Reader Object
IWMReaderNetworkConfig2 IWMReaderNetworkConfig Reader Object
IWMReaderStreamClock IUnknown Reader Object
IWMReaderTimecode IUnknown Reader Object
IWMReaderTypeNegotiation IUnknown Reader Object
IWMRegisterCallback IUnknown Implemented by the application
IWMSBufferAllocator IUnknown Implemented by a network server
IWMSInternalAdminNetSource IUnknown Network source administrator object
IWMSInternalAdminNetSource2 IWMSInternalAdminNetSource Network source administrator object
IWMSInternalAdminNetSource3 IWMSInternalAdminNetSource2 Network source administrator object
IWMStatusCallback IUnknown Implemented by the application
IWMStreamConfig IUnknown Stream Configuration Object
IWMStreamConfig2 IWMStreamConfig Stream Configuration Object
IWMStreamConfig3 IWMStreamConfig2 Stream Configuration Object
IWMStreamList IUnknown Bandwidth Sharing Object, Mutual Exclusion Object
IWMStreamPrioritization IUnknown Stream Prioritization Object
IWMSyncReader IUnknown Synchronous Reader Object
IWMSyncReader2 IWMSyncReader Synchronous Reader Object
IWMVideoMediaProps IWMMediaProps Stream Configuration Object
IWMWatermarkInfo IUnknown Writer Object
IWMWriter IUnknown Writer Object
IWMWriterAdvanced IUnknown Writer Object
IWMWriterAdvanced2 IWMWriterAdvanced Writer Object
IWMWriterAdvanced3 IWMWriterAdvanced2 Writer Object
IWMWriterFileSink IWMWriterSink Writer File Sink Object
IWMWriterFileSink2 IWMWriterFileSink Writer File Sink Object
IWMWriterFileSink3 IWMWriterFileSink2 Writer File Sink Object
IWMWriterNetworkSink IWMWriterSink Writer Network Sink Object
IWMWriterPostView IUnknown Writer Object
IWMWriterPostViewCallback IUnknown Implemented by the application
IWMWriterPreprocess IUnknown Writer Object
IWMWriterPushSink IWMWriterSink Writer Push Sink Object
IWMWriterSink IUnknown Writer File Sink Object, Writer Network Sink Object, Writer Push Sink Object



The interface identifier for each of the interfaces in this SDK is the name of the interface preceded by "IID_". For example, the identifier for the IWMReaderAdvanced interface is IID_IWMReaderAdvanced. To obtain a pointer to the IWMReaderAdvanced interface of a reader object, use the following code, where pReader is a pointer to an IWMReader interface:

IWMReaderAdvanced *pReaderAdvanced;
hr = pReader->QueryInterface(IID_IWMReaderAdvanced,
                             (LPVOID*) &pReaderAdvanced);


Programming Reference