/* ********************************************************************* * RegAPI.h Header file for registry base api function prototypes * for those who link to Real mode registry Library * Microsoft Corporation * Copyright 1993 * * Author: Nagarajan Subramaniyan * Created: 11/5/92 * * Modification history: * 1/20/94 DONALDM Wrapped LPSTR and others with ifndef * _INC_WINDOWS, since windows.h typedefs * these things. WARNING YOU MUST INCLUDE * WINDOWS.H before REGAPI.H. * 1/25/94 DONALDM Removed WINDOWS specific stuff since this * file should ONLY BE USED BY DOS APPS!!! * ********************************************************************** */ //--------------------------------------------------------------------- #ifdef _INC_WINDOWS #pragma message( "WARNING RegAPI.H is a DOS ONLY header file" ) #else //ifndef INC_WINDOWS #ifndef HKEY #define HKEY DWORD #define LPHKEY HKEY FAR * #endif #ifndef FAR #define FAR _far #endif #ifndef NEAR #define NEAR _near #endif #ifndef PASCAL #define PASCAL _pascal #endif #ifndef CDECL #define CDECL _cdecl #endif #ifndef CONST #define CONST const #endif typedef char FAR* LPSTR; typedef const char FAR* LPCSTR; typedef BYTE FAR* LPBYTE; typedef const BYTE FAR* LPCBYTE; typedef void FAR* LPVOID; #ifdef STRICT typedef signed long LONG; #else #define LONG long #endif #ifndef WINAPI #define WINAPI _far _pascal #endif #endif // ifndef INC_WINDOWS //-------------------------------------------------------------------------- /* allowed data types */ #ifndef REG_SZ #define REG_SZ 0x0001 #endif #ifndef REG_BINARY #define REG_BINARY 0x0003 #endif //ifndef REG_SZ /* Pre-defined KEYS */ #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) #endif // ifndef HKEY_LOCAL_MACHINE #ifndef REG_NONE #define REG_NONE 0 // unknown data type #endif /* note that these values are different from win 3.1; these are the same as the one used by Win 32 */ /* XLATOFF */ /* real mode Registry API entry points, if using direct entry points */ /* MODULE: RBAPI.c */ /* Win 3.1 Compatible APIs */ LONG FAR _cdecl KRegOpenKey(HKEY, LPCSTR, LPHKEY); LONG FAR _cdecl KRegCreateKey(HKEY, LPCSTR, LPHKEY); LONG FAR _cdecl KRegCloseKey(HKEY); LONG FAR _cdecl KRegDeleteKey(HKEY, LPCSTR); LONG FAR _cdecl KRegSetValue16(HKEY, LPCSTR, DWORD, LPCSTR, DWORD); LONG FAR _cdecl KRegQueryValue16(HKEY, LPCSTR, LPSTR, LONG FAR*); LONG FAR _cdecl KRegEnumKey(HKEY, DWORD, LPSTR, DWORD); /* New APIs from win 32 */ LONG FAR _cdecl KRegDeleteValue(HKEY, LPCSTR); LONG FAR _cdecl KRegEnumValue(HKEY, DWORD, LPCSTR, LONG FAR *, DWORD, LONG FAR *, LPBYTE, LONG FAR *); LONG FAR _cdecl KRegQueryValueEx(HKEY, LPCSTR, LONG FAR *, LONG FAR *, LPBYTE, LONG FAR *); LONG FAR _cdecl KRegSetValueEx(HKEY, LPCSTR, DWORD, DWORD, LPBYTE, DWORD); LONG FAR _cdecl KRegFlushKey(HKEY); LONG FAR _cdecl KRegSaveKey(HKEY, LPCSTR,LPVOID); LONG FAR _cdecl KRegLoadKey(HKEY, LPCSTR,LPCSTR); LONG FAR _cdecl KRegUnLoadKey(HKEY, LPCSTR); /* other APIs */ DWORD FAR _cdecl KRegInit(LPSTR lpszSystemFile,LPSTR lpszUserFile,DWORD dwFlags); // should be called before any other Reg APIs // If one of the file name ptrs is a NULL ptr, RegInit will ignore init // for that file and all Predefined keys for that file. // // FLAG BITS for dwFlags: #define REGINIT_CREATENEW 1 /* create new file if give file not found/cannot be opened */ #define REGINIT_RECOVER 2 /* do init and if file is corrupt try to recover before giving up */ #define REGINIT_REPLACE_IFBAD 4 /* do init, recover if file is corrupt and if recover is is impossible, replace with an empty file */ VOID FAR _cdecl CleanupRegistry(); /* This procedure frees all memory allocated by Registry */ /* if you call this, to use the registry again, you need */ /* to call RegInit again */ DWORD FAR _cdecl KRegFlush(VOID); // flushes the registry files to disk // should be done before termination. No harm in calling // if registry is not dirty. WORD FAR _cdecl KRegSetErrorCheckingLevel(WORD wErrLevel); // Set to 0 to disable checksum, 255 to enable checksum #if 0 DWORD FAR _cdecl KRegFlushKey(HKEY); #endif /* Internal APIs - do not use */ /* Modified from Win 3.1 */ DWORD FAR _cdecl KRegQueryValue (HKEY hKey,LPSTR lpszSubKey, LPSTR lpszValueName,DWORD FAR *lpdwType,LPSTR lpValueBuf, DWORD FAR *ldwBufSize); DWORD FAR _cdecl KRegSetValue(HKEY hKey,LPSTR lpszSubKey,LPSTR lpszValueName,DWORD dwType,LPBYTE lpszValue,DWORD dwValSize); /* XLATON */ #ifndef SETUPX_INC /* defines for changing registry API names for direct callers */ #define RegInit KRegInit #define RegFlush KRegFlush #define RegOpenKey KRegOpenKey #define RegCreateKey KRegCreateKey #define RegCloseKey KRegCloseKey #define RegDeleteKey KRegDeleteKey #define RegDeleteValue KRegDeleteValue #define RegEnumKey KRegEnumKey #define RegEnumValue KRegEnumValue #define RegQueryValue KRegQueryValue16 #define RegQueryValueEx KRegQueryValueEx #define RegSetValue KRegSetValue16 #define RegSetValueEx KRegSetValueEx #define RegFlushKey KRegFlushKey #endif /* #ifndef IS_SETUP */ // Equates for registry function for calling the single entry point // Registry #define OpenKey 0L #define CreateKey 1L #define CloseKey 2L #define DeleteKey 3L #define SetValue 4L #define QueryValue 5L #define EnumKey 6L #define DeleteValue 7L #define EnumValue 8L #define QueryValueEx 9L #define SetValueEx 10L #define FlushKey 11L #define Init 12L #define Flush 13L /* return codes from Chicago Registration functions */ #ifndef ERROR_BADDB #define ERROR_BADDB 1009L #endif #ifndef ERROR_MORE_DATA #define ERROR_MORE_DATA 234L #endif #ifndef ERROR_BADKEY #define ERROR_BADKEY 1010L #endif #ifndef ERROR_CANTOPEN #define ERROR_CANTOPEN 1011L #endif #ifndef ERROR_CANTREAD #define ERROR_CANTREAD 1012L #define ERROR_CANTWRITE 1013L #endif #ifndef ERROR_REGISTRY_CORRUPT #define ERROR_REGISTRY_CORRUPT 1015L #define ERROR_REGISTRY_IO_FAILED 1016L #endif #ifndef ERROR_KEY_DELETED #define ERROR_KEY_DELETED 1018L #endif #ifndef ERROR_OUTOFMEMORY #define ERROR_OUTOFMEMORY 14L #endif #ifndef ERROR_INVALID_PARAMETER #define ERROR_INVALID_PARAMETER 87L #endif #ifndef ERROR_NO_MORE_ITEMS #define ERROR_NO_MORE_ITEMS 259L #endif #ifndef ERROR_SUCCESS #define ERROR_SUCCESS 0L #endif #ifndef ERROR_ACCESS_DENIED #define ERROR_ACCESS_DENIED 8L #endif