IPreviousVersionsInfo::AreSnapshotsAvailable 方法 (shobjidl.h)

查询系统在较早时间记录的 Windows Server 2003 卷映像的可用性。

语法

HRESULT AreSnapshotsAvailable(
  [in]  LPCWSTR pszPath,
  [in]  BOOL    fOkToBeSlow,
  [out] BOOL    *pfAvailable
);

参数

[in] pszPath

类型: LPCWSTR

一个以 null 结尾的 Unicode 字符串,包含有关卷上文件或文件夹的完全限定路径。

注意 目前仅支持存储在 Windows Server 2003 卷上的文件和文件夹的路径。
 

[in] fOkToBeSlow

类型: BOOL

一个布尔值,指定是否应联系服务器以确定存储卷映像的可用性。 有关更多详细信息,请参阅备注部分。

TRUE

如果尚未缓存结果,请联系服务器。

FALSE

请勿联系服务器。 请改用缓存的结果。

[out] pfAvailable

类型: BOOL*

指向包含结果的布尔变量的指针。 仅当方法调用成功时,此值才有效;否则,它是未定义的。

TRUE

pszPath 中名为 的文件或文件夹所在的卷的至少一个存储映像可用。

FALSE

不存储卷映像。

返回值

类型: HRESULT

返回标准错误值,包括但不限于以下内容:

返回代码 说明
S_OK
成功。
E_PENDING
fOkToBeSlowFALSE ,并且当前未缓存结果。

注解

如果在文件或文件夹上调用了 IPreviousVersionsInfo::AreSnapshotsAvailable,则结果并不表示回滚信息可用于该特定文件或文件夹,而只是整个卷的快照可用。 此结果是缓存的,后续调用会询问存储在同一卷上的任何内容,访问缓存的结果(性能开销很少),而不是重新连接服务器。

在内存中缓存服务器的响应后,即使 fOkToBeSlowTRUE,后续调用也不会联系服务器。 如果 fOkToBeSlowFALSE ,并且服务器的响应尚未从上一次调用缓存,则该方法将返回E_PENDING。 在这种情况下,请将 fOkToBeSlow 设置为 TRUE ,然后再次调用 IPreviousVersionsInfo::AreSnapshotsAvailable 以联系服务器。

为了获得更好的性能,调用此方法的 UI 线程应始终将 fOkToBeSlow 设置为 FALSE。 如果方法返回E_PENDING,请执行以下步骤。

  • 在后台线程上创建另一个 IPreviousVersionsInfo 实例。
  • 调用 IPreviousVersionsInfo::AreSnapshotsAvailablefOkToBeSlow 设置为 TRUE
  • 向原始 UI 线程发出信号,以再次调用 IPreviousVersionsInfo::AreSnapshotsAvailable 。 然后从缓存中拉取结果。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shobjidl.h
DLL Twext.dll (版本 5.2 或更高版本)