Dcom98

From Wine-Wiki

Jump to: navigation, search
This article is part of the HOWTO series.
Installing Wine Business Games Internet Multimedia System and Utilities
Education Other


Warning: This HOWTO comes with no explicit or implicit warranty whatsoever. Use at you own risk!


Contents

DCOM98 Legal Information

Warning: DCOM98 requires a legal Windows 98 licence.


Information

Please note: Wine-Wiki.org does not give legal advice

Wine has made significant progress and a native windows version of Dcom is not usually required. Now that wine has progressed so far, running native dcom is not often very successful.

In the wine users' mailing list Jan25 2004 a user claimed that their EULA for DCOM98 'required a legal copy of Win98'. However another user claimed that any legal Windows OS was acceptable.

Because EULA agreements do not consist of paper documents, it appears possible that different downloads may not contain the same EULA

Because of its community-based nature, this wiki must not be taken as an authoritative source of information. It has not been reviewed by professionals with the expertise necessary to provide you with complete, accurate or reliable infomation

Check and confirm infomation with other sources and through direct professional contact. Examine all agreements carefully

Wine and DCOM Progress

While Wine has yet to be released as version 1.0, Significant progress has been made with DCOM. As Wine continues to improve, occasionally a current release may have issues with your software or software installer, (e.g.InstallShield). The developers work hard to fix regressions but until then, often the Wine Application Database[1] recommends a specific release version for your software. Better yet, if you notice a problem please fill out a bug report in Bugzilla with a link to where someone can download a trial version of your software. The bugzilla reviewers will likely contact you to help you fill out the details. In 2008, a developer recommended using only a single rpcrt4 dll from windows 2000 or XP for a workaround rather than suggesting installing dcom98. It appears Wine has moved on.

If the Wine Application Database mentions DCOM issues for your version of Wine, it is technically possible for Wine to use a native version of DCOM such as DCOM98.

Important Note Wine is now set to emulate windows 2000. To install and then use dcom98 you will need to change wine to emulate windows 98 or less using winecfg. R. Shearman bug13190 Using native rpcrt4.dll as installed by DCOM9x when Wine is reporting as Windows 2000 upwards is not supported

A user said [Apr 06]:I've downloaded DCOM98 from MS and opened the .exe with WinRar, comparing each DLL file with the index of Wine DLLs at http://source.winehq.org/source/dlls/. Far from all of them are there, but then again some of them are probably extremely rarely used by applications.

M .Hearn: Microsofts implementation is more modular than ours, fewer DLLS does not necessarily equal less complete. We've also taken some shortcuts where binary compatibility could be preserved with a simpler system. To answer the original question, yes Wines DCOM should be "good enough" for most users who don't need wire compatibility, and it's getting better all the time. wine archive

Obtaining DCOM98

Several links to download Dcom98 are listed below. All have license agreements that require careful reading. Dcom98 is provided as a free download from Microsoft Windows.


Common dlls used for wine

  • ole32
  • rpcrt4.dll
  • oleaut32.dll
    • A program with Visual Basic may require native oleaut32.
  • stdole32
    • Wine has it's own version. Current status unknown.
  • stdole2

Installing DCOM98

When installing Dcom98, if you already have a lot of software installed on wine, use a separate wine WINEPREFIX so that you do not affect your current software.

Wine doesnt seem to require installing dcom98. Rather it can use the native dcom98 dlls when they are in the correct directory and specified using winecfg or using the commandline with WINEDLLOVERRIDES. Wine is changing so fast that information on how to install dcom98 can quickly become out of date. As this is a wiki, we urge you to drop a note here if you spot any changes. The best method of installing dcom98 would probably be the script by Dan Kegel.

Manually Extracting the dll files

This usually succeeds because it overwrites the 'fake' windows dlls that wine comes with.
wine dcom98.exe /C

Type c:/windows/system in the dialog box or click Browse to extract to the directory c:/windows/system32. If using wine versions previous to wine 0.9 copy the dlls to the c:/windows/system directory.

Warning: If your computer has Linux and Windows installed, be sure to install DCOM in the fake windows directory of Wine.


Installing DCOM using the Command Line

Open a terminal window and type:

$ winecfg

and set the windows version to windows 98 or less. After closing winecfg, using your favourite file viewer, delete only the fake dlls that will be replaced found in wine's system and system32 directory.

rm .wine/drive_c/windows/system32/ole*

Take care, as you need to be sure you delete from the Wine directory and not from a real Windows installation. Then install by typing on the command line.

$ WINEDLLOVERRIDES="ole32=n;rpcrt4=n;oleaut32=n" wine dcom98.exe

If installing DCOM fails, use the extraction method above.

Installing Software with DCOM98

First of all you will need to use winecfg to set the windows version to Win95, or Win 98. S. Dosinger: [Dec 05] native dcom won't run with winver [set as] NT, [Win] 2000 or [Win] XP

And recently in the developer list [2006] it was commented that you first need to delete the fake dlls that are replaced by DCOM98. This is why extracting works well, as it overwrites the fake dlls created by Wine.

Copied From 19 Feb 2005 Wine Developer Mailing List:

"You normally use ole32,oleaut32,rpcrt4=n to use native DCOM. This is not documented on WineHQ but is documented on the WineKB I run [2]"

Example Install of 'foo.exe' with native DCOM98

DLLOVERRIDES="ole32=n;oleaut32=n;rpcrt4=n" wine foo.exe


For a detailed example of using DCOM98 see DCOM98 and InstallShield


In Aug 2005 an issue that was connected with theming was resolved:
uxtheme currently links in shlwapi.dll, shlwapi.dll in turn links in ole32.dll. Since WM_NCCREATE seems to load uxtheme it would be that ole32 is being loaded almost all the time now.

[...]to install dcom95.exe we need to set ole32=native (ie, disabled) so that dcom95 does not detect the builtin version. However because uxtheme is now being loaded with MessageBoxA, the install fails because it is unable to load ole32.

Scripts

D. Kegel [Jun 2007] Recently I've gotten to the point where I'm tired of going to the NativeDCOM wiki page to remember how to try an app with native dcom just to see if the bug in question is a COM bug.

So I wrote a trivial script to automate installing that plus a bunch of other redistributables. A draft is at http://kegel.com/wine/winetricks

Usage: winetricks [dcom98|fakeie6|mdac26|mfc40|mono|vbrun60|vcrun6|wsh51|wsh56jscript] ...

It's a bit like a programmer's version of winetools: it's so commandline-crufty that normal users won't go near it, but it's simple enough to extend that it will probably end up being pretty handy for anyone working on triaging bugs that appear to be due to missing redistributable libraries. Oh, or commonly-needed registry entries.

apparently it was handy as someone quickly sent in some improvements to the script.

Running Software with Dcom98 dlls

M. Hearn: [Maoy 06] the following set must all be the same:

rpcrt4,oleaut32,ole32=native

OR

rpcrt4,oleaut32,ole32=builtin wine archive

External Links


Personal tools