PHP Manual
后退 |  | 前进

# XII. Windows 的 COM 支持函数库

# 简介

COM 是一种允许（用任何语言编写的）可重用代码使用标准常规调用，同时将执行细节隐藏在 API 之后的技术，例如组件存储在某台机器上，同时可对机器执行内务处理。它可以被认为是一种带基础根对象的超级远程呼叫调用（Remote Procedure Call，RPC）机制。它将执行从接口中分离出来。

COM 促使执行从接口中分离，同时隐藏了执行细节，例如执行的位置和编写代码使用的语言。

# 需求

COM 函数仅可用于 PHP 的 Windows 版本。

# 安装

这些函数作为 PHP 核心的一部分，无需被安装即可使用。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

# 运行时配置

这些函数的行为受 `php.ini` 的影响。

表格 1. COM 配置选项

名称 | 默认值 | 作用范围
--- | --- | ---
com.allow_dcom | "0" | PHP_INI_SYSTEM
com.autoregister_typelib | "0" | PHP_INI_SYSTEM
com.autoregister_verbose | "0" | PHP_INI_SYSTEM
com.autoregister_casesensitive | "1" | PHP_INI_SYSTEM
com.typelib_file | "" | PHP_INI_SYSTEM

更多关于常量 PHP_INI_* 的细节和解释参见 ini_set().

# 预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

`CLSCTX_INPROC_SERVER` (integer)

`CLSCTX_INPROC_HANDLER` (integer)

`CLSCTX_LOCAL_SERVER` (integer)

`CLSCTX_REMOTE_SERVER` (integer)

`CLSCTX_SERVER` (integer)

`CLSCTX_ALL` (integer)

`VT_NULL` (integer)

`VT_EMPTY` (integer)

`VT_UI1` (integer)

`VT_I2` (integer)

`VT_I4` (integer)

`VT_R4` (integer)

`VT_R8` (integer)

`VT_BOOL` (integer)

`VT_ERROR` (integer)

`VT_CY` (integer)

`VT_DATE` (integer)

`VT_BSTR` (integer)

`VT_DECIMAL` (integer)

`VT_UNKNOWN` (integer)

`VT_DISPATCH` (integer)

`VT_VARIANT` (integer)

`VT_I1` (integer)

`VT_UI2` (integer)

`VT_UI4` (integer)

`VT_INT` (integer)

`VT_UINT` (integer)

`VT_ARRAY` (integer)

`VT_BYREF` (integer)

`CP_ACP` (integer)

`CP_MACCP` (integer)

`CP_OEMCP` (integer)

`CP_UTF7` (integer)

`CP_UTF8` (integer)

`CP_SYMBOL` (integer)

`CP_THREAD_ACP` (integer)

# 参见

更多关于 COM 的信息请阅读 COM specification 或有可能的话看一看 Don Box 的 Yet Another COM Library (YACL)

后退 | 起点 | 前进
property_exists | 上一级 | COM