INF AddComServer 指令

AddComServer 指令在 DDInstall.COM 部分中用于注册 COM 服务器。 必须在 DDInstall.COM 部分中定义一台或多台 COM 服务器。 Windows 11 版本 24H2 及更高版本中支持此部分。

[DDInstall.COM]

AddComServer = com-server-name, [flags], com-server-install-section

条目

com-server-name

指定要安装的 COM 服务器的名称。 该名称通常是要注册的 COM 组件的名称或说明。 COM 服务器名称在 INF 中必须唯一,并在缺少 COM 类说明时用作说明。

flags

指定 AddComServer 指令的额外标志。 标志字段保留供将来使用,因此应留空或设置为零。

com-server-install-section

引用 INF 编写器定义的部分,其中包含用于注册 COM 服务器及其类的信息。

有关 COM 服务器安装部分的详细信息,请参阅以下备注;有关 COM 服务器的一般信息,请参阅 COM 客户端和服务器

注解

AddComServer 指令会导致系统安装程序在驱动程序包的驱动程序存储相对路径中,注册由服务器二进制文件实施的 COM 服务器。

在 COM 类上调用 CoCreateInstance 之前,必须在每个进程中调用 CoRegisterDeviceCatalog。 调用 CoRegisterDeviceCatalog 时,将在进程中提供 COM 服务器注册,以供 COM 运行时使用。

INF DDInstall.COM 部分中的每个 AddComServer 指令都可以引用 INF 文件中其他位置的 INF 编写器定义的 com-server-install-section。 每个 INF 编写器定义的部分名称在 INF 文件中都必须唯一,并且必须遵循定义部分名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的常规语法规则

AddComServer 指令必须引用 INF 中其他位置命为的 com-server-install-section。 每个此类部分都采用以下形式:

[com-server-install-section]

ServerType            = server-type
ServerBinary          = binary-path
[ServerBinaryWow64    = wow64-binary-path]
AddComClass           = {clsid-guid}[, flags[, com-class-install-section]]

每个 com-server-install-section 都必须提供 ServerTypeServerBinary,以及一个或多个 AddComClass,其中每项均位于单独的行。

com-server-install-section 条目和值

ServerType

指定要注册的 COM 服务器的类型。 每种 COM 服务器类型都有一组特定的必需和可选条目和指令。 仅支持 0x1(进程中)。

server-type-enum 服务器类型 必需指令 可选指令
0x1 进程中
  • ServerBinary
  • AddComClass
  • ServerBinaryWow64
  • ThreadingModel

ServerBinary

原生体系结构的 COM 服务器二进制文件的路径。

ServerBinaryWow64

用于 AMD64 平台上非原生 x86 体系结构支持的 COM 服务器 WOW64 二进制文件的路径。

AddComClass = {clsid-guid}[, flags[, com-class-install-section]]

此必需指令可以一次或多次用于向可选安装部分注册 COM 类。

有关如何注册 COM 类的详细信息,请参阅 INF AddComClass 指令

示例

[ContosoEncoderServer.NT.COM]
AddComServer   = ContosoEncoderServer,, ContosoEncoder_ComServer_Inst

[ContosoEncoder_ComServer_Inst]
ServerType     = 1 ; in-proc
ServerBinary   = %13%\contoso_encoder.dll
AddComClass    = {bb2b85ab-9473-42e5-8d1a-0f01d3879879}
AddComClass    = {f1baf99b-d28a-4ea3-b652-355da082d260}, 0, ContosoEncoderControl_ComClass_Inst

[ContosoEncoderControl_ComClass_Inst]
Description    = %ContosoEncoder_Comclass_Desc%
ThreadingModel = Apartment

[Strings]
%ContosoEncoder_Comclass_Desc%="Contoso H.264 Encoder"

另请参阅