This is a general posting of how I fixed a problem created by using the
Access 97 ODE Setup Wizard on a Windows XP machine. I hope it helps anyone
who comes across the problem saves them the 3 days its taken me to sort out.
The application generates the following error:
"Incompatible version of the RPC stub"
This occurs when trying to run Outlook to send an email. However I expect it
would occur for any operation which uses automation.
The problem is documented well in MSKB article 320108
http://support.microsoft.com/default...b;en-us;320108
When I encountered the problem I was using the MOD2000 Package and
Deployment Wizard to deploy an Access 2000 application. I know better now!
The MOD2000 Package & Deployment Wizard is a giant step backwards from the
older Access 97 ODE Setup Wizard. It prompts the user with choices for
overwriting or keeping DLLs (how is an untrained user meant to know the
answer?), it does not overwrite same version DLLs (so re-install always
prompts), it creates multiple entries in Add/remove Programs if you don't
uninstall the previous version (i.e. you cannot reinstall) and its a pain to
use.
I have decided to revert to using the Access 97 deployment method for my
Access 2000 applications.
However both deployment methods attempt to install a VB runtime on the
target machine. They both (by default) take the host machine's system DLLs
for the run-time. If the host machine is Windows XP then these files
(version 3.50.xxxx.x) are not compatible with the older versions of Windows
(version 2.40.xxxx.x). For Windows NT targets, the XP DLLs are installed and
break automation. For Windows 2000 targets, windows file protection prevents
them from being installed. This prevents a MOD2000 installation from working
but an ODE97 installation works OK.
I find it hard to believe that Microsoft have made another fundemental
windows DLL incompatible with previous versions. They did it with Comcat.dll
which broke machines with IE3 installed. Now they've done it again.
Since Oleaut32.dll is used by Windows Explorer, damaged machines must be
recovered in safe mode of from a DOS command prompt.
My method here takes the DLL's from the VB6 Runtime SP5 and modifies the
ODE97 Setup Wizard to use these instead of the host machine's (potentially
damaging) system DLL's. This an installation on Win9x/NT will update to
VB6SP5, Win2K will not fire Windows File Protection and WinXP will leave the
(newer) DLLs alone.
So here goes:
Patching the ODE97 Setup Wizard for VB6 SP5 runtime files
----------------------------------------------------------------------------
Problem: The ODE Setup Wizard installs some VB runtime DLL's. These are
normally taken from the windows system directory of the host computer. If
host is WinXP and target is Win 9x/NT, this puts an incompatible version of
Oleaut32.dll on target machine and results in "Incompatible version of the
RPC stub" if any office automation is attempted. See MSKB 320108 for
details.
Fix: Replace system files with those provided by VB6 Runtime SP5
(VBRun60sp5.exe). Since files are used by windows this must be done in safe
mode or from DOS boot disk. See MSKB 290887 for details.
Prevention: Modify ODE Setup Wizard to use the DLLs from VB6SP5 instead of
host system directory.
1) Copy following files to C:\Program Files\Microsoft Office\ODETools\Setup
Wizard\REDIST:
Oleaut32.dll
Asycfilt.dll
Stdole2.tlb
Olepro32.dll
Use version 2.40.xxxx.x versions (VB6SP5) not 3.50.xxxx.x versions (WinXP)
2) Modify C:\Program Files\Microsoft Office\ODETools\Setup
Wizard\MSACCOMP\00Setup.MDT
Open in Access
Open OLEAUT32 table
For each of the above DLLs find the row with LineID=add <dll>
Change Param2=$(WinSysPath) to $(SwizSetupFilesPath)
Change Param3=C:\WINDOWS\System32\<dll> to C:\Program Files\Microsoft
Office\ODETools\Setup Wizard\Redist\<dll>
ODE Setup Wizard will now use older versions of DLLs to create installation.
Best Regards
Neil
--------------------------------------------------------
Neil Sargent
Smart IT
Email: ne**@sargent.nospam.demon.co.uk
--------------------------------------------------------