/** BEGIN COPYRIGHT BLOCK * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission. * Copyright (C) 2005 Red Hat, Inc. * All rights reserved. * END COPYRIGHT BLOCK **/ // ERROR.C // // This file contains the functions needed to install the httpd server. // They are as follows. // // getreg.c // // This file has the function needed to get a particular value of a key from the registry... // 1/16/95 aruna // #include #include "nt/ntos.h" BOOL NS_WINAPI REG_CheckIfKeyExists( HKEY hKey, LPCTSTR key ) { HKEY hQueryKey; if (RegOpenKeyEx(hKey, key, 0, KEY_ALL_ACCESS, &hQueryKey) != ERROR_SUCCESS) { return FALSE; } RegCloseKey(hQueryKey); return TRUE; } BOOL NS_WINAPI REG_GetRegistryParameter( HKEY hKey, LPCTSTR registryKey, LPTSTR QueryValueName, LPDWORD ValueType, LPBYTE ValueBuffer, LPDWORD ValueBufferSize ) { HKEY hQueryKey; if (RegOpenKeyEx(hKey, registryKey, 0, KEY_ALL_ACCESS, &hQueryKey) != ERROR_SUCCESS) { return FALSE; } if (RegQueryValueEx(hQueryKey, QueryValueName, 0, ValueType, ValueBuffer, ValueBufferSize) != ERROR_SUCCESS) { RegCloseKey(hQueryKey); return FALSE; } RegCloseKey(hQueryKey); return TRUE; } BOOL NS_WINAPI REG_CreateKey( HKEY hKey, LPCTSTR registryKey ) { HKEY hNewKey; if ( RegCreateKey (hKey, registryKey, &hNewKey) != ERROR_SUCCESS) { return FALSE; } RegCloseKey(hNewKey); return TRUE; } BOOL NS_WINAPI REG_DeleteKey( HKEY hKey, LPCTSTR registryKey ) { HKEY hQueryKey; DWORD dwNumberOfSubKeys; char registrySubKey[256]; DWORD i; /* if key does not exist, then consider it deleted */ if ( !REG_CheckIfKeyExists( hKey, registryKey ) ) return TRUE; if ( !REG_GetSubKeysInfo( hKey, registryKey, &dwNumberOfSubKeys, NULL ) ) return FALSE; if ( dwNumberOfSubKeys ) { if (RegOpenKeyEx(hKey, registryKey, 0, KEY_ALL_ACCESS, &hQueryKey) != ERROR_SUCCESS) { return FALSE; } // loop through all sub keys and delete the subkeys (recursion) for ( i=0; i