Win32 API 日本語リファレンス
ホームSystem.Com.StructuredStorage › IPersistStorage

IPersistStorage

COM
IID0000010a-0000-0000-c000-000000000046継承元IPersist自前メソッド開始 vtbl4

メソッド 6

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

vtbl 4 HRESULT IsDirty()
vtbl 5 HRESULT InitNew(IStorage* pStg)
pStgIStorage*inオブジェクトを新規初期化する際に使用する IStorage へのポインタである。
vtbl 6 HRESULT Load(IStorage* pStg)
pStgIStorage*inオブジェクトの状態を読み込む元の IStorage へのポインタである。
vtbl 7 HRESULT Save(IStorage* pStgSave, BOOL fSameAsLoad)
pStgSaveIStorage*inオブジェクトの状態を書き込む先の IStorage へのポインタである。
fSameAsLoadBOOLin保存先が読み込み元と同じストレージかどうかを指定する。同じ場合は TRUE を指定する。
vtbl 8 HRESULT SaveCompleted(IStorage* pStgNew)
pStgNewIStorage*in保存完了を通知する新しい IStorage へのポインタである。同じストレージへ保存した場合は NULL を指定できる。
vtbl 9 HRESULT HandsOffStorage()

HSP用 COM定義

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

#define global IID_IPersistStorage "{0000010A-0000-0000-C000-000000000046}"
#usecom global IPersistStorage IID_IPersistStorage "{}"
#comfunc global IPersistStorage_IsDirty          4
#comfunc global IPersistStorage_InitNew          5 sptr
#comfunc global IPersistStorage_Load             6 sptr
#comfunc global IPersistStorage_Save             7 sptr,int
#comfunc global IPersistStorage_SaveCompleted    8 sptr
#comfunc global IPersistStorage_HandsOffStorage  9
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。