IPreviousVersionsInfo::AreSnapshotsAvailable メソッド (shobjidl.h)
システムによって以前に記録された Windows Server 2003 ボリューム イメージの可用性を照会します。
構文
HRESULT AreSnapshotsAvailable(
[in] LPCWSTR pszPath,
[in] BOOL fOkToBeSlow,
[out] BOOL *pfAvailable
);
パラメーター
[in] pszPath
種類: LPCWSTR
対象のボリューム上のファイルまたはフォルダーへの完全修飾パスを含む null で終わる Unicode 文字列。
[in] fOkToBeSlow
種類: BOOL
格納されているボリューム イメージの可用性を判断するためにサーバーに接続するかどうかを指定するブール値。 詳細については、「解説」セクションを参照してください。
TRUE
結果がまだキャッシュされていない場合は、サーバーに問い合わせてください。
FALSE
サーバーに接続しないでください。 代わりにキャッシュされた結果を使用してください。
[out] pfAvailable
種類: BOOL*
結果を含むブール変数へのポインター。 この値は、メソッド呼び出しが成功した場合にのみ有効です。それ以外の場合は未定義です。
TRUE
pszPath にという名前のファイルまたはフォルダーが存在するボリュームの少なくとも 1 つの保存されたイメージを使用できます。
FALSE
ボリューム イメージは保存されません。
戻り値
型: HRESULT
次のような標準エラー値を返しますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
fOkToBeSlow は FALSE で、結果は現在キャッシュされていません。 |
解説
ファイルまたはフォルダーで IPreviousVersionsInfo::AreSnapshotsAvailable が呼び出された場合、その結果は、ボリューム全体のスナップショットを使用できるだけでなく、その特定のファイルまたはフォルダーに対してロールバック情報が使用可能であることを示すものではありません。 この結果はキャッシュされ、その同じボリュームに格納されているものに関する後続の呼び出しは、サーバーを再問い合わせする代わりに、キャッシュされた結果にアクセスします。パフォーマンスのオーバーヘッドはほとんどありません。
サーバーの応答がメモリにキャッシュされると、 fOkToBeSlow が TRUE であっても、後続の呼び出しはサーバーに接続しません。 fOkToBeSlow が FALSE で、サーバーの応答がまだ前の呼び出しからキャッシュされていない場合、メソッドは E_PENDINGを返します。 その場合は、 fOkToBeSlow を TRUE に設定し、 IPreviousVersionsInfo::AreSnapshotsAvailable をもう一度呼び出してサーバーに接続します。
パフォーマンスを向上させるには、このメソッドを呼び出す UI スレッドで常に fOkToBeSlow を FALSE に設定する必要があります。 メソッドがE_PENDINGを返す場合は、次の手順に従います。
- バックグラウンド スレッドに IPreviousVersionsInfo の別のインスタンスを作成します。
- fOkToBeSlow を TRUE に設定して IPreviousVersionsInfo::AreSnapshotsAvailable を呼び出します。
- 元の UI スレッドに IPreviousVersionsInfo::AreSnapshotsAvailable を再度呼び出すように通知します。 その後、結果がキャッシュからプルされます。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | shobjidl.h |
[DLL] | Twext.dll (バージョン 5.2 以降) |