dotgnu-pnet-commits
[Top][All Lists]
Advanced

[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)]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]