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

IVssWMDependency

COM
継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IVssWMDependency は、IVssWMComponent インターフェイスによって返される C++(COM ではない)インターフェイスであり、別のライターが管理するコンポーネントに対して明示的なライター-コンポーネント依存関係を持つコンポーネントをバックアップまたは復元する際に、アプリケーションが使用します。

メソッド 3

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

vtbl 3 HRESULT GetWriterId(GUID* pWriterId)

GetWriterId メソッドは、明示的なライター-コンポーネント依存関係において、現在のコンポーネントが依存しているコンポーネントを含むライターのクラス ID を取得します。

pWriterIdGUID*inout現在のコンポーネントが依存しているコンポーネントを管理するライターのクラス ID。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
現在のコンポーネントが依存しているコンポーネントを管理するライターのクラス ID を正常に返しました。
S_FALSE
現在のコンポーネントが依存しているコンポーネントを管理するライターが見つかりませんでした。
E_INVALIDARG
ポインター pWriterId が未割り当てのメモリを指しています。
E_OUTOFMEMORY
呼び出し元のメモリまたはその他のシステムリソースが不足しています。
VSS_E_INVALID_XML_DOCUMENT
XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 Event and Error Handling Under VSS を参照してください。
VSS_E_UNEXPECTED
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、 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)

依存関係は、依存関係が文書化されたコンポーネントと、それが依存するコンポーネントとの間の優先順位を示すものではありません。依存関係は単に、そのコンポーネントとそれが依存するコンポーネントが常に一緒にバックアップまたは復元される必要があることを示すだけです。

特定のライタークラスのインスタンスは複数存在する可能性がありますが、いずれのコンポーネントの論理パスと名前も一意である必要があります。

ライタークラスのインスタンスが複数存在する場合は、現在のコンポーネントが依存しているコンポーネントを管理するインスタンスを識別するために、論理パスとコンポーネント名の情報を使用する必要があります。

vtbl 4 HRESULT GetLogicalPath(LPWSTR* pbstrLogicalPath)

GetLogicalPath メソッドは、明示的なライター-コンポーネント依存関係において、現在のコンポーネントが依存しているコンポーネントの論理パスを取得します。

pbstrLogicalPathLPWSTR*inout現在のコンポーネントが依存しているコンポーネントの論理パスを含む NULL 終端のワイド文字列を受け取る、呼び出し元が割り当てた変数のアドレス。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
現在のコンポーネントが依存しているコンポーネントの論理パスを正常に返しました。
S_FALSE
現在のコンポーネントが依存しているコンポーネントを管理するライターが見つかりませんでした。
E_INVALIDARG
ポインター pbstrLogicalPath が未割り当てのメモリを指しています。
E_OUTOFMEMORY
呼び出し元のメモリまたはその他のシステムリソースが不足しています。
VSS_E_INVALID_XML_DOCUMENT
XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 Event and Error Handling Under VSS を参照してください。
VSS_E_UNEXPECTED
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、 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 を呼び出して、返された文字列が使用するメモリを解放する必要があります。

依存関係は、依存関係が文書化されたコンポーネントと、それが依存するコンポーネントとの間の優先順位を示すものではありません。依存関係は単に、そのコンポーネントとそれが依存するコンポーネントが常に一緒にバックアップまたは復元される必要があることを示すだけです。

特定のライタークラスのインスタンスは複数存在する可能性がありますが、いずれのコンポーネントの論理パスと名前も一意である必要があります。

ライタークラスのインスタンスが複数存在する場合は、現在のコンポーネントが依存しているコンポーネントを管理するインスタンスを識別するために、論理パスとコンポーネント名の情報を使用する必要があります。

vtbl 5 HRESULT GetComponentName(LPWSTR* pbstrComponentName)

GetComponentName メソッドは、明示的なライター-コンポーネント依存関係において、現在のコンポーネントが依存しているコンポーネントの名前を取得します。

pbstrComponentNameLPWSTR*inout現在のコンポーネントが依存しているコンポーネントの名前を含む NULL 終端のワイド文字列を受け取る、呼び出し元が割り当てた変数のアドレス。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
現在のコンポーネントが依存しているコンポーネントの名前を正常に返しました。
S_FALSE
現在のコンポーネントが依存しているコンポーネントを管理するライターが見つかりませんでした。
E_INVALIDARG
ポインター pbstrComponentName が未割り当てのメモリを指しています。
E_OUTOFMEMORY
呼び出し元のメモリまたはその他のシステムリソースが不足しています。
VSS_E_INVALID_XML_DOCUMENT
XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳細については、 Event and Error Handling Under VSS を参照してください。
VSS_E_UNEXPECTED
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、 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 の 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_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 方式にも切替可。