vb6 – OleControl实例化为错误类型 – 仅在Reg Free COM中使用
我有一个ActiveX控件(使用C#创建),我使用后期绑定添加到Visual FoxPro中的窗体.注册控件时,它可以正常工作.
我想使用reg免费COM并创建必要的清单文件.现在它加载并显示在非活动状态,直到我双击或语法激活它??.我不认为它与reg free com清单文件有任何关系.但是,在进行后期绑定调用AddObject()之前/之后,我需要做些什么来设置它? this.AddObject('OleControl1','oleControl','SomeCompany.SomeOleControl') 当我检查由AddObject()创建的OleControl的OleTypeAllowed属性时,它是1(嵌入式OLE对象)而不是-2(ActiveX对象).所以OleControl被实例化为错误的类型. 我也尝试过以下方法: > DEFINE OleControl的子类并设置属性OleTypeAllowed = -2.使用后期绑定来加载控件.它没有按要求工作. OleTypeAllowed回复为1 是否可以将OleControl加载为ActiveX控件? 我可以转换为FoxPro的任何VB输入也将不胜感激. 解决方法
您可能错误地使用了miscStatusContent属性.这是我们部署的VB6 app清单的片段:
<file name="ExternalCOMCTL32.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> 请注意,必须明确清除miscStatus. 我们在自动构建中使用UMMM进行清单创建. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |