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

IWMDMOperation2

COM
IID33445b48-7df7-425c-ad8f-0fc6d82f9f75継承元IWMDMOperation自前メソッド開始 vtbl13

公式ドキュメント

アプリケーションが任意で実装する IWMDMOperation2 インターフェースは、拡張属性を取得および設定するメソッドを提供することで IWMDMOperation を拡張します。

メソッド 2

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

vtbl 13 HRESULT SetObjectAttributes2(DWORD dwAttributes, DWORD dwAttributesEx, WAVEFORMATEX* pFormat, VIDEOINFOHEADER* pVideoFormat)

SetObjectAttributes2 メソッドは、ファイルまたはストレージの属性を設定します。このメソッドは現在、Windows Media Device Manager からは呼び出されません。

dwAttributesDWORDinIWMDMStorage::SetAttributes メソッドで定義される属性を指定する DWORD へのポインター。
dwAttributesExDWORDin拡張属性を指定する DWORD。拡張属性は現在定義されていません。
pFormatWAVEFORMATEX*inoptionalオブジェクトのオーディオ情報を指定する _WAVEFORMATEX 構造体への省略可能なポインター。
pVideoFormatVIDEOINFOHEADER*inoptionalオブジェクトのビデオ情報を指定する _VIDEOINFOHEADER 構造体への省略可能なポインター。

戻り値

アプリケーションは、次のいずれかの HRESULT 値を返す必要があります。

戻り値 説明
S_OK
読み取り操作を続行します。
WMDM_E_USER_CANCELLED
読み取り操作を完了せずにキャンセルします。
E_FAIL
不特定のエラーが発生したため、読み取り操作を完了せずにキャンセルします。
vtbl 14 HRESULT GetObjectAttributes2(DWORD* pdwAttributes, DWORD* pdwAttributesEx, WAVEFORMATEX* pAudioFormat, VIDEOINFOHEADER* pVideoFormat)

Windows Media Device Manager は、ファイルがデバイスに書き込まれる際に、そのファイルの属性を取得するために GetObjectAttributes を呼び出します。

pdwAttributesDWORD*outIWMDMStorage::GetAttributes メソッドで定義されるストレージ属性を指定する DWORD へのポインター。
pdwAttributesExDWORD*out拡張属性を指定する DWORD へのポインター。拡張属性は現在定義されていません。
pAudioFormatWAVEFORMATEX*inoutoptionalオーディオファイルの属性を指定する _WAVEFORMATEX 構造体への省略可能なポインター。
pVideoFormatVIDEOINFOHEADER*inoutoptionalビデオオブジェクトの属性を指定する _VIDEOINFOHEADER 構造体への省略可能なポインター。

戻り値

アプリケーションは、次のいずれかの HRESULT 値を返す必要があります。

戻り値 説明
S_OK
読み取り操作を続行します。
WMDM_E_USER_CANCELLED
読み取り操作を完了せずにキャンセルします。
E_FAIL
不特定のエラーが発生したため、読み取り操作を完了せずにキャンセルします。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWMDMOperation2 "{33445B48-7DF7-425C-AD8F-0FC6D82F9F75}"
#usecom global IWMDMOperation2 IID_IWMDMOperation2 "{}"
#comfunc global IWMDMOperation2_SetObjectAttributes2  13 int,int,var,var
#comfunc global IWMDMOperation2_GetObjectAttributes2  14 var,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。