Win32 API 日本語リファレンス
ホームDevices.ImageAcquisition › IWiaPropertyStorage

IWiaPropertyStorage

COM
IID98b5e8a0-29cc-491a-aac0-e6db4fdcceb6継承元IUnknown自前メソッド開始 vtbl3

メソッド 16

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

vtbl 3 HRESULT ReadMultiple(DWORD cpspec, PROPSPEC* rgpspec, PROPVARIANT* rgpropvar)
cpspecDWORDin読み取るプロパティ数。
rgpspecPROPSPEC*in読み取り対象を指定するPROPSPEC配列へのポインタ。
rgpropvarPROPVARIANT*out読み取った値を受け取るPROPVARIANT配列へのポインタ。
vtbl 4 HRESULT WriteMultiple(DWORD cpspec, PROPSPEC* rgpspec, PROPVARIANT* rgpropvar, DWORD propidNameFirst)
cpspecDWORDin書き込むプロパティ数。
rgpspecPROPSPEC*in書き込み対象を指定するPROPSPEC配列へのポインタ。
rgpropvarPROPVARIANT*in書き込む値を格納したPROPVARIANT配列へのポインタ。
propidNameFirstDWORDin名前で新規追加時に割り当てる最小プロパティID。
vtbl 5 HRESULT DeleteMultiple(DWORD cpspec, PROPSPEC* rgpspec)
cpspecDWORDin削除するプロパティ数。
rgpspecPROPSPEC*in削除対象を指定するPROPSPEC配列へのポインタ。
vtbl 6 HRESULT ReadPropertyNames(DWORD cpropid, DWORD* rgpropid, LPWSTR* rglpwstrName)
cpropidDWORDin名前を取得するプロパティ数。
rgpropidDWORD*in対象プロパティIDの配列へのポインタ。
rglpwstrNameLPWSTR*out取得した各プロパティ名を受け取る文字列配列へのポインタ。
vtbl 7 HRESULT WritePropertyNames(DWORD cpropid, DWORD* rgpropid, LPWSTR* rglpwstrName)
cpropidDWORDin名前を設定するプロパティ数。
rgpropidDWORD*in対象プロパティIDの配列へのポインタ。
rglpwstrNameLPWSTR*in設定する各プロパティ名を格納した文字列配列へのポインタ。
vtbl 8 HRESULT DeletePropertyNames(DWORD cpropid, DWORD* rgpropid)
cpropidDWORDin名前を削除するプロパティ数。
rgpropidDWORD*in削除対象プロパティIDの配列へのポインタ。
vtbl 9 HRESULT Commit(DWORD grfCommitFlags)
grfCommitFlagsDWORDin確定方法を示すフラグ。STGC_DEFAULT等を指定する。
vtbl 10 HRESULT Revert()
vtbl 11 HRESULT Enum(IEnumSTATPROPSTG** ppenum)
ppenumIEnumSTATPROPSTG**outプロパティ統計情報の列挙子IEnumSTATPROPSTGを受け取る出力ポインタ。
vtbl 12 HRESULT SetTimes(FILETIME* pctime, FILETIME* patime, FILETIME* pmtime)
pctimeFILETIME*in設定する作成日時を示すFILETIMEへのポインタ。NULL可。
patimeFILETIME*in設定する最終アクセス日時を示すFILETIMEへのポインタ。NULL可。
pmtimeFILETIME*in設定する最終更新日時を示すFILETIMEへのポインタ。NULL可。
vtbl 13 HRESULT SetClass(GUID* clsid)
clsidGUID*inプロパティセットに割り当てるクラスIDのGUIDへのポインタ。
vtbl 14 HRESULT Stat(STATPROPSETSTG* pstatpsstg)
pstatpsstgSTATPROPSETSTG*outプロパティセットの統計情報を受け取るSTATPROPSETSTG構造体へのポインタ。
vtbl 15 HRESULT GetPropertyAttributes(DWORD cpspec, PROPSPEC* rgpspec, DWORD* rgflags, PROPVARIANT* rgpropvar)
cpspecDWORDin属性を取得するプロパティ数。
rgpspecPROPSPEC*in対象を指定するPROPSPEC配列へのポインタ。
rgflagsDWORD*out各プロパティのアクセスフラグを受け取る配列へのポインタ。WIA_PROP_*等。
rgpropvarPROPVARIANT*out各プロパティの有効値や範囲を受け取るPROPVARIANT配列へのポインタ。
vtbl 16 HRESULT GetCount(DWORD* pulNumProps)
pulNumPropsDWORD*out格納されているプロパティ総数を受け取るポインタ。
vtbl 17 HRESULT GetPropertyStream(GUID* pCompatibilityId, IStream** ppIStream)
pCompatibilityIdGUID*out互換性識別子のGUIDを受け取るポインタ。
ppIStreamIStream**outプロパティ全体をシリアライズしたIStreamを受け取る出力ポインタ。
vtbl 18 HRESULT SetPropertyStream(GUID* pCompatibilityId, IStream* pIStream)
pCompatibilityIdGUID*inoutストリームの互換性識別子GUIDへのポインタ。
pIStreamIStream*in復元元のプロパティストリームIStreamへのポインタ。

HSP用 COM定義

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

出力引数:
#define global IID_IWiaPropertyStorage "{98B5E8A0-29CC-491A-AAC0-E6DB4FDCCEB6}"
#usecom global IWiaPropertyStorage IID_IWiaPropertyStorage "{}"
#comfunc global IWiaPropertyStorage_ReadMultiple           3 int,var,var
#comfunc global IWiaPropertyStorage_WriteMultiple          4 int,var,var,int
#comfunc global IWiaPropertyStorage_DeleteMultiple         5 int,var
#comfunc global IWiaPropertyStorage_ReadPropertyNames      6 int,var,var
#comfunc global IWiaPropertyStorage_WritePropertyNames     7 int,var,var
#comfunc global IWiaPropertyStorage_DeletePropertyNames    8 int,var
#comfunc global IWiaPropertyStorage_Commit                 9 int
#comfunc global IWiaPropertyStorage_Revert                 10
#comfunc global IWiaPropertyStorage_Enum                   11 sptr
#comfunc global IWiaPropertyStorage_SetTimes               12 var,var,var
#comfunc global IWiaPropertyStorage_SetClass               13 var
#comfunc global IWiaPropertyStorage_Stat                   14 var
#comfunc global IWiaPropertyStorage_GetPropertyAttributes  15 int,var,var,var
#comfunc global IWiaPropertyStorage_GetCount               16 var
#comfunc global IWiaPropertyStorage_GetPropertyStream      17 var,sptr
#comfunc global IWiaPropertyStorage_SetPropertyStream      18 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。