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;