IVssComponentEx2
COM公式ドキュメント
コンポーネントレベルのライターエラーを報告および取得するための追加のメソッドを定義します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
VSS ライターは、コンポーネントレベルでエラーを報告するためにこのメソッドを呼び出します。
| hr | HRESULT | in | IVssComponentEx2::GetFailure メソッドを呼び出す要求元に返されるエラーコード。 このメソッドが設定できるエラーコードは次のとおりです。
| ||||||||||||||
| hrApplication | HRESULT | in | 要求元に返される追加のエラーコード。このパラメーターは省略可能です。 | ||||||||||||||
| wszApplicationMessage | LPWSTR | inoptional | 要求元がエンドユーザーに表示するためのエラーメッセージを含む文字列。ライターは、このメソッドで使用する前に、必要に応じてこの文字列をローカライズする責任があります。このパラメーターは省略可能で、NULL または空の文字列を指定できます。 | ||||||||||||||
| dwReserved | DWORD | in | このパラメーターは将来の使用のために予約されており、ゼロに設定する必要があります。 |
戻り値
このメソッドが成功した場合、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
解説(Remarks)
このメソッドを呼び出すことに加えて、ライターの部分的な失敗が発生したことを報告するために CVssWriterEx2::SetWriterFailureEx メソッドを使用してください。
このメソッドは、CVssWriter::OnIdentify または CVssWriterEx::OnIdentifyEx から呼び出すことはできません。
VSS 要求元は、ライターが報告したコンポーネントレベルのエラーを取得するためにこのメソッドを呼び出します。
| phr | HRESULT* | out | ライターが IVssComponentEx2::SetFailure メソッドの hr パラメーターに渡した HRESULT 失敗コードを受け取る、呼び出し元が割り当てた変数のアドレス。このパラメーターは必須であり、NULL にすることはできません。 サポートされる値は次のとおりです。
| ||||||||||||||||||
| phrApplication | HRESULT* | out | ライターが SetFailure メソッドの hrApplication パラメーターに渡した戻りコードを受け取る、呼び出し元が割り当てた変数のアドレス。このパラメーターは必須であり、NULL にすることはできません。 | ||||||||||||||||||
| pbstrApplicationMessage | LPWSTR* | out | ライターが SetFailure メソッドの wszApplicationMessage パラメーターに渡したアプリケーション失敗メッセージを受け取る、呼び出し元が割り当てた変数のアドレス。このパラメーターは必須であり、NULL にすることはできません。 | ||||||||||||||||||
| pdwReserved | DWORD* | out | 呼び出し元が割り当てた DWORD 変数のアドレス。このパラメーターは将来の使用のために予約されていますが、必須であり、NULL にすることはできません。 |
戻り値
このメソッドの有効な戻りコードは次のとおりです。
| 値 | 意味 |
|---|---|
|
指定されたライターの状態を正常に返しました。ライターが成功したことを確認するには、phrFailureWriter パラメーターの値を確認する必要があることに注意してください。ライターの失敗コードは、VsWriter.h および ライターのエラーと拒否 (Writer Errors and Vetoes) に記載されているものである可能性があります。 |
|
phr、phrApplication、pbstrApplicationMessage、または pdwReserved パラメーターが NULL です。 |
|
呼び出し元のメモリまたはその他のシステムリソースが不足しています。 |
|
バックアップコンポーネントオブジェクトが初期化されていないか、このメソッドが復元操作中に呼び出されたか、または正しいシーケンス内で呼び出されていません。 |
解説(Remarks)
呼び出し元は、このメソッドが返す状態情報へのアクセスを終えたら、SysFreeString を呼び出して、pbstrApplicationMessage パラメーターが保持するメモリを解放する必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVssComponentEx2 "{3B5BE0F2-07A9-4E4B-BDD3-CFDC8E2C0D2D}" #usecom global IVssComponentEx2 IID_IVssComponentEx2 "{}" #comfunc global IVssComponentEx2_SetFailure 48 int,int,wstr,int #comfunc global IVssComponentEx2_GetFailure 49 var,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IVssComponentEx2 "{3B5BE0F2-07A9-4E4B-BDD3-CFDC8E2C0D2D}" #usecom global IVssComponentEx2 IID_IVssComponentEx2 "{}" #comfunc global IVssComponentEx2_SetFailure 48 int,int,wstr,int #comfunc global IVssComponentEx2_GetFailure 49 sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。