包装一个原始 IDispatch 指针(COM 对象), 以供脚本使用.
ComObj := ComObjFromPtr(DispPtr)
类型: 整数
IDispatch 或派生接口的一个非空接口指针.
类型: ComObject
返回一个包含变体类型 VT_DISPATCH 和给定指针的封装对象.
封装一个 COM 对象可以使脚本更自然地使用对象语法与之交互. 然而, 大多数脚本都不需要手动操作, 因为 ComObject, ComObjActive, ComObjGet 和任何返回对象的 COM 方法都会自动创建一个包装对象.
封装器对象在适当的时候承担自动释放指针的责任. 函数查询对象的 IDispatch 接口; 如果返回一个接口, DispPtr 将被立即释放. 因此, 如果脚本打算在调用此函数后使用指针, 它必须先调用 ObjAddRef(DispPtr)
first.
已知限制: 每次包装 COM 对象时, 都会创建新的包装器对象. 如 obj1 == obj2
和 arr[obj1] := value
这样的比较和赋值运算, 将这两个包装器对象视为唯一的, 即使它们包含相同的 COM 对象.
ComObject, ComValue, ComObjGet, ComObjConnect, ComObjFlags, ObjAddRef/ObjRelease, ComObjQuery, GetActiveObject (Microsoft Docs)