+/* All Win32 headers depend on the huge windows.h recursive include.\r
+ * Note: Lower-case header names are used, for best cross-platform\r
+ * compatibility.\r
+ */\r
+#if !defined(_WIN32_WCE)\r
+# include <windows.h>\r
+# include <windowsx.h>\r
+# include <mmsystem.h>\r
+/* CYGWIN does not have tchar.h, but has TEXT(x), defined in winnt.h. */\r
+# ifndef __CYGWIN__\r
+# include <tchar.h>\r
+# else\r
+# define _TEXT(x) TEXT(x)\r
+# define _T(x) TEXT(x)\r
+# endif\r
+\r
+#endif\r
+\r
+\r
+\r
+typedef struct tagSFG_PlatformDisplay SFG_PlatformDisplay;\r
+struct tagSFG_PlatformDisplay\r
+{\r
+ HINSTANCE Instance; /* The application's instance */\r
+ DEVMODE DisplayMode; /* Desktop's display settings */\r
+ char *DisplayName; /* Display name for multi display support*/ \r
+};\r
+\r
+/*\r
+ * Make "freeglut" window handle and context types so that we don't need so\r
+ * much conditionally-compiled code later in the library.\r
+ */\r
+typedef HWND SFG_WindowHandleType ;\r
+typedef HGLRC SFG_WindowContextType ;\r
+typedef struct tagSFG_PlatformContext SFG_PlatformContext;\r
+struct tagSFG_PlatformContext\r
+{\r
+ HDC Device; /* The window's device context */\r
+};\r
+\r
+\r
+/* Joystick-Specific Definitions */\r
+#if !defined(_WIN32_WCE)\r
+# define _JS_MAX_AXES 8\r
+typedef struct tagSFG_PlatformJoystick SFG_PlatformJoystick;\r
+struct tagSFG_PlatformJoystick\r
+{\r
+ JOYCAPS jsCaps;\r
+ JOYINFOEX js;\r
+ UINT js_id;\r
+};\r
+#endif\r
+\r
+\r
+\r
+/* Function to be called on exit */\r
+extern void (__cdecl *__glutExitFunc)( int return_value );\r