IVssWMDependency
COM公式ドキュメント
IVssWMDependency は、IVssWMComponent インターフェイスによって返される C++(COM ではない)インターフェイスであり、別のライターが管理するコンポーネントに対して明示的なライター-コンポーネント依存関係を持つコンポーネントをバックアップまたは復元する際に、アプリケーションが使用します。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetWriterId メソッドは、明示的なライター-コンポーネント依存関係において、現在のコンポーネントが依存しているコンポーネントを含むライターのクラス ID を取得します。
| pWriterId | GUID* | inout | 現在のコンポーネントが依存しているコンポーネントを管理するライターのクラス ID。 |
戻り値
このメソッドは、次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| 現在のコンポーネントが依存しているコンポーネントを管理するライターのクラス ID を正常に返しました。 | |
| 現在のコンポーネントが依存しているコンポーネントを管理するライターが見つかりませんでした。 | |
| ポインター pWriterId が未割り当てのメモリを指しています。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 までサポートされていません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
依存関係は、依存関係が文書化されたコンポーネントと、それが依存するコンポーネントとの間の優先順位を示すものではありません。依存関係は単に、そのコンポーネントとそれが依存するコンポーネントが常に一緒にバックアップまたは復元される必要があることを示すだけです。
特定のライタークラスのインスタンスは複数存在する可能性がありますが、いずれのコンポーネントの論理パスと名前も一意である必要があります。
ライタークラスのインスタンスが複数存在する場合は、現在のコンポーネントが依存しているコンポーネントを管理するインスタンスを識別するために、論理パスとコンポーネント名の情報を使用する必要があります。
GetLogicalPath メソッドは、明示的なライター-コンポーネント依存関係において、現在のコンポーネントが依存しているコンポーネントの論理パスを取得します。
| pbstrLogicalPath | LPWSTR* | inout | 現在のコンポーネントが依存しているコンポーネントの論理パスを含む NULL 終端のワイド文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドは、次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| 現在のコンポーネントが依存しているコンポーネントの論理パスを正常に返しました。 | |
| 現在のコンポーネントが依存しているコンポーネントを管理するライターが見つかりませんでした。 | |
| ポインター pbstrLogicalPath が未割り当てのメモリを指しています。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 までサポートされていません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して、返された文字列が使用するメモリを解放する必要があります。
依存関係は、依存関係が文書化されたコンポーネントと、それが依存するコンポーネントとの間の優先順位を示すものではありません。依存関係は単に、そのコンポーネントとそれが依存するコンポーネントが常に一緒にバックアップまたは復元される必要があることを示すだけです。
特定のライタークラスのインスタンスは複数存在する可能性がありますが、いずれのコンポーネントの論理パスと名前も一意である必要があります。
ライタークラスのインスタンスが複数存在する場合は、現在のコンポーネントが依存しているコンポーネントを管理するインスタンスを識別するために、論理パスとコンポーネント名の情報を使用する必要があります。
GetComponentName メソッドは、明示的なライター-コンポーネント依存関係において、現在のコンポーネントが依存しているコンポーネントの名前を取得します。
| pbstrComponentName | LPWSTR* | inout | 現在のコンポーネントが依存しているコンポーネントの名前を含む NULL 終端のワイド文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドは、次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| 現在のコンポーネントが依存しているコンポーネントの名前を正常に返しました。 | |
| 現在のコンポーネントが依存しているコンポーネントを管理するライターが見つかりませんでした。 | |
| ポインター pbstrComponentName が未割り当てのメモリを指しています。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 までサポートされていません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して、返された文字列が使用するメモリを解放する必要があります。
依存関係は、依存関係が文書化されたコンポーネントと、それが依存するコンポーネントとの間の優先順位を示すものではありません。依存関係は単に、そのコンポーネントとそれが依存するコンポーネントが常に一緒にバックアップまたは復元される必要があることを示すだけです。
特定のライタークラスのインスタンスは複数存在する可能性がありますが、いずれのコンポーネントの論理パスと名前も一意である必要があります。
ライタークラスのインスタンスが複数存在する場合は、現在のコンポーネントが依存しているコンポーネントを管理するインスタンスを識別するために、論理パスとコンポーネント名の情報を使用する必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVssWMDependency "{}" #usecom global IVssWMDependency IID_IVssWMDependency "{}" #comfunc global IVssWMDependency_GetWriterId 3 var #comfunc global IVssWMDependency_GetLogicalPath 4 var #comfunc global IVssWMDependency_GetComponentName 5 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IVssWMDependency "{}" #usecom global IVssWMDependency IID_IVssWMDependency "{}" #comfunc global IVssWMDependency_GetWriterId 3 sptr #comfunc global IVssWMDependency_GetLogicalPath 4 sptr #comfunc global IVssWMDependency_GetComponentName 5 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。