[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnetlib ChangeLog System.Drawing.Win32/Win32.cs
From: |
Radek Polak |
Subject: |
[dotgnu-pnet-commits] pnetlib ChangeLog System.Drawing.Win32/Win32.cs |
Date: |
Mon, 23 Jul 2007 15:58:14 +0000 |
CVSROOT: /sources/dotgnu-pnet
Module name: pnetlib
Changes by: Radek Polak <radekp> 07/07/23 15:58:14
Modified files:
. : ChangeLog
System.Drawing.Win32: Win32.cs
Log message:
fix charsets in win32 pinvokes so that unicode WndProc gets called on
NT and ANSI on win9x
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnetlib/ChangeLog?cvsroot=dotgnu-pnet&r1=1.2511&r2=1.2512
http://cvs.savannah.gnu.org/viewcvs/pnetlib/System.Drawing.Win32/Win32.cs?cvsroot=dotgnu-pnet&r1=1.29&r2=1.30
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/pnetlib/ChangeLog,v
retrieving revision 1.2511
retrieving revision 1.2512
diff -u -b -r1.2511 -r1.2512
--- ChangeLog 14 Jul 2007 09:22:32 -0000 1.2511
+++ ChangeLog 23 Jul 2007 15:58:13 -0000 1.2512
@@ -1,3 +1,9 @@
+2007-07-23 Radek Polak <address@hidden>
+
+ * System.Drawing.Win32/Win32.cs: Set CharSet.Auto for all pinvokes. This
+ is important mainly for RegisterClass() fucntion because otherwise ANSI
+ WndProc gets called with unicode strings.
+
2007-07-14 Klaus Treichel <address@hidden>
* System/Text/RegularExpressions/regex.cs,
Index: System.Drawing.Win32/Win32.cs
===================================================================
RCS file: /sources/dotgnu-pnet/pnetlib/System.Drawing.Win32/Win32.cs,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- System.Drawing.Win32/Win32.cs 20 Oct 2006 19:59:53 -0000 1.29
+++ System.Drawing.Win32/Win32.cs 23 Jul 2007 15:58:13 -0000 1.30
@@ -468,7 +468,7 @@
public const uint CBM_INIT = 0x04;
- [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)]
+ [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]
public struct WNDCLASS
{
public WindowClassStyle style;
@@ -493,9 +493,18 @@
}
else
{
+ if((GetVersion() & 0xC0000000) != 0)
+ {
+ // Windows 9x and less.
lpszMenuName__ =
Marshal.StringToHGlobalAnsi(value);
}
+ else
+ {
+ lpszMenuName__ =
+
Marshal.StringToHGlobalUni(value);
+ }
+ }
}
}
public string lpszClassName
@@ -508,9 +517,18 @@
}
else
{
+ if((GetVersion() & 0xC0000000) != 0)
+ {
+ // Windows 9x and less.
lpszClassName__ =
Marshal.StringToHGlobalAnsi(value);
}
+ else
+ {
+ lpszClassName__ =
+
Marshal.StringToHGlobalUni(value);
+ }
+ }
}
}
}
@@ -710,7 +728,7 @@
}
}
- [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)]
+ [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]
public struct TEXTMETRIC
{
public int tmHeight;
@@ -795,7 +813,7 @@
public delegate void TimerProc(IntPtr hwnd, uint uMsg, uint idEvent,
uint dwTime);
- [DllImport("user32", CallingConvention = CallingConvention.Winapi)]
//ANSI
+ [DllImport("user32", EntryPoint="RegisterClass", CharSet=CharSet.Auto,
ExactSpelling=false, CallingConvention = CallingConvention.Winapi)] //Auto
public static extern int RegisterClassA(ref WNDCLASS wc);
[DllImport("user32", EntryPoint="DefWindowProc", CharSet=CharSet.Auto,
ExactSpelling=false, CallingConvention = CallingConvention.Winapi)] //Auto
@@ -915,19 +933,19 @@
[DllImport("user32", CallingConvention = CallingConvention.Winapi)]
public static extern int GetSystemMetrics (SystemMetricsType nIndex);
- [DllImport("user32", CallingConvention = CallingConvention.Winapi)]
//ANSI
+ [DllImport("user32", EntryPoint="SystemParametersInfo",
CharSet=CharSet.Auto, ExactSpelling=false, CallingConvention =
CallingConvention.Winapi)] //Auto
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SystemParametersInfoA(SystemParametersAction
uiAction, uint uiParam, out RECT pvParam, uint fWinIni );
- [DllImport("user32", CallingConvention = CallingConvention.Winapi)]
//ANSI
+ [DllImport("user32", EntryPoint="SystemParametersInfo",
CharSet=CharSet.Auto, ExactSpelling=false, CallingConvention =
CallingConvention.Winapi)] //Auto
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SystemParametersInfoA(SystemParametersAction
uiAction, uint uiParam, out int pvParam, uint fWinIni );
- [DllImport("user32", CallingConvention = CallingConvention.Winapi)]
//ANSI
+ [DllImport("user32", EntryPoint="SystemParametersInfo",
CharSet=CharSet.Auto, ExactSpelling=false, CallingConvention =
CallingConvention.Winapi)] //Auto
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SystemParametersInfoA(SystemParametersAction
uiAction, uint uiParam, [MarshalAs(UnmanagedType.Bool)] out bool pvParam, uint
fWinIni );
- [DllImport("user32", CallingConvention = CallingConvention.Winapi)]
//ANSI
+ [DllImport("user32", EntryPoint="SystemParametersInfo",
CharSet=CharSet.Auto, ExactSpelling=false, CallingConvention =
CallingConvention.Winapi)] //Auto
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SystemParametersInfoA(uint uiAction, uint
uiParam, ref NONCLIENTMETRICS pvParam,uint fWinIni);
@@ -972,7 +990,7 @@
[DllImport("user32", CallingConvention = CallingConvention.Winapi)]
public static extern IntPtr SetCursor( IntPtr hCursor);
- [DllImport("user32", CallingConvention = CallingConvention.Winapi)]
//ANSI
+ [DllImport("user32", EntryPoint="LoadCursor", CharSet=CharSet.Auto,
ExactSpelling=false, CallingConvention = CallingConvention.Winapi)] //Auto
public static extern IntPtr LoadCursorA( IntPtr hInstance, CursorName
lpCursorName);
[DllImport("user32", CallingConvention = CallingConvention.Winapi)]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnetlib ChangeLog System.Drawing.Win32/Win32.cs,
Radek Polak <=