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

IWMBackupRestoreProps

COM
IID3c8e0da6-996f-4ff3-a1af-4838f9377e2e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMBackupRestoreProps インターフェイスは、IWMLicenseBackup および IWMLicenseRestore インターフェイスが必要とするプロパティを設定および取得します。

メソッド 6

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

vtbl 3 HRESULT GetPropCount(WORD* pcProps)

GetPropCount メソッドは、プロパティの数を取得します。

pcPropsWORD*outプロパティ数へのポインター。

戻り値

このメソッドは E_NOTIMPL を返します。

vtbl 4 HRESULT GetPropByIndex(WORD wIndex, LPWSTR pwszName, WORD* pcchNameLen, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)

GetPropByIndex メソッドは、インデックスによってプロパティの名前と値を取得します。

wIndexWORDinプロパティのインデックスを格納する WORD
pwszNameLPWSTRout名前を格納するワイド文字の null 終端文字列へのポインター。
pcchNameLenWORD*inout入力時には pwszName の長さを格納します。出力時には、終端の null 文字を含む pwszName の文字数を格納する変数を指します。
pTypeWMT_ATTR_DATATYPE*outWMT_ATTR_DATATYPE 列挙型のメンバーの 1 つを格納する変数へのポインター。
pValueBYTE*outプロパティの値を格納するバイト配列へのポインター。
pcbLengthWORD*inout入力時には pValue の長さを格納します。出力時には、pValue のうち使用されているバイト数を指します。

戻り値

このメソッドは E_NOTIMPL を返します。

解説(Remarks)

GetPropByIndex は 2 回呼び出す必要があります。1 回目の呼び出しでは、pwszNamepValueNULL を渡します。戻り時に、pcchNameLen が指す値にはプロパティ名の長さ(終端の null 文字を含むワイド文字数)が設定され、pcbLength が指す値にはプロパティ値を保持するために必要なバイト数が設定されます。その後、pwszNamepValue の値を保持するのに適したサイズのバッファーを割り当て、それらへのポインターを 2 回目の呼び出しで渡すことができます。

vtbl 5 HRESULT GetPropByName(LPWSTR pszName, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)

GetPropByName メソッドは、名前によってプロパティの値を取得します。

pszNameLPWSTRin名前を格納するワイド文字の null 終端文字列へのポインター。
pTypeWMT_ATTR_DATATYPE*outWMT_ATTR_DATATYPE 列挙型のメンバーの 1 つを格納する変数へのポインター。
pValueBYTE*outプロパティの値を格納するバイト配列へのポインター。
pcbLengthWORD*inout入力時には pValue の長さを格納します。出力時には、pValue のうち使用されているバイト数を指します。

戻り値

このメソッドは E_NOTIMPL を返します。

解説(Remarks)

GetPropByName は 2 回呼び出す必要があります。1 回目の呼び出しでは、pValueNULL を渡します。戻り時に、pcbLength が指す値には、プロパティ値を保持するために必要なバッファーサイズが設定されます。その後、必要な量のメモリをバッファーに割り当て、2 回目の呼び出しで pValue としてそのポインターを渡すことができます。

vtbl 6 HRESULT SetProp(LPWSTR pszName, WMT_ATTR_DATATYPE Type, BYTE* pValue, WORD cbLength)

SetProp メソッドは、プロパティを追加し、その名前と値を指定します。

pszNameLPWSTRin名前を格納する null 終端文字列へのポインター。
TypeWMT_ATTR_DATATYPEinWMT_ATTR_DATATYPE 列挙型のメンバーの 1 つを格納する変数へのポインター。このメソッドの現在の実装は WMT_TYPE_STRING のみを受け付けます。異なる型を指定すると、このメソッドは E_INVALIDARG を返します。
pValueBYTE*inプロパティの値を格納するバイト配列へのポインター。
cbLengthWORDinpValue の長さ(バイト単位)。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、他のバックアップ/リストアラーオブジェクトのインターフェイスが必要とするプロパティを設定するために使用します。

次の表は、定義済みのプロパティを一覧にしたものです。

プロパティ名 説明
BackupPath String バックアップファイルを保存する必要がある場所へのフルパス。
RestorePath String バックアップファイルが存在し、データの復元に使用できる場所へのフルパス。
vtbl 7 HRESULT RemoveProp(LPWSTR pcwszName)

RemoveProp メソッドは、名前で指定されたプロパティを削除します。

pcwszNameLPWSTRin削除するプロパティの名前を指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

vtbl 8 HRESULT RemoveAllProps()

RemoveAllProps メソッドは、すべてのプロパティを削除します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWMBackupRestoreProps "{3C8E0DA6-996F-4FF3-A1AF-4838F9377E2E}"
#usecom global IWMBackupRestoreProps IID_IWMBackupRestoreProps "{}"
#comfunc global IWMBackupRestoreProps_GetPropCount    3 var
#comfunc global IWMBackupRestoreProps_GetPropByIndex  4 int,var,var,var,var,var
#comfunc global IWMBackupRestoreProps_GetPropByName   5 wstr,var,var,var
#comfunc global IWMBackupRestoreProps_SetProp         6 wstr,int,var,int
#comfunc global IWMBackupRestoreProps_RemoveProp      7 wstr
#comfunc global IWMBackupRestoreProps_RemoveAllProps  8
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。