介绍
COM 是一种允许(用任何语言编写的)可重用代码使用标准常规调用,同时将执行细节隐藏在 API 之后的技术,例如组件存储在某台机器上,同时可对机器执行内务处理。它可以被认为是一种带基础根对象的超级远程呼叫调用(Remote Procedure Call,RPC)机制。它将执行从接口中分离出来。
COM 促使执行从接口中分离,同时隐藏了执行细节,例如执行的位置和编写代码使用的语言。
运行时配置
这些函数的行为受到全局配置文件 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 中,或者在运行时被动态加载后,这些常量才有效。
-
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)
-
目录
COM -- COM 类
VARIANT -- VARIANT 类
com_addref -- 增加组件引用计数。
com_get -- 获取 COM 组件的属性值
com_invoke -- 调用 COM 组件的方法。
com_isenum -- 获取一个 IEnumVariant
com_load_typelib -- 装载一个 Typelib
com_load -- 创建新的 COM 组件的引用
com_propget --
com_get() 的别名
com_propput --
com_set() 的别名
com_propset --
com_set() 的别名
com_release -- 减少组件引用计数。
com_set -- 给 COM 组件的属性赋值