From acf47f1ff49de20ef8a55361b84c0515d839b282 Mon Sep 17 00:00:00 2001
From: Fraser <frassle@gmail.com>
Date: Thu, 20 Feb 2014 23:40:40 +0000
Subject: [PATCH] SetCursor function.

---
 Source/OpenTK/Platform/Windows/API.cs | 37 +++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/Source/OpenTK/Platform/Windows/API.cs b/Source/OpenTK/Platform/Windows/API.cs
index 0c010750..fc4a3a1b 100644
--- a/Source/OpenTK/Platform/Windows/API.cs
+++ b/Source/OpenTK/Platform/Windows/API.cs
@@ -1101,6 +1101,43 @@ namespace OpenTK.Platform.Windows
             uint cbSize, MouseMovePoint* pointsIn, 
             MouseMovePoint* pointsBufferOut, int nBufPoints, uint resolution);
 
+        /// <summary>
+        /// Sets the cursor shape.
+        /// </summary>
+        /// <param name="hCursor">
+        /// A handle to the cursor. The cursor must have been created by the 
+        /// CreateCursor function or loaded by the LoadCursor or LoadImage 
+        /// function. If this parameter is IntPtr.Zero, the cursor is removed 
+        /// from the screen.
+        /// </param>
+        /// <returns>
+        /// The return value is the handle to the previous cursor, if there was one.
+        /// 
+        /// If there was no previous cursor, the return value is null.
+        /// </returns>
+        /// <remarks>
+        /// The cursor is set only if the new cursor is different from the 
+        /// previous cursor; otherwise, the function returns immediately.
+        /// 
+        /// The cursor is a shared resource. A window should set the cursor 
+        /// shape only when the cursor is in its client area or when the window 
+        /// is capturing mouse input. In systems without a mouse, the window 
+        /// should restore the previous cursor before the cursor leaves the 
+        /// client area or before it relinquishes control to another window.
+        /// 
+        /// If your application must set the cursor while it is in a window, 
+        /// make sure the class cursor for the specified window's class is set 
+        /// to NULL. If the class cursor is not NULL, the system restores the 
+        /// class cursor each time the mouse is moved.
+        /// 
+        /// The cursor is not shown on the screen if the internal cursor 
+        /// display count is less than zero. This occurs if the application 
+        /// uses the ShowCursor function to hide the cursor more times than to 
+        /// show the cursor.
+        /// </remarks>
+        [DllImport("user32.dll")]
+        public static extern HCURSOR SetCursor(HCURSOR hCursor);
+
         #region Async input
 
         #region GetCursorPos