Changeset 4274 for trunk/src/ole32/ole2.cpp
- Timestamp:
- Sep 17, 2000, 12:31:07 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/ole32/ole2.cpp
r872 r4274 1 /* $Id: ole2.cpp,v 1. 2 1999-09-08 11:29:28davidr Exp $ */1 /* $Id: ole2.cpp,v 1.3 2000-09-17 10:31:05 davidr Exp $ */ 2 2 /* 3 3 * … … 21 21 #include "commctrl.h" 22 22 #include "oString.h" 23 #include "heapstring.h" 23 24 #include <assert.h> 24 25 … … 155 156 HKEY clsidKey; 156 157 LONG hres; 158 LPSTR buffer; 157 159 158 160 dprintf(("OLE32: OleRegGetUserType")); … … 180 182 181 183 // Allocate a buffer for the registry value. 182 *pszUserType = (LPOLESTR)CoTaskMemAlloc(cbData);183 184 if ( *pszUserType== NULL)184 buffer = (LPSTR)HeapAlloc(GetProcessHeap(), 0, cbData); 185 186 if (buffer == NULL) 185 187 { 186 188 RegCloseKey(clsidKey); … … 188 190 } 189 191 190 hres = RegQueryValueExA(HKEY_CLASSES_ROOT, "", NULL, &dwKeyType, (LPBYTE) *pszUserType, &cbData);192 hres = RegQueryValueExA(HKEY_CLASSES_ROOT, "", NULL, &dwKeyType, (LPBYTE)buffer, &cbData); 191 193 RegCloseKey(clsidKey); 192 194 if (hres != ERROR_SUCCESS) 193 195 { 194 CoTaskMemFree(*pszUserType); 195 *pszUserType = NULL; 196 HeapFree(GetProcessHeap(), 0, buffer); 196 197 return REGDB_E_READREGDB; 197 198 } 199 200 // Allocate a buffer for the return value. 201 *pszUserType = (LPOLESTR)CoTaskMemAlloc(cbData * 2); 202 203 if (*pszUserType == NULL) 204 { 205 HeapFree(GetProcessHeap(), 0, buffer); 206 return E_OUTOFMEMORY; 207 } 208 209 // Copy & convert to unicode... 210 lstrcpyAtoW(*pszUserType, buffer); 211 HeapFree(GetProcessHeap(), 0, buffer); 198 212 199 213 return S_OK;
Note:
See TracChangeset
for help on using the changeset viewer.