|
template<typename ReaderT > |
void | Read (ReaderT &reader) const |
|
template<typename WriterT > |
void | Write (WriterT &writer) |
|
bool | GetItem (const Guid &key, PROPVARIANT *value) const |
|
bool | GetItemType (const Guid &key, MF_ATTRIBUTE_TYPE *type) const |
|
bool | HasAttribute (const Guid &key) const |
|
MF_ATTRIBUTE_TYPE | GetItemType (const Guid &key) const |
|
void | CompareItem (const Guid &key, REFPROPVARIANT value, BOOL *result) const |
|
bool | CompareItem (const Guid &key, REFPROPVARIANT value) const |
|
void | Compare (IMFAttributes *other, MF_ATTRIBUTES_MATCH_TYPE matchType, BOOL *result) const |
|
void | Compare (const MFAttributes &other, MF_ATTRIBUTES_MATCH_TYPE matchType, BOOL *result) const |
|
bool | Compare (IMFAttributes *other, MF_ATTRIBUTES_MATCH_TYPE matchType) const |
|
bool | Compare (const MFAttributes &other, MF_ATTRIBUTES_MATCH_TYPE matchType) const |
|
bool | GetUINT32 (const Guid &key, UINT32 *value) const |
|
UINT32 | GetUINT32 (const Guid &key) const |
|
UINT32 | GetUINT32OrDefault (const Guid &key, UINT32 defaultValue=0) const |
|
bool | GetUINT64 (const Guid &key, UINT64 *value) const |
|
UINT64 | GetUINT64 (const Guid &key) const |
|
UINT64 | GetUINT64OrDefault (const Guid &key, UINT64 defaultValue=0) const |
|
bool | GetDouble (const Guid &key, double *value) const |
|
double | GetDouble (const Guid &key) const |
|
double | GetDoubleOrDefault (const Guid &key, double defaultValue=0.0) const |
|
bool | GetGUID (const Guid &key, Guid *value) const |
|
Guid | GetGUID (const Guid &key) const |
|
Guid | GetGUIDOrDefault (const Guid &key, const Guid &defaultValue=Guid()) const |
|
bool | GetStringLength (const Guid &key, UINT32 *length) const |
|
UINT32 | GetStringLength (const Guid &key) const |
|
bool | GetString (const Guid &key, LPWSTR buffer, UINT32 bufferSize, UINT32 *length=nullptr) const |
|
WideString | GetString (const Guid &key) const |
|
bool | GetAllocatedString (const Guid &key, LPWSTR *buffer, UINT32 *length) const |
|
bool | GetBlobSize (const Guid &key, UINT32 *blobSize) const |
|
UINT32 | GetBlobSize (const Guid &key) const |
|
bool | GetBlob (const Guid &key, UINT8 *buffer, UINT32 bufferSize, UINT32 *blobSize=nullptr) const |
|
template<typename T > |
Media::BlobValue< T > | GetBlob (const Guid &key) const |
|
bool | GetAllocatedBlob (const Guid &key, UINT8 **buffer, UINT32 *blobSize) const |
|
bool | GetUnknown (const Guid &key, const Guid &riid, LPVOID *result) const |
|
template<typename T >
requires std::is_base_of_v<Unknown,T> |
T | GetUnknown (const Guid &key) const |
|
void | SetItem (const Guid &key, REFPROPVARIANT Value) const |
|
bool | DeleteItem (const Guid &key) const |
|
void | DeleteAllItems () const |
|
void | SetUINT32 (const Guid &key, UINT32 value) const |
|
void | SetUINT64 (const Guid &key, UINT64 value) const |
|
void | SetDouble (const Guid &key, double value) const |
|
void | SetGUID (const Guid &key, const Guid &value) const |
|
void | SetString (const Guid &key, LPCWSTR value) const |
|
void | SetString (const Guid &key, const WideString &value) const |
|
void | SetBlob (const Guid &key, const UINT8 *buffer, UINT32 bufferSize) const |
|
void | SetBlob (const Guid &key, const std::span< byte > &buffer) const |
|
void | SetBlob (const Guid &key, const std::vector< byte > &buffer) const |
|
template<typename T > |
void | SetBlob (const Guid &key, const Media::BlobValue< T > &blob) const |
|
void | SetUnknown (const Guid &key, IUnknown *unknown) const |
|
void | SetUnknown (const Guid &key, const Unknown &unknown) const |
|
void | LockStore () const |
|
void | lock () const |
|
void | UnlockStore () const |
|
void | unlock () const |
|
void | GetCount (UINT32 *result) const |
|
UInt32 | GetCount () const |
|
void | GetItemByIndex (UINT32 index, Guid *key, PROPVARIANT *value=nullptr) const |
|
Guid | GetItemKeyByIndex (UINT32 index) const |
|
void | CopyAllItems (IMFAttributes *destination) const |
|
void | CopyAllItems (const MFAttributes &destination) 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 .
|
|
Provides a generic way to store key/value pairs on an object. The keys are GUIDs, and the values can be any of the following data types: UINT32, UINT64, double, GUID, wide-character string, byte array, or IUnknown pointer. The standard implementation of this interface holds a thread lock while values are added, deleted, or retrieved.
For a list of predefined attribute GUIDs, see Media Foundation Attributes. Each attribute GUID has an expected data type. The various "set" methods in MFAttributes do not validate the type against the attribute GUID. It is the application's responsibility to set the correct type for the attribute.
To create an empty attribute store, call MFAttributes::Create.