ホーム › Media.DeviceManager › IMDSPStorage2
IMDSPStorage2
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 13 HRESULT GetStorage(LPWSTR pszStorageName, IMDSPStorage** ppStorage)
| pszStorageName | LPWSTR | in | 取得対象の子ストレージ名を示す文字列。 |
| ppStorage | IMDSPStorage** | out | 該当するIMDSPStorageを受け取る出力。 |
vtbl 14 HRESULT CreateStorage2(DWORD dwAttributes, DWORD dwAttributesEx, WAVEFORMATEX* pAudioFormat, VIDEOINFOHEADER* pVideoFormat, LPWSTR pwszName, ULONGLONG qwFileSize, IMDSPStorage** ppNewStorage)
| dwAttributes | DWORD | in | 新規ストレージの基本属性フラグを指定する。 |
| dwAttributesEx | DWORD | in | 新規ストレージの拡張属性フラグを指定する。 |
| pAudioFormat | WAVEFORMATEX* | inoptional | 新規オブジェクトの音声フォーマットを指定するWAVEFORMATEX。NULL可。 |
| pVideoFormat | VIDEOINFOHEADER* | inoptional | 新規オブジェクトの映像フォーマットを指定するVIDEOINFOHEADER。NULL可。 |
| pwszName | LPWSTR | in | 作成するストレージの名前を示す文字列。 |
| qwFileSize | ULONGLONG | in | 作成するファイルの総サイズをバイト単位で指定する64ビット値。 |
| ppNewStorage | IMDSPStorage** | out | 作成されたIMDSPStorageを受け取る出力。 |
vtbl 15 HRESULT SetAttributes2(DWORD dwAttributes, DWORD dwAttributesEx, WAVEFORMATEX* pAudioFormat, VIDEOINFOHEADER* pVideoFormat)
| dwAttributes | DWORD | in | 設定する基本属性フラグを指定する。 |
| dwAttributesEx | DWORD | in | 設定する拡張属性フラグを指定する。 |
| pAudioFormat | WAVEFORMATEX* | inoptional | 設定する音声フォーマットを指定するWAVEFORMATEX。NULL可。 |
| pVideoFormat | VIDEOINFOHEADER* | inoptional | 設定する映像フォーマットを指定するVIDEOINFOHEADER。NULL可。 |
vtbl 16 HRESULT GetAttributes2(DWORD* pdwAttributes, DWORD* pdwAttributesEx, WAVEFORMATEX* pAudioFormat, VIDEOINFOHEADER* pVideoFormat)
| pdwAttributes | DWORD* | out | 基本属性フラグを受け取る出力。 |
| pdwAttributesEx | DWORD* | out | 拡張属性フラグを受け取る出力。 |
| pAudioFormat | WAVEFORMATEX* | inoutoptional | 音声フォーマットを受け取るWAVEFORMATEXの出力。NULL可。 |
| pVideoFormat | VIDEOINFOHEADER* | inoutoptional | 映像フォーマットを受け取るVIDEOINFOHEADERの出力。NULL可。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IMDSPStorage2 "{0A5E07A5-6454-4451-9C36-1C6AE7E2B1D6}" #usecom global IMDSPStorage2 IID_IMDSPStorage2 "{}" #comfunc global IMDSPStorage2_GetStorage 13 wstr,sptr #comfunc global IMDSPStorage2_CreateStorage2 14 int,int,var,var,wstr,int64,sptr #comfunc global IMDSPStorage2_SetAttributes2 15 int,int,var,var #comfunc global IMDSPStorage2_GetAttributes2 16 var,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IMDSPStorage2 "{0A5E07A5-6454-4451-9C36-1C6AE7E2B1D6}" #usecom global IMDSPStorage2 IID_IMDSPStorage2 "{}" #comfunc global IMDSPStorage2_GetStorage 13 wstr,sptr #comfunc global IMDSPStorage2_CreateStorage2 14 int,int,sptr,sptr,wstr,int64,sptr #comfunc global IMDSPStorage2_SetAttributes2 15 int,int,sptr,sptr #comfunc global IMDSPStorage2_GetAttributes2 16 sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。