Windows Media Format SDK Interfaces
[The feature associated with this page, Windows Media Format 11 SDK, is a legacy feature. It has been superseded by Source Reader and Sink Writer. Source Reader and Sink Writer have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use Source Reader and Sink Writer instead of Windows Media Format 11 SDK, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
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.
Remarks
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);
Related topics