# 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"

#
# Overwrite default load address of BDE 
# (Borland database engine)
#

[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"

# 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"="debugger/winedbg %ld %ld"
# to 0 if a message box has to be presented before running the debugger
"Auto"=dword:00000001

#
# This identifies the files for available code pages
#

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

#
# 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 DirectX. Used by high-performance multimedia applications, like games.
#

[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]
@="C:\WINDOWS\SYSTEM\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"

