Win32 API 日本語リファレンス
ホームStorage.Vss › IVssExpressWriter

IVssExpressWriter

COM
IIDe33affdc-59c7-47b1-97d5-4266598f6235継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

VSS エクスプレスライターのメタデータを管理するメソッドを定義します。

メソッド 4

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

vtbl 3 HRESULT CreateMetadata(GUID writerId, LPWSTR writerName, VSS_USAGE_TYPE usageType, DWORD versionMajor, DWORD versionMinor, DWORD reserved, IVssCreateExpressWriterMetadata** ppMetadata)

エクスプレスライターのメタデータオブジェクトを作成し、それに対する IVssCreateExpressWriterMetadata インターフェイスポインターを返します。

writerIdGUIDinライタークラスのグローバル一意識別子 (GUID)。
writerNameLPWSTRinライタークラスの名前を格納する、null で終端されるワイド文字列。この文字列はローカライズされません。
usageTypeVSS_USAGE_TYPEinライターが管理するデータがホストシステム上でどのように使用されるかを示す VSS_USAGE_TYPE 列挙値。このパラメーターに指定できる有効な値は VSS_UT_BOOTABLESYSTEMSTATEVSS_UT_SYSTEMSERVICE、および VSS_UT_USERDATA のみです。
versionMajorDWORDinライターアプリケーションのメジャーバージョン。詳細については「解説」セクションを参照してください。
versionMinorDWORDinライターアプリケーションのマイナーバージョン。詳細については「解説」セクションを参照してください。
reservedDWORDinこのパラメーターはシステムで使用するために予約されています。
ppMetadataIVssCreateExpressWriterMetadata**out新しく作成されたエクスプレスライターのメタデータへの IVssCreateExpressWriterMetadata インターフェイスポインターを受け取る変数へのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

versionMajor および versionMajor パラメーターは、次の VSS の規約に従ってライターのメジャーバージョン番号とマイナーバージョン番号を指定するために使用されます。

ライターがバージョン番号を指定しない場合、VSS は既定のバージョン番号 0.0 を割り当てます。
vtbl 4 HRESULT LoadMetadata(LPWSTR metadata, DWORD reserved)

VSS に、エクスプレスライターのメタデータストアではなく文字列からライターのメタデータを読み込ませます。

metadataLPWSTRinライターのメタデータを格納する、null で終端されるワイド文字列。
reservedDWORDinこのパラメーターはシステムで使用するために予約されています。

戻り値

このメソッドの有効な戻り値コードは次のとおりです。

意味
S_OK
0x00000000L
操作は成功しました。
VSS_E_INVALID_XML_DOCUMENT
0x80042311L
XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 VSS でのイベントとエラーの処理を参照してください。
vtbl 5 HRESULT Register()

VSS に、ライターのメタデータをエクスプレスライターのメタデータストアに格納させます。

戻り値

このメソッドの有効な戻り値コードは次のとおりです。

意味
S_OK
0x00000000L
操作は成功しました。
VSS_E_OBJECT_ALREADY_EXISTS
0x8004230DL
このライターのメタデータは既に格納されています。

解説(Remarks)

このメソッドを使用する前に、呼び出し元は LoadMetadata メソッドを使用してライターのメタデータを直接読み込んでいるか、CreateMetadata メソッドを使用してライターのメタデータオブジェクトを作成している必要があります。

vtbl 6 HRESULT Unregister(GUID writerId)

VSS に、エクスプレスライターのメタデータストアからライターのメタデータを削除させます。

writerIdGUIDinライタークラスのグローバル一意識別子 (GUID)。

戻り値

このメソッドの有効な戻り値コードは次のとおりです。

意味
S_OK
0x00000000L
操作は成功しました。
VSS_E_OBJECT_NOT_FOUND
0x80042308L
writerId パラメーターに、存在しないライターが指定されました。

解説(Remarks)

このメソッドを使用する前に、呼び出し元は CreateMetadata メソッドを使用してライターのメタデータオブジェクトを作成している必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)

HSP用 COM定義

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

#define global IID_IVssExpressWriter "{E33AFFDC-59C7-47B1-97D5-4266598F6235}"
#usecom global IVssExpressWriter IID_IVssExpressWriter "{}"
#comfunc global IVssExpressWriter_CreateMetadata  3 int,wstr,int,int,int,int,sptr
#comfunc global IVssExpressWriter_LoadMetadata    4 wstr,int
#comfunc global IVssExpressWriter_Register        5
#comfunc global IVssExpressWriter_Unregister      6 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。