summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/regapix.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/regapix.h453
1 files changed, 453 insertions, 0 deletions
diff --git a/public/sdk/inc/regapix.h b/public/sdk/inc/regapix.h
new file mode 100644
index 000000000..269b5b34d
--- /dev/null
+++ b/public/sdk/inc/regapix.h
@@ -0,0 +1,453 @@
+//
+// REGAPIX.H
+//
+// Copyright (C) Microsoft Corporation, 1995
+//
+// Public definitions for the VMM registry library (all modes).
+//
+
+#ifndef _REGAPIX_
+#define _REGAPIX_
+
+/*XLATOFF*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*XLATON*/
+
+/*XLATOFF*/
+#if defined(_INC_WINDOWS) && !defined(VXD) && !defined(REALMODE)
+#define REGAPI WINAPI
+#else
+#if defined(IS_32)
+#ifndef FAR
+#define FAR
+#endif
+#define REGAPI __cdecl
+#else
+#ifndef FAR
+#define FAR _far
+#endif
+#define REGAPI _far _cdecl
+#endif // defined(IS_32)
+#endif // defined(_INC_WINDOWS) && !defined(VXD) && !defined(REALMODE)
+/*XLATON*/
+
+#ifndef _REGPRIV_
+#ifndef _INC_WINDOWS
+typedef DWORD HKEY;
+#endif
+#endif
+typedef HKEY FAR* LPHKEY;
+
+//
+// Predefined key handles.
+//
+
+#ifndef HKEY_LOCAL_MACHINE
+#define HKEY_CLASSES_ROOT ((HKEY) 0x80000000)
+#define HKEY_CURRENT_USER ((HKEY) 0x80000001)
+#define HKEY_LOCAL_MACHINE ((HKEY) 0x80000002)
+#define HKEY_USERS ((HKEY) 0x80000003)
+#define HKEY_PERFORMANCE_DATA ((HKEY) 0x80000004)
+#define HKEY_CURRENT_CONFIG ((HKEY) 0x80000005)
+#define HKEY_DYN_DATA ((HKEY) 0x80000006)
+#define HKEY_PREDEF_KEYS 7
+#endif
+
+//
+// Maximum size of registry data elements.
+//
+
+#define MAXIMUM_SUB_KEY_LENGTH 256
+#define MAXIMUM_VALUE_NAME_LENGTH 256
+#define MAXIMUM_DATA_LENGTH 16384
+
+//
+// Standard data types.
+//
+
+#ifndef REG_SZ
+#define REG_SZ 1
+#endif
+
+#ifndef REG_BINARY
+#define REG_BINARY 3
+#endif
+
+#ifndef REG_DWORD
+#define REG_DWORD 4
+#endif
+
+//
+// Registry error codes.
+//
+
+#ifndef ERROR_SUCCESS
+#define ERROR_SUCCESS 0
+#endif
+
+#ifndef ERROR_INVALID_FUNCTION
+#define ERROR_INVALID_FUNCTION 1
+#endif
+
+#ifndef ERROR_FILE_NOT_FOUND
+#define ERROR_FILE_NOT_FOUND 2
+#endif
+
+#ifndef ERROR_ACCESS_DENIED
+#define ERROR_ACCESS_DENIED 5
+#endif
+
+#ifndef ERROR_OUTOFMEMORY
+#define ERROR_OUTOFMEMORY 14
+#endif
+
+#ifndef ERROR_INVALID_PARAMETER
+#define ERROR_INVALID_PARAMETER 87
+#endif
+
+#ifndef ERROR_LOCK_FAILED
+#define ERROR_LOCK_FAILED 167
+#endif
+
+#ifndef ERROR_MORE_DATA
+#define ERROR_MORE_DATA 234
+#endif
+
+#ifndef ERROR_NO_MORE_ITEMS
+#define ERROR_NO_MORE_ITEMS 259
+#endif
+
+#ifndef ERROR_BADDB
+#define ERROR_BADDB 1009
+#endif
+
+#ifndef ERROR_BADKEY
+#define ERROR_BADKEY 1010
+#endif
+
+#ifndef ERROR_CANTOPEN
+#define ERROR_CANTOPEN 1011
+#endif
+
+#ifndef ERROR_CANTREAD
+#define ERROR_CANTREAD 1012
+#endif
+
+#ifndef ERROR_CANTWRITE
+#define ERROR_CANTWRITE 1013
+#endif
+
+#ifndef ERROR_REGISTRY_IO_FAILED
+#define ERROR_REGISTRY_IO_FAILED 1016
+#endif
+
+#ifndef ERROR_KEY_DELETED
+#define ERROR_KEY_DELETED 1018
+#endif
+
+// Internal registry error codes. Not exposed to most clients.
+#if defined(VXD)
+#define ERROR_CANTOPEN16_FILENOTFOUND32 ((ERROR_CANTOPEN << 16) | ERROR_FILE_NOT_FOUND)
+#define ERROR_CANTREAD16_FILENOTFOUND32 ((ERROR_CANTREAD << 16) | ERROR_FILE_NOT_FOUND)
+#else
+#if defined(WIN32)
+#define ERROR_CANTOPEN16_FILENOTFOUND32 ERROR_FILE_NOT_FOUND
+#define ERROR_CANTREAD16_FILENOTFOUND32 ERROR_FILE_NOT_FOUND
+#else
+#define ERROR_CANTOPEN16_FILENOTFOUND32 ERROR_CANTOPEN
+#define ERROR_CANTREAD16_FILENOTFOUND32 ERROR_CANTREAD
+#endif
+#endif
+
+//
+// Registry application interfaces.
+//
+
+/*XLATOFF*/
+
+LONG
+REGAPI
+VMMRegLibAttach(
+ UINT Flags
+ );
+
+VOID
+REGAPI
+VMMRegLibDetach(
+ VOID
+ );
+
+/*XLATON*/
+#define GRFT_SYSTEM 0 // SYSTEM.DAT
+#define GRFT_USER 1 // USER.DAT
+/*XLATOFF*/
+
+BOOL
+REGAPI
+VMMRegGetRegistryFile(
+ char FAR* lpBuffer,
+ UINT BufferSize,
+ UINT FileType
+ );
+
+// Creates a new registry file. Fails if the specified file already exists.
+#define MPKF_CREATENEW 0x0001
+
+// If MPKF_VERSION20 is specified, create the file using compact keynodes.
+// Such a file will only be readable by users of this library, not Win95
+// clients. Use only for system registries (SYSTEM.DAT, USER.DAT).
+#define MPKF_VERSION20 0x0002
+
+LONG
+REGAPI
+VMMRegMapPredefKeyToFile(
+ HKEY hKey,
+ const char FAR* lpFileName,
+ UINT Flags
+ );
+
+LONG
+REGAPI
+VMMRegMapPredefKeyToKey(
+ HKEY hSourceKey,
+ HKEY hPredefKey
+ );
+
+LONG
+REGAPI
+VMMRegCreateKey(
+ HKEY hKey,
+ const char FAR* lpSubKey,
+ LPHKEY lphSubKey
+ );
+
+LONG
+REGAPI
+VMMRegOpenKey(
+ HKEY hKey,
+ const char FAR* lpSubKey,
+ LPHKEY lphSubKey
+ );
+
+LONG
+REGAPI
+VMMRegCloseKey(
+ HKEY hKey
+ );
+
+LONG
+REGAPI
+VMMRegFlushKey(
+ HKEY hKey
+ );
+
+LONG
+REGAPI
+VMMRegQueryValue(
+ HKEY hKey,
+ const char FAR* lpSubKey,
+ BYTE FAR* lpData,
+ DWORD FAR* lpcbData
+ );
+
+LONG
+REGAPI
+VMMRegQueryValueEx(
+ HKEY hKey,
+ const char FAR* lpValueName,
+ DWORD FAR* lpReserved,
+ DWORD FAR* lpType,
+ BYTE FAR* lpData,
+ DWORD FAR* lpcbData
+ );
+
+LONG
+REGAPI
+VMMRegQueryMultipleValues(
+ HKEY hKey,
+ void FAR* val_list,
+ DWORD num_vals,
+ char FAR* lpValueBuffer,
+ DWORD FAR* lpdwTotalSize
+ );
+
+LONG
+REGAPI
+VMMRegSetValue(
+ HKEY hKey,
+ const char FAR* lpSubKey,
+ DWORD Type,
+ BYTE FAR* lpData,
+ DWORD cbData
+ );
+
+LONG
+REGAPI
+VMMRegSetValueEx(
+ HKEY hKey,
+ const char FAR* lpValueName,
+ DWORD Reserved,
+ DWORD Type,
+ BYTE FAR* lpData,
+ DWORD cbData
+ );
+
+LONG
+REGAPI
+VMMRegDeleteKey(
+ HKEY hKey,
+ const char FAR* lpSubKey
+ );
+
+LONG
+REGAPI
+VMMRegDeleteValue(
+ HKEY hKey,
+ const char FAR* lpValueName
+ );
+
+LONG
+REGAPI
+VMMRegEnumKey(
+ HKEY hKey,
+ DWORD Index,
+ char FAR* lpKeyName,
+ DWORD cbKeyName
+ );
+
+LONG
+REGAPI
+VMMRegEnumValue(
+ HKEY hKey,
+ DWORD Index,
+ char FAR* lpValueName,
+ DWORD FAR* lpcbValueName,
+ DWORD FAR* lpReserved,
+ DWORD FAR* lpType,
+ BYTE FAR* lpData,
+ DWORD FAR* lpcbData
+ );
+
+#ifdef VXD
+LONG
+REGAPI
+VMMRegQueryInfoKey(
+ HKEY hKey,
+ DWORD FAR* lpcSubKeys,
+ DWORD FAR* lpcbMaxSubKeyLen,
+ DWORD FAR* lpcValues,
+ DWORD FAR* lpcbMaxValueName,
+ DWORD FAR* lpcbMaxValueData
+ );
+#else
+LONG
+REGAPI
+VMMRegQueryInfoKey(
+ HKEY hKey,
+ char FAR* lpClass,
+ DWORD FAR* lpcbClass,
+ DWORD FAR* lpReserved,
+ DWORD FAR* lpcSubKeys,
+ DWORD FAR* lpcbMaxSubKeyLen,
+ DWORD FAR* lpcbMaxClassLen,
+ DWORD FAR* lpcValues,
+ DWORD FAR* lpcbMaxValueName,
+ DWORD FAR* lpcbMaxValueData,
+ void FAR* lpcbSecurityDescriptor,
+ void FAR* lpftLastWriteTime
+ );
+#endif
+
+LONG
+REGAPI
+VMMRegLoadKey(
+ HKEY hKey,
+ const char FAR* lpSubKey,
+ const char FAR* lpFileName
+ );
+
+LONG
+REGAPI
+VMMRegUnLoadKey(
+ HKEY hKey,
+ const char FAR* lpSubKey
+ );
+
+LONG
+REGAPI
+VMMRegSaveKey(
+ HKEY hKey,
+ const char FAR* lpFileName,
+ void FAR* lpSecurityAttributes
+ );
+
+LONG
+REGAPI
+VMMRegReplaceKey(
+ HKEY hKey,
+ const char FAR* lpSubKey,
+ const char FAR* lpNewFileName,
+ const char FAR* lpOldFileName
+ );
+
+//
+// Optional macros for callers (typically 16-bit) that map the registry APIs
+// to the equivalent Win32 API name.
+//
+
+#if defined(IS_16) || defined(WANTREGAPIMACROS)
+#if !defined(NOREGAPIMACROS) && !defined(SETUPX_INC)
+#define RegCreateKey VMMRegCreateKey
+#define RegOpenKey VMMRegOpenKey
+#define RegCloseKey VMMRegCloseKey
+#define RegFlushKey VMMRegFlushKey
+#define RegQueryValue VMMRegQueryValue
+#define RegQueryValueEx VMMRegQueryValueEx
+#define RegQueryMultipleValues VMMRegQueryMultipleValues
+#define RegSetValue VMMRegSetValue
+#define RegSetValueEx VMMRegSetValueEx
+#define RegDeleteKey VMMRegDeleteKey
+#define RegDeleteValue VMMRegDeleteValue
+#define RegEnumKey VMMRegEnumKey
+#define RegEnumValue VMMRegEnumValue
+#define RegQueryInfoKey VMMRegQueryInfoKey
+#define RegLoadKey VMMRegLoadKey
+#define RegUnLoadKey VMMRegUnLoadKey
+#define RegSaveKey VMMRegSaveKey
+#define RegReplaceKey VMMRegReplaceKey
+#endif
+#endif
+
+/*XLATON*/
+
+//
+// Registry services available via VMM's interrupt 2Fh handler.
+//
+
+#define RegOpenKey_Idx 0x0100
+#define RegCreateKey_Idx 0x0101
+#define RegCloseKey_Idx 0x0102
+#define RegDeleteKey_Idx 0x0103
+#define RegSetValue_Idx 0x0104
+#define RegQueryValue_Idx 0x0105
+#define RegEnumKey_Idx 0x0106
+#define RegDeleteValue_Idx 0x0107
+#define RegEnumValue_Idx 0x0108
+#define RegQueryValueEx_Idx 0x0109
+#define RegSetValueEx_Idx 0x010A
+#define RegFlushKey_Idx 0x010B
+#define RegLoadKey_Idx 0x010C
+#define RegUnLoadKey_Idx 0x010D
+#define RegSaveKey_Idx 0x010E
+#define RegRestore_Idx 0x010F
+#define RegRemapPreDefKey_Idx 0x0110
+
+/*XLATOFF*/
+#ifdef __cplusplus
+}
+#endif
+/*XLATON*/
+
+#endif // _REGAPIX_