# ComObjFromPtr

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

    ComObj := ComObjFromPtr(DispPtr)

## 参数

DispPtr

  类型: 整数

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

## 返回值

类型: ComObject

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

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

## 备注

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

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

## 相关

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

dftg