在Visual Basic 6.0中使用ActiveX控件需要实现的最小接口集是什么

时间:2014-07-25 01:19:13

标签: c++ activex

我试图使用C ++创建一个最小的ActiveX控件,而不使用ATL或MFC。到目前为止,我已经创建了一个COM对象,它使用单个方法AboutBox()实现自定义双接口。我现在希望能够在VB6设计时环境中显示一个小矩形,但在运行时不显示任何GUI(例如,Common Dialog控件)。目前我没有设想有任何活动。

通过一系列我完全不承认无法解释的事件(我一直在攻击注册表以使我的CLSID /类型库键看起来像“真正的控件”的设置),我已经设法得到了控件出现在VB6组件对话框中。它现在甚至加载,我在工具栏上得到一个代表我控制的黑色“图标”。我可以把它拖到表格上。但是,它崩溃了“系统错误& H80004005”。

在调试控件的QueryInterface方法时,我会查询以下IID:

  • IQuickActivate
  • IOleControl
  • 的IPersistStreamInit
  • IPersistStream接口
  • IPersistStorage
  • IViewObject
  • 的IOleObject

我实际需要实施多少这些?我认为我将使用的唯一属性是属性。

(注意:实际的错误代码是E_FAIL未指定的失败0x80004005)。

0 个答案:

没有答案