IVssExpressWriter
COM公式ドキュメント
VSS エクスプレスライターのメタデータを管理するメソッドを定義します。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
エクスプレスライターのメタデータオブジェクトを作成し、それに対する IVssCreateExpressWriterMetadata インターフェイスポインターを返します。
| writerId | GUID | in | ライタークラスのグローバル一意識別子 (GUID)。 |
| writerName | LPWSTR | in | ライタークラスの名前を格納する、null で終端されるワイド文字列。この文字列はローカライズされません。 |
| usageType | VSS_USAGE_TYPE | in | ライターが管理するデータがホストシステム上でどのように使用されるかを示す VSS_USAGE_TYPE 列挙値。このパラメーターに指定できる有効な値は VSS_UT_BOOTABLESYSTEMSTATE、VSS_UT_SYSTEMSERVICE、および VSS_UT_USERDATA のみです。 |
| versionMajor | DWORD | in | ライターアプリケーションのメジャーバージョン。詳細については「解説」セクションを参照してください。 |
| versionMinor | DWORD | in | ライターアプリケーションのマイナーバージョン。詳細については「解説」セクションを参照してください。 |
| reserved | DWORD | in | このパラメーターはシステムで使用するために予約されています。 |
| ppMetadata | IVssCreateExpressWriterMetadata** | out | 新しく作成されたエクスプレスライターのメタデータへの IVssCreateExpressWriterMetadata インターフェイスポインターを受け取る変数へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
versionMajor および versionMajor パラメーターは、次の VSS の規約に従ってライターのメジャーバージョン番号とマイナーバージョン番号を指定するために使用されます。
- ライターのマイナーバージョン番号は、リリースされたライターのバージョンに、リクエスターとのやり取りに影響を与える軽微な変更が含まれる場合に、1 ずつインクリメントする必要があります。たとえば、ライターの QFE またはサービスパックにおけるファイル仕様の修正は、マイナーバージョン番号のインクリメントを正当化します。ただし、ライターのベータ版またはリリース候補版の間の変更は、マイナーバージョン番号の変更を正当化しません。
- ライターのメジャーバージョン番号は、リリースされたライターのバージョンに重要な変更が含まれる場合に、1 ずつインクリメントする必要があります。たとえば、新しいバージョンのライターでバックアップしたデータを以前のバージョンのライターで復元できない場合は、新しいライターのメジャーバージョン番号をインクリメントする必要があります。
- メジャーバージョン番号をインクリメントするたびに、マイナーバージョン番号を 0 にリセットする必要があります。
VSS に、エクスプレスライターのメタデータストアではなく文字列からライターのメタデータを読み込ませます。
| metadata | LPWSTR | in | ライターのメタデータを格納する、null で終端されるワイド文字列。 |
| reserved | DWORD | in | このパラメーターはシステムで使用するために予約されています。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
|
操作は成功しました。 |
|
XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 VSS でのイベントとエラーの処理を参照してください。 |
VSS に、ライターのメタデータをエクスプレスライターのメタデータストアに格納させます。
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
|
操作は成功しました。 |
|
このライターのメタデータは既に格納されています。 |
解説(Remarks)
このメソッドを使用する前に、呼び出し元は LoadMetadata メソッドを使用してライターのメタデータを直接読み込んでいるか、CreateMetadata メソッドを使用してライターのメタデータオブジェクトを作成している必要があります。
VSS に、エクスプレスライターのメタデータストアからライターのメタデータを削除させます。
| writerId | GUID | in | ライタークラスのグローバル一意識別子 (GUID)。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
|
操作は成功しました。 |
|
writerId パラメーターに、存在しないライターが指定されました。 |
解説(Remarks)
このメソッドを使用する前に、呼び出し元は CreateMetadata メソッドを使用してライターのメタデータオブジェクトを作成している必要があります。
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 指定が可能。