emb*_*nut 5 vb6 foxpro activex regfreecom visual-foxpro
我有一个ActiveX控件(使用C#创建),我使用后期绑定添加到Visual FoxPro中的窗体.注册控件时,它可以正常工作.
我想使用reg免费COM并创建必要的清单文件.现在它加载并显示在非活动状态,直到我双击或语法激活它.我不认为它与reg free com清单文件有任何关系.但是,在进行后期绑定调用之前/之后我需要做些什么来设置它AddObject()?
this.AddObject('OleControl1', 'oleControl', 'SomeCompany.SomeOleControl')
Run Code Online (Sandbox Code Playgroud)
当我检查OleTypeAllowed由AddObject()它创建的OleControl 的属性是1(嵌入式OLE对象)而不是-2(ActiveX对象).所以OleControl被实例化为错误的类型.
我也尝试过以下方法:
DEFINE一个子类,OleControl并设置属性OleTypeAllowed = -2.使用后期绑定来加载控件.它没有按要求工作.在OleTypeAllowed为回来1
注册了ActiveX控件.使用可视化编辑器将ActiveX控件作为子类添加到项目中.取消注册控件.使用后期绑定来加载控件.它没有按要求工作.在OleTypeAllowed回来的1.
是否可以将OleControl加载为ActiveX控件?
我可以转换为FoxPro的任何VB输入也将不胜感激.
你可能把miscStatusContent属性弄错了。这是我们部署的 VB6 应用程序清单中的片段:
<file name="External\COMCTL32.OCX">
<typelib tlbid="{6B7E6392-850A-101B-AFC0-4210102A8DA7}" version="1.3" flags="control,hasdiskimage" helpdir="" />
<comClass clsid="{9ED94440-E5E8-101B-B9B5-444553540000}" tlbid="{6B7E6392-850A-101B-AFC0-4210102A8DA7}" progid="COMCTL.TabStrip.1" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst">
<progid>COMCTL.TabStrip</progid>
</comClass>
....
</file>
Run Code Online (Sandbox Code Playgroud)
请注意,miscStatus必须明确清除。
我们在自动化构建中使用UMMM来创建清单。