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

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

# 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 1 if no message box has to be presented before running the debugger
"Auto"=dword:00000000

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

