Win32 API 日本語リファレンス
ホームStorage.Packaging.Opc › IOpcFactory

IOpcFactory

COM
IID6d0b4446-cd73-4ab3-94f4-8ccdf6116154継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

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

vtbl 3 HRESULT CreatePackageRootUri(IOpcUri** rootUri)
rootUriIOpcUri**outパッケージのルートを表す URI である IOpcUri を受け取るポインタである。
vtbl 4 HRESULT CreatePartUri(LPWSTR pwzUri, IOpcPartUri** partUri)
pwzUriLPWSTRin作成するパート URI の文字列表現を指定する。
partUriIOpcPartUri**out作成されたパート名 URI を表す IOpcPartUri を受け取るポインタである。
vtbl 5 HRESULT CreateStreamOnFile(LPWSTR filename, OPC_STREAM_IO_MODE ioMode, SECURITY_ATTRIBUTES* securityAttributes, DWORD dwFlagsAndAttributes, IStream** stream)
filenameLPWSTRinストリームを開く対象ファイルのパスを指定する。
ioModeOPC_STREAM_IO_MODEinファイルの入出力モード(読み取り/書き込み)を示す OPC_STREAM_IO_MODE 値である。
securityAttributesSECURITY_ATTRIBUTES*in作成するファイルに適用するセキュリティ属性を指定する SECURITY_ATTRIBUTES へのポインタである。既定でよい場合は NULL を指定する。
dwFlagsAndAttributesDWORDinファイルのフラグおよび属性を指定する DWORD 値である。
streamIStream**outファイル上に作成された IStream を受け取るポインタである。
vtbl 6 HRESULT CreatePackage(IOpcPackage** package)
packageIOpcPackage**out新規に作成された空の OPC パッケージを表す IOpcPackage を受け取るポインタである。
vtbl 7 HRESULT ReadPackageFromStream(IStream* stream, OPC_READ_FLAGS flags, IOpcPackage** package)
streamIStream*inOPC パッケージを読み込む元の IStream である。
flagsOPC_READ_FLAGSinパッケージ読み込み時の動作を制御する OPC_READ_FLAGS 値である。
packageIOpcPackage**out読み込まれたパッケージを表す IOpcPackage を受け取るポインタである。
vtbl 8 HRESULT WritePackageToStream(IOpcPackage* package, OPC_WRITE_FLAGS flags, IStream* stream)
packageIOpcPackage*in書き込む対象の OPC パッケージを表す IOpcPackage である。
flagsOPC_WRITE_FLAGSinパッケージ書き込み時の動作を制御する OPC_WRITE_FLAGS 値である。
streamIStream*inパッケージの書き込み先となる IStream である。
vtbl 9 HRESULT CreateDigitalSignatureManager(IOpcPackage* package, IOpcDigitalSignatureManager** signatureManager)
packageIOpcPackage*inデジタル署名を管理する対象の OPC パッケージを表す IOpcPackage である。
signatureManagerIOpcDigitalSignatureManager**out指定パッケージに対するデジタル署名マネージャ IOpcDigitalSignatureManager を受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IOpcFactory "{6D0B4446-CD73-4AB3-94F4-8CCDF6116154}"
#usecom global IOpcFactory IID_IOpcFactory "{6B2D6BA0-9F3E-4F27-920B-313CC426A39E}"
#comfunc global IOpcFactory_CreatePackageRootUri           3 sptr
#comfunc global IOpcFactory_CreatePartUri                  4 wstr,sptr
#comfunc global IOpcFactory_CreateStreamOnFile             5 wstr,int,var,int,sptr
#comfunc global IOpcFactory_CreatePackage                  6 sptr
#comfunc global IOpcFactory_ReadPackageFromStream          7 sptr,int,sptr
#comfunc global IOpcFactory_WritePackageToStream           8 sptr,int,sptr
#comfunc global IOpcFactory_CreateDigitalSignatureManager  9 sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。