Running Wine without Windows
==================

Sometimes you can bring applications to run by using some of the
native Windows DLL's, together with Wine. Here are some Tips by
Juergen Schmied on how to proceed. This assumes that your C:\windows
directory in the configuration file does not point to a native Windows
installation but is in a separate Unix file system. (For instance,
C:\windows is really /home/ego/wine/drives/c).

- Create empty C:\windows and C:\windows\system directories.
  Do not point Wine to a Windows directory full of old installations
  and a messy registry. (Wine creates a special registry in your home
  directory, in $HOME/.wine/*.reg. Perhaps you have to remove these
  files).
- Run the application with   -debugmsg +module,+file   to find out
  which files are needed. Copy the required DLL's one by one to the
  C:\windows\system directory.
- Note that some network DLL's are not needed even though Wine is
  looking for them. Do not copy the MPR.DLL into the directory,
  use the internal implementation.
- Copy SHELL/SHELL32 and COMDLG/COMDLG32 COMMCTRL/COMCTL32
  only as pairs to your Wine directory (these DLL's are
  "clean" to use)
- Be consistent: Use only DLLS from the same Windows version
  together.
- Put regedit.exe in the C:\windows directory (office95 imports
  a *.reg file when it runs with a empty registry, don't know
  about office97).
