ActiveX Controls in VS 2010 gehen nicht
-
Moin!
Ich portiere hier gerade ein oldschool Visual Studio 6 Projekt nach Visual Studio 2010 und stehe vor dem Problem, das diverse ActiveX Komponenten nicht mehr funktionieren. Leider ist das Problem schwer zu durchschauen, weil es im Debugger alles in Ordnung aussieht. Das Control wird erstellt, die Handles sind OK, die HRESULTs sind OK, die Methodenaufrufe melden nichts - Aber das Control wird im Fenster nicht angezeigt.
Hier mal ein Beispiel: (Crystal Reports Viewr - Betrifft aber auch andere Komponenten)if (AtlAxWinInit()) { // "Containerfenster erstellen" if(! m_View.Create(NULL, NULL, dwStyle, Rect, this, CMyReportView::IDD + 1)) return FALSE; LPUNKNOWN pUnkCtrl, pUnkCont; HRESULT hr = CLSIDFromProgID(OLESTR("CrystalReports.ActiveXReportViewer"), &clsid); // "ActiveX erstellen" hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown, (void**)&pUnkCtrl); CComQIPtr <IPersistStreamInit> spPerStm(pUnkCtrl); spPerStm->InitNew(); m_AxWnd.Attach(m_View.m_hWnd); // An CAxWindow/ATL anhaengen HRESULT hResAtt = m_AxWnd.AttachControl(pUnkCtrl, &pUnkCont); //Dokument oeffnen und anzeigen pViewer = (IDispatch*)pUnkCtrl; AutoWrap(DISPATCH_PROPERTYPUT,&vResult,pViewer, L"ReportSource",1,_variant_t(m_pReportApp->m_pReport)); vBool.boolVal = TRUE; AutoWrap(DISPATCH_METHOD,&vResult,pViewer, L"ViewReport"); }
Der selbe Code in Visual Studio 6 auf der selben Maschine kompiliert läuft einwandfrei. Jemand eine Idee?
-
CoInitialize(NULL) am Anfang und CoUninitialize() am Ende schon probiert?
-
Habs raus, weiss aber noch nicht wieso. Schalte ich im Projekt die Einstellung für DEP / Datenausführungsverhinderung AUS, dann geht es