ComObjFromPtr

包装一个原始 IDispatch 指针(COM 对象), 以供脚本使用.

ComObj := ComObjFromPtr(DispPtr)

参数

DispPtr

类型: 整数

IDispatch 或派生接口的一个非空接口指针.

返回值

类型: ComObject

返回一个包含变体类型 VT_DISPATCH 和给定指针的封装对象.

封装一个 COM 对象可以使脚本更自然地使用对象语法与之交互. 然而, 大多数脚本都不需要手动操作, 因为 ComObject, ComObjActive, ComObjGet 和任何返回对象的 COM 方法都会自动创建一个包装对象.

备注

封装器对象在适当的时候承担自动释放指针的责任. 函数查询对象的 IDispatch 接口; 如果返回一个接口, DispPtr 将被立即释放. 因此, 如果脚本打算在调用此函数后使用指针, 它必须先调用 ObjAddRef(DispPtr) first.

已知限制: 每次包装 COM 对象时, 都会创建新的包装器对象. 如 obj1 == obj2arr[obj1] := value 这样的比较和赋值运算, 将这两个包装器对象视为唯一的, 即使它们包含相同的 COM 对象.

ComObject, ComValue, ComObjGet, ComObjConnect, ComObjFlags, ObjAddRef/ObjRelease, ComObjQuery, GetActiveObject (Microsoft Docs)