IFhReassociation
COM公式ドキュメント
このインターフェイスは、クライアントアプリケーションがファイル履歴のターゲットにあるファイル履歴構成を現在のユーザーと再関連付けできるようにします。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このメソッドは、特定のストレージデバイスまたはネットワーク共有をファイル履歴の既定のターゲットとして使用できるかどうか、つまり再関連付けがそもそも可能かどうかを確認します。
| TargetUrl | LPWSTR | in | 検証対象のストレージデバイスまたはネットワーク共有を指定します。 |
| ValidationResult | FH_DEVICE_VALIDATION_RESULT* | out | 戻り時に、デバイス検証の結果を示す値が格納されます。サポートされるデバイス検証結果の詳細な説明については、FH_DEVICE_VALIDATION_RESULT 列挙型を参照してください。 |
戻り値
成功した場合は S_OK、失敗した場合は失敗を示す HRESULT 値。失敗を示す HRESULT 値には、FhErrors.h ヘッダーファイルで定義されている値が含まれます。
解説(Remarks)
ローカルディスクの場合、TargetUrl パラメーターにはドライブ文字を指定します。このパスは末尾が円記号 (バックスラッシュ) で終わる必要があります (例: "X:\")。
ネットワーク共有の場合、TargetUrl パラメーターには共有のフルパスを指定します。このパスは末尾が円記号 (バックスラッシュ) で終わる必要があります (例: "\\myserver\myshare\")。
指定したストレージデバイスまたはネットワーク共有の名前空間をスキャンし、現在のコンピューターで再関連付けして引き続き使用できるファイル履歴構成を検索します。
| TargetUrl | LPWSTR | in | スキャン対象のストレージデバイスまたはネットワーク共有を指定します。 |
戻り値
成功した場合は S_OK、失敗した場合は失敗を示す HRESULT。失敗を示す HRESULT 値には、FhErrors.h ヘッダーファイルで定義されている値が含まれます。
指定したストレージデバイスまたはネットワーク共有でファイル履歴構成が見つからなかった場合は、HRESULT_FROM_WIN32(ERROR_NOT_FOUND) エラーコードが返されます。
解説(Remarks)
ローカルディスクの場合、TargetUrl パラメーターにはドライブ文字を指定します。このパスは末尾が円記号 (バックスラッシュ) で終わる必要があります (例: "X:\")。
ネットワーク共有の場合、TargetUrl パラメーターには共有のフルパスを指定します。このパスは末尾が円記号 (バックスラッシュ) で終わる必要があります (例: "\\myserver\myshare\")。
このメソッドは、IFhReassociation::ScanTargetForConfigurations メソッドによってストレージデバイスまたはネットワーク共有上で検出されたファイル履歴構成を列挙し、検出された各構成に関する追加情報を返します。
| Index | DWORD | in | 検出された構成の 0 から始まるインデックス。 |
| UserName | LPWSTR* | out | 戻り時に、その構成が最後にバックアップされたときのユーザーアカウント名を含む、SysAllocString で割り当てられた文字列へのポインターが格納されます。 |
| PcName | LPWSTR* | out | 戻り時に、その構成が最後にバックアップされたコンピューターの名前を含む、SysAllocString で割り当てられた文字列へのポインターが格納されます。 |
| BackupTime | FILETIME* | out | 戻り時に、その構成が最後にバックアップされた日時が格納されます。 |
戻り値
成功した場合は S_OK、失敗した場合は失敗を示す HRESULT。失敗を示す HRESULT 値には、FhErrors.h ヘッダーファイルで定義されている値が含まれます。
指定したインデックスのファイル履歴構成が存在しない場合は、HRESULT_FROM_WIN32(ERROR_NOT_FOUND) エラーコードが返されます。
解説(Remarks)
呼び出し元は、UserName および PcName に割り当てられたメモリーを、それぞれに対して SysFreeString を呼び出して解放する必要があります。
再関連付けを実行するには、このメソッドで列挙された構成のいずれかを IFhReassociation::SelectConfiguration メソッドで選択し、その後 IFhReassociation::PerformReassociation メソッドを呼び出す必要があります。
IFhReassociation::ScanTargetForConfigurations メソッドによってストレージデバイスまたはネットワーク共有上で検出されたファイル履歴構成のうち、後続の再関連付けに使用するものを 1 つ選択します。
| Index | DWORD | in | 検出された構成の 0 から始まるインデックス。 |
戻り値
成功した場合は S_OK、失敗した場合は失敗を示す HRESULT 値。失敗を示す HRESULT 値には、FhErrors.h ヘッダーファイルで定義されている値が含まれます。
指定したインデックスのファイル履歴構成が存在しない場合は、HRESULT_FROM_WIN32(ERROR_NOT_FOUND) エラーコードが返されます。
このメソッドは、現在のユーザーと、IFhReassociation::SelectConfiguration メソッドで事前に選択された構成との関係を再確立し、現在のコンピューターからのバックアップデータを受け入れられるようにターゲットデバイスを準備します。
| OverwriteIfExists | BOOL | in | このパラメーターは、現在のファイル履歴構成が既に存在する場合の処理方法を指定します。 このパラメーターが FALSE に設定されており、現在のユーザーに対してファイル履歴が既に構成されている場合、このメソッドは FHCFG_E_CONFIG_ALREADY_EXISTS エラーコードで失敗し、バックアップは既に構成されているターゲットデバイスに対して引き続き実行されます。 このパラメーターが TRUE に設定されており、現在のユーザーに対してファイル履歴が既に構成されている場合、現在の構成は選択された構成に置き換えられ、以降のバックアップは選択された構成を含むターゲットデバイスに対して実行されます。 |
戻り値
成功した場合は S_OK、失敗した場合は失敗を示す HRESULT 値。失敗を示す HRESULT 値には、FhErrors.h ヘッダーファイルで定義されている値が含まれます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFhReassociation "{6544A28A-F68D-47AC-91EF-16B2B36AA3EE}" #usecom global IFhReassociation IID_IFhReassociation "{4D728E35-16FA-4320-9E8B-BFD7100A8846}" #comfunc global IFhReassociation_ValidateTarget 3 wstr,var #comfunc global IFhReassociation_ScanTargetForConfigurations 4 wstr #comfunc global IFhReassociation_GetConfigurationDetails 5 int,var,var,var #comfunc global IFhReassociation_SelectConfiguration 6 int #comfunc global IFhReassociation_PerformReassociation 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IFhReassociation "{6544A28A-F68D-47AC-91EF-16B2B36AA3EE}" #usecom global IFhReassociation IID_IFhReassociation "{4D728E35-16FA-4320-9E8B-BFD7100A8846}" #comfunc global IFhReassociation_ValidateTarget 3 wstr,sptr #comfunc global IFhReassociation_ScanTargetForConfigurations 4 wstr #comfunc global IFhReassociation_GetConfigurationDetails 5 int,sptr,sptr,sptr #comfunc global IFhReassociation_SelectConfiguration 6 int #comfunc global IFhReassociation_PerformReassociation 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。