winapi stuct

[Mono-patches] mcs/class/System.Windows.Forms/System.Windows.Forms ChangeLog,1.65,1.66 win32functions.cs,1.1,1.2 win32Structs.cs,1.1,1.2 Menu.cs,1.16,1.17 ScrollableControl.cs,1.8,1.9 NativeWindow.cs,1.9,1.10 Form.cs,1.14,1.15

Dennis Hayes dennis@mono-cvs.ximian.com
Sat, 23 Nov 2002 23:31:30 -0500

 


Update of /cvs/public/mcs/class/System.Windows.Forms/System.Windows.Forms
In directory mono-cvs.ximian.com:/tmp/cvs-serv25563

Modified Files:
	ChangeLog win32functions.cs win32Structs.cs Menu.cs 
	ScrollableControl.cs NativeWindow.cs Form.cs 
Log Message:
  2002-11-23  DennisHayes <dennish@raytek.com>	
	 checked in for 	Francois-Denis Gonthier

	* win32functions.cs
	* win32Structs.cs
	* Menu.cs
	* ScrollableControl.cs
	* MenuItem.cs
	* NativeWindow.cs
	* Form.cs
	* move some more stuff from monostub to c#
	* converted a couple of files to unix style line end
	* some implmementation


Index: ChangeLog
===================================================================
RCS file: /cvs/public/mcs/class/System.Windows.Forms/System.Windows.Forms/ChangeLog,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- ChangeLog	23 Nov 2002 02:10:47 -0000	1.65
+++ ChangeLog	24 Nov 2002 04:31:26 -0000	1.66
@@ -1,3 +1,16 @@
+  2002-11-23  DennisHayes <dennish@raytek.com>	
+	 checked in for 	Francois-Denis Gonthier
+
+	* win32functions.cs
+	* win32Structs.cs
+	* Menu.cs
+	* ScrollableControl.cs
+	* MenuItem.cs
+	* NativeWindow.cs
+	* Form.cs
+	* move some more stuff from monostub to c#
+	* converted a couple of files to unix style line end
+	* some implmementation
 	
   2002-11-17  DennisHayes <dennish@raytek.com>	
 

Index: win32functions.cs
===================================================================
RCS file: /cvs/public/mcs/class/System.Windows.Forms/System.Windows.Forms/win32functions.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- win32functions.cs	18 Nov 2002 04:44:37 -0000	1.1
+++ win32functions.cs	24 Nov 2002 04:31:26 -0000	1.2
@@ -27,566 +27,549 @@
  * authorization from Carlos Harvey Perez.
  */
 
-using System;
-using System.Drawing;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Diagnostics;
-
-//using UtilityLibrary.WinControls;
-
-//namespace UtilityLibrary.Win32
-namespace System.Windows.Forms{
-	/// <summary>
-	/// Windows API Functions
-	/// </summary>
-	public class Win32
-	{
-		#region Constructors
-		// No need to construct this object
-		#endregion
-		
-		#region Constans values
-		internal const string TOOLBARCLASSNAME = "ToolbarWindow32";
-		internal const string REBARCLASSNAME = "ReBarWindow32";
-		internal const string PROGRESSBARCLASSNAME = "msctls_progress32";
-		internal const string SCROLLBAR = "SCROLLBAR";
-		#endregion
-
-		#region CallBacks
-		internal delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);
-		internal delegate int CompareFunc(IntPtr param1, IntPtr param2, IntPtr sortParam);
-		internal delegate int WinProc(IntPtr hWnd, int message, int wParam, int lParam);
-		#endregion
-
-		#region Kernel32.dll functions
-		[DllImport("kernel32.dll", ExactSpelling=true, CharSet=CharSet.Auto)]
-		internal static extern int GetCurrentThreadId();
-		[DllImport("kernel32.dll")]
-		internal static extern int GetDriveType(string rootPathName);
-		[DllImport("kernel32.dll")]
-		internal static extern int GetVolumeInformation(string drivePath,
-			StringBuilder volumeNameBuffer,
-			int driveNameBufferSize,
-			out int serialNumber,
-			out int maxFileNameLength,
-			out int fileSystemFlags,
-			StringBuilder systemNameBuffer,
-			int systemNameBufferSize);
-		[DllImport("kernel32.dll")]
-		internal static extern void OutputDebugString(string message);
-		#endregion
-	
-		#region Gdi32.dll functions
-		[DllImport("gdi32.dll")]
-		static internal extern bool StretchBlt(IntPtr hDCDest, int XOriginDest, int YOriginDest, int WidthDest, int HeightDest,
-			IntPtr hDCSrc,  int XOriginScr, int YOriginSrc, int WidthScr, int HeightScr, PatBltTypes Rop);
-		[DllImport("gdi32.dll")]
-		static internal extern IntPtr CreateCompatibleDC(IntPtr hDC);
-		[DllImport("gdi32.dll")]
-		static internal extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int Width, int Heigth);
-		[DllImport("gdi32.dll")]
-		static internal extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
-		[DllImport("gdi32.dll")]
-		static internal extern bool BitBlt(IntPtr hDCDest, int XOriginDest, int YOriginDest, int WidthDest, int HeightDest,
-			IntPtr hDCSrc,  int XOriginScr, int YOriginSrc, PatBltTypes flags);
-		[DllImport("gdi32.dll")]
-		static internal extern IntPtr DeleteDC(IntPtr hDC);
-		[DllImport("gdi32.dll")]
-		static internal extern bool PatBlt(IntPtr hDC, int XLeft, int YLeft, int Width, int Height, int Rop);
-		[DllImport("gdi32.dll")]
-		static internal extern bool DeleteObject(IntPtr hObject);
-		[DllImport("gdi32.dll")]
-		static internal extern int GetPixel(IntPtr hDC, int XPos, int YPos);
-		[DllImport("gdi32.dll")]
-		static internal extern int SetMapMode(IntPtr hDC, int fnMapMode);
-		[DllImport("gdi32.dll")]
-		static internal extern int GetObjectType(IntPtr handle);
-		[DllImport("gdi32")]
-		internal static extern IntPtr CreateDIBSection(IntPtr hdc, ref BITMAPINFO_FLAT bmi, 
-			int iUsage, ref int ppvBits, IntPtr hSection, int dwOffset);
-		[DllImport("gdi32")]
-		internal static extern int GetDIBits(IntPtr hDC, IntPtr hbm, int StartScan, int ScanLines, int lpBits, BITMAPINFOHEADER bmi, int usage);
-		[DllImport("gdi32")]
-		internal static extern int GetDIBits(IntPtr hdc, IntPtr hbm, int StartScan, int ScanLines, int lpBits, ref BITMAPINFO_FLAT bmi, int usage);
-		[DllImport("gdi32")]
-		internal static extern IntPtr GetPaletteEntries(IntPtr hpal, int iStartIndex, int nEntries, byte[] lppe);
-		[DllImport("gdi32")]
-		internal static extern IntPtr GetSystemPaletteEntries(IntPtr hdc, int iStartIndex, int nEntries, byte[] lppe);
-		[DllImport("gdi32")]
-		internal static extern int SetDCBrushColor(IntPtr hdc,  int crColor);
-		[DllImport("gdi32")]
-		internal static extern IntPtr CreateSolidBrush(int crColor);
-		[DllImport("gdi32")]
-		internal static extern int SetBkMode(IntPtr hDC, BackgroundMode mode);
-		[DllImport("gdi32")]
-		internal static extern int SetViewportOrgEx(IntPtr hdc,  int x, int y,  int param);
-		[DllImport("gdi32")]
-        internal static extern int SetTextColor(IntPtr hDC, int colorRef);
-		[DllImport("gdi32")]
-		internal static extern int SetStretchBltMode(IntPtr hDC, StrechModeFlags StrechMode);
-		[DllImport("gdi32")]
-		internal static extern int SetPixel(IntPtr hDC, int x, int y, int color);
-		[DllImport("gdi32")]
-		internal static extern IntPtr CreatePen(PenStyle penStyle, int width, int color);
-		[DllImport("gdi32")]
-		internal static extern int GetClipRgn(IntPtr hDC, ref IntPtr region);
-		[DllImport("gdi32")]
-		internal static extern IntPtr CreateRectRgn(int nLeftRect,  int TopRect, int nRightRect, int nBottomRect);
-		[DllImport("gdi32")]
-		internal static extern int GetRgnBox(IntPtr hRegion, ref RECT rc);
-		#endregion
-
-		#region Uxtheme.dll functions
-		[DllImport("uxtheme.dll")]
-		static public extern int SetWindowTheme(IntPtr hWnd, StringBuilder AppID, StringBuilder ClassID);
-		static public void DisableWindowsXPTheme(IntPtr hWnd)
-		{
-			// Disable using the Window XP Theme for the Window handle
-			// passed as a parameter
-			StringBuilder applicationName = new StringBuilder(" ", 1); 
-			StringBuilder classIDs = new StringBuilder(" " , 1); 
-			Win32.SetWindowTheme(hWnd, applicationName, classIDs);
-		}
-		#endregion
-	
-		#region User32.dll functions
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern IntPtr GetDesktopWindow();
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool ShowWindow(IntPtr hWnd, ShowWindowStyles State);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool SetForegroundWindow(IntPtr hWnd);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool OpenClipboard(IntPtr hWndNewOwner);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool CloseClipboard();
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool EmptyClipboard();
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern IntPtr SetClipboardData( int Format, IntPtr hData);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool GetMenuItemRect(IntPtr hWnd, IntPtr hMenu, int Item, ref RECT rc);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SendMessage(IntPtr hWnd, Msg msg, int wParam, int lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref RECT lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref POINT lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, ToolBarMessages msg, int wParam, ref TBBUTTON lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, ToolBarMessages msg, int wParam, ref TBBUTTONINFO lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SendMessage(IntPtr hWnd, RebarMessages msg, int wParam, ref REBARBANDINFO lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVITEM lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVINSERTSTRUCT lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVSORTCB lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVHITTESTINFO hti);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, ListViewMessages msg, int wParam, ref LVITEM lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, HeaderControlMessages msg, int wParam, ref HDITEM lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern void SendMessage(IntPtr hWnd, HeaderControlMessages msg, int wParam, ref HD_HITTESTINFO hti);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SendMessage(IntPtr hWnd, HeaderControlMessages msg, int wParam, int lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr PostMessage(IntPtr hWnd, int msg, int wParam, int lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr PostMessage(IntPtr hWnd, Msg msg, int wParam, int lParam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr SetWindowsHookEx(WindowsHookCodes hookid, HookProc pfnhook, IntPtr hinst, int threadid);
-		[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
-		internal static extern bool UnhookWindowsHookEx(IntPtr hhook);
-		[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
-		internal static extern IntPtr CallNextHookEx(IntPtr hhook, int code, IntPtr wparam, IntPtr lparam);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal extern static int DrawText(IntPtr hdc, string lpString, int nCount, ref RECT lpRect, DrawTextFormatFlags flags);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal extern static IntPtr GetDlgItem(IntPtr hDlg, int nControlID);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-        internal extern static int InvalidateRect(IntPtr hWnd,  ref RECT rc, int bErase);
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		internal extern static int InvalidateRect(IntPtr hWnd,  IntPtr rc, int bErase);
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool WaitMessage();
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool PeekMessage(ref MESSAGE msg, int hWnd, int wFilterMin, int wFilterMax, PeekMessageFlags flags);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool GetMessage(ref MESSAGE msg, int hWnd, int wFilterMin, int wFilterMax);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool TranslateMessage(ref MESSAGE msg);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool DispatchMessage(ref MESSAGE msg);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr LoadCursor(IntPtr hInstance, CursorType cursor);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr SetCursor(IntPtr hCursor);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr BeginPaint(IntPtr hWnd, ref PAINTSTRUCT ps);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool EndPaint(IntPtr hWnd, ref PAINTSTRUCT ps);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref POINT pptDst, ref SIZE psize, 
-			IntPtr hdcSrc, ref POINT pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, UpdateLayeredWindowFlags dwFlags);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool ClientToScreen(IntPtr hWnd, ref POINT pt);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool TrackMouseEvent(ref TRACKMOUSEEVENTS tme);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool SetWindowRgn(IntPtr hWnd, IntPtr hRgn, bool redraw);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern short GetKeyState(int virtKey);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern int GetClassName(IntPtr hWnd,  StringBuilder ClassName, int nMaxCount);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SetWindowLong(IntPtr hWnd, GetWindowLongFlag flag, int dwNewLong);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SetWindowLong(IntPtr hWnd, GetWindowLongFlag flag, WinProc winProc);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr GetDCEx(IntPtr hWnd, IntPtr hRegion, int flags);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr GetWindowDC(IntPtr hWnd);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern int FillRect(IntPtr hDC, ref RECT rect, IntPtr hBrush);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SetWindowText(IntPtr hWnd, string text);
-
-		[DllImport("User32.dll", CharSet=CharSet.Auto)]
-		internal static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int maxCount);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)] 
-		static internal extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int ChangeClipboardChain(IntPtr hWndRemove, IntPtr hWndNewNext);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int GetSystemMetrics(SystemMetricsCodes code);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int SetScrollInfo(IntPtr hwnd,  int bar, ref SCROLLINFO si, int fRedraw);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int ShowScrollBar(IntPtr hWnd, int bar,  int show);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int EnableScrollBar(IntPtr hWnd, int flags, int arrows);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int BringWindowToTop(IntPtr hWnd);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int GetScrollInfo(IntPtr hwnd, int bar, ref SCROLLINFO si);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int ScrollWindowEx(IntPtr hWnd, int dx, int dy, 
-			ref RECT rcScroll, ref RECT rcClip, IntPtr UpdateRegion, ref RECT rcInvalidated, int flags);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool IsWindow(IntPtr hWnd);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int LockWindowUpdate(IntPtr hWnd);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool ValidateRect(IntPtr hWnd, ref RECT rcInvalidated);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern bool ValidateRect(IntPtr hWnd, IntPtr rc);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int GetScrollBarInfo(IntPtr hWnd, SystemObject id, ref SCROLLBARINFO sbi);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern IntPtr GetWindowLong(IntPtr hWnd, GetWindowLongFlag flag);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int SetProp(IntPtr hWnd, IntPtr atom, IntPtr hData);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int CallWindowProc(IntPtr hOldProc, IntPtr hWnd, int message, int wParam, int lParam);
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-		static internal extern int EndMenu();
-
-		[DllImport("user32.dll", CharSet=CharSet.Auto)]
-        static internal extern int DefWindowProc(IntPtr hWnd, int message, int wParam, int lParam);
-
-		#endregion
-
-		#region Shell32.dll functions
-
-		[DllImport("Shell32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr SHGetFileInfo(string drivePath, int fileAttributes, 
-			out SHFILEINFO fileInfo, int countBytesFileInfo, ShellFileInfoFlags flags);
-
-		[DllImport("Shell32.dll", CharSet=CharSet.Auto)]
-		internal static extern IntPtr SHGetFileInfo(IntPtr idl, int fileAttributes, 
-			out SHFILEINFO fileInfo, int countBytesFileInfo, ShellFileInfoFlags flags);
-
-		[DllImport("Shell32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SHGetSpecialFolderLocation(IntPtr hwndOwner, ShellSpecialFolder folder, out IntPtr idl);
-
-		[DllImport("Shell32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SHGetMalloc(out IMalloc alloc);
-
-		[DllImport("Shell32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SHGetDesktopFolder(out IShellFolder folder);
-		
-		[DllImport("Shell32.dll", CharSet=CharSet.Auto)]
-		internal static extern int SHGetPathFromIDList(IntPtr idl, StringBuilder path);
-
-		internal static void SHFreeMalloc(IntPtr handle)
-		{
-			IMalloc alloc = null;
-			try 
-			{
-				Win32.SHGetMalloc(out alloc);
-				Debug.Assert(alloc != null);
-				alloc.Free(handle);
-				// Free allocator itself
-				IUnknown iUnknown = (IUnknown)alloc;
-				iUnknown.Release();
-			}
-			catch (Exception e)
-			{
-				// In case the Garbage collector is trying to free
-				// this memory from its own thread
-				Debug.WriteLine(e.Message);
-			}
-		}
-		
-		#endregion
-
-		#region Common Controls functions
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool InitCommonControlsEx(INITCOMMONCONTROLSEX icc);
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool InitCommonControls();
-
-		[DllImport("comctl32.dll", EntryPoint="DllGetVersion")]
-		internal extern static int GetCommonControlDLLVersion(ref DLLVERSIONINFO dvi);
-
-		[DllImport("comctl32.dll")]
-		internal static extern IntPtr ImageList_Create(int width, int height, int flags, int count, int grow);
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool ImageList_Destroy(IntPtr handle);
-
-		[DllImport("comctl32.dll")]
-		internal static extern int ImageList_Add(IntPtr imageHandle, IntPtr hBitmap, IntPtr hMask);
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool ImageList_Remove(IntPtr imageHandle, int index);
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool ImageList_BeginDrag(IntPtr imageHandle, int imageIndex, int xHotSpot, int yHotSpot);
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool ImageList_DragEnter(IntPtr hWndLock, int x, int y);
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool ImageList_DragMove(int x, int y);
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool ImageList_DragLeave(IntPtr hWndLock);
-
-		[DllImport("comctl32.dll")]
-		internal static extern void ImageList_EndDrag();
-
-		[DllImport("comctl32.dll")]
-		internal static extern bool ImageList_Draw(IntPtr hImageList, int imageIndex, 
-			IntPtr hDCDest, int x, int y, ImageListDrawFlags flags);
-
-		[DllImport("comctl32.dll")]
-		internal static extern int ImageList_DrawEx(
-			IntPtr hImageList, int imageIndex, IntPtr hDCDest, int x, int y, int dx, int dy, 
-			uint backColor, uint foregColor, ImageListDrawFlags flags);
-
-		[DllImport("comctl32.dll")]
-		internal static extern int ImageList_DragShowNolock(int show);
-		
-		[DllImport("comctl32.dll")]
-		internal static extern int ImageList_AddMasked(IntPtr hImageList, IntPtr hBitmap, int crMask);
-
-		[DllImport("comctl32.dll")]
-		internal static extern int ImageList_SetDragCursorImage(IntPtr himlDrag, int iDrag, int dxHotspot, int dyHotspot);
-								
-		internal static int ImageList_DrawEx(IntPtr hImageList, int imageIndex, IntPtr hDCDest, int x, int y, int dx, int dy,   
-			ImageListDrawColor backColor, ImageListDrawColor foreColor, ImageListDrawFlags flags)
-		{
-            uint bColor = (uint)ImageListDrawColors.CLR_NONE;
-			if ( backColor == ImageListDrawColor.Default )
-				bColor =  (uint)ImageListDrawColors.CLR_DEFAULT;
-
-			uint fColor = (uint)ImageListDrawColors.CLR_NONE;
-			if ( foreColor == ImageListDrawColor.Default )
-				fColor =  (uint)ImageListDrawColors.CLR_DEFAULT;
-			 
-			// Call actual function
-			return ImageList_DrawEx(hImageList, imageIndex, hDCDest, x, y, dx, dy, bColor, fColor, flags);
-		}
-
-		
-		static internal bool IsCommonCtrl6()
-		{
-			DLLVERSIONINFO dllVersion = new DLLVERSIONINFO();
-			// We are assummng here that anything greater or equal than 6
-			// will have the new XP theme drawing enable
-			dllVersion.cbSize = Marshal.SizeOf(typeof(DLLVERSIONINFO));
-			Win32.GetCommonControlDLLVersion(ref dllVersion);
-			return (dllVersion.dwMajorVersion >= 6);
-		}
-
-		#endregion
-
-		#region Win32 Macro-Like helpers
-		internal static int X_LPARAM(int lParam)
-		{
-			return (lParam & 0xffff);
-		}
-	 
-		internal static int Y_LPARAM(int lParam)
-		{
-			return (lParam >> 16);
-		}
-
-		internal static Point GetPointFromLPARAM(int lParam)
-		{
-			return new Point(X_LPARAM(lParam), Y_LPARAM(lParam));
-		}
-
-		internal static int LOW_ORDER(int param)
-		{
-			return (param & 0xffff);
-		}
-
-		internal static int HIGH_ORDER(int param)
-		{
-			return (param >> 16);
-		}
-
-		internal static int INDEXTOOVERLAYMASK(int index)
-		{
-			return (int)((uint)index << 8); 
-		}
-
-		internal static int OVERLAYMASKTOINDEX(int index)
-		{
-			return (int)((uint)index >> 8); 
-		}
-
-		internal static int INDEXTOSTATEIMAGEMASK(int i)
-		{
-			return (int)((uint)i << 12);
-		}
-
-		internal static int STATEIMAGEMASKTOINDEX(int i)
-		{
-			 return (int)((uint)i >> 12);
-		}
-
-		internal static short HRESULT_CODE(int hr)
-		{
-             return (short)(hr & 0xFFFF);
-		}
-
-		internal static bool SUCCEEDED(int status)
-		{
-			return (status >= 0);
-		}
-
-		internal static bool FAILED(int status)
-		{
-			return (status < 0);
-		}
-
-		internal static int  MAKEINTRESOURCE(int res)
-		{
-			return 0x0000FFFF & res;
-		}
-		#endregion
-
-
-		#region Mono win32 Fuinctions
-		// helper function for calling RegisterClass
-		internal delegate IntPtr WndProc (IntPtr hwnd, int msg,
-			IntPtr wParam, IntPtr lParam);
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Diagnostics;
 
-		//
+//using UtilityLibrary.WinControls;
 
-		[DllImport ("monostub.exe", 
+//namespace UtilityLibrary.Win32
+namespace System.Windows.Forms{
+	/// <summary>
+	/// Windows API Functions
+	/// </summary>
+	public class Win32
+	{
+		#region Constructors
+		// No need to construct this object
+		#endregion
+		
+		#region Constans values
+		internal const string TOOLBARCLASSNAME = "ToolbarWindow32";
+		internal const string REBARCLASSNAME = "ReBarWindow32";
+		internal const string PROGRESSBARCLASSNAME = "msctls_progress32";
+		internal const string SCROLLBAR = "SCROLLBAR";
+		#endregion
+
+		#region CallBacks
+		internal delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);
+		internal delegate int CompareFunc(IntPtr param1, IntPtr param2, IntPtr sortParam);
+		internal delegate int WinProc(IntPtr hWnd, int message, int wParam, int lParam);
+		#endregion
+
+		#region Kernel32.dll functions
+		[DllImport("kernel32.dll", ExactSpelling=true, CharSet=CharSet.Auto)]
+		internal static extern int GetCurrentThreadId();
+		[DllImport("kernel32.dll")]
+		internal static extern int GetDriveType(string rootPathName);
+		[DllImport("kernel32.dll")]
+		internal static extern int GetVolumeInformation(string drivePath,
+			StringBuilder volumeNameBuffer,
+			int driveNameBufferSize,
+			out int serialNumber,
+			out int maxFileNameLength,
+			out int fileSystemFlags,
+			StringBuilder systemNameBuffer,
+			int systemNameBufferSize);
+		[DllImport("kernel32.dll")]
+		internal static extern void OutputDebugString(string message);
+		#endregion
+	
+		#region Gdi32.dll functions
+		[DllImport("gdi32.dll")]
+		static internal extern bool StretchBlt(IntPtr hDCDest, int XOriginDest, int YOriginDest, int WidthDest, int HeightDest,
+			IntPtr hDCSrc,  int XOriginScr, int YOriginSrc, int WidthScr, int HeightScr, PatBltTypes Rop);
+		[DllImport("gdi32.dll")]
+		static internal extern IntPtr CreateCompatibleDC(IntPtr hDC);
+		[DllImport("gdi32.dll")]
+		static internal extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int Width, int Heigth);
+		[DllImport("gdi32.dll")]
+		static internal extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
+		[DllImport("gdi32.dll")]
+		static internal extern bool BitBlt(IntPtr hDCDest, int XOriginDest, int YOriginDest, int WidthDest, int HeightDest,
+			IntPtr hDCSrc,  int XOriginScr, int YOriginSrc, PatBltTypes flags);
+		[DllImport("gdi32.dll")]
+		static internal extern IntPtr DeleteDC(IntPtr hDC);
+		[DllImport("gdi32.dll")]
+		static internal extern bool PatBlt(IntPtr hDC, int XLeft, int YLeft, int Width, int Height, int Rop);
+		[DllImport("gdi32.dll")]
+		static internal extern bool DeleteObject(IntPtr hObject);
+		[DllImport("gdi32.dll")]
+		static internal extern int GetPixel(IntPtr hDC, int XPos, int YPos);
+		[DllImport("gdi32.dll")]
+		static internal extern int SetMapMode(IntPtr hDC, int fnMapMode);
+		[DllImport("gdi32.dll")]
+		static internal extern int GetObjectType(IntPtr handle);
+		[DllImport("gdi32")]
+		internal static extern IntPtr CreateDIBSection(IntPtr hdc, ref BITMAPINFO_FLAT bmi, 
+			int iUsage, ref int ppvBits, IntPtr hSection, int dwOffset);
+		[DllImport("gdi32")]
+		internal static extern int GetDIBits(IntPtr hDC, IntPtr hbm, int StartScan, int ScanLines, int lpBits, BITMAPINFOHEADER bmi, int usage);
+		[DllImport("gdi32")]
+		internal static extern int GetDIBits(IntPtr hdc, IntPtr hbm, int StartScan, int ScanLines, int lpBits, ref BITMAPINFO_FLAT bmi, int usage);
+		[DllImport("gdi32")]
+		internal static extern IntPtr GetPaletteEntries(IntPtr hpal, int iStartIndex, int nEntries, byte[] lppe);
+		[DllImport("gdi32")]
+		internal static extern IntPtr GetSystemPaletteEntries(IntPtr hdc, int iStartIndex, int nEntries, byte[] lppe);
+		[DllImport("gdi32")]
+		internal static extern int SetDCBrushColor(IntPtr hdc,  int crColor);
+		[DllImport("gdi32")]
+		internal static extern IntPtr CreateSolidBrush(int crColor);
+		[DllImport("gdi32")]
+		internal static extern int SetBkMode(IntPtr hDC, BackgroundMode mode);
+		[DllImport("gdi32")]
+		internal static extern int SetViewportOrgEx(IntPtr hdc,  int x, int y,  int param);
+		[DllImport("gdi32")]
+        internal static extern int SetTextColor(IntPtr hDC, int colorRef);
+		[DllImport("gdi32")]
+		internal static extern int SetStretchBltMode(IntPtr hDC, StrechModeFlags StrechMode);
+		[DllImport("gdi32")]
+		internal static extern int SetPixel(IntPtr hDC, int x, int y, int color);
+		[DllImport("gdi32")]
+		internal static extern IntPtr CreatePen(PenStyle penStyle, int width, int color);
+		[DllImport("gdi32")]
+		internal static extern int GetClipRgn(IntPtr hDC, ref IntPtr region);
+		[DllImport("gdi32")]
+		internal static extern IntPtr CreateRectRgn(int nLeftRect,  int TopRect, int nRightRect, int nBottomRect);
+		[DllImport("gdi32")]
+		internal static extern int GetRgnBox(IntPtr hRegion, ref RECT rc);
+		#endregion
+
+		#region Uxtheme.dll functions
+		[DllImport("uxtheme.dll")]
+		static public extern int SetWindowTheme(IntPtr hWnd, StringBuilder AppID, StringBuilder ClassID);
+		static public void DisableWindowsXPTheme(IntPtr hWnd)
+		{
+			// Disable using the Window XP Theme for the Window handle
+			// passed as a parameter
+			StringBuilder applicationName = new StringBuilder(" ", 1); 
+			StringBuilder classIDs = new StringBuilder(" " , 1); 
+			Win32.SetWindowTheme(hWnd, applicationName, classIDs);
+		}
+		#endregion
+	
+		#region User32.dll functions
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern IntPtr GetDesktopWindow();
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern bool ShowWindow(IntPtr hWnd, ShowWindowStyles State);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern bool SetForegroundWindow(IntPtr hWnd);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern bool OpenClipboard(IntPtr hWndNewOwner);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern bool CloseClipboard();
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern bool EmptyClipboard();
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern IntPtr SetClipboardData( int Format, IntPtr hData);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		static internal extern bool GetMenuItemRect(IntPtr hWnd, IntPtr hMenu, int Item, ref RECT rc);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern int SendMessage(IntPtr hWnd, Msg msg, int wParam, int lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref RECT lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref POINT lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, ToolBarMessages msg, int wParam, ref TBBUTTON lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, ToolBarMessages msg, int wParam, ref TBBUTTONINFO lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern int SendMessage(IntPtr hWnd, RebarMessages msg, int wParam, ref REBARBANDINFO lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVITEM lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVINSERTSTRUCT lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVSORTCB lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern int SendMessage(IntPtr hWnd, TreeViewMessages msg, int wParam, ref TVHITTESTINFO hti);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, ListViewMessages msg, int wParam, ref LVITEM lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, HeaderControlMessages msg, int wParam, ref HDITEM lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern void SendMessage(IntPtr hWnd, HeaderControlMessages msg, int wParam, ref HD_HITTESTINFO hti);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern int SendMessage(IntPtr hWnd, HeaderControlMessages msg, int wParam, int lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern IntPtr PostMessage(IntPtr hWnd, int msg, int wParam, int lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern IntPtr PostMessage(IntPtr hWnd, Msg msg, int wParam, int lParam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal static extern IntPtr SetWindowsHookEx(WindowsHookCodes hookid, HookProc pfnhook, IntPtr hinst, int threadid);
+		[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
+		internal static extern bool UnhookWindowsHookEx(IntPtr hhook);
+		[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
+		internal static extern IntPtr CallNextHookEx(IntPtr hhook, int code, IntPtr wparam, IntPtr lparam);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal extern static int DrawText(IntPtr hdc, string lpString, int nCount, ref RECT lpRect, DrawTextFormatFlags flags);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal extern static IntPtr GetDlgItem(IntPtr hDlg, int nControlID);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+        internal extern static int InvalidateRect(IntPtr hWnd,  ref RECT rc, int bErase);
+		[DllImport("user32.dll", CharSet=CharSet.Auto)]
+		internal extern static int InvalidateRect(IntPtr hWnd,  IntPtr rc, int bErase);
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern bool WaitMessage();
+
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern bool PeekMessage(ref MESSAGE msg, int hWnd, int wFilterMin, int wFilterMax, PeekMessageFlags flags);
+
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern bool GetMessage(ref MESSAGE msg, int hWnd, int wFilterMin, int wFilterMax);
+
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern bool TranslateMessage(ref MESSAGE msg);
+
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern bool DispatchMessage(ref MESSAGE msg);
+
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern IntPtr LoadCursor(IntPtr hInstance, CursorType cursor);
+
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern IntPtr SetCursor(IntPtr hCursor);
+
+		[DllImport("User32.dll", CharSet=CharSet.Auto)]
+		internal static extern IntPtr BeginPaint(IntPtr hWnd, ref PAINTSTRUCT ps);
+
+		[DllImport("User32.dl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值