| 
| IMFSourceBufferList *  | GetSourceBuffers_ () const | 
|   | 
| MFSourceBufferList  | GetSourceBuffers () const | 
|   | 
| IMFSourceBufferList *  | GetActiveSourceBuffers_ () const | 
|   | 
| MFSourceBufferList  | GetActiveSourceBuffers () const | 
|   | 
| MF_MSE_READY  | GetReadyState () const | 
|   | 
| double  | GetDuration () const | 
|   | 
| void  | SetDuration (_In_ double duration) const | 
|   | 
| void  | AddSourceBuffer (_In_ BSTR type, _In_ IMFSourceBufferNotify *pNotify, _Outptr_ IMFSourceBuffer **ppSourceBuffer) const | 
|   | 
| void  | RemoveSourceBuffer (_In_ IMFSourceBuffer *pSourceBuffer) const | 
|   | 
| void  | SetEndOfStream (_In_ MF_MSE_ERROR error) const | 
|   | 
| BOOL  | IsTypeSupported (_In_ BSTR type) const | 
|   | 
| IMFSourceBuffer *  | GetSourceBuffer_ (_In_ DWORD dwStreamIndex) const | 
|   | 
| MFSourceBuffer  | GetSourceBuffer (_In_ DWORD dwStreamIndex) const | 
|   | 
| constexpr  | Unknown () noexcept | 
|   | The default constructor ensures that the internal pointer to IUnknown is set to nullptr.  
  | 
|   | 
|   | Unknown (IUnknown *unknown, bool addref=false) noexcept | 
|   | Constructs a new Unknown, taking ownership of the interface pointer held by unknown.  
  | 
|   | 
|   | Unknown (REFIID iid, const Unknown &unknown, bool throwIfNoInterface=true) | 
|   | Initializes the new object to the interface identified by the iid parameter by querying the interface held by unknown for the requested interface.  
  | 
|   | 
|   | Unknown (const Unknown &other) noexcept | 
|   | Copy constructor, calls AddRef on the interface pointer held by other.  
  | 
|   | 
|   | Unknown (Unknown &&other) noexcept | 
|   | Move constructor takes ownership of the interface pointer held by other.  
  | 
|   | 
|   | ~Unknown () noexcept | 
|   | Destructor, calling Release on the wrapped interface.  
  | 
|   | 
| constexpr  | operator bool () const noexcept | 
|   | Returns true if this object references an interface.  
  | 
|   | 
| Unknown &  | operator= (const Unknown &other) noexcept | 
|   | Copy assignment, which does nothing if other holds the same interface pointer as this object; and if not, calls Release on the currently held interface pointer, then copying the interface pointer from other, calling AddRef on the newly assigned interface pointer.  
  | 
|   | 
| Unknown &  | operator= (Unknown &&other) noexcept | 
|   | Move assignment exchanges the current interface pointer, with the interface pointer held by other.  
  | 
|   | 
| void  | swap (Unknown &other) noexcept | 
|   | Exchanges the current interface pointer, with the interface pointer held by other.  
  | 
|   | 
| void  | ResetPtr (IUnknown *other=nullptr, bool addRef=false) noexcept | 
|   | Calls Release on the currently held interface pointer if the interface pointer held by other points to a different interface.  
  | 
|   | 
| Unknown &  | operator= (nullptr_t) | 
|   | Assigning nullptr to the object, releases the currently held interface pointer, and sets the interface pointer to nullptr.  
  | 
|   | 
| IUnknown *  | Detach () | 
|   | Returns the currently held interface pointer, setting the interface pointer of the object to nullptr.  
  | 
|   | 
template<typename T >  
requires std::is_base_of_v<Unknown, T > | 
| T  | As () const | 
|   | Creates an instance of the interface wrapper class T, by querying the interface pointer for the interface type wrapped by T.  
  | 
|   | 
template<typename T >  
requires std::is_base_of_v<Unknown, T> | 
| bool  | Is () const noexcept | 
|   | Returns true if the interface can successfully be queried for the interface wrapped by T.  
  | 
|   | 
template<typename T >  
requires std::is_base_of_v<IUnknown, T> | 
| ComPtr< T >  | As () const | 
|   | Creates an instance of the interface smart pointer ComPtr<T> for the interface T, by querying the interface pointer for the interface type T.  
  | 
|   | 
template<typename T >  
requires std::is_base_of_v<IUnknown, T> | 
| bool  | Is () const noexcept | 
|   | This function can be used to detect if an object supports a particular COM interface derived from IUnknown.  
  | 
|   | 
| template<typename T  = IUnknown>  | 
| T *  | GetInterfacePointer () const noexcept | 
|   | Retrieves a pointer to the interface wrapped by this object.  
  | 
|   | 
| bool  | QueryInterface (REFIID riid, void **itf) const | 
|   | Queries a COM object for a pointer to one of its interface; identifying the interface by a reference to its interface identifier (IID).  
  | 
|   | 
template<typename T >  
requires std::is_base_of_v<IUnknown, T> | 
| bool  | QueryInterface (T **itf) const | 
|   | Queries the interface for an interface pointer of type T.  
  | 
|   | 
| constexpr bool  | operator== (const Unknown &other) const noexcept | 
|   | Returns true if the interface pointer held by this object is the same as the interface pointer held by the other object.  
  | 
|   | 
| constexpr bool  | operator!= (const Unknown &other) const noexcept | 
|   | Returns true if the interface pointer held by this object is not the same as the interface pointer held by the other object.  
  | 
|   | 
| constexpr bool  | operator== (const IUnknown *other) const noexcept | 
|   | Returns true if the interface pointer held by this object is the same as the interface pointer held by other.  
  | 
|   | 
| constexpr bool  | operator!= (const IUnknown *other) const noexcept | 
|   | Returns true if the interface pointer held by this object is not the same as the interface pointer held by other.  
  | 
|   | 
 | 
| using  | InterfaceType = IUnknown | 
|   | Every derived class defines InterfaceType as the type of the interface wrapped by the derived class.  
  | 
|   | 
template<typename T  = Unknown>  
requires std::is_base_of_v<Unknown, T> | 
| static T  | CoCreateInstanceFromClassId (const CLSID &clsid, DWORD classContext=CLSCTX_INPROC_SERVER) | 
|   | Creates and default-initializes a single object of the class associated with a specified CLSID.  
  | 
|   | 
template<typename T  = Unknown>  
requires std::is_base_of_v<Unknown, T> | 
| static T  | CoCreateInstanceFromClassId (const wchar_t *clsid, DWORD classContext=CLSCTX_INPROC_SERVER) | 
|   | 
template<typename T  = Unknown>  
requires std::is_base_of_v<Unknown, T> | 
| static T  | CoCreateInstanceFromClassId (const WideString &clsid, DWORD classContext=CLSCTX_INPROC_SERVER) | 
|   | 
template<typename T  = Unknown>  
requires std::is_base_of_v<Unknown, T> | 
| static T  | CoCreateInstanceFromProgId (const wchar_t *progId, DWORD classContext=CLSCTX_INPROC_SERVER) | 
|   | 
template<typename T  = Unknown>  
requires std::is_base_of_v<Unknown, T> | 
| static T  | CoCreateInstanceFromProgId (const WideString &progId, DWORD classContext=CLSCTX_INPROC_SERVER) | 
|   | 
template<typename T  = Unknown>  
requires std::is_base_of_v<Unknown, T> | 
| static T  | CoCreateInstanceFromDll (const ModuleHandle &dll, const CLSID &clsid) | 
|   | 
| IUnknown *  | unknown_ | 
|   |