Closed Bug 9167 Opened 26 years ago Closed 25 years ago

Active X build breaks with latest platform SDK

Categories

(Core Graveyard :: Embedding: ActiveX Wrapper, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: kberk.spamaway, Assigned: locka)

References

()

Details

This is getting stranger yet. I decided to see if Apprunner would crash if I built it with the Microsoft Platform SDK header files (the latest ones that also support Windows 2000 Beta 3 RC1). I really expected the same results. Instead the build broke with this error: e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(153) : error C2668: 'InlineIsEqualGUID' : ambiguous call to overloaded function e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(466) : error C2259: 'CWebShellContainer' : cannot instantiate abstract class due to following members: e:\mozilla\webshell\embed\ActiveX\WebShellContainer.h(24) : see declaration of 'CWebShellContainer' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(466) : warning C4259: 'unsigned int __stdcall nsIWebShellContainer::CreatePopup(class nsIDOMElement *,class nsIDOMElement *,int,int,const class nsString &,const class nsString &,const class nsString &,cl ass nsIDOMWindow *,class nsIDOMWindow ** )' : pure virtual function was not defined ..\..\..\dist\include\nsIWebShell.h(110) : see declaration of 'CreatePopup' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(466) : error C2259: 'CWebShellContainer' : cannot instantiate abstract class due to following members: e:\mozilla\webshell\embed\ActiveX\WebShellContainer.h(24) : see declaration of 'CWebShellContainer' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(466) : warning C4259: 'unsigned int __stdcall nsIWebShellContainer::CreatePopup(class nsIDOMElement *,class nsIDOMElement *,int,int,const class nsString &,const class nsString &,const class nsString &,cl ass nsIDOMWindow *,class nsIDOMWindow ** )' : pure virtual function was not defined ..\..\..\dist\include\nsIWebShell.h(110) : see declaration of 'CreatePopup' NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MI017E~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MI017E~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MI017E~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MI017E~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MI017E~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. E:\mozilla>cd\ The environment is only slightly different in this case. set CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot set HOME=E:\CVS set BUILD_OPT= set BUILD_XPIDL=1 set MODULAR_NETLIB=1 set MOZ_BITS=32 set MOZ_DEBUG=1 set MOZ_SRC=e: set MOZ_TOOLS=e:\cygnus\cygwin-b20\H-i586-cygwin32 set NGLAYOUT_PLUGINS=1 set OS_TARGET=WINNT set PATH=%PATH%;%MOZ_TOOLS%\bin;e:\cvs set STANDALONE_IMAGE_LIB=1 set _MSC_VER=1200 call "D:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat" call e:\platsdk\setenv.bat e:\platsdk I really don't think this should make a difference, so I am currently building without the SDK again to see if it crashes. I don't remember repulling the tree since the first build I did today though. I think I pulled it last arround 5 am EDT or so. Anyhow, please any insights would be appreciated. Thanks Kevin Berkheiser Kevin Berkheiser <KBerk@Bigfoot.com> wrote in message news:7lg6r4$7es1@secnews.netscape.com... > About a month ago right before I left town on a business trip my NT build > machine crashed. > > When I got back about a week and a half ago, I rebuilt the machine from > scratch. > > Ever since reubilding the machine I can compile Mozilla fine, but I get the > attached error every time I run it (the Profile setup does complete the > first time). > > I thought maybe I messed Windows NT up when I reloaded the machine, so last > night, I rebuilt the machine again. But I still get the crash. > > Here is my build environment: > > set CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot > set HOME=E:\CVS > set BUILD_OPT= > set BUILD_XPIDL=1 > set MODULAR_NETLIB=1 > set MOZ_BITS=32 > set MOZ_DEBUG=1 > set MOZ_SRC=e: > set MOZ_TOOLS=e:\cygnus\cygwin-b20\H-i586-cygwin32 > set NGLAYOUT_PLUGINS=1 > set OS_TARGET=WINNT > set PATH=%PATH%;%MOZ_TOOLS%\bin;e:\cvs > set STANDALONE_IMAGE_LIB=1 > set _MSC_VER=1200 > call "D:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat" > > > I am running Windows NT 4.0 Service Pack 4, Visual C++ 6.0 Standard Service > Pack 3, Pearl Build 517, Cygwin B20. > > I don't know where to go next, so please help. > > Thanks > > Kevin Berkheiser > > > The problem is that you set MSSDK=1 when you use the sdk, and this causes the activeX control to get built. If you set MSSDK= then the control doesn't get built, and the build succeeds. Looks like the new sdk is not compatible with what Adam Lock has wrote code against (the sdk provided with vc6). leaf
Added URL to download the SDK.
Depends on: 10566
But 10566 was just fixed. Is this related?
kberk :- can you try this again and verify that the fix for 10566 also solves your problem. let myself (tague@netscape.com) or cpratt know about it so that we can update the status on the bug.
Here are the results of my tests on this bug. A clobber build without the SDK completes. We already know this, but I checked to validate my CVS pull. A clobber with the SDK completes. This is new, due to the changes made to the build prosess for bug 10566 Active X building is not keyed off on the SDK environment variable any longer. A depend or clobber build with MOZ_ACTIVEX_SUPPORT=1 set results in a failed build with the following error: Processing e:\PlatSDK\Include\urlmon.idl urlmon.idl Processing e:\PlatSDK\Include\msxml.idl msxml.idl Processing e:\PlatSDK\Include\docobj.idl docobj.idl StdAfx.cpp ControlSite.cpp ControlSiteIPFrame.cpp ItemContainer.cpp PropertyBag.cpp MozillaControl.cpp nsSetupRegistry.cpp MozillaBrowser.cpp e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(162) : error C2668: 'InlineIsEqualGUID' : ambiguous call to overloaded function e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(2399) : warning C4541: 'dynamic_cast' used on polymorphic type 'struct IOleCommandTarget' with /GR-; unpredictable behavior may result NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\PROGRA~1\MICROS~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\PROGRA~1\MICROS~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\PROGRA~1\MICROS~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\PROGRA~1\MICROS~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\PROGRA~1\MICROS~1\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop E:\mozilla> I tried adding Processing with this MOZ_ACTIVEX_PLUGIN_SUPPORT = 1 set as well, but got the same error. Also, an important note. I used what was the first Win2k RC1 platform SDK released probably in June. If you go to the above site now, M$ has a new platform SDK for July that is huge. I did not download the newer one, so I cannot verify that this problem exists in the latest Platform SDK. The problem originally had has been corrected. I can now build without Active X with the SDK. But, there is still a problem building with Active X.
I verified (see below) that this bug is valid still for the old June 99 Platform SDK. I will try to get a copy of the January 2000 SDK just in case that fixes the problem. I'll update this bug again once I get the new SDK. I think the January 2K SDK contains the non-beta Windows 98 and Windows 2000 Headers. I would think building this component with those headers would be better? +++ make: install in e:\mozilla\webshell\embed +++ make: install in e:\mozilla\webshell\embed\ActiveX Microsoft (R) MIDL Compiler Version 5.01.0164 Copyright (c) Microsoft Corp 1991-1997. All rights reserved. Processing .\MozillaControl.idl MozillaControl.idl Processing e:\PlatSDK\Include\oaidl.idl oaidl.idl Processing e:\PlatSDK\Include\objidl.idl objidl.idl Processing e:\PlatSDK\Include\unknwn.idl unknwn.idl Processing e:\PlatSDK\Include\wtypes.idl wtypes.idl Processing e:\PlatSDK\Include\basetsd.h basetsd.h Processing e:\PlatSDK\Include\guiddef.h guiddef.h Processing e:\PlatSDK\Include\ocidl.idl ocidl.idl Processing e:\PlatSDK\Include\oleidl.idl oleidl.idl Processing e:\PlatSDK\Include\servprov.idl servprov.idl Processing e:\PlatSDK\Include\urlmon.idl urlmon.idl Processing e:\PlatSDK\Include\msxml.idl msxml.idl Processing e:\PlatSDK\Include\docobj.idl docobj.idl StdAfx.cpp ControlSite.cpp ControlSiteIPFrame.cpp ItemContainer.cpp PropertyBag.cpp MozillaControl.cpp nsSetupRegistry.cpp MozillaBrowser.cpp e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(140) : error C2668: 'InlineI e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(702) : error C2660: 'Init' : e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : error C2259: 'CWebShe e:\mozilla\webshell\embed\ActiveX\WebShellContainer.h(28) : see declarati e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : warning C4259: 'unsig nction was not defined ..\..\..\dist\include\nsIBrowserWindow.h(68) : see declaration of 'Init' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : error C2259: 'CWebShe e:\mozilla\webshell\embed\ActiveX\WebShellContainer.h(28) : see declarati e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : warning C4259: 'unsig nction was not defined ..\..\..\dist\include\nsIBrowserWindow.h(68) : see declaration of 'Init' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(710) : error C2039: 'SetPref ..\..\..\dist\include\nsIWebShell.h(111) : see declaration of 'nsIWebShel NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return cod Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return cod Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return cod Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return cod Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return cod Stop. Sat 03/04/2000 19:00:21.63 E:\mozilla>cd\ Sat 03/04/2000 19:00:21.68 E:\>
I'll see if I can get the latest SDK and have a go at fixing it.
Cool. Is this component going to be part of the Beta? With the January 2K SDK here are the errors. +++ make: install in e:\mozilla\webshell\embed +++ make: install in e:\mozilla\webshell\embed\ActiveX StdAfx.cpp ControlSite.cpp ControlSiteIPFrame.cpp ItemContainer.cpp PropertyBag.cpp MozillaControl.cpp nsSetupRegistry.cpp MozillaBrowser.cpp e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(702) : error C2660: 'Init' : function does not take 8 parameters e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : error C2259: 'CWebShellContainer' : cannot instantiate abstract class due to following members: e:\mozilla\webshell\embed\ActiveX\WebShellContainer.h(28) : see declaration of 'CWebShellContainer' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : warning C4259: 'unsigned int __stdcall nsIBrowserWindow::Init(class nsIAppShell *,const struct nsRect &,unsigned int,int)' : pure virtual fu nction was not defined ..\..\..\dist\include\nsIBrowserWindow.h(68) : see declaration of 'Init' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : error C2259: 'CWebShellContainer' : cannot instantiate abstract class due to following members: e:\mozilla\webshell\embed\ActiveX\WebShellContainer.h(28) : see declaration of 'CWebShellContainer' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(707) : warning C4259: 'unsigned int __stdcall nsIBrowserWindow::Init(class nsIAppShell *,const struct nsRect &,unsigned int,int)' : pure virtual fu nction was not defined ..\..\..\dist\include\nsIBrowserWindow.h(68) : see declaration of 'Init' e:\mozilla\webshell\embed\ActiveX\MozillaBrowser.cpp(710) : error C2039: 'SetPrefs' : is not a member of 'nsIWebShell' ..\..\..\dist\include\nsIWebShell.h(111) : see declaration of 'nsIWebShell' NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~2\VC98\BIN\NMAKE.EXE' : return code '0x2' Stop. Mon 03/06/2000 1:42:54.11 E:\mozilla>cd\ Mon 03/06/2000 1:42:54.14 E:\>
There's a bunch of little things that break with the latest SDK (as well as the webshell API change breakages). I've downloaded the Platform SDK now and I've fixed up most of the problems and I will check them in when the tree reopns. That's not to say the control will work (because of the webshell) changes but at this moment it builds at least. This bug will be closed when I have the checkins made. I think the Platform SDK problems were caused by errors in ATL headers and to by changes to the IE COM headers.
Status: NEW → ASSIGNED
I take it you noticed this when setting the SDK variables. Will this ATL thing effect anything else I wander? Setting SDK environment relative to E:\PlatSDK. Targeting Windows NT (i386) Implemented temporary patch in Include path For VC 6.0 ATL problem.
Tweaked some symbol names and #includes and all seems to work now. The PlatformSDK has a hacked ATL 3.0 that must be in the INCLUDE before Devstudio's ATL or you get ambiguous base class compiler errors.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Is it safe to assume now that you must have the January 2000 or later Platform SDK for this to work? There is now an April SDK but I would be very suprised if there were any changes that break this. I have not looked at the files lately, but you may want to make a comment in the build files if the SDK is a requirment. Also, if this becomes part of the default build anytime, leaf will have to update the build instructions. And, out of curiousity, what features does this module provide?
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.