Media Foundation メモ1: IMFAttributes

IMFAttributesインターフェースを継承するクラス群は key/value のセットで管理される値(Attribute)を複数管理するデータストアです。

keyの型はGUID
valueの型は以下の任意の型である

  • Unsigned 32-bit integer (UINT32).
  • Unsigned 64-bit integer (UINT64).
  • 64-bit floating-point number.
  • GUID.
  • ワイドキャラクタ Null終端文字列
  • Byte array.
  • IUnknown pointer.

それぞれの型のためにSet○○(key,value),Get○○(key,value) というメンバ関数が用意されている

空のデータストアを作成は HRESULT MFCreateAttributes()を用い、
解放はRelease()メンバ関数を用いる。

//————————————————-

#include<mfidl.h>	// Mfuuid.lib
#include<mfapi.h>	// Mfplat.lib

#include

void Initialize()
{
    HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);	
    MFStartup(MF_VERSION);
}

void CleanUp()
{
    MFShutdown();
    CoUninitialize();
}

int main()
{
    Initialize();
	
    GUID guid={0}; //GUID 適当に初期化

	
    IMFAttributes *pAttr = nullptr;
    HRESULT hr = MFCreateAttributes(&pAttr,1);

    if (SUCCEEDED(hr))
    {
        HRESULT h = pAttr->SetUINT32(guid,1);

        UINT32 i=0; 
        HRESULT h2= 	pAttr->GetUINT32(guid,&i);
		
        std::cout<<i<Release();
        pAttr = nullptr;
	
    }
    CleanUp();
 }

IMFAttributes interface

広告

akatukisiden について

フリーランスプログラマ 使用言語はC++,C#とそのつなぎのC++/CLI 専門はクライアントアプリ開発
カテゴリー: Microsoft Media Foundation タグ: , , , , , , , , , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中