diff src/console-msw.h @ 249:83b3d10dcba9 r20-5b23

Import from CVS: tag r20-5b23
author cvs
date Mon, 13 Aug 2007 10:19:09 +0200
parents 52952cbfc5b5
children 677f6a0ee643
line wrap: on
line diff
--- a/src/console-msw.h	Mon Aug 13 10:18:22 2007 +0200
+++ b/src/console-msw.h	Mon Aug 13 10:19:09 2007 +0200
@@ -1,4 +1,4 @@
-/* Define mswindowsindows-specific console, device, and frame object for XEmacs.
+/* Define mswindows-specific console, device, and frame object for XEmacs.
    Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
    Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
 
@@ -35,6 +35,32 @@
 #include "console.h"
 
 #include "windows.h"
+#include "ddeml.h"	/* DDE management library */
+#include "shellapi.h"	/* FileManager/Explorer drag and drop */
+
+/*
+ * XXX FIXME: The following X modifier defs in events-mod.h clash with win32
+ * hotkey defs in winuser.h. For the moment lose the win32 versions.
+ * Maybe we should rename all of MOD_* to something that doesn't clash.
+ */
+#ifdef MOD_CONTROL
+#  undef MOD_CONTROL
+#endif  
+#ifdef MOD_ALT
+#  undef MOD_ALT
+#endif  
+#ifdef MOD_SHIFT
+#  undef MOD_SHIFT
+#endif  
+
+
+/* The name of the main window class */
+#define XEMACS_CLASS "XEmacs"
+
+
+/*
+ * Console
+ */
 
 DECLARE_CONSOLE_TYPE (mswindows);
 
@@ -44,6 +70,10 @@
 };
 
 
+/*
+ * Device
+ */
+
 struct mswindows_device
 {
   int logpixelsx, logpixelsy;
@@ -63,6 +93,10 @@
 #define DEVICE_MSWINDOWS_VERTSIZE(d) 	(DEVICE_MSWINDOWS_DATA (d)->vertsize)
 
 
+/*
+ * Frame
+ */
+
 struct mswindows_frame
 {
   /* win32 window handle */
@@ -99,10 +133,48 @@
 #define FRAME_MSWINDOWS_MENU_HASHTABLE(f) (FRAME_MSWINDOWS_DATA (f)->menu_hashtable)
 #define FRAME_MSWINDOWS_MENU_CHECKSUM(f)  (FRAME_MSWINDOWS_DATA (f)->menu_checksum)
 
+/* win32 window LONG indices */
+#define XWL_FRAMEOBJ	0
+#define XWL_COUNT	1	/* Number of LONGs that we use */
+#define MSWINDOWS_WINDOW_EXTRA_BYTES	(XWL_COUNT*4)
+
+
 /*
- * Redisplay functions
+ * Events
+ */
+
+/* win32 messages / magic event types */
+#define EVENT_MSWINDOWS_MAGIC_TYPE(e)	\
+	((e)->event.magic.underlying_mswindows_event)
+#define XM_BUMPQUEUE	(WM_USER + 101)
+#define XM_MAPFRAME	(WM_USER + 102)
+#define XM_UNMAPFRAME	(WM_USER + 103)
+
+
+/*
+ * Random globals
  */
+
+/* win32 "Windows" procedure */
+LRESULT WINAPI mswindows_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam,
+				   LPARAM lParam);
+
 void mswindows_redraw_exposed_area (struct frame *f, int x, int y, 
-			      int width, int height);
+				    int width, int height);
+
+/* win32 DDE management library */
+#define MSWINDOWS_DDE_ITEM_OPEN "Open"
+extern DWORD mswindows_dde_mlid;
+extern HSZ mswindows_dde_service;
+extern HSZ mswindows_dde_topic_system;
+extern HSZ mswindows_dde_item_open;
+HDDEDATA CALLBACK mswindows_dde_callback (UINT uType, UINT uFmt, HCONV hconv,
+					  HSZ hszTopic, HSZ hszItem, HDDEDATA hdata,
+					  DWORD dwData1, DWORD dwData2);
+
+void mswindows_enqueue_dispatch_event (Lisp_Object event);
+void mswindows_enqueue_magic_event (HWND hwnd, UINT message);
+Lisp_Object mswindows_cancel_dispatch_event (struct Lisp_Event* event);
+Lisp_Object mswindows_pump_outstanding_events (void);
 
 #endif /* _XEMACS_CONSOLE_MSW_H_ */