Fix for avoiding subtraction from unsigned zero.
[wine] / dlls / shell32 / shellreg.c
1 /*
2         Shell Registry Access
3 */
4 #include <string.h>
5 #include <stdio.h>
6 #include "winerror.h"
7 #include "winreg.h"
8 #include "debugtools.h"
9 #include "winnls.h"
10 #include "heap.h"
11
12 #include "shellapi.h"
13 #include "shlobj.h"
14 #include "shell32_main.h"
15 #include "wine/undocshell.h"
16
17 DEFAULT_DEBUG_CHANNEL(shell);
18
19 /*************************************************************************
20  * SHRegOpenKeyA                                [SHELL32.506]
21  *
22  */
23 HRESULT WINAPI SHRegOpenKeyA(
24         HKEY hKey,
25         LPSTR lpSubKey,
26         LPHKEY phkResult)
27 {
28         TRACE("(0x%08x, %s, %p)\n", hKey, debugstr_a(lpSubKey), phkResult);
29         return RegOpenKeyA(hKey, lpSubKey, phkResult);
30 }
31
32 /*************************************************************************
33  * SHRegOpenKeyW                                [NT4.0:SHELL32.507]
34  *
35  */
36 HRESULT WINAPI SHRegOpenKeyW (
37         HKEY hkey,
38         LPCWSTR lpszSubKey,
39         LPHKEY retkey)
40 {
41         WARN("0x%04x %s %p\n",hkey,debugstr_w(lpszSubKey),retkey);
42         return RegOpenKeyW( hkey, lpszSubKey, retkey );
43 }
44
45 /*************************************************************************
46  * SHRegQueryValueExA   [SHELL32.509]
47  *
48  */
49 HRESULT WINAPI SHRegQueryValueExA(
50         HKEY hkey,
51         LPSTR lpValueName,
52         LPDWORD lpReserved,
53         LPDWORD lpType,
54         LPBYTE lpData,
55         LPDWORD lpcbData)
56 {
57         TRACE("0x%04x %s %p %p %p %p\n", hkey, lpValueName, lpReserved, lpType, lpData, lpcbData);
58         return RegQueryValueExA (hkey, lpValueName, lpReserved, lpType, lpData, lpcbData);
59 }
60
61 /*************************************************************************
62  * SHRegQueryValueW                             [NT4.0:SHELL32.510]
63  *
64  */
65 HRESULT WINAPI SHRegQueryValueW(
66         HKEY hkey,
67         LPWSTR lpszSubKey,
68         LPWSTR lpszData,
69         LPDWORD lpcbData )
70 {
71         WARN("0x%04x %s %p %p semi-stub\n",
72                 hkey, debugstr_w(lpszSubKey), lpszData, lpcbData);
73         return RegQueryValueW( hkey, lpszSubKey, lpszData, lpcbData );
74 }
75
76 /*************************************************************************
77  * SHRegQueryValueExW   [NT4.0:SHELL32.511]
78  *
79  * FIXME 
80  *  if the datatype REG_EXPAND_SZ then expand the string and change
81  *  *pdwType to REG_SZ. 
82  */
83 HRESULT WINAPI SHRegQueryValueExW (
84         HKEY hkey,
85         LPWSTR pszValue,
86         LPDWORD pdwReserved,
87         LPDWORD pdwType,
88         LPVOID pvData,
89         LPDWORD pcbData)
90 {
91         DWORD ret;
92         WARN("0x%04x %s %p %p %p %p semi-stub\n",
93                 hkey, debugstr_w(pszValue), pdwReserved, pdwType, pvData, pcbData);
94         ret = RegQueryValueExW ( hkey, pszValue, pdwReserved, pdwType, pvData, pcbData);
95         return ret;
96 }
97
98 /*************************************************************************
99  * SHRegDeleteKeyA   [SHELL32]
100  */
101 HRESULT WINAPI SHRegDeleteKeyA(
102         HKEY hkey,
103         LPCSTR pszSubKey)
104 {
105         FIXME("hkey=0x%08x, %s\n", hkey, debugstr_a(pszSubKey));
106         return 0;
107 }
108
109 /*************************************************************************
110  * SHRegDeleteKeyW   [SHELL32]
111  */
112 HRESULT WINAPI SHRegDeleteKeyW(
113         HKEY hkey,
114         LPCWSTR pszSubKey)
115 {
116         FIXME("hkey=0x%08x, %s\n", hkey, debugstr_w(pszSubKey));
117         return 0;
118 }
119
120 /*************************************************************************
121  * SHRegCloseKey                        [NT4.0:SHELL32.505]
122  *
123  */
124 HRESULT WINAPI SHRegCloseKey (HKEY hkey)
125 {
126         TRACE("0x%04x\n",hkey);
127         return RegCloseKey( hkey );
128 }