//==========================================================================; // // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR // PURPOSE. // // Copyright (c) 1994-1996 Microsoft Corporation // //--------------------------------------------------------------------------; // // profile.h // // Description: // // This file contains definitions supporting the code in profile.c // which accesses the registry directly. // //==========================================================================; #ifndef _PROFILE_H_ #define _PROFILE_H_ #ifdef __cplusplus extern "C" // assume C declarations for C++ { #endif #ifndef INLINE #define INLINE __inline #endif // // The Chicago Win16 header files are messed up somehow, so we have to // define this stuff ourselves. // #ifndef REG_DWORD #pragma message("profile.h: Manually defining REG_DWORD!!!") #define REG_DWORD ( 4 ) #endif #ifndef ERROR_SUCCESS #pragma message("profile.h: Manually defining ERROR_SUCCESS!!!") #define ERROR_SUCCESS 0L #endif //--------------------------------------------------------------------------; // // Function Prototypes from profile.c // //--------------------------------------------------------------------------; HKEY FNGLOBAL IRegOpenKey ( LPCTSTR pszKeyName ); BOOL FNGLOBAL IRegReadString ( HKEY hkey, LPCTSTR pszValue, LPTSTR pszData, DWORD cchData ); DWORD FNGLOBAL IRegReadDwordDefault ( HKEY hkey, LPCTSTR pszValue, DWORD dwDefault ); //--------------------------------------------------------------------------; // // VOID IRegWriteString // // Description: // This routine writes a value to an opened registry key. If the key // is NULL, we return without doing anything. // // Arguments: // HKEY hkey: An open registry key. // LPCTSTR pszValue: Name of the value. // LPCTSTR pszData: The data to write. // // Return (BOOL): TRUE indicates success. FALSE otherwise. // //--------------------------------------------------------------------------; INLINE BOOL IRegWriteString ( HKEY hkey, LPCTSTR pszValue, LPCTSTR pszData ) { LONG lResult; lResult = RegSetValueEx( hkey, pszValue, 0L, REG_SZ, (LPBYTE)pszData, sizeof(TCHAR) * (1+lstrlen(pszData)) ); return (ERROR_SUCCESS == lResult); } //--------------------------------------------------------------------------; // // VOID IRegWriteDword // // Description: // This routine writes a DWORD to the given value an open key. // // Arguments: // HKEY hkey: Registry key to read from. // LPCTSTR pszValue: // DWORD dwData: // // Return (BOOL): TRUE if successfull. FALSE otherwise // //--------------------------------------------------------------------------; INLINE BOOL IRegWriteDword ( HKEY hkey, LPCTSTR pszValue, DWORD dwData ) { LONG lResult; lResult = RegSetValueEx( hkey, pszValue, 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD) ); return (ERROR_SUCCESS == lResult); } //--------------------------------------------------------------------------; // // BOOL IRegValueExists // // Description: // This routine returns TRUE if the specified value exists in the // key; otherwise FALSE is returned. // // Arguments: // HKEY hkey: An open registry key. // LPCTSTR pszValue: Name of the value. // // Return (BOOL): // //--------------------------------------------------------------------------; INLINE BOOL IRegValueExists ( HKEY hkey, LPCTSTR pszValue ) { return ( ERROR_SUCCESS == RegQueryValueEx( hkey, (LPTSTR)pszValue, NULL, NULL, NULL, NULL ) ); } //--------------------------------------------------------------------------; // // VOID IRegCloseKey // // Description: // Closes an open key (but only if it's non-NULL). // //--------------------------------------------------------------------------; INLINE VOID IRegCloseKey ( HKEY hkey ) { if( NULL != hkey ) { RegCloseKey( hkey ); } } #ifdef __cplusplus } // end of extern "C" { #endif #endif // _PROFILE_H_