aardio 文档

com 库模块帮助文档

com 成员列表 #

COM 组件支持库,
虽然这是内置库,但例外的是这个库不会自动导入,
如果在已经导入win.ui 的界面线程,win.ui 会负责自动导入 com 库
使用手册相关文档

com.AddConnection #

添加 COM 对象事件接收器。

com.AddConnection(comObject,eventSink) #

添加 COM 对象事件接收器。  

参数 @comObject 指定需要监听事件的 COM 对象。  
参数 @comObject 指定的对象如果被释放回收,事件监听也会自动解除。   
注意 excel.ActiveWorkbook 这种动态属性应当先保存到变量,再绑定事件  

参数 @eventSink 支持以下两种事件接收器:  
- 使用 com.ImplInterface 函数创建的动态事件接口。  
- 使用 com.interface 实现的原生静态事件接口。  

注册成功返回一个表示事件连接点的 cookie 。  
cookie 可作为释放绑定的 com.ReleaseConnection 函数的参数。

com.Connect #

注册事件接收表
此函数返回sink,cookie 共2个返回值,
sink为事件接收器,cookie是一个数字值,用来记录连接点,
这2个返回值可以用于 com.ReleaseConnection 释放事件表。

com.Connect(COM对象,事件监听表) #

参数 @2 指定一个 table 类型的表对象
该表对象被转换为COM对象的默认事件监听器并实现默认事件接口,
如果需要显式指定接口类型请使用 com.AddConnection。

com.Connect 绑定的事件监听表会被强引用到 COM对象
如果COM对象与事件接收表存在循环引用自身会导致无法释放,
可用 com.ReleaseConnection 手动释放事件绑定,
或者改用 com.ConnectWeak,com.CreateEmbedEx 也可以避免该问题。

参数 @1 指定的对象如果被释放回收,事件监听也会自动解除。
注意 excel.ActiveWorkbook 这种动态属性应当先保存到变量,再绑定事件

com.ConnectWeak #

注册弱引用自身的事件接收表
此函数返回sink,cookie 共2个返回值,
sink为事件接收器,cookie是一个数字值,用来记录连接点,
这2个返回值可以用于 com.ReleaseConnection 释放事件表

com.ConnectWeak(COM对象,事件接收表) #

参数@2指定一个table类型的表对象
该表对象被创建为COM对象的默认事件接口并注册为事件接收器。

在COM对象销毁前,com.Connect绑定的事件接收表会被强引用并被阻止回收,
如果COM对象与事件接收表存在循环引用自身会导致COM对象无法释放,
com.ConnectWeak函数通过创建一个中间代理对象弱引用事件接收表,可以避免该问题,
但要注意回调事件访问的owner对象是代理对象,使用owner.realSink可以获取真正的事件表

com.CreateEmbed #

创建 COM 控件对象,
通常不会直接使用此函数,
应改用窗口或控件对象提供的 CreateEmbed 或 CreateEmbedEx 函数,
或者 com.lite 提供的 CreateEmbed 或 CreateEmbedEx 函数

com.CreateEmbed() #

返回对象:embedObject

com.CreateEmbed(embedObject,formOrCtrl,comObject) #

创建 COM 控件对象并嵌入 @formOrCtrl 指定的窗体或控件窗口
@comObject 参数指定 com.IDispatch 对象,
@embedObject 用一个表指定容器对象

com.CreateEmbed(embedObject,formOrCtrl,progId,preferredInvokeKind) #

创建 COM 控件对象并嵌入 @formOrCtrl 指定的窗体或控件窗口
@progId 指定要创建的 COM 控件的 ProgID 或者 CLSID
@embedObject 用一个表指定容器对象
容器对象可以是一个空的表用于接管 COM对象。
@preferredInvokeKind 参数作用与 com.SetPreferredInvokeKind 的参数相同,不必指定。

函数返回该容器对象并添加成员_host,_object,_form
_object 成员是创建的 COM对象 ,
_form 是传入参数中的 @formOrCtrl,
_host 是 COM 控件宿主对象,提供部分 OLE 接口函数,

容器对象可通过添加成员函数响应 COM对象 事件,
容器对象的另主要作用是充当访问 COM对象 的中间代理对象。
通常使用 util.metaProperty 为容器对象添加属性元表,
属性元表可拦截属性、函数调用并调用 _object 对象

com.CreateEmbedEx #

创建 COM 控件,返回控件容器对象。
容器对象的 object 成员是创建的 COM 对象。
容器对象的 __event
_ 成员为 COM 对象默认事件监听器。

返回容器已添加元表,可通过容器对象的成员代理访问 COM 对象成员。
也可以通过指定容器对象的成员函数响应 COM 对象事件

com.CreateEmbedEx(clsId,ctrlOrForm,embedObject) #

创建 COM 控件,返回控件容器对象。
此函数返回的容器已添加元表并创建代理以直接访问 COM对象,
也可以通过指定容器对象的成员函数响应 COM 对象事件。
@clsId 指定控件 CLSID 或者 ProgID 。
可选用 @ctrlOrForm 指定宿主窗口,
如果指定了窗主窗口,在窗口销毁时解除默认事件监听器并释放 COM 对象。
可选在参数 @embedObjec 中指定 COM对象 绑定的容器对象

com.CreateObject("字符串参数") #

创建并返回 com.IDispatch 对象,参数@1可指定 CLSID 或 ProgID,
创建失败会抛出异常,使用 com.TryCreateObject 代替不会抛异常

com.DoObjectVerb(OLE对象,-1) #

执行OLE对象的动词,
参数2可使用_OLEIVERB_前缀常量

com.DumpTypeInfo #

输出 COM对象 类型信息、成员函数列表,
输出到控制台可使用 console.dump 函数。

调用 com.tlbDoc.dump 函数可打印 COM对象 更详细的类型库信息

com.DumpTypeInfo(comObject) #

返回一个字符串
包含 COM对象 类型信息、成员函数列表,
此函数不会输出到控制台,
输出到控制台请使用 console.dump 函数

com.GetEnumerator() #

获取枚举对象,
参数 @1 指定 COM对象

返回对象:comEnumeratorObject

com.GetIUnknown(COM对象 或指针,GUID) #

使用 GUID 指定接口获取 com.IUnknown 托管指针
参数@1可是任何可以转换为指针的对象,与API参数规则相同,
可选在参数@2使用字符串或GUID指定接口
该指针自动管理引用计数,无须手动释放

com.GetObject("字符串参数") #

从已运行的实例获取并返回 com.IDispatch 对象,
参数@1可指定CLSID或ProgID,也可指定打开的文件路径,如 doc 文件,
获取对象失败会抛出异常,使用 com.TryGetObject 代替不会抛异常。

如果当前进程与目标 COM 服务进程不具有相同权限,则会报错『无效的操作』。

com.GetOrCreateObject("字符串参数") #

参数可指定一个或多个CLSID/ProgID,
首先调用 com.TryGetObject 尝试获取并返回已运行的实例,
如果失败则调用 com.TryCreateObject 函数尝试创建并返回对象,

创建失败返回null,错误信息,不会抛出异。

如果当前进程与目标 COM 服务进程不具有相同权限,
则 TryGetObject 不能获取该进程创建的 COM 对象。

com.GetPointer(COM对象 ) #

获取 IDispatch 指针
该指针返回前已调用 AddRef 增加 COM 引用计数,
不再使用时必须及时调用 com.Release 释放

com.GetPointer(COM对象 或指针,GUID) #

使用 GUID 指定接口获取原生指针,
该指针返回前已调用AddRef增加COM引用计数,
不再使用时必须及时调用 com.Release 释放,
参数@1可是 COM对象 、com.IUnknown对象、或可转换为指针的对象
参数@2可用文本格式表示,省略时默认为IID_IUnknown

com.GetTypeInfo() #

返回对象:comTypeInfoObject

com.GetTypeInfo(/*COM对象 */) #

返回类型信息

com.ImplInterface(implObject) #

将 aardio 对象转换为支持 IDispatch 接口的 COM对象 ,
参数@1可以是普通表对象、函数对象、类对象、cdata对象。

如果参数@1是函数或类对象,回调时onwer参数为 dispIdMember 数值。
如果参数@1是表对象转换为 COM对象 ,直接作为 COM 函数调用时支持 _call元方法,
如果未定义 _call元方法则调用表对象中索引为0的函数
通过 COM 接口调用表的成员函数时支持 _get 元方法,并将 onwerCall 参数设为 true。

表对象或表的成员函数作为COM函数回调时 onwer 参数总是指向表对象自身,
dispIdMember小于0时总是调用表索引中对应的函数,

在与 COM 接口交互时,
无法自动转换为 COM对象的 aardio 对象也会调用此函数自动转换

com.ImplInterface(implTable,progID,interfaceName) #

使用一个 table 表转换为 @interfaceName 指定的接口对象
例如:com.ImplInterface( flash.callevent ,"ShockwaveFlash.ShockwaveFlash","_IShockwaveFlashEvents")

com.ImplInterfaceFromTypelib(implTable,typelibPath,interfaceName,coclassNname) #

使用类型库实现com接口

com.IsIUnknown(任意参数) #

检测参数是否一个托管 com.IUnknown 指针

com.IsMember(comObject,memberName) #

返回参数 @memberName 指定的名字是否 @comObject 参数指定 COM 对象的成员。

com.IsNetObject(任意对象) #

检测参数是否一个 .NET 原生对象,是则返回非 0 值。
如果是普通 .NET 对象返回 1,如果是 DispatchableObject 对象返回 2

com.IsObject(任意对象) #

检测参数是否一个动态 COM对象(IDispatch 对象)

com.LoadTypeLibrary(".tlb") #

加载类型库
参数可以是CLSID、类型库路径、或包含类型库资源的组件路径

com.LoadTypeLibrary() #

返回对象:comTypeLibObject

com.NewControl(tab,progId) #

创建COM控件,可选使用参数@3指定tlb类型库路径
此函数详细用法请参考标准库com.activeX的源代码

com.NewObject(tab,progId) #

创建COM对象,可选使用参数@3指定tlb类型库路径
此函数详细用法请参考标准库com.activeX的源代码

com.QueryObject(IUnknown指针 ) #

查询 IDispatch 接口、并创建 com.IDispatch 对象

com.QueryObjectR(IUnknown指针 ) #

查询 IDispatch 接口、并创建 com.IDispatch 对象
如果成功则调用 com.Release 释放传入的 IUnknown 指针
使其引用计数减一,释放的指针不应再使用,
返回的 COM对象 会增加引用计数,
并在对象释放时自动减一

com.Release() #

释放 COM 对象、.NET 对象、IUnknown 指针、com.interface 创建的对象。
如果参数 是 pointer 类型指针调用 IUnknown 接口 Release 函数使引用计数减一
如果参数是 cdata 内核对象或自元表中返回 cdata,则调用 cdata 的 _gc 析构函数

参数 @1 为 null 抛出异常

com.ReleaseConnection #

释放 COM 对象事件接收器。

com.ReleaseConnection(comObject) #

释放由 com.Connect 函数绑定的默认事件接口接收器。
参数 @comObject 指定要解除事件接收器的 COM对象。

n即使不调用此函数,在 COM对象 销毁前会自动释放所有事件接收器。

com.ReleaseConnection(comObject,eventSink, cookie) #

释放 COM 对象事件接收器。

@comObject 指定要解除事件监听的 COM对象。

参数 @eventSink 支持以下两种事件接收器:

@cookie 来自 com.AddConnection 或 com.Connect 的返回值

即使不调用此函数,
在 COM对象 销毁前也会释放所有事件。

com.RoundTrip() #

将aardio对象转换为COM对象,
再将该 COM对象 转换为aardio对象

com.SafeArray #

创建或获取 COM 安全数组(SAFEARRAY)。

com.SafeArray(ptrSSafeArray,variantType) #

自 SAFEARRAY 内存指针获取 COM 安全数组。
参数 @ptrSSafeArray 必须指定 pointer 类型指针(C++ 类型声明为 SAFEARRAY*)。
参数 @variantType 指定元素类型,省略则默认为 _VT_UI1 。

如果 @variantType 为 _VT_UI1 则将数组转换为二进制字节数组( buffer )返回。
其他类型转换为普通数组,并且数组元表的 _safearray_type 声明了 COM 数组类型。
与使用 com.SafeArray 函数创建的 COM 安全数组格式相同。

com.SafeArray(variantType,...) #

创建 COM 安全数组(SAFEARRAY)。
在 aardio 中 COM 数组默认存为纯数组对象,但数组元表的 _safearray_type 声明了 COM 数组类型。
COM 函数传入传出 COM 数组均默认使用此格式。

参数 @variantType 可指定表示 COM 数组类型的数值,支持 VT 前缀的自动完成常量。
不指定 @variantType 时默认为 _VT_VARIANT( 可兼容 VBS 数组)。
类型为 _VT_ILLEGAL 则单个值与数组元素类型均自动设定,这是调用 COM 接口的默认规则。
- 纯字符串数组默认元素类型为 _VT_BSTR,
- 纯数值类型默认元素类型为 _VT_R8(double),
- IDispatch 对象数组元素类型为 _VT_DISPATCH,
- 其他数组元素类型默认为 _VT_VARIANT

可选增加一个或多个参数指定初始化时添加到数组的成员。

com.SafeArrayType() #

如果传入参数为 COM 安全数组(SAFEARRAY),
则返回一个表示 COM 数组元素类型的数值,该值应以 VT 前缀的常量进行比对。
支持 com.SafeArray 创建的 COM 数组,或 COM 函数返回的数组。
参数如果是 com.Variant 创建的 Variant 对象,返回 null,
参数是其他类型值,也返回 null。

com.SetPreferredArrayType(/*COM 对象*/,0xC/*_VT_VARIANT*/) #

设置调用该 COM对象 时 aardio 数组参数转 COM 数组的默认类型,
参数只能设为 _VT_VARIANT 或 _VT_ILLEGAL,默认已设置为 _VT_ILLEGAL。
此设置值会自动传递到该 COM对象 返回的其他 COM对象 。

此选项设为 _VT_ILLEGAL 将自动调整为合适的类型,规则如下:
纯字符串数组类型设为 _VT_BSTR,
纯数值数组类型设为 _VT_R8(double),
其他数组类型设为 _VT_VARIANT,
这也是所有 COM对象 的默认设置。

如果要创建明确指定 COM 类型的数组参数,
可使用 com.Variant,COM.SafeArray,COM.toSafeArray,com.int ... 等函数

com.SetPreferredInvokeKind(/*COM 对象*/,1/*_INVOKE_FUNC*/) #

设置以函数方式调用 COM 对象时,是否总是将 COM 对象作为方法调用。
此选项会影响到所有通过该 COM 对象创建或返回的其他 COM 对象。
参数 @2 只能省略(默认自动选择)或者指定为 1/*_INVOKE_FUNC*/。

只有极个别 COM 对象在自动选择时报错(极为罕见)才需要调用此函数。
在默认设置下,如果无法通过类型信息或 get,set 前缀确定是调用方法还是属性,
则由目标 COM 对象自动选择调用方式。

如果调用此函数并设参数为 INVOKE_FUNC, 且调用 com.SetPreferredArrayType 并设参数为 VT_ILLEGAL,
则该 COM 对象所有传入传出的所有时间对象总是自动转换为 UTC 时间(不改变入参)。

com.ShowHelp(/*COM对象 */) #

显示帮助

com.TryCreateObject(cls,...) #

参数可指定一个或多个CLSID/ProgID,逐个测试直到创建成功,
成功返回 com.IDispatch 对象,
创建失败返回null,错误信息,不会抛出异常,
参数@1可指定 CLSID或 ProgID

com.TryGetObject("字符串参数") #

从已运行的实例获取并返回 com.IDispatch 对象,
参数可指定一个或多个 CLSID/ProgID,也可指定要打开的文件路径,如doc文件,

创建失败返回null,错误信息,不会抛出异常。

如果当前进程与目标 COM 服务进程不具有相同权限,则会返回 null。

com.Variant #

创建 VARIANT 变体对象。
可用于普通 COM对象 传值或传址参数。
可用于 .NET 普通输入参数,不支持 .NET 输出参数(可改用 dotNet.object)。
可用于 API 函数中 VARIANT* 指针类型参数。

com.Variant() #

返回对象:comVariantObject

com.Variant(初始值,变体类型,输出引用) #

可选指定一个初始值,可以是任意适用于 COM 参数的值或数组。

参数 @2 可选用一个 VT 前缀的整数常量指定期望的 COM 变体类型。
变体类型指定数值,且参数 @1 为无元表的空表或非空数组时都会处理为 COM 数组。

若省略类型或设为 _VT_VARIANT,则单值自动选择类型,未明确类型的数组设为 VT_VARIANT。
如果变体类型为 _VT_ILLEGAL,则单值与数组均自动选择类型,此为 COM 接口默认规则。

单整数默认类型为 _VT_I4(int),小数默认类型为 _VT_R8(double),
纯字符串数组默认为 _VT_BSTR 数组,纯数值类型默认为 _VT_R8(double)数组,
其他数组类型默认为 _VT_VARIANT 数组。

可选参数 @3 如果设为 true,就可以用于 COM 输出参数。

com.Variant(指针,true) #

创建 VARIANT 变体对象
如果参数@2为 true ,则参数 @1 必须为 VARIANT 指针。
调用 VariantCopyInd 函数拷贝参数指定的源 VARIANT 对象

com.byte() #

定义数值类型为 8 位整数,
作为输入参数可兼容 .NET System.SByte 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

返回对象:comVariantObject

com.double() #

定义数值类型为 64 位浮点数,
此函数返回 com.Variant 对象。
作为输入参数可兼容 .NET System.Double 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

注意普通数值传入 COM 参数时,
整数默认转为32位整数,小数默认按double类型处理

返回对象:comVariantObject

com.each #

for index,obj in com.each() {  

} //迭代遍历com集合对象,参数可以直接传入COM迭代器

com.eachRunning(interface,name) #

for object,interface,name,index in com.eachRunning() {
    /*遍历ROT(运行对象表)  
参数 @interface 可选限定接口名(完全匹配),参数 @name 可选用模式串限定显示名称。   
返回 object为 COM 对象 ,interface 为接口名称(可能为 null),name 为显示名称。index 为序号*/
}

com.enumRunning(回调函数) #

com.enumRunning(   
    function(displayName,object){    
        /*枚举ROT(运行对象表)并获取COM对象,  
此回调函数返回true中止枚举*/  
    }  
)

com.first() #

对传入的 COM对象 调用 com.each 创建迭代器,
执行该迭代器并返回第一次返回的 COM对象 ,
如果传入参数为 null 或 false 则直接返回

com.float() #

定义数值类型为 32 位浮点数,
作为输入参数可兼容 .NET System.Single 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

com.int() #

定义数值类型为 32 位整数,
此函数返回 com.Variant 对象。
作为输入参数可兼容 .NET System.Int32 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

注意普通数值传入 COM 参数时,
整数默认转为32位整数,小数默认按double类型处理

返回对象:comVariantObject

com.isEnumerator(对象) #

检查并返回参数指定的对象是否 COM 迭代器

com.long() #

定义数值类型为 64 位整数,
作为输入参数可兼容 .NET System.Int64 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

返回对象:comVariantObject

com.toSafeArray(值,元素类型) #

转换为 COM 兼容数组,返回对象只能用于 COM 函数。

  1. 如果参数 @value 是 buffer 类型则直接返回,参数 @variantType 无效。
  2. 如果参数 @value 已经是 com.SafeArray 格式的 COM 数组则直接返回,参数 @variantType 无效。
  3. 如果参数 @value 是 字符串 则返回声明为 _VT_UI1 类型 COM 数组的包装对象,参数 @variantType 无效。
  4. 其他情况下返回 COM 数组的包装对象,value 只能指定表对象或者 null 值(将创建空数组),
    可选用参数 @variantType 指定数组元素的 COM 变体类型。
    如果未指定 @variantType ,则字符串设为 _VT_UI1,其他数组设为 _VT_VARIANT。
    如果 @variantType 指定为 _VT_ILLEGAL 则自动检测并设定类型,
    字符串数组设为 _VT_BSTR,数值数组设为 _VT_R8,COM 对象数组设为 _VT_DISPATCH,
    其他设为 _VT_VARIANT。

com.ubyte() #

定义数值类型为 8 位无符号整数,兼容 .NET System.Byte 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

返回对象:comVariantObject

com.uint() #

定义数值类型为 32 位无符号整数,
作为输入参数可兼容 .NET System.UInt32 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

返回对象:comVariantObject

com.ulong() #

定义数值类型为 64 位无符号整数,
作为输入参数可兼容 .NET System.UInt64 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

返回对象:comVariantObject

com.uword() #

定义数值类型为 16 位无符号整数,兼容 .NET System.UInt16 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

返回对象:comVariantObject

com.word() #

定义数值类型为 16 位整数,
作为输入参数可兼容 .NET System.Int16 类型数值。
参数 @1 可以为数值或数组,
参数 @2 为 true 则用于 COM 输出引用参数。

此函数返回 com.Variant 对象。

返回对象:comVariantObject

comEnumeratorObject 成员列表 #

comEnumeratorObject.Clone() #

复制对象

返回对象:comEnumeratorObject

comEnumeratorObject.Next(n) #

向后获取并返回 n 个元素的值

comEnumeratorObject.Reset() #

重置到开始位置

comEnumeratorObject.Skip(n) #

跳过 n 个元素的值,成功返回 true

comTypeAttrObject 成员列表 #

comTypeAttrObject.Funcs #

函数总数

comTypeAttrObject.GUID #

GUID

comTypeAttrObject.ImplTypes #

实现接口总数

comTypeAttrObject.Vars #

属性值总数

comTypeAttrObject.typekind #

类型,
值为"coclass","enumeration","interface","dispinterface"
"alias","union","record","module"之一

comTypeAttrObject.flags 成员列表 #

comTypeAttrObject.flags.appobject #

appobject

comTypeAttrObject.flags.cancreate #

cancreate

comTypeAttrObject.flags.control #

control

comTypeAttrObject.flags.dispatchable #

dispatchable

comTypeAttrObject.flags.hidden #

hidden

comTypeAttrObject.flags.oleautomation #

oleautomation

comTypeDocObject 成员列表 #

comTypeDocObject.helpstring #

对象的描述

comTypeDocObject.name #

对象接口名称

comTypeFuncObject 成员列表 #

comTypeFuncObject.Params #

参数数量

comTypeFuncObject.ParamsOpt #

可选参数数量

comTypeFuncObject.description #

描述

comTypeFuncObject.dispatchable #

是否动态接口函数

comTypeFuncObject.helpcontext #

数值,帮助上下文

comTypeFuncObject.helpfile #

帮助

comTypeFuncObject.invkind #

调用类型
可能的值为"_get","_set","_setByRef","function"

comTypeFuncObject.memid #

成员ID

comTypeFuncObject.name #

函数名

comTypeFuncObject.restricted #

是否不适合动态调用

comTypeFuncObject.type #

返回值类型,字符串

comTypeFuncObject.vt #

返回值类型,数值,
数值含义与 com.Variant 对象的 vt 字段相同

comTypeFuncObject.parameters 成员列表 #

参数描述数组

comTypeFuncObject.parameters.* #

返回对象:comTypeParameterObject

comTypeInfoObject 成员列表 #

comTypeInfoObject.DumpTypeInfo() #

返回一个字符串,
列出此类型所有的成员

comTypeInfoObject.GetDocumentation() #

返回文档信息

返回对象:comTypeDocObject

comTypeInfoObject.GetFuncDesc() #

返回对象:comTypeFuncObject

comTypeInfoObject.GetFuncDesc(索引) #

返回函数描述
注意超始索引为1

comTypeInfoObject.GetImplType() #

返回对象:comTypeInfoObject

comTypeInfoObject.GetImplType(索引) #

返回实现接口
注意超始索引为1

comTypeInfoObject.GetImplTypeFlags(索引) #

实现接口类型属性表
返回表包含字段default,source,restricted,defaultVTable,都是布尔值,
注意超始索引为1

comTypeInfoObject.GetTypeAttr() #

返回类型属性

返回对象:comTypeAttrObject

comTypeInfoObject.GetTypeLib() #

返回类型库

返回对象:comTypeLibObject

comTypeInfoObject.GetVarDesc(索引) #

COM变量/常量描述
注意超始索引为1

comTypeLibObject 成员列表 #

comTypeLibObject.ExportConstants() #

导出常量名值对组成的表。
可以使用常量名作为 COM 对象的成员名获取常量值

comTypeLibObject.ExportEnumerations() #

导出全部枚举类型,
返回一个表,键为枚举类型名,值为该类型的枚举名值对组成的表。

通常枚举名值对也是 COM 常量名值对,
可以使用枚举名字(不用指定枚举类型名)
作为 COM 对象的成员名获取枚举值

comTypeLibObject.GetDocumentation() #

返回文档信息

返回对象:comTypeDocObject

comTypeLibObject.GetTypeInfo() #

返回对象:comTypeInfoObject

comTypeLibObject.GetTypeInfo(索引) #

返回类型信息
注意超始索引为1

comTypeLibObject.GetTypeInfoCount() #

类型信息总数

comTypeLibObject.ShowHelp() #

显示帮助

comTypeParameterObject 成员列表 #

comTypeParameterObject.default #

参数的默认值

comTypeParameterObject.in #

是否输入参数

comTypeParameterObject.opt #

是否可选参数

comTypeParameterObject.out #

是否输出参数

comTypeParameterObject.type #

参数类型,字符串

comTypeParameterObject.vt #

参数类型,数值,
数值含义与 com.Variant 对象的 vt 字段相同

comTypeVarObject 成员列表 #

comTypeVarObject.name #

COM变量名

comTypeVarObject.value #

COM常量值

comVariantObject 成员列表 #

comVariantObject.bstrVal #

只读属性,获取BSTR指针

comVariantObject.clear() #

清空值
调用VariantClear函数清空值并重新初始化对象
调用了此函数以后,对象的vt置为0,
其他所有成员置为null,包括clear函数也置为null,
除非通过value属性重新赋值,clear函数才会变为可用

即使不调用这个函数,
aardio在析构回收对象时也会自动调用VariantClear函数释放资源

comVariantObject.parray #

只读属性,获取SAFEARRAY指针

comVariantObject.pdispVal #

只读属性,获取IDispatch指针

comVariantObject.punkVal #

只读属性,获取IUnknown指针

comVariantObject.value #

读写值遵守com与aardio间的数据类型转换规则

comVariantObject.vt #

Variant类型,数值,
只读属性,不可修改

embedObject 成员列表 #

embedObject._form #

COM 对象的容器窗口。
这是一个 win.form 对象或者 win.form 对象内部的控件对象。

返回对象:staticObject

embedObject._object #

原生 COM 控件对象。
原生 COM 控件对象不等于事件监听表,一般不用于直接绑定 COM 事件。
应当用 com.Connect 绑定事件监听表。
CreateEmbedEx 或 CreateEmbed 返回的容器对象也可自动绑定 COM 事件。

embedObject._host 成员列表 #

COM 控件宿主对象。
提供部分 OLE 接口函数,一般没必要直接使用这个对象。

embedObject._host._adjust() #

自动调整控件窗口大小

embedObject._host.close() #

关闭

embedObject._host.doObjectVerb( _OLEIVERB ) #

执行指定的动词命令

embedObject._host.tranacc(MSG消息对象) #

解析快捷键,
如果是快捷键返回真值

Markdown 格式