FILE: Install DCOM and MDAC Through a Windows Installer Package (257604)



The information in this article applies to:

  • Microsoft Visual Studio Installer 1.0
  • Microsoft Windows Installer 1.1, when used with:
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows 95
    • the operating system: Microsoft Windows 98
    • the operating system: Microsoft Windows NT
    • the hardware: DEC Alpha
  • Microsoft Windows Installer 1.0, when used with:
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows 95
    • the operating system: Microsoft Windows 98
    • the operating system: Microsoft Windows NT
    • the hardware: DEC Alpha
  • Microsoft Visual Studio .NET (2003), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2003), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2003), Academic Edition
  • Microsoft Visual Studio .NET (2002), Professional Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2002), Academic Edition

This article was previously published under Q257604

SUMMARY

The Microsoft Data Access Component (MDAC) merge module (MDAC.msm) that is included in Visual Studio Installer 1.0 only detects the presence of this system component. It does not install MDAC. This article provides a sample executable file that encapsulates the MDAC installation with a Microsoft Installer (MSI) package.

MORE INFORMATION

MDAC and DCOM are vital to many applications written for the Win32 platform. A requirement of the Application Specification for Microsoft Windows 2000 for Desktop Applications desktop applications is to use the Windows Installer. However, because MDAC and DCOM redistributable merge modules do not exist, DCOM and MDAC installation must be done outside of a Windows Installer .msi file. You can use this sample, Wrapper.exe, as-is or modify it to meet custom needs. The following file is available for download from the Microsoft Download Center:
Release Date: August 31, 2000

For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to Obtain Microsoft Support Files from Online Services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.

Command Line Options

Wrapper.exe command line switches are the same as the Windows Installer, Msiexec.exe. For example, the following command line would install and create a verbose log file:

C:\Wrapper> Wrapper.exe /i MyMsi.MSI /l*v C:\Wrapper\MyLog.txt


For more information, visit the following Microsoft Web site: Command Line Options

To customize your wrapper and build in the command line parameters, modify the function call to RegWriteCmdLine in MTSetup.cpp as in the following example code:
if(!lstrcmp(__argv[1],"DCOMREBOOT"))
{
   ...
}
else if(!lstrcmp(__argv[1],"MDACREBOOT"))
{
   ...
}
else
{
   // Comment out the following line
   //RegWriteCmdLine(lpCmdLine);                                                        

   RegWriteCmdLine(TEXT("/i  MyInstallationPackage.MSI"));
}
				

Directory Structure

The following directory structure is required by Wrapper.exe:
  • DCOM98 and MDAC setup packages (DCOM95.EXE and MDAC_TYP.EXE) must be placed in the same folder as Wrapper.exe. Setup will fail if these files are not present
  • The Windows Installer redistributable files, InstMsi.exe, must be placed in different "WinNT" and "Win9x" subfolders of the folder where Wrapper.exe resides. Obtain the Windows Installer redistributables by downloading these files from the following Microsoft Web site:
  • You can place the MSI package anywhere in the folder structure as long as the appropriate path is included on the command line.

MDAC

Wrapper.exe only checks for the presence of MDAC 2.1 or later. If a specific version is required for your application, you must customize the source code. The IsMDACPresent function in MDAC.cpp is the location of the check.

Wrapper.exe will install the version of MDAC (MDAC_TYP.exe) that you place in the Wrapper.exe folder. For example, if you place version 2.5 of MDAC in the Wrapper.exe folder, version 2.5 will be installed. Several different versions of MDAC are available from: You must be a local administrator on the computer in order to install MDAC.

DCOM

DCOM must only be installed on computers running Windows 95. It is already present in Windows 98, Windows 98SE, Windows NT 4.0, and Windows 2000. The redistributable version of DCOM is available at the following Web site:

Renaming the Executable

If you want to rename the executable file, do the following:
  1. Modify the following variable in MTSetup.h:
    static const TCHAR g_szAppName[] = TEXT("Wrapper");
  2. On the Project menu, click Settings.
  3. Select the Link tab.
  4. In the Category list, select General.
  5. Modify the output file name.
  6. Recompile.

Installation Algorithm

Wrapper.exe performs the following detection and installation tasks:
  1. On Windows 95, installs DCOM if it is not present and reboots the computer.
  2. Uses Instmsi.exe to install the Windows Installer service if it is not present.
  3. Installs MDAC if it is not present and reboots the computer.
  4. Installs the MSI package specified by the command line.
The self-extracting file WrapperSetup.exe contains the following files:
FileSize
MTSetup.dsw537 bytes
MTSetup.dsp4.87 KB
MTSetup.cpp2.06 KB
MTSetup.h1.17 KB
DCOM.cpp2.47 KB
MDAC.cpp2.11 KB
Registry.cpp5.40 KB
MsgLoop.cpp780 bytes
Init.cpp1.44 KB
Security.cpp1.09 KB
Version.cpp965 bytes
Stdafx.cpp294 bytes
CmdLine.cpp960 bytes
Installer.cpp1.95 KB
InstallThread.cpp2.90 KB
Wrapper.exe28 KB
Msiexec.ico4.59 KB
Script1.rc2.79 KB
Stdafx.h773 bytes

What's New in WrapperSetup.exe (6/21/2000 and later)

  1. The executable performs additional MDAC detection.
  2. A RunOnce registry key bug was fixed.
  3. An icon was added to the executable.
  4. A version resource was added to the executable.
  5. The executable will run from a root directory.
  6. A long filename directory bug was fixed.

Modification Type:MinorLast Reviewed:5/23/2005
Keywords:kbdownload kbfile kbhowto kbsetup KB257604 kbAudDeveloper