gpt4 book ai didi

vb6 - OleControl 实例化为错误类型 - 仅在 Reg Free COM 中使用时?

转载 作者:行者123 更新时间:2023-12-03 17:59:58 24 4
gpt4 key购买 nike

我有一个 ActiveX 控件(使用 C# 创建),我正在使用后期绑定(bind)将其添加到 Visual FoxPro 中的表单中。当我注册控件时它可以正常工作。

我想使用 reg free COM 并创建必要的 list 文件。现在它加载并以非事件状态显示,直到我双击或语法激活它​​。我认为这与 reg free com list 文件没有任何关系。但是,在进行后期绑定(bind)调用之前/之后,我需要做些什么来设置它AddObject() ?

this.AddObject('OleControl1', 'oleControl', 'SomeCompany.SomeOleControl') 

当我查看 OleTypeAllowed AddObject() 创建的 OleControl 的属性它是 1 (嵌入的 OLE 对象)而不是 -2 (ActiveX 对象)。所以 OleControl 被实例化为错误的类型。

我还尝试了以下方法:
  • DEFINE OleControl 的子类并设置属性 OleTypeAllowed = -2 .使用后期绑定(bind)加载控件。它没有按要求工作。 OleTypeAllowed1 的身份返回
  • 注册了 ActiveX 控件。使用可视化编辑器将 ActiveX 控件作为子类添加到项目中。取消注册控件。使用后期绑定(bind)加载控件。它没有按要求工作。 OleTypeAllowed1 的身份返回.

  • 是否可以将 OleControl 作为 ActiveX 控件加载?

    任何我可以转换为 FoxPro 的 VB 输入也将不胜感激。

    最佳答案

    你可能有 miscStatusContent属性错误。这是我们部署的 VB6 应用程序 list 的一个片段:

    <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>

    请注意 miscStatus必须明确清除。

    我们正在使用 UMMM在我们的自动构建中创建 list 。

    关于vb6 - OleControl 实例化为错误类型 - 仅在 Reg Free COM 中使用时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2877172/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com