Annotation of truecrypt/common/registry.c, revision 1.1

1.1     ! root        1: /* Copyright (C) 2004 TrueCrypt Team, truecrypt.org */
        !             2: 
        !             3: #include "TCdefs.h"
        !             4: 
        !             5: #define TC_REG_SUBKEY "Software\\TrueCrypt" 
        !             6: 
        !             7: int ReadRegistryInt (char *name, int defaultValue)
        !             8: {
        !             9:        HKEY hkey = 0;
        !            10:        DWORD value, size = sizeof (DWORD);
        !            11: 
        !            12:        if (RegOpenKeyEx (HKEY_CURRENT_USER, TC_REG_SUBKEY,
        !            13:                0, KEY_READ, &hkey) != ERROR_SUCCESS)
        !            14:                return defaultValue;
        !            15: 
        !            16:        if (RegQueryValueEx (hkey, name, 0,     0, (LPBYTE) &value, &size) != ERROR_SUCCESS)
        !            17:                value = defaultValue;
        !            18: 
        !            19:        RegCloseKey (hkey);
        !            20:        return value;
        !            21: }
        !            22: 
        !            23: char *ReadRegistryString (char *name, char *defaultValue, char *str, int maxLen)
        !            24: {
        !            25:        HKEY hkey = 0;
        !            26:        char value[256];
        !            27:        DWORD size = sizeof (value);
        !            28: 
        !            29:        strncpy (str, defaultValue, maxLen-1);
        !            30: 
        !            31:        ZeroMemory (value, sizeof value);
        !            32:        if (RegOpenKeyEx (HKEY_CURRENT_USER, TC_REG_SUBKEY,
        !            33:                0, KEY_READ, &hkey) == ERROR_SUCCESS)
        !            34:                if (RegQueryValueEx (hkey, name, 0,     0, (LPBYTE) &value,     &size) == ERROR_SUCCESS)
        !            35:                        strncpy (str, value, maxLen-1);
        !            36: 
        !            37:        RegCloseKey (hkey);
        !            38:        return str;
        !            39: }
        !            40: 
        !            41: void WriteRegistryInt (char *name, int value)
        !            42: {
        !            43:        HKEY hkey = 0;
        !            44:        DWORD disp;
        !            45: 
        !            46:        if (RegCreateKeyEx (HKEY_CURRENT_USER, TC_REG_SUBKEY,
        !            47:                0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp) != ERROR_SUCCESS)
        !            48:                return;
        !            49: 
        !            50:        RegSetValueEx (hkey, name, 0, REG_DWORD, (BYTE *) &value, sizeof value);
        !            51:        RegCloseKey (hkey);
        !            52: }
        !            53: 
        !            54: void WriteRegistryString (char *name, char *str)
        !            55: {
        !            56:        HKEY hkey = 0;
        !            57:        DWORD disp;
        !            58: 
        !            59:        if (RegCreateKeyEx (HKEY_CURRENT_USER, TC_REG_SUBKEY,
        !            60:                0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp) != ERROR_SUCCESS)
        !            61:                return;
        !            62: 
        !            63:        RegSetValueEx (hkey, name, 0, REG_SZ, (BYTE *) str, strlen (str) + 1);
        !            64:        RegCloseKey (hkey);
        !            65: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.