Tim Bunce wrote:
> On Thu, Jul 15, 2004 at 10:35:14AM +0200, Steffen Goeldner wrote:
> > Tim Bunce wrote:
> >
> > Warning W8075 dbdimp.c 82: Suspicious pointer conversion in function
> > GetEnvOrRegKey
>
> Fixed.
I'm still a bit nervous about returning this pointer to a locally declared
buffer.
> > Warning W8075 dbdimp.c 94: Suspicious pointer conversion in function GetRegKey
>
> Not sure what that one is - I don't speak Windows API.
FTR:
windef.h:
#define far
typedef unsigned char BYTE;
typedef unsigned long DWORD;
typedef BYTE far *LPBYTE;
typedef DWORD far *LPDWORD;
winnt.h:
typedef char CHAR;
typedef const CHAR *LPCSTR, *PCSTR;
winreg.h:
WINADVAPI
LONG
APIENTRY
RegQueryValueExA (
IN HKEY hKey,
IN LPCSTR lpValueName,
IN LPDWORD lpReserved,
OUT LPDWORD lpType,
IN OUT LPBYTE lpData,
IN OUT LPDWORD lpcbData
);
#ifdef UNICODE
#define RegQueryValueEx RegQueryValueExW
#else
#define RegQueryValueEx RegQueryValueExA
#endif // !UNICODE
Thus, I would adjust the types as follows:
--- dbdimp.orig Thu Jul 15 14:14:22 2004
+++ dbdimp.c Fri Jul 16 07:32:26 2004
@@ -82,10 +82,10 @@
return &val[0];
}
static int
-GetRegKey(char *key, char *val, char *data, int *size)
+GetRegKey(char *key, char *val, char *data, unsigned long *size)
{
HKEY hKey;
- long len = *size - 1;
+ unsigned long len = *size - 1;
long ret;
ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_QUERY_VALUE, &hKey);
Steffen