|
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 | 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 |
|
| Unknown (IUnknown *unknown, bool addref=false) noexcept |
|
| Unknown (REFIID iid, const Unknown &unknown, bool throwIfNoInterface=true) |
|
| Unknown (const Unknown &other) noexcept |
|
| Unknown (Unknown &&other) noexcept |
|
| ~Unknown () noexcept |
|
constexpr | operator bool () const noexcept |
|
Unknown & | operator= (const Unknown &other) noexcept |
|
Unknown & | operator= (Unknown &&other) noexcept |
|
void | swap (Unknown &other) noexcept |
|
void | ResetPtr (IUnknown *other=nullptr, bool addRef=false) noexcept |
|
Unknown & | operator= (nullptr_t) |
|
IUnknown * | Detach () |
|
template<typename T >
requires std::is_base_of_v<Unknown, T > |
T | As () const |
|
template<typename T >
requires std::is_base_of_v<Unknown, T> |
bool | Is () const noexcept |
|
template<typename T >
requires std::is_base_of_v<IUnknown, T> |
ComPtr< T > | As () const |
|
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 |
|
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). If the COM object implements the interface, then it returns a pointer to that interface after calling IUnknown::AddRef on it.
|
|
template<typename T >
requires std::is_base_of_v<IUnknown, T> |
bool | QueryInterface (T **itf) const |
|
constexpr bool | operator== (const Unknown &other) const noexcept |
|
constexpr bool | operator!= (const Unknown &other) const noexcept |
|
constexpr bool | operator== (const IUnknown *other) const noexcept |
|
constexpr bool | operator!= (const IUnknown *other) const noexcept |
|
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.