IE devmode plugin: 64 bits support end-to-end, build fixes & cleanup, other polishing items.
Review at http://gwt-code-reviews.appspot.com/1116801
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9345 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/plugins/ie/README.txt b/plugins/ie/README.txt
new file mode 100644
index 0000000..f4f030b
--- /dev/null
+++ b/plugins/ie/README.txt
@@ -0,0 +1,17 @@
+GWT devmode plugin for IE
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To build the plugin, you will need a windows system with Visual Studio 2008 or newer (WSDK 7.0+)
+
+To build:
+1) make sure devenv.exe is in the path
+2) make sure the binaries under $(projectroot)\third_party\java_src\gwt\svn\trunk\plugins\ie\prebuilt are writable.
+3) open a cmd.exe window, go to $(projectroot)\third_party\java_src\gwt\svn\trunk\plugins\ie
+4) run build.cmd
+
+To create msi installer:
+1) go to folder $(projectroot)\third_party\java_src\gwt\svn\trunk\plugins\ie\installer
+2) make sure the msi installers under $(projectroot)\third_party\java_src\gwt\svn\trunk\plugins\ie\prebuilt are writable.
+3) run build.cmd
+
+
diff --git a/plugins/ie/build.cmd b/plugins/ie/build.cmd
new file mode 100755
index 0000000..e3841a4
--- /dev/null
+++ b/plugins/ie/build.cmd
@@ -0,0 +1,18 @@
+@echo off
+setlocal
+echo.
+::check if correct folder
+::check if devenv is in the path
+echo.
+echo building 32 bits
+echo ~~~~~~~~~~~~~~~~
+::pushd oophm\oophm
+devenv /rebuild "Release|Win32" %~dp0\oophm\oophm\oophm.vcproj /out build_win32.log
+echo.
+echo building 64 bits
+echo ~~~~~~~~~~~~~~~~
+devenv /rebuild "Release|x64" %~dp0\oophm\oophm\oophm.vcproj /out build_win64.log
+echo.
+echo Done.
+echo.
+endlocal
diff --git a/plugins/ie/build.xml b/plugins/ie/build.xml
deleted file mode 100755
index 4c8a99d..0000000
--- a/plugins/ie/build.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<project name="ie" default="build" basedir=".">
- <property name="plugin.root" value="ie" />
- <import file="../common.ant.xml" />
-
- <target name="build" description="Copy compiled plugin to the output folder">
- <mkdir dir="${gwt.build.out}/plugins" />
- <mkdir dir="${gwt.build.out}/plugins/ie" />
- <copy todir="${gwt.build.out}/plugins/ie">
- <fileset file="prebuilt/oophm.dll" />
- </copy>
- </target>
-
- <target name="test" description="Run any tests">
- </target>
-
- <target name="checkstyle" description="Static style analysis">
- </target>
-</project>
diff --git a/plugins/ie/installer/README.txt b/plugins/ie/installer/README.txt
index 8517837..b783838 100644
--- a/plugins/ie/installer/README.txt
+++ b/plugins/ie/installer/README.txt
@@ -1,11 +1,21 @@
-This directory contains the source code for the Windows installer. A new installer should
-be built using the build script every time oophm.dll is replaced.
+This directory contains the source code for the Windows installer. A new
+installer should be built using the build script every time oophm.dll is
+replaced.
-The build script will only work on a Windows system with WIX installed:
-http://wix.sourceforge.net/
+The build script will only work on a Windows system
-Files contained in this directory:
-installer.wxs.xml - the WIX script used to generate the installer
+Workflow:
+~~~~~~~~~
+if you build new binaries, do the following:
-build.xml - the ant build script
\ No newline at end of file
+1) check out ..\prebuilt\*.msi for editing
+
+2) run build <version>, as in: build 1.2.123
+ this will generated all the msis. make sure to look at ..\prebuilt\*.msi
+ to see if they were updated.
+
+4) Test the installation. Yes, make sure it works on x86, x64, it cleans the
+ registry and folder upon uninstall, etc.
+
+
diff --git a/plugins/ie/installer/build.cmd b/plugins/ie/installer/build.cmd
new file mode 100755
index 0000000..203dc90
--- /dev/null
+++ b/plugins/ie/installer/build.cmd
@@ -0,0 +1,79 @@
+@echo off
+setlocal
+if .%1==. goto :usage
+echo.
+echo.
+
+echo Checking if output files are writeable...
+SET WRITEABLE_FILE_ERROR=0
+CALL :CheckWritable "%~dp0..\prebuilt\gwt-dev-plugin-x86.msi"
+CALL :CheckWritable "%~dp0..\prebuilt\gwt-dev-plugin-x64.msi"
+CALL :CheckWritable "%~dp0oophm.wxs"
+IF "%WRITEABLE_FILE_ERROR%"=="1" GOTO :DONE
+
+SET BINARY_DIR=%~dp0..\prebuilt\Win32
+SET BINARY_FILE=oophm.dll
+
+IF NOT EXIST %BINARY_DIR%\%BINARY_FILE% (
+ echo.
+ echo ERROR - Could not find oophm binary under %BINARY_DIR%
+ echo Verify that the build succeeded before trying to create the installer.
+ echo.
+ goto :eof
+)
+
+echo.
+echo 'heating' binary %BINARY_FILE% under %BINARY_DIR% ...
+echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%~dp0wix\heat.exe file %BINARY_DIR%\%BINARY_FILE% -v -nologo -gg -g1 -dr INSTALLDIR -generate components -directoryid ff -cg oophmDll -out %~dp0oophm.wxs -var var.binDir
+%~dp0wix\sed.exe --in-place=xml "s/Source=\"\$(var\.binDir)\\Win32\\oophm.dll\"/Source=\"\$(var\.binDir)\\oophm.dll\"/g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/Directory Id=\"dir315E0C50682DFB472927FE1254A22F6A\" Name=\"Win32\"/Directory Id=\"dir315E0C50682DFB472927FE1254A22F6A\" Name=\"$(var.platform)\"/g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/<Component /<Component Win64=\"$(var.win64Flag)\" /g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/<Wix xmlns=\"http:\/\/schemas.microsoft.com\/wix\/2006\/wi\">/<Wix xmlns=\"http:\/\/schemas.microsoft.com\/wix\/2006\/wi\">\n\t<\?if $(var.platform)=x64 \?>\n\t<\?define win64Flag=\"yes\" \?>\n\t<\?else \?>\n\t<\?define win64Flag=\"no\" \?>\n\t<\?endif \?>/g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/Root=\"HKCR\"/Root=\"HKMU\"/g" %~dp0oophm.wxs
+
+echo.
+echo building 32 bit installer...
+echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+echo.
+%~dp0wix\candle -nologo -arch x86 -dversion=%1 -dplatform=Win32 -dbinDir=%~dp0\..\prebuilt\Win32\ -dbinary=oophm.dll %~dp0\installer.wxs.xml %~dp0\oophm.wxs
+%~dp0wix\light.exe -nologo oophm.wixobj installer.wxs.wixobj -o ..\prebuilt\gwt-dev-plugin-x86.msi -spdb
+
+echo.
+echo building 64 bit installer...
+echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+echo.
+%~dp0wix\candle -nologo -arch x64 -dversion=%1 -dplatform=x64 -dbinDir=%~dp0\..\prebuilt\x64\ -dbinary=oophm.dll %~dp0\installer.wxs.xml %~dp0\oophm.wxs
+%~dp0wix\light.exe -nologo oophm.wixobj installer.wxs.wixobj -o ..\prebuilt\gwt-dev-plugin-x64.msi -spdb
+
+echo.
+echo Done.
+echo.
+goto :eof
+
+:CheckWritable
+ECHO Checking if %1 is writable...
+SET RW=
+DIR /A:-R %1 1>NUL 2>NUL
+if %ERRORLEVEL% LEQ 0 GOTO :EOF
+ECHO.
+ECHO ERROR: file %1 must be writeable before executing this script.
+ECHO make sure you checked the file for editing.
+ECHO.
+SET WRITEABLE_FILE_ERROR=1
+ECHO %WRITEABLE_FILE_ERROR%
+GOTO :eof
+
+:usage
+echo.
+echo usage: build ^<version^>
+echo where: ^<version^> has the syntax major.minor.build
+echo.
+echo example: build 1.1.3123
+
+:done
+echo.
+echo.
+
+endlocal
+
diff --git a/plugins/ie/installer/build.xml b/plugins/ie/installer/build.xml
deleted file mode 100644
index 0241d8f..0000000
--- a/plugins/ie/installer/build.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--
- Build file for the Windows IE Plugin installer. This build should only be
- run on a Windows system with WIX installed. You can download WIX at:
- http://wix.sourceforge.net/
--->
-<project name="ieInstaller" default="build" basedir=".">
- <property name="gwt.root" location="../../../" />
- <property name="project.tail" value="plugins/ie/installer" />
- <import file="../../../common.ant.xml" />
-
- <property name="wix.bin"
- location="C:/Program Files/Windows Installer XML v3/bin" />
- <property name="wix.log" location="${project.build}/wix.log" />
- <property name="installer.name" value="gwt-dev-plugin.msi" />
-
- <!-- Verify that this is a windows system. -->
- <fail unless="build.host.iswindows"
- message="Installer can only be built on a Windows system." />
-
- <!-- Verify that wix is installed. -->
- <property.ensure name="wix.bin.exists" location="${wix.bin}"
- message="You must install Wix (http://wix.sourceforge.net) to build the installer." />
-
- <!-- Verify that the version has been specified. -->
- <fail unless="installer.version"
- message="You must specify installer.version parameter in the form major.minor.build.revision (ex. -Dinstaller.version=0.9.1234.0)" />
-
- <target name="build" description="Build the installer">
- <mkdir dir="${project.build}" />
-
- <echo message="Preparing WIX script for oophm.dll" />
- <exec executable="${wix.bin}/heat.exe"
- dir="../prebuilt"
- failonerror="yes"
- output="${wix.log}">
- <arg line="file oophm.dll" />
- <arg line="-out ${project.build}/oophm.wxs.xml" />
- <arg line="-gg -g1" />
- <arg line="-dr INSTALLDIR" />
- <arg line="-cg oophmDll" />
- <arg line="-var var.SourceDir" />
- <arg line="-indent 2" />
- </exec>
- <replace file="${project.build}/oophm.wxs.xml"
- token='KeyPath="yes"'
- value='KeyPath="no"' />
- <replace file="${project.build}/oophm.wxs.xml"
- token='Directory="dir8D1DE08B7ED2BEAAD2CDE02C8AF2005E"'
- value='Directory="INSTALLDIR"' />
- <replace file="${project.build}/oophm.wxs.xml">
- <replacetoken><![CDATA[<File]]></replacetoken>
- <replacevalue><![CDATA[
- <RegistryKey Root="HKCU" Key="SOFTWARE\Google\Google Web Toolkit\Installer" Action="createAndRemoveOnUninstall">
- <RegistryValue Name="oophmDllRemove" Value="" Type="string" KeyPath="yes"/>
- </RegistryKey>
- <File]]></replacevalue>
- </replace>
-
- <echo message="Compiling WIX scripts" />
- <exec executable="${wix.bin}/candle.exe"
- failonerror="yes"
- output="${wix.log}"
- append="true">
- <arg line="-out ${project.build}/" />
- <arg line="-dSourceDir=..\\" />
- <arg line="-dversion=${installer.version}" />
- <arg line="${project.build}/oophm.wxs.xml" />
- <arg line="installer.wxs.xml" />
- </exec>
-
- <echo message="Generating Windows Installer" />
- <exec executable="${wix.bin}/light.exe"
- failonerror="yes"
- output="${wix.log}"
- append="true">
- <arg line="-o ${project.build}/${installer.name}" />
- <arg line="${project.build}/oophm.wxs.wixobj" />
- <arg line="${project.build}/installer.wxs.wixobj" />
- </exec>
-
- <echo message="Copying Windows Installer to prebuilt directory" />
- <copy file="${project.build}/${installer.name}"
- tofile="../prebuilt/${installer.name}" />
- </target>
-
-</project>
diff --git a/plugins/ie/installer/generate-wxsfile.cmd b/plugins/ie/installer/generate-wxsfile.cmd
new file mode 100755
index 0000000..d2cf48c
--- /dev/null
+++ b/plugins/ie/installer/generate-wxsfile.cmd
@@ -0,0 +1,30 @@
+@echo OFF
+REM harvest COM settings from COM binary
+setlocal
+echo.
+if .%1==. goto :usage
+echo IMPORTANT: Make sure "%~dp0oophm.wsx" is checked out and writable!
+echo.
+echo 'heating' binary %~nx1 under %~dp1 ...
+echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+pushd %~dp1
+%~dp0wix\heat.exe file .\%~nx1 -v -nologo -gg -g1 -dr INSTALLDIR -generate components -directoryid ff -cg oophmDll -out %~dp0oophm.wxs -var var.binDir
+popd
+%~dp0wix\sed.exe --in-place=xml "s/Source=\"\$(var\.binDir)\\Win32\\oophm.dll\"/Source=\"\$(var\.binDir)\\oophm.dll\"/g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/Directory Id=\"dir315E0C50682DFB472927FE1254A22F6A\" Name=\"Win32\"/Directory Id=\"dir315E0C50682DFB472927FE1254A22F6A\" Name=\"$(var.platform)\"/g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/<Component /<Component Win64=\"$(var.win64Flag)\" /g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/<Wix xmlns=\"http:\/\/schemas.microsoft.com\/wix\/2006\/wi\">/<Wix xmlns=\"http:\/\/schemas.microsoft.com\/wix\/2006\/wi\">\n\t<\?if $(var.platform)=x64 \?>\n\t<\?define win64Flag=\"yes\" \?>\n\t<\?else \?>\n\t<\?define win64Flag=\"no\" \?>\n\t<\?endif \?>/g" %~dp0oophm.wxs
+%~dp0wix\sed.exe --in-place=xml "s/Root=\"HKCR\"/Root=\"HKMU\"/g" %~dp0oophm.wxs
+
+echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+echo Done.
+echo.
+goto :eof
+:usage
+echo.
+echo usage: generate-wsxfile.cmd ^<binary-file-path^>
+echo.
+echo example: generate-wsxfile.cmd ..\prebuilt\Win32\oophm.dll
+echo.
+endlocal
+
diff --git a/plugins/ie/installer/gwt.ico b/plugins/ie/installer/gwt.ico
new file mode 100644
index 0000000..79eb6b8
--- /dev/null
+++ b/plugins/ie/installer/gwt.ico
Binary files differ
diff --git a/plugins/ie/installer/installer.wxs.xml b/plugins/ie/installer/installer.wxs.xml
index 03a5357..6b5cc00 100644
--- a/plugins/ie/installer/installer.wxs.xml
+++ b/plugins/ie/installer/installer.wxs.xml
@@ -4,7 +4,13 @@
<!-- Variables. -->
<?define appName = "Google Web Toolkit Developer Plugin for IE" ?>
+ <?if $(var.platform)=x64 ?>
<?define upgradeCode = "9a5e649a-ec63-4c7d-99bf-75adb345e7e5" ?>
+ <?define win64Flag = "yes" ?>
+ <?else ?>
+ <?define upgradeCode = "8B3F15BC-42FB-4e0e-BAC4-1DE8C4AA10FD" ?>
+ <?define win64Flag = "no" ?>
+ <?endif ?>
<?define updateRegKey = "SOFTWARE\Google\Update\Clients\{$(var.upgradeCode)}" ?>
<?define gwtRegKey = "SOFTWARE\Google\Google Web Toolkit\Installer" ?>
@@ -13,8 +19,9 @@
compile to ensure that windows installer completely removes the old
version and reinstalls the new version without complaining.
-->
+
<Product
- Name='$(var.appName)'
+ Name='$(var.appName) ($(var.platform))'
Id='*'
UpgradeCode='$(var.upgradeCode)'
Language='1033'
@@ -22,88 +29,143 @@
Version='$(var.version)'
Manufacturer='Google'>
+ <?if $(var.platform)=x64 ?>
<Package
- Id='*'
- Keywords='Installer'
- Description='$(var.appName) Installer'
- Manufacturer='Google'
- InstallPrivileges='limited'
- InstallerVersion='100'
- Languages='1033'
- Compressed='yes'
- SummaryCodepage='1252' />
- <Media
- Id='1'
- Cabinet='product.cab'
- EmbedCab='yes' />
+ Id='*'
+ Keywords='Installer'
+ Description='$(var.appName) ($(var.platform))'
+ Manufacturer='Google'
+ InstallPrivileges='limited'
+ InstallerVersion='200'
+ Languages='1033'
+ Compressed='yes'
+ SummaryCodepage='1252'
+ Platform='x64'
+ />
+ <?else ?>
+ <Package
+ Id='*'
+ Keywords='Installer'
+ Description='$(var.appName) ($(var.platform))'
+ Manufacturer='Google'
+ InstallPrivileges='limited'
+ InstallerVersion='200'
+ Languages='1033'
+ Compressed='yes'
+ SummaryCodepage='1252'
+ />
+ <?endif ?>
- <!-- Suppress reboot prompts. -->
+ <Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
+
+ <Icon Id="gwt.ico" SourceFile=".\gwt.ico"/>
+
+ <!-- Properties -->
<Property Id='REBOOT'>ReallySuppress</Property>
+ <Property Id="ALLUSERS" Secure="yes"></Property>
+ <Property Id="ARPPRODUCTICON" Value="gwt.ico" />
+ <Property Id="ARPCOMMENTS" Value="Google Web Toolkit Developer Plugin for IE ($(var.platform))" />
+ <Property Id="ARPNOMODIFY" Value="1" />
+ <Property Id="ARPNOREPAIR" Value="1" />
+ <Property Id="ARPHELPLINK" Value="http://code.google.com/webtoolkit/" />
+ <Property Id="ARPURLINFOABOUT" Value="http://code.google.com/webtoolkit/" />
- <!-- Install for current user. -->
- <Property Id="ALLUSERS" Secure="yes" />
-
- <!-- Remove old version completely when upgrading. -->
- <Upgrade
- Id='$(var.upgradeCode)'>
- <UpgradeVersion
- OnlyDetect='no'
- Property='PREVIOUSFOUND'
- Minimum='0.0.0.0'
- IncludeMinimum='yes'
- RemoveFeatures='all' />
+ <Upgrade Id='$(var.upgradeCode)'>
+ <UpgradeVersion Property='UPGRADING'
+ OnlyDetect='no'
+ Minimum='0.0.0.0' IncludeMinimum='yes'
+ Maximum='$(var.version)' IncludeMaximum='no' />
+ <UpgradeVersion Property='NEWERVERSIONDETECTED'
+ OnlyDetect='yes'
+ Minimum='$(var.version)' IncludeMinimum='yes' />
</Upgrade>
+
<InstallExecuteSequence>
- <LaunchConditions
- After='AppSearch' />
- <RemoveExistingProducts
- After='InstallValidate' />
+ <LaunchConditions After='AppSearch' />
+ <RemoveExistingProducts After='InstallValidate' />
+ <Custom Action="NewerVersionError" After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom>
</InstallExecuteSequence>
+ <UI>
+ <Error Id="4000">A newer version of this product is already installed.</Error>
+ </UI>
+
+ <CustomAction Id="NewerVersionError" Error="4000"/>
+
<!-- Define the install directory. -->
- <Directory
- Id='TARGETDIR'
- Name='SourceDir'>
- <Directory
- Id='LocalAppDataFolder'
- Name='AppData'>
- <Directory
- Id='GoogleDir'
- Name='Google'>
- <Component Id="RemoveGoogleDir" Guid="*" DiskId="1">
+ <?if $(var.platform)=x64 ?>
+ <Directory Id='TARGETDIR' Name='SourceDir'>
+ <Directory Id='AppDataFolder' Name='AppData'>
+ <Directory Id='GoogleDir' Name='Google'>
+ <Component Id="RemoveGoogleDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
<CreateFolder/>
<RemoveFolder Id="RemoveGoogleDirFolder" On="uninstall" />
- <RegistryKey Root="HKCU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
<RegistryValue Name="RemoveGoogleDirFolder" Value="" Type="string" KeyPath="yes"/>
</RegistryKey>
</Component>
- <Directory
- Id='GoogleWebToolkitDir'
- Name='Google Web Toolkit'>
- <Component Id="RemoveGoogleWebToolkitDir" Guid="*" DiskId="1">
+ <Directory Id='GoogleWebToolkitDir' Name='Google Web Toolkit'>
+ <Component Id="RemoveGoogleWebToolkitDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
<CreateFolder/>
<RemoveFolder Id="RemoveGoogleWebToolkitDirFolder" On="uninstall" />
- <RegistryKey Root="HKCU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
<RegistryValue Name="RemoveGoogleWebToolkitDirFolder" Value="" Type="string" KeyPath="yes"/>
</RegistryKey>
</Component>
- <Directory
- Id='DeveloperPluginDir'
- Name='Developer Plugin'>
- <Component Id="RemoveDeveloperPluginDir" Guid="*" DiskId="1">
+ <Directory Id='DeveloperPluginDir' Name='Developer Plugin'>
+ <Component Id="RemoveDeveloperPluginDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
<CreateFolder/>
<RemoveFolder Id="RemoveDeveloperPluginDirFolder" On="uninstall" />
- <RegistryKey Root="HKCU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
<RegistryValue Name="RemoveDeveloperPluginDirFolder" Value="" Type="string" KeyPath="yes"/>
</RegistryKey>
</Component>
- <Directory
- Id='INSTALLDIR'
- Name='IE'>
- <Component Id="RemoveInstallDir" Guid="*" DiskId="1">
+ <Directory Id='INSTALLDIR' Name='IE'>
+ <Component Id="RemoveInstallDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
<CreateFolder/>
<RemoveFolder Id="RemoveInstallerDirFolder" On="uninstall" />
- <RegistryKey Root="HKCU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="RemoveInstallerDirFolder" Value="" Type="string" KeyPath="yes"/>
+ </RegistryKey>
+ </Component>
+ </Directory>
+ </Directory>
+ </Directory>
+ </Directory>
+ </Directory>
+ </Directory>
+ <?else?>
+ <Directory Id='TARGETDIR' Name='SourceDir'>
+ <Directory Id='AppDataFolder' Name='AppData'>
+ <Directory Id='GoogleDir' Name='Google'>
+ <Component Id="RemoveGoogleDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveGoogleDirFolder" On="uninstall" />
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="RemoveGoogleDirFolder" Value="" Type="string" KeyPath="yes"/>
+ </RegistryKey>
+ </Component>
+ <Directory Id='GoogleWebToolkitDir' Name='Google Web Toolkit'>
+ <Component Id="RemoveGoogleWebToolkitDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveGoogleWebToolkitDirFolder" On="uninstall" />
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="RemoveGoogleWebToolkitDirFolder" Value="" Type="string" KeyPath="yes"/>
+ </RegistryKey>
+ </Component>
+ <Directory Id='DeveloperPluginDir' Name='Developer Plugin'>
+ <Component Id="RemoveDeveloperPluginDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveDeveloperPluginDirFolder" On="uninstall" />
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="RemoveDeveloperPluginDirFolder" Value="" Type="string" KeyPath="yes"/>
+ </RegistryKey>
+ </Component>
+ <Directory Id='INSTALLDIR' Name='IE'>
+ <Component Id="RemoveInstallDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveInstallerDirFolder" On="uninstall" />
+ <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
<RegistryValue Name="RemoveInstallerDirFolder" Value="" Type="string" KeyPath="yes"/>
</RegistryKey>
</Component>
@@ -113,54 +175,34 @@
</Directory>
</Directory>
</Directory>
+ <?endif?>
<!-- Set some registry values. -->
- <Component
- Id='registryValues'
- Directory='INSTALLDIR'
- Guid='*'>
- <RegistryKey
- Root='HKCU'
- Action='createAndRemoveOnUninstall'
- Key='$(var.updateRegKey)'>
- <RegistryValue
- Name='pv'
- Value='$(var.version)'
- Type='string' />
- <RegistryValue
- Name='name'
- Value='$(var.appName)'
- Type='string' />
- <RegistryValue
- Name='lang'
- Value='en'
- Type='string' />
+ <Component Id='registryValues' Directory='INSTALLDIR' Guid='*' Win64="$(var.win64Flag)">
+ <RegistryKey Root='HKMU' Action='createAndRemoveOnUninstall' Key='$(var.updateRegKey)'>
+ <RegistryValue Name='pv' Value='$(var.version)' Type='string' />
+ <RegistryValue Name='name' Value='$(var.appName)' Type='string' />
+ <RegistryValue Name='lang' Value='en' Type='string' />
</RegistryKey>
+ <!-- requires per machine install (elevated)
+ <RegistryKey Root='HKMU' Action='createAndRemoveOnUninstall' Key='SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Browser Helper Objects\{1D6156B6-002B-49E7-B5CA-C138FB843B4E}'>
+ <RegistryValue Name='NoExplorer' Value='1' Type='integer' />
+ </RegistryKey>
+ -->
</Component>
<!-- Define the features to install. -->
- <Feature
- Id='CompleteFeature'
- Display='expand'
- Level='1'
- Absent='disallow'>
+ <Feature Id='CompleteFeature' Display='expand' Level='1' Absent='disallow'>
<!--
Loaded from oophm.wxs.xml, which is generated by the build
script.
- -->
- <ComponentRef
- Id='RemoveGoogleDir' />
- <ComponentRef
- Id='RemoveGoogleWebToolkitDir' />
- <ComponentRef
- Id='RemoveDeveloperPluginDir' />
- <ComponentRef
- Id='RemoveInstallDir' />
- <ComponentGroupRef
- Id='oophmDll' />
- <ComponentRef
- Id='registryValues' />
+ -->
+ <ComponentRef Id='RemoveGoogleDir' />
+ <ComponentRef Id='RemoveGoogleWebToolkitDir' />
+ <ComponentRef Id='RemoveDeveloperPluginDir' />
+ <ComponentRef Id='RemoveInstallDir' />
+ <ComponentGroupRef Id='oophmDll' />
+ <ComponentRef Id='registryValues' />
</Feature>
-
</Product>
</Wix>
diff --git a/plugins/ie/installer/oophm.wxs b/plugins/ie/installer/oophm.wxs
new file mode 100644
index 0000000..3ed137a
--- /dev/null
+++ b/plugins/ie/installer/oophm.wxs
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?if $(var.platform)=x64 ?>
+ <?define win64Flag="yes" ?>
+ <?else ?>
+ <?define win64Flag="no" ?>
+ <?endif ?>
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Directory Id="dir315E0C50682DFB472927FE1254A22F6A" Name="$(var.platform)" />
+ </DirectoryRef>
+ </Fragment>
+ <Fragment>
+ <ComponentGroup Id="oophmDll">
+ <Component Win64="$(var.win64Flag)" Id="cmpC5076456A3EE2DC3FC2683246BE38AD6" Directory="dir315E0C50682DFB472927FE1254A22F6A" Guid="48789066-DDF6-46C5-BF60-408BC872BF05">
+ <File Id="filEF78EFE99C26E3436EC9C8852A85BE88" KeyPath="yes" Source="$(var.binDir)\oophm.dll">
+ <TypeLib Id="{9259F105-BE55-4BF6-B7CE-D0AA878C1BA6}" Description="oophm 1.0 Type Library" HelpDirectory="dir315E0C50682DFB472927FE1254A22F6A" Language="0" MajorVersion="1" MinorVersion="0">
+ <AppId Description="oophm" Id="{F9365E53-5A14-47F3-BF1D-10CAAB815309}">
+ <Class Id="{1D6156B6-002B-49E7-B5CA-C138FB843B4E}" Context="InprocServer32" Description="plugin Class" ThreadingModel="apartment" Version="1.0" Programmable="yes" Control="yes">
+ <ProgId Id="oophm.plugin.1" Description="plugin Class">
+ <ProgId Id="oophm.plugin" Description="plugin Class" />
+ </ProgId>
+ </Class>
+ </AppId>
+ <Class Id="{1A2A78F4-B5A4-4208-B520-BDDA0A7EC5CB}" Context="InprocServer32" Description="ExceptionCatcher Class" ThreadingModel="apartment" Programmable="yes">
+ <ProgId Id="oophm.ExceptionCatcher.1" Description="ExceptionCatcher Class">
+ <ProgId Id="oophm.ExceptionCatcher" Description="ExceptionCatcher Class" />
+ </ProgId>
+ </Class>
+ <Class Id="{644FD769-8B9D-4AC4-A79E-AAAF5CD751C1}" Context="InprocServer32" Description="JavaObject Class" ThreadingModel="apartment" Programmable="yes">
+ <ProgId Id="oophm.JavaObject.1" Description="JavaObject Class">
+ <ProgId Id="oophm.JavaObject" Description="JavaObject Class" />
+ </ProgId>
+ </Class>
+ <Interface Id="{1C3FBB2D-58C2-426C-A461-E6002F9EE294}" Name="IExceptionCatcher" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
+ <Interface Id="{58276E45-1F24-4B71-88AC-2A7D0C26CDFF}" Name="IJavaObject" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
+ <Interface Id="{73607C2E-369B-4055-8020-D7643A59F521}" Name="Iplugin" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
+ <Interface Id="{AB9B16A0-03E9-481E-ADF5-B00B860A8C3A}" Name="IpluginUI" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
+ </TypeLib>
+ </File>
+ <RegistryValue Root="HKMU" Key="AppID\oophm.DLL" Name="AppID" Value="{F9365E53-5A14-47F3-BF1D-10CAAB815309}" Type="string" Action="write" />
+ <RegistryValue Root="HKMU" Key="CLSID\{1D6156B6-002B-49E7-B5CA-C138FB843B4E}\MiscStatus\1" Value="131473" Type="string" Action="write" />
+ <RegistryValue Root="HKMU" Key="CLSID\{1D6156B6-002B-49E7-B5CA-C138FB843B4E}\MiscStatus" Value="0" Type="string" Action="write" />
+ <RegistryValue Root="HKMU" Key="CLSID\{1D6156B6-002B-49E7-B5CA-C138FB843B4E}\ToolboxBitmap32" Value="[!filEF78EFE99C26E3436EC9C8852A85BE88], 102" Type="string" Action="write" />
+ </Component>
+ </ComponentGroup>
+ </Fragment>
+ <Fragment>
+ <DirectoryRef Id="dir315E0C50682DFB472927FE1254A22F6A" />
+ </Fragment>
+</Wix>
\ No newline at end of file
diff --git a/plugins/ie/installer/wix/README.txt b/plugins/ie/installer/wix/README.txt
new file mode 100644
index 0000000..846b7eb
--- /dev/null
+++ b/plugins/ie/installer/wix/README.txt
@@ -0,0 +1,10 @@
+
+This folder contains WIX binaries used to build the installer. These files
+were copied as-is from the public website http://wix.codeplex.com/ and are
+here for convenience and to make sure we have the right toolset version.
+
+for more information, license terms, please refer to:
+ http://wix.sourceforge.net/
+ http://wix.codeplex.com/
+ http://wix.codeplex.com/license
+
diff --git a/plugins/ie/installer/wix/WixIIsExtension.dll b/plugins/ie/installer/wix/WixIIsExtension.dll
new file mode 100755
index 0000000..9c3e2a8
--- /dev/null
+++ b/plugins/ie/installer/wix/WixIIsExtension.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/WixUtilExtension.dll b/plugins/ie/installer/wix/WixUtilExtension.dll
new file mode 100755
index 0000000..36eac99
--- /dev/null
+++ b/plugins/ie/installer/wix/WixUtilExtension.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/WixVSExtension.dll b/plugins/ie/installer/wix/WixVSExtension.dll
new file mode 100755
index 0000000..2fa2a1b
--- /dev/null
+++ b/plugins/ie/installer/wix/WixVSExtension.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/candle.exe b/plugins/ie/installer/wix/candle.exe
new file mode 100755
index 0000000..a5be152
--- /dev/null
+++ b/plugins/ie/installer/wix/candle.exe
Binary files differ
diff --git a/plugins/ie/installer/wix/candle.exe.config b/plugins/ie/installer/wix/candle.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/plugins/ie/installer/wix/candle.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (c) Microsoft Corporation. All rights reserved.
+-->
+<configuration>
+ <startup useLegacyV2RuntimeActivationPolicy="true">
+ <supportedRuntime version="v4.0" />
+ <supportedRuntime version="v2.0.50727" />
+ </startup>
+</configuration>
diff --git a/plugins/ie/installer/wix/darice.cub b/plugins/ie/installer/wix/darice.cub
new file mode 100644
index 0000000..dab4567
--- /dev/null
+++ b/plugins/ie/installer/wix/darice.cub
Binary files differ
diff --git a/plugins/ie/installer/wix/heat.exe b/plugins/ie/installer/wix/heat.exe
new file mode 100755
index 0000000..e5c9336
--- /dev/null
+++ b/plugins/ie/installer/wix/heat.exe
Binary files differ
diff --git a/plugins/ie/installer/wix/heat.exe.config b/plugins/ie/installer/wix/heat.exe.config
new file mode 100644
index 0000000..5d5aa30
--- /dev/null
+++ b/plugins/ie/installer/wix/heat.exe.config
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (c) Microsoft Corporation. All rights reserved.
+-->
+<configuration>
+ <appSettings>
+ <add key="extensions" value="WixIIsExtension;WixUtilExtension;WixVSExtension"/>
+ </appSettings>
+ <startup useLegacyV2RuntimeActivationPolicy="true">
+ <supportedRuntime version="v4.0" />
+ <supportedRuntime version="v2.0.50727" />
+ </startup>
+</configuration>
diff --git a/plugins/ie/installer/wix/libiconv2.dll b/plugins/ie/installer/wix/libiconv2.dll
new file mode 100755
index 0000000..544dd92
--- /dev/null
+++ b/plugins/ie/installer/wix/libiconv2.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/libintl3.dll b/plugins/ie/installer/wix/libintl3.dll
new file mode 100755
index 0000000..ec11e6b
--- /dev/null
+++ b/plugins/ie/installer/wix/libintl3.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/light.exe b/plugins/ie/installer/wix/light.exe
new file mode 100755
index 0000000..d36e01e
--- /dev/null
+++ b/plugins/ie/installer/wix/light.exe
Binary files differ
diff --git a/plugins/ie/installer/wix/light.exe.config b/plugins/ie/installer/wix/light.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/plugins/ie/installer/wix/light.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (c) Microsoft Corporation. All rights reserved.
+-->
+<configuration>
+ <startup useLegacyV2RuntimeActivationPolicy="true">
+ <supportedRuntime version="v4.0" />
+ <supportedRuntime version="v2.0.50727" />
+ </startup>
+</configuration>
diff --git a/plugins/ie/installer/wix/mspatchc.dll b/plugins/ie/installer/wix/mspatchc.dll
new file mode 100755
index 0000000..4720f1a
--- /dev/null
+++ b/plugins/ie/installer/wix/mspatchc.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/regex2.dll b/plugins/ie/installer/wix/regex2.dll
new file mode 100755
index 0000000..f84a847
--- /dev/null
+++ b/plugins/ie/installer/wix/regex2.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/sed.exe b/plugins/ie/installer/wix/sed.exe
new file mode 100755
index 0000000..42c2677
--- /dev/null
+++ b/plugins/ie/installer/wix/sed.exe
Binary files differ
diff --git a/plugins/ie/installer/wix/wconsole.dll b/plugins/ie/installer/wix/wconsole.dll
new file mode 100755
index 0000000..916b492
--- /dev/null
+++ b/plugins/ie/installer/wix/wconsole.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/winterop.dll b/plugins/ie/installer/wix/winterop.dll
new file mode 100755
index 0000000..0385acd
--- /dev/null
+++ b/plugins/ie/installer/wix/winterop.dll
Binary files differ
diff --git a/plugins/ie/installer/wix/wix.dll b/plugins/ie/installer/wix/wix.dll
new file mode 100755
index 0000000..5057e35
--- /dev/null
+++ b/plugins/ie/installer/wix/wix.dll
Binary files differ
diff --git a/plugins/ie/oophm/oophm.sln b/plugins/ie/oophm/oophm.sln
index 106c6af..8885cd4 100644
--- a/plugins/ie/oophm/oophm.sln
+++ b/plugins/ie/oophm/oophm.sln
@@ -1,6 +1,6 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oophm", "oophm\oophm.vcproj", "{EB69BDFE-9380-4C51-99E8-C3EB25AE36A2}"
EndProject
Global
diff --git a/plugins/ie/oophm/oophm/dllmain.cpp b/plugins/ie/oophm/oophm/dllmain.cpp
index e7c6ada..eaa3ed9 100644
--- a/plugins/ie/oophm/oophm/dllmain.cpp
+++ b/plugins/ie/oophm/oophm/dllmain.cpp
@@ -15,7 +15,6 @@
*/
// dllmain.cpp : Implementation of DllMain.
-
#include "stdafx.h"
#include "resource.h"
#include "oophm_i.h"
@@ -29,9 +28,12 @@
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
#ifdef _MERGE_PROXYSTUB
- if (!PrxDllMain(hInstance, dwReason, lpReserved))
- return FALSE;
+ if (!PrxDllMain(hInstance, dwReason, lpReserved))
+ return FALSE;
#endif
+ DisableThreadLibraryCalls(hInstance);
+
AllowDialog::setHInstance(hInstance);
- return _AtlModule.DllMain(dwReason, lpReserved);
+
+ return _AtlModule.DllMain(dwReason, lpReserved);
}
diff --git a/plugins/ie/oophm/oophm/oophm.vcproj b/plugins/ie/oophm/oophm/oophm.vcproj
index 54ab6a5..9b8e095 100644
--- a/plugins/ie/oophm/oophm/oophm.vcproj
+++ b/plugins/ie/oophm/oophm/oophm.vcproj
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="8.00"
+ Version="9.00"
Name="oophm"
ProjectGUID="{EB69BDFE-9380-4C51-99E8-C3EB25AE36A2}"
RootNamespace="oophm"
Keyword="AtlProj"
+ TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
@@ -82,11 +83,13 @@
RegisterOutput="true"
IgnoreImportLibrary="true"
AdditionalDependencies="comsuppw.lib ws2_32.lib"
- OutputFile="..\..\prebuilt\$(ProjectName).dll"
+ OutputFile="..\..\prebuilt\$(PlatformName)\$(ProjectName).dll"
LinkIncremental="2"
ModuleDefinitionFile=".\oophm.def"
GenerateDebugInformation="true"
SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
@@ -108,9 +111,6 @@
Name="VCAppVerifierTool"
/>
<Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
@@ -176,11 +176,13 @@
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsuppw.lib ws2_32.lib"
- OutputFile="..\..\prebuilt\$(ProjectName)64.dll"
+ OutputFile="..\..\prebuilt\$(PlatformName)\$(ProjectName).dll"
LinkIncremental="2"
ModuleDefinitionFile=".\oophm.def"
GenerateDebugInformation="true"
SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool
@@ -202,9 +204,6 @@
Name="VCAppVerifierTool"
/>
<Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
@@ -270,13 +269,15 @@
RegisterOutput="true"
IgnoreImportLibrary="true"
AdditionalDependencies="comsuppw.lib ws2_32.lib"
- OutputFile="..\..\prebuilt\$(ProjectName).dll"
+ OutputFile="..\..\prebuilt\$(PlatformName)\$(ProjectName).dll"
LinkIncremental="1"
ModuleDefinitionFile=".\oophm.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
@@ -298,9 +299,6 @@
Name="VCAppVerifierTool"
/>
<Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
@@ -347,7 +345,6 @@
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
- Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
@@ -366,13 +363,15 @@
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsuppw.lib ws2_32.lib"
- OutputFile="..\..\prebuilt\$(ProjectName)64.dll"
+ OutputFile="..\..\prebuilt\$(PlatformName)\$(ProjectName).dll"
LinkIncremental="1"
ModuleDefinitionFile=".\oophm.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool
@@ -394,9 +393,6 @@
Name="VCAppVerifierTool"
/>
<Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
@@ -528,38 +524,6 @@
<File
RelativePath=".\stdafx.cpp"
>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
</File>
<Filter
Name="common"
diff --git a/plugins/ie/oophm/oophm/plugin.htm b/plugins/ie/oophm/oophm/plugin.htm
index b3d8a77..1dac491 100644
--- a/plugins/ie/oophm/oophm/plugin.htm
+++ b/plugins/ie/oophm/oophm/plugin.htm
@@ -1,19 +1,82 @@
-<HTML>
-<HEAD>
-<TITLE>ATL 8.0 test page for object plugin</TITLE>
-</HEAD>
-<BODY>
-
-
-<OBJECT ID="plugin" CLASSID="CLSID:1D6156B6-002B-49E7-B5CA-C138FB843B4E"></OBJECT>
-
-<script>
-var p = document.getElementById("plugin");
-var b = p.connect("this", "sucks");
-var o = p.testObject();
-o.doSomething(42);
-
-
-</script>
-</BODY>
-</HTML>
+<HTML>
+<HEAD>
+<TITLE>GWT IE Plugin test page.</TITLE>
+</HEAD>
+<BODY>
+<OBJECT ID="plugin" CLASSID="CLSID:1D6156B6-002B-49E7-B5CA-C138FB843B4E" border="2" width="150" height="150" standby="loading gwt plugin...">
+<div style="color:red; font-family:'Times New Roman'; font-size:20px;">
+<H1>Ooops!!! Failed to load gwt oophm plugin!</H1>
+<a><p>This is was you should have seen...<p>
+<img
+src="data:image/png;base64,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
+AElFTkSuQmCC" /></a>
+</div>
+</OBJECT>
+<script>
+var plugin = document.getElementById("plugin");
+var b = plugin.connect("this", "sucks");
+var obj = plugin.testObject();
+obj.doSomething(42);
+</script>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/plugins/ie/prebuilt/Win32/oophm.dll b/plugins/ie/prebuilt/Win32/oophm.dll
new file mode 100755
index 0000000..9aef49f
--- /dev/null
+++ b/plugins/ie/prebuilt/Win32/oophm.dll
Binary files differ
diff --git a/plugins/ie/prebuilt/gwt-dev-plugin-x64.msi b/plugins/ie/prebuilt/gwt-dev-plugin-x64.msi
new file mode 100644
index 0000000..2c81f55
--- /dev/null
+++ b/plugins/ie/prebuilt/gwt-dev-plugin-x64.msi
Binary files differ
diff --git a/plugins/ie/prebuilt/gwt-dev-plugin-x86.msi b/plugins/ie/prebuilt/gwt-dev-plugin-x86.msi
new file mode 100644
index 0000000..7d54453
--- /dev/null
+++ b/plugins/ie/prebuilt/gwt-dev-plugin-x86.msi
Binary files differ
diff --git a/plugins/ie/prebuilt/oophm.dll b/plugins/ie/prebuilt/oophm.dll
deleted file mode 100755
index caf9780..0000000
--- a/plugins/ie/prebuilt/oophm.dll
+++ /dev/null
Binary files differ
diff --git a/plugins/ie/prebuilt/oophm64.dll b/plugins/ie/prebuilt/oophm64.dll
deleted file mode 100755
index b8707f0..0000000
--- a/plugins/ie/prebuilt/oophm64.dll
+++ /dev/null
Binary files differ
diff --git a/plugins/ie/prebuilt/x64/oophm.dll b/plugins/ie/prebuilt/x64/oophm.dll
new file mode 100755
index 0000000..c4a47e6
--- /dev/null
+++ b/plugins/ie/prebuilt/x64/oophm.dll
Binary files differ