Hi,

Just found the fix for the oledb32:convert tests on 64bit. We need to adjust our oledb.idl (see patch attached).

How should I deal with the ok() messages where we currently specify the 32bit variant? I mean this will of course introduce warnings on the 64bit side.

Do I need to create a wrapper for the ok() messages, with a _WIN64 check somewhere? Or use a different printf format identifier?

The same is also true for the TRACE() messages in our implementation.

--
Cheers,

Paul.
diff --git a/include/oledb.idl b/include/oledb.idl
index 4841165..6736fba 100644
--- a/include/oledb.idl
+++ b/include/oledb.idl
@@ -28,18 +28,34 @@ import "ocidl.idl";
 import "propidl.idl";
 import "urlmon.idl";
 
-typedef ULONG DBBYTEOFFSET;
-typedef LONG  DBROWOFFSET;
-typedef LONG  DBROWCOUNT;
-typedef ULONG DBCOUNTITEM;
-typedef ULONG DBLENGTH;
-typedef ULONG DBORDINAL;
-typedef ULONG DBBKMARK;
-typedef DWORD DB_DWRESERVE;
-typedef ULONG DBREFCOUNT;
-typedef ULONG DB_UPARAMS;
-typedef LONG  DB_LPARAMS;
-typedef DWORD DBHASHVALUE;
+cpp_quote("#ifdef _WIN64")
+typedef ULONGLONG DBBYTEOFFSET;
+typedef LONGLONG  DBROWOFFSET;
+typedef LONGLONG  DBROWCOUNT;
+typedef ULONGLONG DBCOUNTITEM;
+typedef ULONGLONG DBLENGTH;
+typedef ULONGLONG DBORDINAL;
+typedef ULONGLONG DBBKMARK;
+typedef DWORDLONG DB_DWRESERVE;
+typedef ULONGLONG DBREFCOUNT;
+typedef ULONGLONG DB_UPARAMS;
+typedef LONGLONG  DB_LPARAMS;
+typedef DWORDLONG DBHASHVALUE;
+cpp_quote("#else")
+cpp_quote("typedef ULONG DBBYTEOFFSET;")
+cpp_quote("typedef LONG  DBROWOFFSET;")
+cpp_quote("typedef LONG  DBROWCOUNT;")
+cpp_quote("typedef ULONG DBCOUNTITEM;")
+cpp_quote("typedef ULONG DBLENGTH;")
+cpp_quote("typedef ULONG DBORDINAL;")
+cpp_quote("typedef ULONG DBBKMARK;")
+cpp_quote("typedef DWORD DB_DWRESERVE;")
+cpp_quote("typedef ULONG DBREFCOUNT;")
+cpp_quote("typedef ULONG DB_UPARAMS;")
+cpp_quote("typedef LONG  DB_LPARAMS;")
+cpp_quote("typedef DWORD DBHASHVALUE;")
+cpp_quote("#endif")
+
 typedef struct {
     SHORT year;
     USHORT month;


Reply via email to