【发布时间】:2011-05-22 05:00:59
【问题描述】:
我在从 MFC 应用程序加载自定义 ActiveX 控件时遇到了 CWnd::CreateControl 方法的问题。
我有一个自定义 ActiveX 控件列表,这些控件实现了 Create 方法,然后调用 CWnd::CreateControl 方法。
我有对话框窗口,在 OnInitDialog 中,我使用 Settimer() 启动了计时器线程。在 OnTimer 事件中,我通过调用相应控件的 Create 方法来加载所有控件。打开和关闭对话框窗口超过 10 次后,OnTimer 无法加载控件。
我检查了返回值为 false 和 GetLastError 为 0x0(操作成功)。在此事件之前,我正在完全调试并检查所有可能的错误。我找不到导致无法加载控件的根本原因。
【问题讨论】:
-
感谢朋友们。我解决了这个问题。问题出在一些没有使用 COM 规则实现的 ActiveX 控件上。在 InitInstance() 方法中,应该调用 CoInitialize() 方法,在 ExitInstance() 方法中应该调用 CoUninitialize() 方法。它没有以导致此问题的某种方法完成。完成后,问题就解决了。
标签: visual-c++ mfc activex