# com.lite 库模块帮助文档

## com 成员列表 <a id="com" href="#com">&#x23;</a>

### com.lite("x.dll") <a id="com.lite" href="#com.lite">&#x23;</a>
参数用法与 raw.loadDll() 函数相同,支持内存OCX  
如果该组件不是合法的COM组件,返回null空值

### com.lite() <a id="com.lite" href="#com.lite">&#x23;</a>
[返回对象:comLiteDllObject](#comLiteDllObject)

## com.lite 成员列表 <a id="com.lite" href="#com.lite">&#x23;</a>

免注册 COM 组件调用接口

### com.lite.appData <a id="com.lite.appData" href="#com.lite.appData">&#x23;</a>
将@path指定的相对路径转换为系统  %CommonAppData% 目录下的绝对路径

### com.lite.appData() <a id="com.lite.appData" href="#com.lite.appData">&#x23;</a>
[返回对象:comLiteDllObject](#comLiteDllObject)

### com.lite.appData(path,data) <a id="com.lite.appData" href="#com.lite.appData">&#x23;</a>
可选使用@data指定需要存入的数据,  
在文件路径前加上$符号即可将文件编译到代码中并可作为@data参数,  
只有在存入字节与目标文件内容长度不同时才会更新文件,  
最后使用该路径加载并返回组件对象  

使用这个方法可将控件嵌入EXE以生成独立文件,  
也可以解决一些控件不支持在包含Unicode字符的目录下运行的问题

## comLiteDllObject 成员列表 <a id="comLiteDllObject" href="#comLiteDllObject">&#x23;</a>

### comLiteDllObject.createEmbed <a id="comLiteDllObject.createEmbed" href="#comLiteDllObject.createEmbed">&#x23;</a>
创建嵌入控件,返回控件容器对象,  
容器对象的 _object 成员是创建的 COM 对象,  
容器对象可通过添加成员函数响应 COM 对象事件，  
容器对象的主要作用是充当访问 COM 对象的中间代理对象。  
通常使用 util.metaProperty 为容器对象添加属性元表，  
属性元表可拦截属性、函数调用并调用 _object 对象,  

createEmbedEx 返回的容器已添加默认代理以直接访问 COM 对象

### comLiteDllObject.createEmbed() <a id="comLiteDllObject.createEmbed" href="#comLiteDllObject.createEmbed">&#x23;</a>
[返回对象:embedObject](https://www.aardio.com/zh-cn/docs/library-reference/com/_.html#embedObject)

### comLiteDllObject.createEmbed(winform,clsId,iid,embedObj) <a id="comLiteDllObject.createEmbed" href="#comLiteDllObject.createEmbed">&#x23;</a>
创建嵌入控件,返回控件容器对象,  
容器对象的 _object 成员是创建的 COM 对象,  
容器对象可通过添加成员函数响应 COM 对象事件，  
容器对象的主要作用是充当访问 COM 对象的中间代理对象,  
@clsId 指定控件 CLSID,如果控件不是自内存加载,  
则可省略 @clsId 并由 firstCoClassId函数自动获取,  
参数@3指定接口IID,可省略,默认值为 IID_IDispatch,  
可选在参数@4 中指定 COM 对象绑定的容器对象

### comLiteDllObject.createEmbedEx <a id="comLiteDllObject.createEmbedEx" href="#comLiteDllObject.createEmbedEx">&#x23;</a>
创建嵌入控件,返回控件容器对象,  
容器对象的 _object 成员是创建的 COM 对象,  
容器对象可通过添加成员函数响应 COM 对象事件，  
容器对象的主要作用是充当访问 COM 对象的中间代理对象。  
此函数返回的容器已添加元表并创建代理以直接访问 COM 对象

### comLiteDllObject.createEmbedEx() <a id="comLiteDllObject.createEmbedEx" href="#comLiteDllObject.createEmbedEx">&#x23;</a>
[返回对象:embedObject](https://www.aardio.com/zh-cn/docs/library-reference/com/_.html#embedObject)

### comLiteDllObject.createEmbedEx(winform,clsId,iid,embedObj) <a id="comLiteDllObject.createEmbedEx" href="#comLiteDllObject.createEmbedEx">&#x23;</a>
创建嵌入控件,返回控件容器对象,  
此函数返回的容器已添加元表并创建代理以直接访问 COM 对象,  
@clsId 指定控件 CLSID,如果控件不是自内存加载,  
则可省略 @clsId 并由 firstCoClassId函数自动获取,  
参数@3指定接口IID,可省略,默认值为 IID_IDispatch,  
可选在参数@4 中指定 COM 对象绑定的容器对象

### comLiteDllObject.createInstance() <a id="comLiteDllObject.createInstance" href="#comLiteDllObject.createInstance">&#x23;</a>
[返回对象:interfaceObject](#interfaceObject)

### comLiteDllObject.createInstance(clsId,interface) <a id="comLiteDllObject.createInstance" href="#comLiteDllObject.createInstance">&#x23;</a>
创建COM接口  
参数@interface 指定接口类,可省略,  
@interface 认值为 com.interface.IUnknown

### comLiteDllObject.createObject(clsId,iid) <a id="comLiteDllObject.createObject" href="#comLiteDllObject.createObject">&#x23;</a>
创建COM对象  
参数2可省略,默认值为 IID_IDispatch

### comLiteDllObject.firstCoClassId() <a id="comLiteDllObject.firstCoClassId" href="#comLiteDllObject.firstCoClassId">&#x23;</a>
获取控件的首个 CLSID,  
通过内存加载控件时此函数不可用

### comLiteDllObject.getPath() <a id="comLiteDllObject.getPath" href="#comLiteDllObject.getPath">&#x23;</a>
返回加载的 DLL 文件路径,  
内存 DLL 返回 null

### comLiteDllObject.licenseKey <a id="comLiteDllObject.licenseKey" href="#comLiteDllObject.licenseKey">&#x23;</a>
设置创建控件使用的许可证密钥

### comLiteDllObject.registerServer() <a id="comLiteDllObject.registerServer" href="#comLiteDllObject.registerServer">&#x23;</a>
注册组件

### comLiteDllObject.requestLicKey(clsId) <a id="comLiteDllObject.requestLicKey" href="#comLiteDllObject.requestLicKey">&#x23;</a>
开发时调用此函数返回许可证密钥

### comLiteDllObject.unregisterServer() <a id="comLiteDllObject.unregisterServer" href="#comLiteDllObject.unregisterServer">&#x23;</a>
卸载组件

## embedObject 成员列表 <a id="embedObject" href="#embedObject">&#x23;</a>

### embedObject._form <a id="embedObject._form" href="#embedObject._form">&#x23;</a>
COM 控件宿主窗口,  
也就创建控件的构造参数中指定的 aardio 控件或窗口对象  
也是控件窗口的上级父窗口,  

[返回对象:staticObject](https://www.aardio.com/zh-cn/docs/library-reference/win/ui/ctrl/static.html#staticObject)

### embedObject._host <a id="embedObject._host" href="#embedObject._host">&#x23;</a>
COM 控件宿主对象

### embedObject._host.adjust() <a id="embedObject._host.adjust" href="#embedObject._host.adjust">&#x23;</a>
自动调整 COM 控件窗口大小

### embedObject._host.close() <a id="embedObject._host.close" href="#embedObject._host.close">&#x23;</a>
关闭对象

### embedObject._host.doObjectVerb( _OLEIVERB ) <a id="embedObject._host.doObjectVerb" href="#embedObject._host.doObjectVerb">&#x23;</a>
执行指定的动词命令

### embedObject._host.tranacc(MSG消息对象) <a id="embedObject._host.tranacc" href="#embedObject._host.tranacc">&#x23;</a>
解析 COM 控件 快捷键,  
如果是快捷键返回真值

### embedObject._object <a id="embedObject._object" href="#embedObject._object">&#x23;</a>
COM 控件对象,  
通过此对象可以访问 COM 对象的成员函数和成员属性,  
 可改造容器对象并在内部调用 _object 以改进 COM 对象接口  
也可以通过指定容器对象的成员函数以响应 COM 对象的事件
