How to create and use ActiveX control in MFC DLL (no dialog base)
Hi,
I want to use an ActiveX control in a MFC regular DLL which is called
by my Win32 appilication(Win32 API based).
I have tried to make the dll in VC++.net,and call it from my Win32
Appilication, it comes the "Debug Assertion Failed!",
File : oleinit.cpp; line:50
I have referenced some topics here,such as
(http://groups.google.co.jp/group/comp.os.ms-windows.programmer.tools.mfc/browse_thread/thread/17ae0404ca1aa8e7/499a176099e86009?lnk=st&q=how+to+use+Activex+in+MFC+dll&rnum=7&hl=ja#499a176099e86009)
but still don't know how to get out of the problem.
here is the source code
====================================
MyDll.h
====================================
class CMyDll: public CWinApp
{
public:
CMyDll();
// $B%*!<%P!<%i%$%I(B
public:
virtual BOOL InitInstance();
virtual BOOL ExitInstance();
DECLARE_MESSAGE_MAP()
};
extern CMyDll theApp;
====================================
MyDll.Cpp
====================================
CMyDll::CMyDll()
{
}
CMyDll theApp;
BOOL CMyDll::InitInstance()
{
InitCommonControls();
CWinApp::InitInstance();
if (!AfxOleInit())
{
return FALSE;
}
AfxEnableControlContainer();
// CoInitialize(NULL);
return TRUE;
}
BOOL CMyDll::ExitInstance()
{
// CoUninitialize();
return CWinApp::ExitInstance();
}
====================================
MyDllFunc.h
====================================
#ifndef __FUNC_H__
#define __FUNC_H__
int WINAPI DllFunc(int incode);
#endif //__FUNC_H__
====================================
MyDllFunc.cpp
====================================
#include "stdafx.h"
#include "MyDll.h"
#include "EntryFunc.h"
#include "CMonthView.h" //ActiveX wrapper Class created by the
add_class Wizard
IMPLEMENT_DYNCREATE(CMonthView, CWnd)
int WINAPI __stdcall DllFunc(int incode)
{
int ret=0;
theApp.InitInstance();
// theApp.EnableModeless(TRUE);
/*CMonthView is the ActiveX wrapper Class created by the
add_class Wizard*/
CMonthView m_CMonthView;
m_CMonthView.Create("windname",WS_VISIBLE,CRect(50,50,100,100),NULL,1,NULL,FALSE,NULL);
m_CMonthView.put_Month(12);
ret=m_CMonthView.get_Month();
theApp.ExitInstance();
return ret;
}
----------------------------------------------------------------
PS: how to show the ActiveX? <not using dialog>
Thank you very much! and some sample code will be appreciated.
deRun