Vb6 OleControl实例化为错误类型-仅在Reg Free COM中使用时?
我有一个ActiveX控件(使用C#创建),我正在使用后期绑定将其添加到Visual FoxPro中的表单中。当我注册控件时,它可以正常工作 我想使用注册免费COM和创建必要的清单文件。现在它加载并以非活动状态显示,直到我双击或按语法激活它。我认为这与reg free com清单文件无关。但是,在进行后期绑定调用之前/之后,是否需要执行一些操作来设置它 当我检查由Vb6 OleControl实例化为错误类型-仅在Reg Free COM中使用时?,vb6,activex,visual-foxpro,foxpro,regfreecom,Vb6,Activex,Visual Foxpro,Foxpro,Regfreecom,我有一个ActiveX控件(使用C#创建),我正在使用后期绑定将其添加到Visual FoxPro中的表单中。当我注册控件时,它可以正常工作 我想使用注册免费COM和创建必要的清单文件。现在它加载并以非活动状态显示,直到我双击或按语法激活它。我认为这与reg free com清单文件无关。但是,在进行后期绑定调用之前/之后,是否需要执行一些操作来设置它 当我检查由AddObject()创建的OLControl的OleTypeAllowed属性时,它是1(嵌入式OLE对象),而不是-2(Activ
AddObject()
创建的OLControl的OleTypeAllowed
属性时,它是1
(嵌入式OLE对象),而不是-2
(ActiveX对象)。因此,OleControl被实例化为错误的类型
我还尝试了以下方法:
定义OLECTROL
的子类,并设置属性OleTypeAllowed=-2
。使用后期绑定加载控件。它没有按要求工作。OleTypeAllowed
返回为1
OleTypeAllowed
返回为1
如果我能将VB中的任何输入转换成FoxPro,我将不胜感激。您可能将
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>
COMCTL.TabStrip
....
请注意,miscStatus
必须明确清除
我们正在自动生成中使用清单创建。您可以添加用于Reg Free COM的清单文件吗?
<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>