Changeset 5618 for trunk/src/shell32/shellreg.c
- Timestamp:
- Apr 28, 2001, 3:33:49 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shell32/shellreg.c
r4121 r5618 1 /* $Id: shellreg.c,v 1.1 2000-08-30 13:52:56 sandervl Exp $ */2 1 /* 3 2 Shell Registry Access 4 3 */ 5 #ifdef __WIN32OS2__6 #define ICOM_CINTERFACE 17 #include <odin.h>8 #endif9 4 #include <string.h> 10 5 #include <stdio.h> … … 13 8 #include "debugtools.h" 14 9 #include "winnls.h" 15 #include "heap.h"16 10 17 11 #include "shellapi.h" … … 101 95 } 102 96 103 #ifndef __WIN32OS2__104 97 /************************************************************************* 105 98 * SHRegDeleteKeyA [SHELL32] … … 110 103 { 111 104 FIXME("hkey=0x%08x, %s\n", hkey, debugstr_a(pszSubKey)); 105 #ifdef __WIN32OS2__ 106 return RegDeleteKeyA(hkey,pszSubKey); 107 #else 112 108 return 0; 113 }114 109 #endif 110 } 115 111 116 112 /************************************************************************* … … 122 118 { 123 119 FIXME("hkey=0x%08x, %s\n", hkey, debugstr_w(pszSubKey)); 120 #ifdef __WIN32OS2__ 121 return RegDeleteKeyW(hkey,pszSubKey); 122 #else 124 123 return 0; 124 #endif 125 125 } 126 126 … … 134 134 return RegCloseKey( hkey ); 135 135 } 136 137 #ifndef __WIN32OS2__ 138 139 /* 16-bit functions */ 140 141 /* 0 and 1 are valid rootkeys in win16 shell.dll and are used by 142 * some programs. Do not remove those cases. -MM 143 */ 144 static inline void fix_win16_hkey( HKEY *hkey ) 145 { 146 if (*hkey == 0 || *hkey == 1) *hkey = HKEY_CLASSES_ROOT; 147 } 148 149 /****************************************************************************** 150 * RegOpenKey16 [SHELL.1] 151 */ 152 DWORD WINAPI RegOpenKey16( HKEY hkey, LPCSTR name, LPHKEY retkey ) 153 { 154 fix_win16_hkey( &hkey ); 155 return RegOpenKeyA( hkey, name, retkey ); 156 } 157 158 /****************************************************************************** 159 * RegCreateKey16 [SHELL.2] 160 */ 161 DWORD WINAPI RegCreateKey16( HKEY hkey, LPCSTR name, LPHKEY retkey ) 162 { 163 fix_win16_hkey( &hkey ); 164 return RegCreateKeyA( hkey, name, retkey ); 165 } 166 167 /****************************************************************************** 168 * RegCloseKey16 [SHELL.3] 169 */ 170 DWORD WINAPI RegCloseKey16( HKEY hkey ) 171 { 172 fix_win16_hkey( &hkey ); 173 return RegCloseKey( hkey ); 174 } 175 176 /****************************************************************************** 177 * RegDeleteKey16 [SHELL.4] 178 */ 179 DWORD WINAPI RegDeleteKey16( HKEY hkey, LPCSTR name ) 180 { 181 fix_win16_hkey( &hkey ); 182 return RegDeleteKeyA( hkey, name ); 183 } 184 185 /****************************************************************************** 186 * RegSetValue16 [SHELL.5] 187 */ 188 DWORD WINAPI RegSetValue16( HKEY hkey, LPCSTR name, DWORD type, LPCSTR data, DWORD count ) 189 { 190 fix_win16_hkey( &hkey ); 191 return RegSetValueA( hkey, name, type, data, count ); 192 } 193 194 /****************************************************************************** 195 * RegQueryValue16 [SHELL.6] 196 * 197 * NOTES 198 * Is this HACK still applicable? 199 * 200 * HACK 201 * The 16bit RegQueryValue doesn't handle selectorblocks anyway, so we just 202 * mask out the high 16 bit. This (not so much incidently) hopefully fixes 203 * Aldus FH4) 204 */ 205 DWORD WINAPI RegQueryValue16( HKEY hkey, LPCSTR name, LPSTR data, LPDWORD count ) 206 { 207 fix_win16_hkey( &hkey ); 208 if (count) *count &= 0xffff; 209 return RegQueryValueA( hkey, name, data, count ); 210 } 211 212 /****************************************************************************** 213 * RegEnumKey16 [SHELL.7] 214 */ 215 DWORD WINAPI RegEnumKey16( HKEY hkey, DWORD index, LPSTR name, DWORD name_len ) 216 { 217 fix_win16_hkey( &hkey ); 218 return RegEnumKeyA( hkey, index, name, name_len ); 219 } 220 #endif //__WIN32OS2__
Note:
See TracChangeset
for help on using the changeset viewer.