# These entries must apparently exist in any win95-compatible registry.
# (feed this to `regapi setValue' to install)

# Shell Folders. The purpose of these are pretty self-evident.
# Primarily used by installation programs and the Explorer.

[HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Favorites"="C:\\WINDOWS\\Favorites"
"StartUp"="C:\\WINDOWS\\Start Menu\\Programs\\Startup"
"Desktop"="C:\\WINDOWS\\Desktop"
"Programs"="C:\\WINDOWS\\Start Menu\\Programs"
"Fonts"="C:\\WINDOWS\\Fonts"
"SendTo"="C:\\WINDOWS\\SendTo"
"Start Menu"="C:\\WINDOWS\\Start Menu"
"Templates"="C:\\WINDOWS\\ShellNew"
"Recent"="C:\\WINDOWS\\Recent"
"NetHood"="C:\\WINDOWS\\NetHood"
"Personal"="C:\\My Documents"

[HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Personal"="C:\\My Documents"
"Favorites"="C:\\WINDOWS\\Favorites"

# Same as above, but for HKEY_CURRENT_USER, not HKEY_USERS\.Default

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Favorites"="C:\\WINDOWS\\Favorites"
"StartUp"="C:\\WINDOWS\\Start Menu\\Programs\\Startup"
"Desktop"="C:\\WINDOWS\\Desktop"
"Programs"="C:\\WINDOWS\\Start Menu\\Programs"
"Fonts"="C:\\WINDOWS\\Fonts"
"SendTo"="C:\\WINDOWS\\SendTo"
"Start Menu"="C:\\WINDOWS\\Start Menu"
"Templates"="C:\\WINDOWS\\ShellNew"
"Recent"="C:\\WINDOWS\\Recent"
"NetHood"="C:\\WINDOWS\\NetHood"
"Personal"="C:\\My Documents"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Personal"="C:\\My Documents"
"Favorites"="C:\\WINDOWS\\Favorites"

[HKEY_CURRENT_USER\Control Panel\desktop]
"DragFullWindows"="0"

#
# Override default load address of BDE (Borland database engine),
# since it's not available on Linux
#

[HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\Settings\SYSTEM\INIT]
"SHAREDMEMLOCATION"="9000"

#
# General OLE/DCOM config
#

[HKEY_LOCAL_MACHINE\Software\Microsoft\OLE]
# allow cross-machine calls (RPC) (default Y)
"EnableDCOM"="Y"
# allow incoming connections ? (def. N)
"EnableRemoteConnect"="N"

#
# General installation config
#

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion]
"ProgramFilesDir"="C:\\Program Files"
"CommonFilesDir"="C:\\Program Files\\Common Files"
"RegisteredOrganization"="Change preferred organization in ~/.wine/system.reg"
"RegisteredOwner"="Change preferred owner in ~/.wine/system.reg"

# Font name to font file mappings
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Fonts]
# "Arial (TrueType)"="ARIAL.TTF"      # sample entry
@=""

# This is intended for a centrally managed (server) directory where
# system files and e.g. fonts can reside. Most installs have this set
# to C:\WINDOWS, though.
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup]
"SharedDir"="C:\\WINDOWS"

#
# Configuration for unhandled exceptions
#
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
# command line to start a debugger when an exception occurs
"Debugger"="winedbg %ld %ld"
# to 0 if a message box has to be presented before running the debugger
"Auto"="1"

#
# This identifies the files for available code pages
#

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Codepage]
"ACP"="1252"
"OEMCP"="437"

#
# Entries for OLE32 (COM/OLE base)
#

# OLE32's built-in marshaler, handles standard interfaces such as IClassFactory.
# (PSFactoryBuffer = Proxy/Stub factory)
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}]
@="PSFactoryBuffer"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}\InProcServer32]
@="ole32.dll"
"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0000030b-0000-0000-C000-000000000046}]
@="DfMarshal"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0000030b-0000-0000-C000-000000000046}\InProcServer32]
@="ole32.dll"
"ThreadingModel"="Both"

# IUnknown, the superclass for everything COM/OLE.
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}]
@="IUnknown"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\BaseInterface]
@=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\NumMethods]
@="3"

# IClassFactory, standard interface for creating instances of classes.
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00000001-0000-0000-C000-000000000046}]
@="IClassFactory"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00000001-0000-0000-C000-000000000046}\NumMethods]
@="5"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00000001-0000-0000-C000-000000000046}\ProxyStubClsid32]
@="{00000320-0000-0000-C000-000000000046}"

#
# Entries for OLEAUT32 (OLE Automation)
#

# The Universal Marshaler, also known as the Type Library Marshaler.
# (PSOAInterface = Proxy/Stub OLE Automation interface)
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00020424-0000-0000-C000-000000000046}]
@="PSOAInterface"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00020424-0000-0000-C000-000000000046}\InProcServer]
@="ole2disp.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00020424-0000-0000-C000-000000000046}\InProcServer32]
@="oleaut32.dll"
"ThreadingModel"="Both"

# OLE Automation type libraries.
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\1.0]
@="OLE Automation"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\0\win16]
@="stdole.tlb"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\0\win32]
@="stdole32.tlb"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\FLAGS]
@="1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\2.0]
@="OLE Automation"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\2.0\0\win32]
@="stdole2.tlb"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\2.0\FLAGS]
@="0"

#
# SHELL32 entries base classes of the desktop/ shelllinks
# Used by common dialogs, programs creating and many others
#

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}]
@="Shortcut"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32]
@="shell32.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}]
@="Shortcut"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32]
@="shell32.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\shellex\MayChangeDefaultMenu]
@=""

#
# Entries for COMCAT (Component Category Manager)
#

# The Component Category Manager
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0002E005-0000-0000-C000-000000000046}]
@="StdComponentCategoriesMgr"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0002E005-0000-0000-C000-000000000046}\InProcServer32]
@="comcat.dll"
"ThreadingModel"="Both"

#
# Entries for DirectX. Used by high-performance multimedia applications, like games.
#

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX]
"Version"="4.07.00.0700"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D7B70EE0-4340-11CF-B063-0020AFC2CD35}]
@="DirectDraw Object"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D7B70EE0-4340-11CF-B063-0020AFC2CD35}\InprocServer32]
@="ddraw.dll"
"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{593817A0-7DB3-11CF-A2DE-00AA00B93356}]
@="DirectDraw Clipper Object"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{593817A0-7DB3-11CF-A2DE-00AA00B93356}\InprocServer32]
@="ddraw.dll"
"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D1EB6D20-8923-11D0-9D97-00A0C90A43CB}]
@="DirectPlay Object"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D1EB6D20-8923-11D0-9D97-00A0C90A43CB}\InprocServer32]
@="dplayx.dll"
"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{47D4D946-62E8-11cf-93BC-444553540000}]
@="DirectSound Object"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{47D4D946-62E8-11cf-93BC-444553540000}\InprocServer32]
@="dsound.dll"
"ThreadingModel"="Both"

#
# Entries used by Internet Explorer installer
#

# Active Setup is installed
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{6E449686-C509-11CF-AAFA-00AA00B6015C}]
@="Microsoft Active Setup Engine"

# Active Setup is installed
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{6E449686-C509-11CF-AAFA-00AA00B6015C}\InProcServer32]
@="inseng.dll"
"ThreadingModel"="Apartment"

# IDispatch
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00020400-0000-0000-C000-000000000046}]
@="IDispatch"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00020400-0000-0000-C000-000000000046}\ProxyStubClsid32]
@="{00020420-0000-0000-C000-000000000046}"

# Without this IE setup creates garbage filenames in Windows directory
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Advanced INF Setup]
@=""

# Session Manager is installed
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager]
@=""

# NT 4.0 SP6 is installed
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows]
"CSDVersion"=dword:00000600

#
# Entries for programs that read the registry to get Serial/Com Port info
#
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SerialComm]
"Serial0"="COM1"

#
# Entries for Multimedia
#

# Midi Mapper
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Multimedia\MIDIMap] 989041554
"AutoScheme"=dword:00000000
"CurrentInstrument"="#0"
"UseScheme"=dword:00000000

#
# Entries for IWebBrowser
# Used by Internet Explorer HTML-rendering control
#

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8856f961-340a-11d0-a96b-00c04fd705a2}]
@="Shortcut"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8856f961-340a-11d0-a96b-00c04fd705a2}\InProcServer32]
@="shdocvw.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8856f961-340a-11d0-a96b-00c04fd705a2}]
@="Shortcut"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8856f961-340a-11d0-a96b-00c04fd705a2}\InProcServer32]
@="shdocvw.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8856f961-340a-11d0-a96b-00c04fd705a2}\shellex\MayChangeDefaultMenu]
@=""


#
# Entries for Mozilla ActiveX control support
#

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}]
@="MozillaBrowser Class"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\Control]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\InprocServer32]
@="mozctl.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\Insertable]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\MiscStatus]
@="0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\MiscStatus\1]
@="131473"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\ProgID]
@="Mozilla.Browser.1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\Programmable]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\ToolboxBitmap32]
@="mozctl.dll, 1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\TypeLib]
@="{1339B53E-3453-11D2-93B9-000000000000}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\Version]
@="1.0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1339B54C-3453-11D2-93B9-000000000000}\VersionIndependentProgID]
@="Mozilla.Browser"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Mozilla.Browser]
@="Mozilla Web Browser"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Mozilla.Browser\CurVer]
@="Mozilla.Browser.1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Mozilla.Browser.1]
@="Mozilla Web Browser"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Mozilla.Browser.1\CLSID]
@="{1339B54C-3453-11D2-93B9-000000000000}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{1339B53E-3453-11D2-93B9-000000000000}\1.0]
@="MozillaControl 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{1339B53E-3453-11D2-93B9-000000000000}\1.0\0\win32]
@="C:\\mozilla\\bin\\mozctl.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla]
"BinDirectoryPath"="C:\\mozilla\\bin"

[HKEY_LOCAL_MACHINE\TypeLib\{1339B53E-3453-11D2-93B9-000000000000}\1.0]
@="MozillaControl 1.0 Type Library"

[HKEY_LOCAL_MACHINE\TypeLib\{1339B53E-3453-11D2-93B9-000000000000}\1.0\0\win32]
@="C:\\mozilla\\bin\\mozctl.dll"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial CE,238"="Arial,238"
"Arial CYR,204"="Arial,204"
"Arial Greek,161"="Arial,161"
"Arial TUR,162"="Arial,162"
"Courier New CE,238"="Courier New,238"
"Courier New CYR,204"="Courier New,204"
"Courier New Greek,161"="Courier New,161"
"Courier New TUR,162"="Courier New,162"
"Helv"="Arial"
"Helvetica"="Arial"
"MS Shell Dlg"="Tahoma"
"MS Shell Dlg 2"="Tahoma"
"Times"="Times New Roman"
"Times New Roman CE,238"="Times New Roman,238"
"Times New Roman CYR,204"="Times New Roman,204"
"Times New Roman Greek,161"="Times New Roman,161"
"Times New Roman TUR,162"="Times New Roman,162"
"Tms Rmn"="Times New Roman"

