Win32 API 日本語リファレンス
ホームMedia.WindowsMediaFormat › IWMProfileManager

IWMProfileManager

COM
IIDd16679f2-6ca0-472d-8d31-2f5d55aee155継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMProfileManager インターフェイスは、プロファイルの作成、既存プロファイルの読み込み、およびプロファイルの保存に使用します。

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT CreateEmptyProfile(WMT_VERSION dwVersion, IWMProfile** ppProfile)

CreateEmptyProfile メソッドは、空のプロファイルオブジェクトを作成します。プロファイルオブジェクトのインターフェイスを使用して、プロファイルを構成できます。プロファイルの構成が完了したら、IWMProfileManager::SaveProfile を使用して文字列に保存できます。

dwVersionWMT_VERSIONinWMT_VERSION 列挙型のメンバーを 1 つ格納する DWORD
ppProfileIWMProfile**outIWMProfile インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
使用可能なメモリが不足しています。
E_INVALIDARG
ppProfile パラメーターが NULL です。

解説(Remarks)

Windows Media® Audio and Video 9 Series コーデックを使用するプロファイルを作成するには、このメソッドを使用します。詳細については、ストリーム構成の再利用を参照してください。

vtbl 4 HRESULT LoadProfileByID(GUID* guidProfile, IWMProfile** ppProfile)

LoadProfileByID メソッドは、グローバル一意識別子で識別されるシステムプロファイルを読み込みます。カスタムプロファイルを読み込むには、IWMProfileManager::LoadProfileByData を使用します。

guidProfileGUID*inプロファイルを識別する GUID。詳細については、システムプロファイルの使用にある定義済み定数の表を参照してください。
ppProfileIWMProfile**outIWMProfile インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
使用可能なメモリが不足しています。
E_INVALIDARG
ppProfile パラメーターが NULL です。

解説(Remarks)

ID を持つのはシステムプロファイルのみです。Windows Media 9 Series コーデック用のシステムプロファイルは存在しないため、このメソッドは主に、Windows Media 9 Series コーデックを使用してカスタムプロファイルに変換するためのバージョン 8 のシステムプロファイルを取得する用途で役立ちます。詳細については、ストリーム構成の再利用を参照してください。

vtbl 5 HRESULT LoadProfileByData(LPWSTR pwszProfile, IWMProfile** ppProfile)

LoadProfileByData メソッドは、プロファイルオブジェクトを作成し、保存された文字列のデータをそこに設定します。カスタムプロファイルを操作するには、このメソッドを使用する必要があります。システムプロファイルには、LoadProfileByID または LoadSystemProfile のいずれかを使用してアクセスしてください。

pwszProfileLPWSTRinプロファイルを格納するワイド文字の null 終端文字列へのポインター。プロファイル文字列は 153600 ワイド文字までに制限されます。
ppProfileIWMProfile**outIWMProfile インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
使用可能なメモリが不足しています。
E_INVALIDARG
ppProfile または pwszProfile パラメーターが NULL です。

解説(Remarks)

この文字列は、IWMProfileManager::SaveProfile によって作成された XML 形式の文字列と一致する必要があります。慣例として、このような文字列をディスクに保存するときは「.prx」拡張子が付けられます。

vtbl 6 HRESULT SaveProfile(IWMProfile* pIWMProfile, LPWSTR pwszProfile, DWORD* pdwLength)

SaveProfile メソッドは、プロファイルを XML 形式の文字列に保存します。

pIWMProfileIWMProfile*in保存するプロファイルデータを格納するオブジェクトの IWMProfile インターフェイスへのポインター。
pwszProfileLPWSTRinプロファイルを格納するワイド文字の null 終端文字列へのポインター。必要な文字列の長さを取得するには、これを NULL に設定します。
pdwLengthDWORD*inout入力時には、pwszProfile 文字列の長さを指定します。出力時には、メソッドが成功した場合、終端の null 文字を含めてプロファイルの保持に必要な文字数を格納する DWORD へのポインターを指定します。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
使用可能なメモリが不足しています。
E_INVALIDARG
pIWMProfile または pdwLength パラメーターが NULL です。

解説(Remarks)

SaveProfile は 2 回呼び出す必要があります。1 回目の呼び出しでは、pwszProfileNULL を渡します。戻り時に、pdwLength の値がプロファイルを文字列形式で保持するために必要な長さに設定されます。その後、バッファーに必要な量のメモリを割り当て、2 回目の呼び出しでそのポインターを pwszProfile として渡すことができます。

この文字列にはプロファイルのすべての情報が含まれています。ユーザーに表示してはならず、変更してもいけません。保存済みプロファイルの設定を変更するには、プロファイルマネージャーを使用して読み込み、プロファイルオブジェクトおよび関連オブジェクトを使用して設定を変更してください。

カスタムプロファイルを後で使用するために保存するには、返された文字列の内容を .prx ファイルに保存する必要があります。.prx ファイルの詳細については、プロファイルを参照してください。

保存済みのカスタムプロファイルを読み込むには、.prx ファイルからプロファイルの内容を文字列にコピーし、IWMProfileManager::LoadProfileByData を使用します。

vtbl 7 HRESULT GetSystemProfileCount(DWORD* pcProfiles)

GetSystemProfileCount メソッドは、システムプロファイルの数を取得します。

pcProfilesDWORD*outシステムプロファイルの数へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
使用可能なメモリが不足しています。
E_INVALIDARG
pcProfiles パラメーターが NULL です。
NS_E_INVALIDPROFILE
システムプロファイルが見つかりませんでした。

解説(Remarks)

Windows Media 9 Series コーデック用のシステムプロファイルは存在しないため、このメソッドは主に、Windows Media 9 Series コーデックを使用してカスタムプロファイルに変換するためのバージョン 8 のシステムプロファイルを取得する用途で役立ちます。詳細については、ストリーム構成の再利用を参照してください。

このメソッドは、LoadSystemProfile と組み合わせてシステムプロファイルを反復処理するために使用できます。

どのシステムファイルが列挙されるかは、IWMProfileManager2::SetSystemProfileVersion メソッドによって決まります。ほとんどのアプリケーションでは、バージョンを WMT_VER_8_0 に設定する必要があります。バージョンを WMT_VER_9_0 に設定すると、返されるプロファイルは 0 になります。

vtbl 8 HRESULT LoadSystemProfile(DWORD dwProfileIndex, IWMProfile** ppProfile)

LoadSystemProfile メソッドは、インデックスで識別されるシステムプロファイルを読み込みます。目的のシステムプロファイルのインデックスがわからない場合は、IWMProfileManager::LoadProfileByID を使用する必要があります。カスタムプロファイルを読み込むには、IWMProfileManager::LoadProfileByData を使用します。

dwProfileIndexDWORDinプロファイルのインデックスを格納する DWORD
ppProfileIWMProfile**outIWMProfile インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
使用可能なメモリが不足しています。
E_INVALIDARG
ppProfile パラメーターが NULL です。

解説(Remarks)

Windows Media 9 Series コーデック用のシステムプロファイルは存在しないため、このメソッドは主に、Windows Media 9 Series コーデックを使用してカスタムプロファイルに変換するためのバージョン 8 のシステムプロファイルを取得する用途で役立ちます。詳細については、ストリーム構成の再利用を参照してください。

このメソッドは、GetSystemProfileCount と組み合わせてシステムプロファイルを反復処理するために使用できます。

アプリケーションは、(この呼び出しや SDK の他の箇所で使用される)プロファイルのインデックスが一定であることに依存してはなりません。Windows Media Format コンポーネントのアップグレードにより、これらのインデックスが変わることがあります。アプリケーションが固定のプロファイルを維持する必要がある場合は、IWMProfile2::GetProfileIDIWMProfileManager::LoadProfileByID を呼び出す必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWMProfileManager "{D16679F2-6CA0-472D-8D31-2F5D55AEE155}"
#usecom global IWMProfileManager IID_IWMProfileManager "{}"
#comfunc global IWMProfileManager_CreateEmptyProfile     3 int,sptr
#comfunc global IWMProfileManager_LoadProfileByID        4 var,sptr
#comfunc global IWMProfileManager_LoadProfileByData      5 wstr,sptr
#comfunc global IWMProfileManager_SaveProfile            6 sptr,wstr,var
#comfunc global IWMProfileManager_GetSystemProfileCount  7 var
#comfunc global IWMProfileManager_LoadSystemProfile      8 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。