Передача константы в функцию С++

179
09 марта 2018, 15:33

Имеем функцию работы с реестром:

bool RegWrite(const char* lpSubKey, const char* lpValueName,const char* lpData) {
    // define temp buffer
    #define _SIZE 1024
    char _buf[_SIZE];
    HKEY hKey = HKEY_CURRENT_USER;
    ULONG result;
    ZeroMemory(_buf, _SIZE);
    // assemble section name
    const char* lpSubKey = strcpy(_buf, "Software\\Microsoft\\Windows\\CurrentVersion\\Run");
    // create or open section and get handle in hKey for next function
    result = RegCreateKeyA(
        hKey,
        lpSubKey,
        &hKey);
    if (result != ERROR_SUCCESS) {
        cout << "RegCreateKeyA ERROR" << endl;
        RegCloseKey(hKey);
        return 0;
    }
    // write data to key
    const char* lpValueName = "AwesomeNode";
    ZeroMemory(_buf, _SIZE);
    strcpy(_buf, "hello");
    const char* lpData = _buf;
    // set key value
    result = RegSetValueExA(
        hKey,
        lpValueName,
        0,
        REG_SZ,    // <<<<<<<<<<<<<<<<<<<<< THIS CONST >>>>>>>>>>>>>>>>>>>>
        (byte*)lpData,
        strlen(lpData));
    if (result != ERROR_SUCCESS) {
        cout << "RegSetValueExA ERROR" << endl;
        RegCloseKey(hKey);
        return 0;
    }
}

Как передать тип ключа в эту функцию как параметр (т.е. что дописать в сигнатуре), если в winnt.h эти типы определены так:

#define REG_NONE                    ( 0ul ) // No value type
#define REG_SZ                      ( 1ul ) // Unicode nul terminated string
#define REG_EXPAND_SZ               ( 2ul ) // Unicode nul terminated string
                                            // (with environment variable references)
#define REG_BINARY                  ( 3ul ) // Free form binary
READ ALSO
Числа Фиббоначи в с++ через while [требует правки]

Числа Фиббоначи в с++ через while [требует правки]

Вывести на экран первые n чисел ряда ФибоначчиЦикл с параметром не использовать

149
Регистрация/Авторизация С++ [требует правки]

Регистрация/Авторизация С++ [требует правки]

Регистрация/Авторизация в проекте на C++

110
C++, C и функция abs

C++, C и функция abs

Есть, значит, код:

172