|
Packit |
1fb8d4 |
/**
|
|
Packit |
1fb8d4 |
* WinPR: Windows Portable Runtime
|
|
Packit |
1fb8d4 |
* Windows Registry
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
Packit |
1fb8d4 |
* you may not use this file except in compliance with the License.
|
|
Packit |
1fb8d4 |
* You may obtain a copy of the License at
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Unless required by applicable law or agreed to in writing, software
|
|
Packit |
1fb8d4 |
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit |
1fb8d4 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit |
1fb8d4 |
* See the License for the specific language governing permissions and
|
|
Packit |
1fb8d4 |
* limitations under the License.
|
|
Packit |
1fb8d4 |
*/
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef WINPR_REGISTRY_H
|
|
Packit |
1fb8d4 |
#define WINPR_REGISTRY_H
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/windows.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#if defined(_WIN32) && !defined(_UWP)
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winreg.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef __cplusplus
|
|
Packit Service |
5a9772 |
extern "C"
|
|
Packit Service |
5a9772 |
{
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/winpr.h>
|
|
Packit |
1fb8d4 |
#include <winpr/wtypes.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/nt.h>
|
|
Packit |
1fb8d4 |
#include <winpr/io.h>
|
|
Packit |
1fb8d4 |
#include <winpr/error.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef _WIN32
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
#define OWNER_SECURITY_INFORMATION 0x00000001
|
|
Packit Service |
5a9772 |
#define GROUP_SECURITY_INFORMATION 0x00000002
|
|
Packit Service |
5a9772 |
#define DACL_SECURITY_INFORMATION 0x00000004
|
|
Packit Service |
5a9772 |
#define SACL_SECURITY_INFORMATION 0x00000008
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define REG_OPTION_RESERVED 0x00000000
|
|
Packit Service |
5a9772 |
#define REG_OPTION_NON_VOLATILE 0x00000000
|
|
Packit Service |
5a9772 |
#define REG_OPTION_VOLATILE 0x00000001
|
|
Packit Service |
5a9772 |
#define REG_OPTION_CREATE_LINK 0x00000002
|
|
Packit Service |
5a9772 |
#define REG_OPTION_BACKUP_RESTORE 0x00000004
|
|
Packit Service |
5a9772 |
#define REG_OPTION_OPEN_LINK 0x00000008
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define REG_CREATED_NEW_KEY 0x00000001
|
|
Packit Service |
5a9772 |
#define REG_OPENED_EXISTING_KEY 0x00000002
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define REG_NOTIFY_CHANGE_NAME 0x01
|
|
Packit Service |
5a9772 |
#define REG_NOTIFY_CHANGE_ATTRIBUTES 0x02
|
|
Packit Service |
5a9772 |
#define REG_NOTIFY_CHANGE_LAST_SET 0x04
|
|
Packit Service |
5a9772 |
#define REG_NOTIFY_CHANGE_SECURITY 0x08
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define KEY_QUERY_VALUE 0x00000001
|
|
Packit Service |
5a9772 |
#define KEY_SET_VALUE 0x00000002
|
|
Packit Service |
5a9772 |
#define KEY_CREATE_SUB_KEY 0x00000004
|
|
Packit Service |
5a9772 |
#define KEY_ENUMERATE_SUB_KEYS 0x00000008
|
|
Packit Service |
5a9772 |
#define KEY_NOTIFY 0x00000010
|
|
Packit Service |
5a9772 |
#define KEY_CREATE_LINK 0x00000020
|
|
Packit Service |
5a9772 |
#define KEY_WOW64_64KEY 0x00000100
|
|
Packit Service |
5a9772 |
#define KEY_WOW64_32KEY 0x00000200
|
|
Packit Service |
5a9772 |
#define KEY_WOW64_RES 0x00000300
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define REG_WHOLE_HIVE_VOLATILE 0x00000001
|
|
Packit Service |
5a9772 |
#define REG_REFRESH_HIVE 0x00000002
|
|
Packit Service |
5a9772 |
#define REG_NO_LAZY_FLUSH 0x00000004
|
|
Packit Service |
5a9772 |
#define REG_FORCE_RESTORE 0x00000008
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define KEY_READ \
|
|
Packit Service |
5a9772 |
((STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) & \
|
|
Packit Service |
5a9772 |
(~SYNCHRONIZE))
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define KEY_WRITE ((STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) & (~SYNCHRONIZE))
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define KEY_EXECUTE ((KEY_READ) & (~SYNCHRONIZE))
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define KEY_ALL_ACCESS \
|
|
Packit Service |
5a9772 |
((STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY | \
|
|
Packit Service |
5a9772 |
KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY | KEY_CREATE_LINK) & \
|
|
Packit Service |
5a9772 |
(~SYNCHRONIZE))
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define REG_NONE 0
|
|
Packit Service |
5a9772 |
#define REG_SZ 1
|
|
Packit Service |
5a9772 |
#define REG_EXPAND_SZ 2
|
|
Packit Service |
5a9772 |
#define REG_BINARY 3
|
|
Packit Service |
5a9772 |
#define REG_DWORD 4
|
|
Packit Service |
5a9772 |
#define REG_DWORD_LITTLE_ENDIAN 4
|
|
Packit Service |
5a9772 |
#define REG_DWORD_BIG_ENDIAN 5
|
|
Packit Service |
5a9772 |
#define REG_LINK 6
|
|
Packit Service |
5a9772 |
#define REG_MULTI_SZ 7
|
|
Packit Service |
5a9772 |
#define REG_RESOURCE_LIST 8
|
|
Packit Service |
5a9772 |
#define REG_FULL_RESOURCE_DESCRIPTOR 9
|
|
Packit Service |
5a9772 |
#define REG_RESOURCE_REQUIREMENTS_LIST 10
|
|
Packit Service |
5a9772 |
#define REG_QWORD 11
|
|
Packit Service |
5a9772 |
#define REG_QWORD_LITTLE_ENDIAN 11
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
typedef HANDLE HKEY;
|
|
Packit Service |
5a9772 |
typedef HANDLE* PHKEY;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
typedef ACCESS_MASK REGSAM;
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define HKEY_CLASSES_ROOT ((HKEY)(LONG_PTR)(LONG)0x80000000)
|
|
Packit Service |
5a9772 |
#define HKEY_CURRENT_USER ((HKEY)(LONG_PTR)(LONG)0x80000001)
|
|
Packit Service |
5a9772 |
#define HKEY_LOCAL_MACHINE ((HKEY)(LONG_PTR)(LONG)0x80000002)
|
|
Packit Service |
5a9772 |
#define HKEY_USERS ((HKEY)(LONG_PTR)(LONG)0x80000003)
|
|
Packit Service |
5a9772 |
#define HKEY_PERFORMANCE_DATA ((HKEY)(LONG_PTR)(LONG)0x80000004)
|
|
Packit Service |
5a9772 |
#define HKEY_PERFORMANCE_TEXT ((HKEY)(LONG_PTR)(LONG)0x80000050)
|
|
Packit Service |
5a9772 |
#define HKEY_PERFORMANCE_NLSTEXT ((HKEY)(LONG_PTR)(LONG)0x80000060)
|
|
Packit Service |
5a9772 |
#define HKEY_CURRENT_CONFIG ((HKEY)(LONG_PTR)(LONG)0x80000005)
|
|
Packit Service |
5a9772 |
#define HKEY_DYN_DATA ((HKEY)(LONG_PTR)(LONG)0x80000006)
|
|
Packit Service |
5a9772 |
#define HKEY_CURRENT_USER_LOCAL_SETTINGS ((HKEY)(LONG_PTR)(LONG)0x80000007)
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define RRF_RT_REG_NONE 0x00000001
|
|
Packit Service |
5a9772 |
#define RRF_RT_REG_SZ 0x00000002
|
|
Packit Service |
5a9772 |
#define RRF_RT_REG_EXPAND_SZ 0x00000004
|
|
Packit Service |
5a9772 |
#define RRF_RT_REG_BINARY 0x00000008
|
|
Packit Service |
5a9772 |
#define RRF_RT_REG_DWORD 0x00000010
|
|
Packit Service |
5a9772 |
#define RRF_RT_REG_MULTI_SZ 0x00000020
|
|
Packit Service |
5a9772 |
#define RRF_RT_REG_QWORD 0x00000040
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
|
|
Packit Service |
5a9772 |
#define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
|
|
Packit Service |
5a9772 |
#define RRF_RT_ANY 0x0000FFFF
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
#define RRF_NOEXPAND 0x10000000
|
|
Packit Service |
5a9772 |
#define RRF_ZEROONFAILURE 0x20000000
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
struct val_context
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
int valuelen;
|
|
Packit Service |
5a9772 |
LPVOID value_context;
|
|
Packit Service |
5a9772 |
LPVOID val_buff_ptr;
|
|
Packit Service |
5a9772 |
};
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
typedef struct val_context* PVALCONTEXT;
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
typedef struct pvalueA
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
LPSTR pv_valuename;
|
|
Packit Service |
5a9772 |
int pv_valuelen;
|
|
Packit Service |
5a9772 |
LPVOID pv_value_context;
|
|
Packit Service |
5a9772 |
DWORD pv_type;
|
|
Packit Service |
5a9772 |
} PVALUEA, *PPVALUEA;
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
typedef struct pvalueW
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
LPWSTR pv_valuename;
|
|
Packit Service |
5a9772 |
int pv_valuelen;
|
|
Packit Service |
5a9772 |
LPVOID pv_value_context;
|
|
Packit Service |
5a9772 |
DWORD pv_type;
|
|
Packit Service |
5a9772 |
} PVALUEW, *PPVALUEW;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit Service |
5a9772 |
typedef PVALUEW PVALUE;
|
|
Packit Service |
5a9772 |
typedef PPVALUEW PPVALUE;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
typedef PVALUEA PVALUE;
|
|
Packit |
1fb8d4 |
typedef PPVALUEA PPVALUE;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
typedef struct value_entA
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
LPSTR ve_valuename;
|
|
Packit Service |
5a9772 |
DWORD ve_valuelen;
|
|
Packit Service |
5a9772 |
DWORD_PTR ve_valueptr;
|
|
Packit Service |
5a9772 |
DWORD ve_type;
|
|
Packit Service |
5a9772 |
} VALENTA, *PVALENTA;
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
typedef struct value_entW
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
LPWSTR ve_valuename;
|
|
Packit Service |
5a9772 |
DWORD ve_valuelen;
|
|
Packit Service |
5a9772 |
DWORD_PTR ve_valueptr;
|
|
Packit Service |
5a9772 |
DWORD ve_type;
|
|
Packit Service |
5a9772 |
} VALENTW, *PVALENTW;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit Service |
5a9772 |
typedef VALENTW VALENT;
|
|
Packit Service |
5a9772 |
typedef PVALENTW PVALENT;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
typedef VALENTA VALENT;
|
|
Packit |
1fb8d4 |
typedef PVALENTA PVALENT;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegCloseKey(HKEY hKey);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegCopyTreeW(HKEY hKeySrc, LPCWSTR lpSubKey, HKEY hKeyDest);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegCopyTreeA(HKEY hKeySrc, LPCSTR lpSubKey, HKEY hKeyDest);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegCopyTree RegCopyTreeW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegCopyTree RegCopyTreeA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegCreateKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass,
|
|
Packit Service |
5a9772 |
DWORD dwOptions, REGSAM samDesired,
|
|
Packit Service |
5a9772 |
LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult,
|
|
Packit Service |
5a9772 |
LPDWORD lpdwDisposition);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegCreateKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD Reserved, LPSTR lpClass,
|
|
Packit Service |
5a9772 |
DWORD dwOptions, REGSAM samDesired,
|
|
Packit Service |
5a9772 |
LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult,
|
|
Packit Service |
5a9772 |
LPDWORD lpdwDisposition);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegCreateKeyEx RegCreateKeyExW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegCreateKeyEx RegCreateKeyExA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegDeleteKeyExW(HKEY hKey, LPCWSTR lpSubKey, REGSAM samDesired, DWORD Reserved);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegDeleteKeyExA(HKEY hKey, LPCSTR lpSubKey, REGSAM samDesired, DWORD Reserved);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegDeleteKeyEx RegDeleteKeyExW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegDeleteKeyEx RegDeleteKeyExA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegDeleteTreeW(HKEY hKey, LPCWSTR lpSubKey);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegDeleteTreeA(HKEY hKey, LPCSTR lpSubKey);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegDeleteTree RegDeleteTreeW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegDeleteTree RegDeleteTreeA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegDeleteValueA(HKEY hKey, LPCSTR lpValueName);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegDeleteValue RegDeleteValueW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegDeleteValue RegDeleteValueA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegDisablePredefinedCacheEx(void);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegEnumKeyExW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, LPDWORD lpcName,
|
|
Packit Service |
5a9772 |
LPDWORD lpReserved, LPWSTR lpClass, LPDWORD lpcClass,
|
|
Packit Service |
5a9772 |
PFILETIME lpftLastWriteTime);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegEnumKeyExA(HKEY hKey, DWORD dwIndex, LPSTR lpName, LPDWORD lpcName,
|
|
Packit Service |
5a9772 |
LPDWORD lpReserved, LPSTR lpClass, LPDWORD lpcClass,
|
|
Packit Service |
5a9772 |
PFILETIME lpftLastWriteTime);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegEnumKeyEx RegEnumKeyExW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegEnumKeyEx RegEnumKeyExA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegEnumValueW(HKEY hKey, DWORD dwIndex, LPWSTR lpValueName,
|
|
Packit Service |
5a9772 |
LPDWORD lpcchValueName, LPDWORD lpReserved, LPDWORD lpType,
|
|
Packit Service |
5a9772 |
LPBYTE lpData, LPDWORD lpcbData);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegEnumValueA(HKEY hKey, DWORD dwIndex, LPSTR lpValueName,
|
|
Packit Service |
5a9772 |
LPDWORD lpcchValueName, LPDWORD lpReserved, LPDWORD lpType,
|
|
Packit Service |
5a9772 |
LPBYTE lpData, LPDWORD lpcbData);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegEnumValue RegEnumValueW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegEnumValue RegEnumValueA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegFlushKey(HKEY hKey);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegGetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation,
|
|
Packit Service |
5a9772 |
PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
|
Packit Service |
5a9772 |
LPDWORD lpcbSecurityDescriptor);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, DWORD dwFlags,
|
|
Packit Service |
5a9772 |
LPDWORD pdwType, PVOID pvData, LPDWORD pcbData);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, DWORD dwFlags,
|
|
Packit Service |
5a9772 |
LPDWORD pdwType, PVOID pvData, LPDWORD pcbData);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegGetValue RegGetValueW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegGetValue RegGetValueA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegLoadAppKeyW(LPCWSTR lpFile, PHKEY phkResult, REGSAM samDesired,
|
|
Packit Service |
5a9772 |
DWORD dwOptions, DWORD Reserved);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegLoadAppKeyA(LPCSTR lpFile, PHKEY phkResult, REGSAM samDesired,
|
|
Packit Service |
5a9772 |
DWORD dwOptions, DWORD Reserved);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegLoadAppKey RegLoadAppKeyW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegLoadAppKey RegLoadAppKeyA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegLoadKeyW(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpFile);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegLoadKeyA(HKEY hKey, LPCSTR lpSubKey, LPCSTR lpFile);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegLoadKey RegLoadKeyW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegLoadKey RegLoadKeyA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegLoadMUIStringW(HKEY hKey, LPCWSTR pszValue, LPWSTR pszOutBuf, DWORD cbOutBuf,
|
|
Packit Service |
5a9772 |
LPDWORD pcbData, DWORD Flags, LPCWSTR pszDirectory);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegLoadMUIStringA(HKEY hKey, LPCSTR pszValue, LPSTR pszOutBuf, DWORD cbOutBuf,
|
|
Packit Service |
5a9772 |
LPDWORD pcbData, DWORD Flags, LPCSTR pszDirectory);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegLoadMUIString RegLoadMUIStringW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegLoadMUIString RegLoadMUIStringA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegNotifyChangeKeyValue(HKEY hKey, BOOL bWatchSubtree, DWORD dwNotifyFilter,
|
|
Packit Service |
5a9772 |
HANDLE hEvent, BOOL fAsynchronous);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegOpenCurrentUser(REGSAM samDesired, PHKEY phkResult);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired,
|
|
Packit Service |
5a9772 |
PHKEY phkResult);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired,
|
|
Packit Service |
5a9772 |
PHKEY phkResult);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegOpenKeyEx RegOpenKeyExW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegOpenKeyEx RegOpenKeyExA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegOpenUserClassesRoot(HANDLE hToken, DWORD dwOptions, REGSAM samDesired,
|
|
Packit Service |
5a9772 |
PHKEY phkResult);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved,
|
|
Packit Service |
5a9772 |
LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen,
|
|
Packit Service |
5a9772 |
LPDWORD lpcMaxClassLen, LPDWORD lpcValues,
|
|
Packit Service |
5a9772 |
LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen,
|
|
Packit Service |
5a9772 |
LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegQueryInfoKeyA(HKEY hKey, LPSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved,
|
|
Packit Service |
5a9772 |
LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen,
|
|
Packit Service |
5a9772 |
LPDWORD lpcMaxClassLen, LPDWORD lpcValues,
|
|
Packit Service |
5a9772 |
LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen,
|
|
Packit Service |
5a9772 |
LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegQueryInfoKey RegQueryInfoKeyW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegQueryInfoKey RegQueryInfoKeyA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegQueryValueExW(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved,
|
|
Packit Service |
5a9772 |
LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved,
|
|
Packit Service |
5a9772 |
LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegQueryValueEx RegQueryValueExW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegQueryValueEx RegQueryValueExA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegRestoreKeyW(HKEY hKey, LPCWSTR lpFile, DWORD dwFlags);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegRestoreKeyA(HKEY hKey, LPCSTR lpFile, DWORD dwFlags);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegRestoreKey RegRestoreKeyW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegRestoreKey RegRestoreKeyA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegSaveKeyExW(HKEY hKey, LPCWSTR lpFile,
|
|
Packit Service |
5a9772 |
LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD Flags);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegSaveKeyExA(HKEY hKey, LPCSTR lpFile,
|
|
Packit Service |
5a9772 |
LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD Flags);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegSaveKeyEx RegSaveKeyExW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegSaveKeyEx RegSaveKeyExA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegSetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation,
|
|
Packit Service |
5a9772 |
PSECURITY_DESCRIPTOR pSecurityDescriptor);
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegSetValueExW(HKEY hKey, LPCWSTR lpValueName, DWORD Reserved, DWORD dwType,
|
|
Packit Service |
5a9772 |
const BYTE* lpData, DWORD cbData);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType,
|
|
Packit Service |
5a9772 |
const BYTE* lpData, DWORD cbData);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegSetValueEx RegSetValueExW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegSetValueEx RegSetValueExA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegUnLoadKeyW(HKEY hKey, LPCWSTR lpSubKey);
|
|
Packit Service |
5a9772 |
WINPR_API LONG RegUnLoadKeyA(HKEY hKey, LPCSTR lpSubKey);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define RegUnLoadKey RegUnLoadKeyW
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define RegUnLoadKey RegUnLoadKeyA
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef __cplusplus
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#endif /* WINPR_REGISTRY_H */
|