IVssCreateWriterMetadata::AddComponent 方法 (vswriter.h)

AddComponent 方法将数据库或文件组添加为要备份的组件。

语法

HRESULT AddComponent(
  [in] VSS_COMPONENT_TYPE ct,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName,
  [in] LPCWSTR            wszCaption,
  [in] const BYTE         *pbIcon,
  [in] UINT               cbIcon,
  [in] bool               bRestoreMetadata,
  [in] bool               bNotifyOnBackupComplete,
  [in] bool               bSelectable,
  [in] bool               bSelectableForRestore,
  [in] DWORD              dwComponentFlags
);

参数

[in] ct

一个VSS_COMPONENT_TYPE枚举值,该值指定组件的类型。

Windows Server 2003 和 Windows XP: 在 Windows Server 2003 SP1 之前,此参数保留供系统使用,调用方不应重写默认值。

[in] wszLogicalPath

指向以 null 结尾的宽字符串的指针,该字符串包含数据库或文件组的逻辑路径。 有关详细信息,请参阅 组件的逻辑路径

逻辑路径是可选的,可以为 NULL

[in] wszComponentName

指向包含组件名称的 以 null 结尾的宽字符串的指针。 此字符串未本地化。

此参数是必需的,不能为 NULL。 字符串不能包含反斜杠。

[in] wszCaption

指向以 null 结尾的宽字符串的指针,该字符串包含组件的描述 (也称为“友好名称”) 。 此字符串可能已本地化,因此请求者必须假定它已本地化。

此参数是可选的,可以为 NULL。 字符串可以包含反斜杠。

[in] pbIcon

指向要显示在用户界面中的数据库图标的位图的指针。 缓冲区的大小(以字节为单位)由 cbIcon 参数指定。

如果编写器不想指定图标,应将 pbIcon 设置为 NULL

[in] cbIcon

缓冲区的大小(以字节为单位)。 如果 pbIcon 参数为 NULL则 cbIcon 应为零。

[in] bRestoreMetadata

此参数保留供将来使用,应始终设置为 false

[in] bNotifyOnBackupComplete

此参数保留供将来使用,应始终设置为 false

[in] bSelectable

一个布尔值,指示是否可以选择性地备份组件 (这意味着它可以从备份) 中排除,或者在备份编写器的任何组件时始终备份。 如果组件可以有选择地备份,则布尔值为 true ;如果备份任何组件时进行备份,则布尔 值为 false

[in] bSelectableForRestore

一个布尔值,用于确定组件在备份文档中未 显式包含 时是否可以单独还原该组件。 如果组件已显式添加到备份文档,则始终可以单独选择它进行还原;在本例中,此标志没有意义。

如果 为 true,则组件可以自行还原;如果 为 false,则仅当正在还原整个组件集时,才能还原组件。 (有关) 的详细信息,请参阅VSS_COMPONENTINFO和使用可选择性和逻辑路径

此参数的默认值为 false

[in] dwComponentFlags

位掩码 (或) VSS_COMPONENT_FLAGS 枚举的成员,指示此组件支持的功能。

此参数的默认值为零。

返回值

下面是此方法的有效返回代码。

含义
S_OK
操作成功。
E_INVALIDARG
其中一个参数值无效。
E_OUTOFMEMORY
调用方内存或其他系统资源不足。
VSS_E_INVALID_XML_DOCUMENT
XML 文档无效。 有关详细信息,请查看事件日志。 有关详细信息,请参阅 VSS 下的事件和错误处理
VSS_E_OBJECT_ALREADY_EXISTS
对象是重复的。 已存在具有相同逻辑路径和组件名称的组件。
VSS_E_UNEXPECTED
意外错误。 错误代码记录在错误日志文件中。 有关详细信息,请参阅 VSS 下的事件和错误处理

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前不支持此值。 改用E_UNEXPECTED。

注解

可以多次调用此方法,以将多个组件添加到编写器的元数据中。

给定编写器类的给定实例的每个组件的逻辑路径和名称的组合必须是唯一的。 尝试使用 wszLogicalPathwszComponentName 相同的值调用 AddComponent 两次会导致VSS_E_OBJECT_ALREADY_EXISTS错误。

AddComponent 可用于添加子组件-其中所有成员文件都备份为一个组,但包含可单独还原的文件的组件。 有关详细信息,请参阅 使用 Restore 和 Subcomponents 的可选择性

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 vswriter.h (包括 Vss.h、VsWriter.h)
Library VssApi.lib

另请参阅

IVssCreateWriterMetadata