ホーム › Media.DeviceManager › IWMDMOperation
IWMDMOperation
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT BeginRead()
vtbl 4 HRESULT BeginWrite()
| pwszName | LPWSTR | out | オブジェクト名を受け取るワイド文字列バッファーへのポインター。 |
| nMaxChars | DWORD | in | バッファーが格納できる最大文字数を示すDWORD値。 |
| pwszName | LPWSTR | in | 設定するオブジェクト名を表すワイド文字列。 |
| nMaxChars | DWORD | in | 名前の文字数を示すDWORD値。 |
vtbl 7 HRESULT GetObjectAttributes(DWORD* pdwAttributes, WAVEFORMATEX* pFormat)
| pdwAttributes | DWORD* | out | オブジェクトの属性ビットマスクを受け取るDWORDへの出力ポインター。 |
| pFormat | WAVEFORMATEX* | inoutoptional | オブジェクトのオーディオ形式を受け取るWAVEFORMATEXへのポインター。不要ならNULL可。 |
vtbl 8 HRESULT SetObjectAttributes(DWORD dwAttributes, WAVEFORMATEX* pFormat)
| dwAttributes | DWORD | in | 設定するオブジェクト属性を示すビットマスク。 |
| pFormat | WAVEFORMATEX* | inoptional | 設定するオーディオ形式を記述するWAVEFORMATEXへのポインター。不要ならNULL可。 |
| pdwSize | DWORD* | out | オブジェクト総サイズの下位32ビットをバイト単位で受け取るDWORDへの出力ポインター。 |
| pdwSizeHigh | DWORD* | out | オブジェクト総サイズの上位32ビットをバイト単位で受け取るDWORDへの出力ポインター。 |
| dwSize | DWORD | in | オブジェクト総サイズの下位32ビットをバイト単位で指定するDWORD値。 |
| dwSizeHigh | DWORD | in | オブジェクト総サイズの上位32ビットをバイト単位で指定するDWORD値。 |
| pData | BYTE* | inout | 転送するデータチャンクを保持するバイトバッファーへのポインター。 |
| pdwSize | DWORD* | inout | 入力時はバッファーサイズ、出力時は実際に転送されたバイト数を保持するDWORDへのポインター。 |
| abMac | BYTE* | inout | 改ざん検出用のメッセージ認証コード(MAC)を格納するバイト配列。 |
| phCompletionCode | HRESULT* | in | 操作完了コードを示すHRESULTへのポインター。 |
| pNewObject | IUnknown* | inoptional | 新規生成されたオブジェクトを表すIUnknownへのポインター。不要ならNULL可。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWMDMOperation "{1DCB3A0B-33ED-11D3-8470-00C04F79DBC0}" #usecom global IWMDMOperation IID_IWMDMOperation "{}" #comfunc global IWMDMOperation_BeginRead 3 #comfunc global IWMDMOperation_BeginWrite 4 #comfunc global IWMDMOperation_GetObjectName 5 var,int #comfunc global IWMDMOperation_SetObjectName 6 wstr,int #comfunc global IWMDMOperation_GetObjectAttributes 7 var,var #comfunc global IWMDMOperation_SetObjectAttributes 8 int,var #comfunc global IWMDMOperation_GetObjectTotalSize 9 var,var #comfunc global IWMDMOperation_SetObjectTotalSize 10 int,int #comfunc global IWMDMOperation_TransferObjectData 11 var,var,var #comfunc global IWMDMOperation_End 12 var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMDMOperation "{1DCB3A0B-33ED-11D3-8470-00C04F79DBC0}" #usecom global IWMDMOperation IID_IWMDMOperation "{}" #comfunc global IWMDMOperation_BeginRead 3 #comfunc global IWMDMOperation_BeginWrite 4 #comfunc global IWMDMOperation_GetObjectName 5 sptr,int #comfunc global IWMDMOperation_SetObjectName 6 wstr,int #comfunc global IWMDMOperation_GetObjectAttributes 7 sptr,sptr #comfunc global IWMDMOperation_SetObjectAttributes 8 int,sptr #comfunc global IWMDMOperation_GetObjectTotalSize 9 sptr,sptr #comfunc global IWMDMOperation_SetObjectTotalSize 10 int,int #comfunc global IWMDMOperation_TransferObjectData 11 sptr,sptr,sptr #comfunc global IWMDMOperation_End 12 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。