Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Windows::Media::MFAttributes Class Reference

#include <HWMFObjects.h>

Inheritance diagram for Harlinn::Windows::Media::MFAttributes:
[legend]
Collaboration diagram for Harlinn::Windows::Media::MFAttributes:
[legend]

Public Member Functions

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< TGetBlob (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
 
- Public Member Functions inherited from Harlinn::Common::Core::Unknown
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
 
Unknownoperator= (const Unknown &other) noexcept
 
Unknownoperator= (Unknown &&other) noexcept
 
void swap (Unknown &other) noexcept
 
void ResetPtr (IUnknown *other=nullptr, bool addRef=false) noexcept
 
Unknownoperator= (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< TAs () 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>
TGetInterfacePointer () 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
 

Static Public Member Functions

static MFAttributes Create (UInt32 initialSize)
 
static MFAttributes Create (const Media::Attributes &attributes)
 
- Static Public Member Functions inherited from Harlinn::Common::Core::Unknown
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const CLSID &clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const wchar_t *clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const WideString &clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromProgId (const wchar_t *progId, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromProgId (const WideString &progId, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromDll (const ModuleHandle &dll, const CLSID &clsid)
 

Additional Inherited Members

- Public Types inherited from Harlinn::Common::Core::Unknown
typedef IUnknown InterfaceType
 
- Protected Attributes inherited from Harlinn::Common::Core::Unknown
IUnknown * unknown_
 

Detailed Description

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.

Member Function Documentation

◆ Compare() [1/4]

bool Harlinn::Windows::Media::MFAttributes::Compare ( const MFAttributes & other,
MF_ATTRIBUTES_MATCH_TYPE matchType ) const
inline

◆ Compare() [2/4]

void Harlinn::Windows::Media::MFAttributes::Compare ( const MFAttributes & other,
MF_ATTRIBUTES_MATCH_TYPE matchType,
BOOL * result ) const
inline

◆ Compare() [3/4]

bool Harlinn::Windows::Media::MFAttributes::Compare ( IMFAttributes * other,
MF_ATTRIBUTES_MATCH_TYPE matchType ) const
inline

◆ Compare() [4/4]

void Harlinn::Windows::Media::MFAttributes::Compare ( IMFAttributes * other,
MF_ATTRIBUTES_MATCH_TYPE matchType,
BOOL * result ) const
inline

◆ CompareItem() [1/2]

bool Harlinn::Windows::Media::MFAttributes::CompareItem ( const Guid & key,
REFPROPVARIANT value ) const
inline

◆ CompareItem() [2/2]

void Harlinn::Windows::Media::MFAttributes::CompareItem ( const Guid & key,
REFPROPVARIANT value,
BOOL * result ) const
inline

◆ CopyAllItems() [1/2]

void Harlinn::Windows::Media::MFAttributes::CopyAllItems ( const MFAttributes & destination) const
inline

◆ CopyAllItems() [2/2]

void Harlinn::Windows::Media::MFAttributes::CopyAllItems ( IMFAttributes * destination) const
inline

◆ Create() [1/2]

static MFAttributes Harlinn::Windows::Media::MFAttributes::Create ( const Media::Attributes & attributes)
inlinestatic

◆ Create() [2/2]

static MFAttributes Harlinn::Windows::Media::MFAttributes::Create ( UInt32 initialSize)
inlinestatic

◆ DeleteAllItems()

void Harlinn::Windows::Media::MFAttributes::DeleteAllItems ( ) const
inline

◆ DeleteItem()

bool Harlinn::Windows::Media::MFAttributes::DeleteItem ( const Guid & key) const
inline

◆ GetAllocatedBlob()

bool Harlinn::Windows::Media::MFAttributes::GetAllocatedBlob ( const Guid & key,
UINT8 ** buffer,
UINT32 * blobSize ) const
inline

◆ GetAllocatedString()

bool Harlinn::Windows::Media::MFAttributes::GetAllocatedString ( const Guid & key,
LPWSTR * buffer,
UINT32 * length ) const
inline

◆ GetBlob() [1/2]

template<typename T >
Media::BlobValue< T > Harlinn::Windows::Media::MFAttributes::GetBlob ( const Guid & key) const
inline

◆ GetBlob() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetBlob ( const Guid & key,
UINT8 * buffer,
UINT32 bufferSize,
UINT32 * blobSize = nullptr ) const
inline

◆ GetBlobSize() [1/2]

UINT32 Harlinn::Windows::Media::MFAttributes::GetBlobSize ( const Guid & key) const
inline

◆ GetBlobSize() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetBlobSize ( const Guid & key,
UINT32 * blobSize ) const
inline

◆ GetCount() [1/2]

UInt32 Harlinn::Windows::Media::MFAttributes::GetCount ( ) const
inline

◆ GetCount() [2/2]

void Harlinn::Windows::Media::MFAttributes::GetCount ( UINT32 * result) const
inline

◆ GetDouble() [1/2]

double Harlinn::Windows::Media::MFAttributes::GetDouble ( const Guid & key) const
inline

◆ GetDouble() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetDouble ( const Guid & key,
double * value ) const
inline

◆ GetDoubleOrDefault()

double Harlinn::Windows::Media::MFAttributes::GetDoubleOrDefault ( const Guid & key,
double defaultValue = 0.0 ) const
inline

◆ GetGUID() [1/2]

Guid Harlinn::Windows::Media::MFAttributes::GetGUID ( const Guid & key) const
inline

◆ GetGUID() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetGUID ( const Guid & key,
Guid * value ) const
inline

◆ GetGUIDOrDefault()

Guid Harlinn::Windows::Media::MFAttributes::GetGUIDOrDefault ( const Guid & key,
const Guid & defaultValue = Guid() ) const
inline

◆ GetItem()

bool Harlinn::Windows::Media::MFAttributes::GetItem ( const Guid & key,
PROPVARIANT * value ) const
inline

◆ GetItemByIndex()

void Harlinn::Windows::Media::MFAttributes::GetItemByIndex ( UINT32 index,
Guid * key,
PROPVARIANT * value = nullptr ) const
inline

◆ GetItemKeyByIndex()

Guid Harlinn::Windows::Media::MFAttributes::GetItemKeyByIndex ( UINT32 index) const
inline

◆ GetItemType() [1/2]

MF_ATTRIBUTE_TYPE Harlinn::Windows::Media::MFAttributes::GetItemType ( const Guid & key) const
inline

◆ GetItemType() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetItemType ( const Guid & key,
MF_ATTRIBUTE_TYPE * type ) const
inline

◆ GetString() [1/2]

WideString Harlinn::Windows::Media::MFAttributes::GetString ( const Guid & key) const
inline

◆ GetString() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetString ( const Guid & key,
LPWSTR buffer,
UINT32 bufferSize,
UINT32 * length = nullptr ) const
inline

◆ GetStringLength() [1/2]

UINT32 Harlinn::Windows::Media::MFAttributes::GetStringLength ( const Guid & key) const
inline

◆ GetStringLength() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetStringLength ( const Guid & key,
UINT32 * length ) const
inline

◆ GetUINT32() [1/2]

UINT32 Harlinn::Windows::Media::MFAttributes::GetUINT32 ( const Guid & key) const
inline

◆ GetUINT32() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetUINT32 ( const Guid & key,
UINT32 * value ) const
inline

◆ GetUINT32OrDefault()

UINT32 Harlinn::Windows::Media::MFAttributes::GetUINT32OrDefault ( const Guid & key,
UINT32 defaultValue = 0 ) const
inline

◆ GetUINT64() [1/2]

UINT64 Harlinn::Windows::Media::MFAttributes::GetUINT64 ( const Guid & key) const
inline

◆ GetUINT64() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetUINT64 ( const Guid & key,
UINT64 * value ) const
inline

◆ GetUINT64OrDefault()

UINT64 Harlinn::Windows::Media::MFAttributes::GetUINT64OrDefault ( const Guid & key,
UINT64 defaultValue = 0 ) const
inline

◆ GetUnknown() [1/2]

template<typename T >
requires std::is_base_of_v<Unknown,T>
T Harlinn::Windows::Media::MFAttributes::GetUnknown ( const Guid & key) const
inline

◆ GetUnknown() [2/2]

bool Harlinn::Windows::Media::MFAttributes::GetUnknown ( const Guid & key,
const Guid & riid,
LPVOID * result ) const
inline

◆ HasAttribute()

bool Harlinn::Windows::Media::MFAttributes::HasAttribute ( const Guid & key) const
inline

◆ lock()

void Harlinn::Windows::Media::MFAttributes::lock ( ) const
inline

◆ LockStore()

void Harlinn::Windows::Media::MFAttributes::LockStore ( ) const
inline

◆ Read()

template<typename ReaderT >
void Harlinn::Windows::Media::MFAttributes::Read ( ReaderT & reader) const
inline

◆ SetBlob() [1/4]

template<typename T >
void Harlinn::Windows::Media::MFAttributes::SetBlob ( const Guid & key,
const Media::BlobValue< T > & blob ) const
inline

◆ SetBlob() [2/4]

void Harlinn::Windows::Media::MFAttributes::SetBlob ( const Guid & key,
const std::span< byte > & buffer ) const
inline

◆ SetBlob() [3/4]

void Harlinn::Windows::Media::MFAttributes::SetBlob ( const Guid & key,
const std::vector< byte > & buffer ) const
inline

◆ SetBlob() [4/4]

void Harlinn::Windows::Media::MFAttributes::SetBlob ( const Guid & key,
const UINT8 * buffer,
UINT32 bufferSize ) const
inline

◆ SetDouble()

void Harlinn::Windows::Media::MFAttributes::SetDouble ( const Guid & key,
double value ) const
inline

◆ SetGUID()

void Harlinn::Windows::Media::MFAttributes::SetGUID ( const Guid & key,
const Guid & value ) const
inline

◆ SetItem()

void Harlinn::Windows::Media::MFAttributes::SetItem ( const Guid & key,
REFPROPVARIANT Value ) const
inline

◆ SetString() [1/2]

void Harlinn::Windows::Media::MFAttributes::SetString ( const Guid & key,
const WideString & value ) const
inline

◆ SetString() [2/2]

void Harlinn::Windows::Media::MFAttributes::SetString ( const Guid & key,
LPCWSTR value ) const
inline

◆ SetUINT32()

void Harlinn::Windows::Media::MFAttributes::SetUINT32 ( const Guid & key,
UINT32 value ) const
inline

◆ SetUINT64()

void Harlinn::Windows::Media::MFAttributes::SetUINT64 ( const Guid & key,
UINT64 value ) const
inline

◆ SetUnknown()

void Harlinn::Windows::Media::MFAttributes::SetUnknown ( const Guid & key,
IUnknown * unknown ) const
inline

◆ unlock()

void Harlinn::Windows::Media::MFAttributes::unlock ( ) const
inline

◆ UnlockStore()

void Harlinn::Windows::Media::MFAttributes::UnlockStore ( ) const
inline

◆ Write()

template<typename WriterT >
void Harlinn::Windows::Media::MFAttributes::Write ( WriterT & writer)
inline

The documentation for this class was generated from the following file: