Hallo,
ich habe ein ActiveX Projekt im Visual Studio 2005 (MFC) erstellt und dort mit AfxBeginThread(ThreadFunc, (LPVOID)this); einen neuen Thread erstellt.
Nun will ich aber das die Events aus über den Hauptthread kommen. Dafür habe ich nach einem Beispiel folgende User Message code probiert:
#CCommunicationCtrl.cpp - Hauptdatei des ActiveX#
BEGIN_MESSAGE_MAP(CCommunicationCtrl, COleControl)
ON_MESSAGE(OCM_COMMAND, OnOcmCommand)
ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
ON_MESSAGE(WM_THREADACTUALEVENT,OnActualMessageEve nt)
ON_MESSAGE(WM_THREADFIREEVENT,OnMessageEvent)
END_MESSAGE_MAP()
LRESULT OnActualMessageEvent(WPARAM wParam, LPARAM lParam)
{
OnActuals(EComThread.getActualString().c_str());
return TRUE;
}
LRESULT OnMessageEvent(WPARAM wParam, LPARAM lParam)
{
OnEvent((LONG)wParam,(LONG)lParam);
return TRUE;
}
#stdafx.h#
#define WM_THREADACTUALEVENT WM_USER+1
#define WM_THREADFIREEVENT WM_USER+2
#CommunicationThread.cpp - Thread#
PostMessage(pCtrl->m_hWnd,WM_THREADFIREEVENT,(WPARAM)100,(LPARAM)3 );
Das ganze compiliert ohne Fehler allerdings kommen keine Events an der Applikation an wo das ActiveX einbindet.
Sieht jemand den Fehler?
Das ganze habe ich nach folgendem Beispiel gemacht: http://support.microsoft.com/kb/157437/de
Und auch mehrfach überprüft ich finde den Fehler einfach nicht.
Gruß
Sven
ich habe ein ActiveX Projekt im Visual Studio 2005 (MFC) erstellt und dort mit AfxBeginThread(ThreadFunc, (LPVOID)this); einen neuen Thread erstellt.
Nun will ich aber das die Events aus über den Hauptthread kommen. Dafür habe ich nach einem Beispiel folgende User Message code probiert:
#CCommunicationCtrl.cpp - Hauptdatei des ActiveX#
BEGIN_MESSAGE_MAP(CCommunicationCtrl, COleControl)
ON_MESSAGE(OCM_COMMAND, OnOcmCommand)
ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
ON_MESSAGE(WM_THREADACTUALEVENT,OnActualMessageEve nt)
ON_MESSAGE(WM_THREADFIREEVENT,OnMessageEvent)
END_MESSAGE_MAP()
LRESULT OnActualMessageEvent(WPARAM wParam, LPARAM lParam)
{
OnActuals(EComThread.getActualString().c_str());
return TRUE;
}
LRESULT OnMessageEvent(WPARAM wParam, LPARAM lParam)
{
OnEvent((LONG)wParam,(LONG)lParam);
return TRUE;
}
#stdafx.h#
#define WM_THREADACTUALEVENT WM_USER+1
#define WM_THREADFIREEVENT WM_USER+2
#CommunicationThread.cpp - Thread#
PostMessage(pCtrl->m_hWnd,WM_THREADFIREEVENT,(WPARAM)100,(LPARAM)3 );
Das ganze compiliert ohne Fehler allerdings kommen keine Events an der Applikation an wo das ActiveX einbindet.
Sieht jemand den Fehler?
Das ganze habe ich nach folgendem Beispiel gemacht: http://support.microsoft.com/kb/157437/de
Und auch mehrfach überprüft ich finde den Fehler einfach nicht.
Gruß
Sven
Comment