]> Pileus Git - ~andy/gtk/commitdiff
Add headers. Add section about ActiveIMM.
authorTor Lillqvist <tml@iki.fi>
Thu, 8 Nov 2001 20:57:18 +0000 (20:57 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Thu, 8 Nov 2001 20:57:18 +0000 (20:57 +0000)
2001-11-08  Tor Lillqvist  <tml@iki.fi>

* README.win32: Add headers. Add section about ActiveIMM.

* configure.in: Add --with-ie55 flag to specify the location of
the "IE55 libs and headers" package downloadable from Microsoft,
which contains, among other things, the Active IMM header dimm.h
and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
Require GLib 1.3.10.

* config.h.win32.in: New version, produced by merging two
configure-generated ones (for gcc and MSVC). Hopefully #defines
the same flags that the previous, hand-written one, did.

* gdk/Makefile.am
* gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.

* gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
stuff. Remove unused GdkIOClosure.

* gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
available).

* gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
for uuid.lib. (Does it really have to be this hard to use an
existing library with libtool? Probably I am missing something.)

16 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
README.win32
config.h.win32.in
configure.in
gdk/Makefile.am
gdk/win32/Makefile.am
gdk/win32/gdkevents-win32.c
gdk/win32/libie55uuid.la [new file with mode: 0644]
gdk/win32/libwntab32x.la [new file with mode: 0644]
gdk/win32/surrogate-dimm.h [deleted file]

index f29951a500b9d137706a82206bb00cfd59ac93d4..39fbf9a9a2df9c9e8beef19a5be5436fe6616bfd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2001-11-08  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Add headers. Add section about ActiveIMM.
+
+       * configure.in: Add --with-ie55 flag to specify the location of
+       the "IE55 libs and headers" package downloadable from Microsoft,
+       which contains, among other things, the Active IMM header dimm.h
+       and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+       Require GLib 1.3.10.
+       
+       * config.h.win32.in: New version, produced by merging two
+       configure-generated ones (for gcc and MSVC). Hopefully #defines
+       the same flags that the previous, hand-written one, did.
+
+       * gdk/Makefile.am
+       * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+       * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+       stuff. Remove unused GdkIOClosure.
+
+       * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+       available).
+
+       * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+       for uuid.lib. (Does it really have to be this hard to use an
+       existing library with libtool? Probably I am missing something.)
+
 2001-11-08  Darin Adler  <darin@bentspoon.com>
 
        * gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
index f29951a500b9d137706a82206bb00cfd59ac93d4..39fbf9a9a2df9c9e8beef19a5be5436fe6616bfd 100644 (file)
@@ -1,3 +1,30 @@
+2001-11-08  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Add headers. Add section about ActiveIMM.
+
+       * configure.in: Add --with-ie55 flag to specify the location of
+       the "IE55 libs and headers" package downloadable from Microsoft,
+       which contains, among other things, the Active IMM header dimm.h
+       and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+       Require GLib 1.3.10.
+       
+       * config.h.win32.in: New version, produced by merging two
+       configure-generated ones (for gcc and MSVC). Hopefully #defines
+       the same flags that the previous, hand-written one, did.
+
+       * gdk/Makefile.am
+       * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+       * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+       stuff. Remove unused GdkIOClosure.
+
+       * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+       available).
+
+       * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+       for uuid.lib. (Does it really have to be this hard to use an
+       existing library with libtool? Probably I am missing something.)
+
 2001-11-08  Darin Adler  <darin@bentspoon.com>
 
        * gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
index f29951a500b9d137706a82206bb00cfd59ac93d4..39fbf9a9a2df9c9e8beef19a5be5436fe6616bfd 100644 (file)
@@ -1,3 +1,30 @@
+2001-11-08  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Add headers. Add section about ActiveIMM.
+
+       * configure.in: Add --with-ie55 flag to specify the location of
+       the "IE55 libs and headers" package downloadable from Microsoft,
+       which contains, among other things, the Active IMM header dimm.h
+       and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+       Require GLib 1.3.10.
+       
+       * config.h.win32.in: New version, produced by merging two
+       configure-generated ones (for gcc and MSVC). Hopefully #defines
+       the same flags that the previous, hand-written one, did.
+
+       * gdk/Makefile.am
+       * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+       * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+       stuff. Remove unused GdkIOClosure.
+
+       * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+       available).
+
+       * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+       for uuid.lib. (Does it really have to be this hard to use an
+       existing library with libtool? Probably I am missing something.)
+
 2001-11-08  Darin Adler  <darin@bentspoon.com>
 
        * gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
index f29951a500b9d137706a82206bb00cfd59ac93d4..39fbf9a9a2df9c9e8beef19a5be5436fe6616bfd 100644 (file)
@@ -1,3 +1,30 @@
+2001-11-08  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Add headers. Add section about ActiveIMM.
+
+       * configure.in: Add --with-ie55 flag to specify the location of
+       the "IE55 libs and headers" package downloadable from Microsoft,
+       which contains, among other things, the Active IMM header dimm.h
+       and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+       Require GLib 1.3.10.
+       
+       * config.h.win32.in: New version, produced by merging two
+       configure-generated ones (for gcc and MSVC). Hopefully #defines
+       the same flags that the previous, hand-written one, did.
+
+       * gdk/Makefile.am
+       * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+       * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+       stuff. Remove unused GdkIOClosure.
+
+       * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+       available).
+
+       * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+       for uuid.lib. (Does it really have to be this hard to use an
+       existing library with libtool? Probably I am missing something.)
+
 2001-11-08  Darin Adler  <darin@bentspoon.com>
 
        * gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
index f29951a500b9d137706a82206bb00cfd59ac93d4..39fbf9a9a2df9c9e8beef19a5be5436fe6616bfd 100644 (file)
@@ -1,3 +1,30 @@
+2001-11-08  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Add headers. Add section about ActiveIMM.
+
+       * configure.in: Add --with-ie55 flag to specify the location of
+       the "IE55 libs and headers" package downloadable from Microsoft,
+       which contains, among other things, the Active IMM header dimm.h
+       and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+       Require GLib 1.3.10.
+       
+       * config.h.win32.in: New version, produced by merging two
+       configure-generated ones (for gcc and MSVC). Hopefully #defines
+       the same flags that the previous, hand-written one, did.
+
+       * gdk/Makefile.am
+       * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+       * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+       stuff. Remove unused GdkIOClosure.
+
+       * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+       available).
+
+       * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+       for uuid.lib. (Does it really have to be this hard to use an
+       existing library with libtool? Probably I am missing something.)
+
 2001-11-08  Darin Adler  <darin@bentspoon.com>
 
        * gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
index f29951a500b9d137706a82206bb00cfd59ac93d4..39fbf9a9a2df9c9e8beef19a5be5436fe6616bfd 100644 (file)
@@ -1,3 +1,30 @@
+2001-11-08  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Add headers. Add section about ActiveIMM.
+
+       * configure.in: Add --with-ie55 flag to specify the location of
+       the "IE55 libs and headers" package downloadable from Microsoft,
+       which contains, among other things, the Active IMM header dimm.h
+       and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+       Require GLib 1.3.10.
+       
+       * config.h.win32.in: New version, produced by merging two
+       configure-generated ones (for gcc and MSVC). Hopefully #defines
+       the same flags that the previous, hand-written one, did.
+
+       * gdk/Makefile.am
+       * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+       * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+       stuff. Remove unused GdkIOClosure.
+
+       * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+       available).
+
+       * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+       for uuid.lib. (Does it really have to be this hard to use an
+       existing library with libtool? Probably I am missing something.)
+
 2001-11-08  Darin Adler  <darin@bentspoon.com>
 
        * gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
index f29951a500b9d137706a82206bb00cfd59ac93d4..39fbf9a9a2df9c9e8beef19a5be5436fe6616bfd 100644 (file)
@@ -1,3 +1,30 @@
+2001-11-08  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Add headers. Add section about ActiveIMM.
+
+       * configure.in: Add --with-ie55 flag to specify the location of
+       the "IE55 libs and headers" package downloadable from Microsoft,
+       which contains, among other things, the Active IMM header dimm.h
+       and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+       Require GLib 1.3.10.
+       
+       * config.h.win32.in: New version, produced by merging two
+       configure-generated ones (for gcc and MSVC). Hopefully #defines
+       the same flags that the previous, hand-written one, did.
+
+       * gdk/Makefile.am
+       * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+       * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+       stuff. Remove unused GdkIOClosure.
+
+       * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+       available).
+
+       * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+       for uuid.lib. (Does it really have to be this hard to use an
+       existing library with libtool? Probably I am missing something.)
+
 2001-11-08  Darin Adler  <darin@bentspoon.com>
 
        * gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
index 0c527f01a09a36750a40c3381373423dd88931be..e4c091666dc6376084fedb1df803f3fc5f89c577 100644 (file)
@@ -10,12 +10,18 @@ until the CVS HEAD version is useable. (But note, the Win32 backend
 has never been claimed to be "production quality", although it works
 surprisingly well for the GIMP.)
 
+Building GTK+ on Win32
+======================
+
 There are two ways to build GTK+ for win32:
 
 1) Use the autoconf-generated configure script, and the resulting
 Makefiles (which use libtool and gcc to do the compilation). I use
 this myself, but it might be hell to setup correctly. 
 
+Personally I run configure with:
+CC='gcc -mpentium -fnative-struct' CPPFLAGS='-I/target/include' CFLAGS=-O2 LDFLAGS='-L/target/lib' ./configure --disable-static --prefix=/target --with-gdktarget=win32 --with-wintab=/src/wtkit126 --with-ie55=/src/workshop/ie55_lib --host=i386-pc-mingw32 --enable-maintainer-mode
+
 2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
 makefile.msc in gdk and gtk.
 
@@ -34,6 +40,9 @@ taking care of those makefiles. At times, we disagree a bit, and the
 msc makefiles might not produce compatible or identically named DLLs
 and import libraries as the autoconfiscated makefiles and libtool do.
 
+Using GTK+ on Win32
+===================
+
 To use GTK+ on Win32, you also need either one of the above mentioned
 compilers. Other compilers might work, but don't count on it. The same
 instructions on how to set up a correct version of gcc should also be
@@ -41,12 +50,26 @@ followed if you want to build applications that use GTk+ with gcc. For
 prebuilt developer packages (DLLs, import libraries, headers), see the
 above website.
 
+Multi-threaded use of GTK+ on Win32
+===================================
+
+Multi-threaded GTK+ programs might work in special simple cases, but
+not in general. Sorry. If you have all GTK+ and GDK calls in the same
+thread, it might work. Otherwise, probably not at all. Possible ways
+to fix this are being investigated.
+
+Wintab
+======
+
 The tablet support uses the Wintab API. The Wintab development kit can
 be downloaded from http://www.pointing.com. Pass the --with-wintab
 flag to configure if you use that. If you use nmake and you don't care
 for Wintab, undefine HAVE_WINTAB in config.h.win32 and remove
 references to the wntab32x library from the makefile before building.
 
+Libintl
+=======
+
 GTK wants to be built with the GNU "intl" library for
 internationalisation (i18n). Get the version ported to Win32 (not a
 very big deal) from the web site mentioned above. The "intl" library
@@ -59,4 +82,16 @@ Note that while the GNU gettext package is under the GPL, the "intl"
 part of it is under the LGPL (like GTK or GLib), as of
 gettext-0.10.40.
 
+ActiveIMM
+=========
+
+If you want to build a GTK+ that supports ActiveIMM (the Input Method
+Manager for non-EastAsia locales that can be used on Win9x/NT4), you
+need the dimm.h header file. That is somewhat difficult to find, but
+http://msdn.microsoft.com/downloads/samples/internet/wizard/ seems to
+be a good place to look nowadays. If you use autoconfiscated build,
+pass the --with-ie55 flag to configure specifyin the location of the
+ie55_lib directory created by downloading the IE5.5 headers and libs
+from the above URL.
+
 --Tor Lillqvist <tml@iki.fi>
index 58aaec2d58fcf5c49b4d8c941acd4323186601d7..f05267e3d7ddd3a2e8faa7d50d707852fffdea1d 100644 (file)
-/* config.h.win32.  Handcrafted for Microsoft C or mingw */
+/* config.h.win32.in. Merged from two versions generated by configure for gcc and MSVC.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
+/* acconfig.h
+   This file is in the public domain.
 
-#if ! (defined(_MSC_VER) || defined(__GNUC__))
-#error Unrecognized Win32 compiler, edit config.h.win32 by hand
-#endif
+   Descriptive text for the C preprocessor macros that
+   the distributed Autoconf macros can define.
+   No software package will use all of them; autoheader copies the ones
+   your configure.in uses into your configuration header file templates.
 
-/* Define if using alloca.c.  */
-/* #undef C_ALLOCA */
+   The entries are in sort -df order: alphabetical, case insensitive,
+   ignoring punctuation (such as underscores).  Although this order
+   can split up related entries, it makes it easier to check whether
+   a given entry is in the file.
 
-/* Define to empty if the keyword does not work.  */
-/* #undef const */
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
-   This function is required for alloca.c support on those systems.  */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define if you have alloca, as a function or macro.  */
-#define HAVE_ALLOCA 1
-#ifndef alloca
-  #ifdef _MSC_VER
-    #define alloca _alloca
-  #elif defined (__GNUC__)
-    #define alloca __builtin_alloca
-  #endif
-#endif
-
-/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define if you have a working `mmap' system call.  */
-/* #undef HAVE_MMAP */
-
-/* Define to empty, or __inline if that's what your compiler wants.  */
-#define inline __inline
-
-/* Define to `long' if <sys/types.h> doesn't define.  */
-/* #undef off_t */
-
-/* Define if you need to in order for stat and other things to work.  */
-/* #undef _POSIX_SOURCE*/
-
-/* Define as the return type of signal handlers (int or void).  */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if <sys/types.h> doesn't define.  */
-/* #undef size_t */
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-/* #undef STACK_DIRECTION */
-
-/* Define if you have the ANSI C header files.  */
-#define STDC_HEADERS 1
+   Leave the following blank line there!!  Autoheader needs it.  */
+\f
 
 /* Other stuff */
 #define ENABLE_NLS 1
-#define GTK_COMPILED_WITH_DEBUGGING "minimum"
+#define GTK_COMPILED_WITH_DEBUGGING "yes"
 
 /* #undef HAVE_CATGETS */
-/* #undef HAVE_DIRENT_H */
+/* #undef HAVE_DIMM_H */
+#define HAVE_DIRENT_H 1 /* MSVC users: include it from build/win32/dirent */
 #define HAVE_GETTEXT 1
 /* #undef HAVE_IPC_H */
 /* #undef HAVE_LC_MESSAGES */
+#define HAVE_PROGRESSIVE_JPEG 1
 /* #undef HAVE_PWD_H */
 /* #undef HAVE_SHM_H */
 /* #undef HAVE_STPCPY */
 /* #undef HAVE_XSHM_H */
-#define HAVE_SHAPE_EXT 1
+/* #undef HAVE_SHAPE_EXT */
 /* #undef HAVE_SYS_SELECT_H */
+#ifndef _MSC_VER
+#define HAVE_SYS_TIME_H 1
+#else /* _MSC_VER */
 /* #undef HAVE_SYS_TIME_H */
+#endif /* _MSC_VER */
+#define HAVE_WINSOCK_H 1
+#define HAVE_WINTAB 1
 /* #undef HAVE_XCONVERTCASE */
+/* #undef HAVE_XFT */
+
+#define NO_FD_SET 1
+
+/* #undef RESOURCE_BASE */
 
-/* #undef NO_FD_SET */
+#ifndef _MSC_VER
+#define USE_GMODULE 1
+#define USE_MMX 1
+#endif
+
+/* Define to use X11R6 additions to XIM */
+/* #undef USE_X11R6_XIM */
+
+/* Define to use XKB extension */
+/* #undef HAVE_XKB */
+
+/* Define to use shadowfb in the linux-fb port */
+/* #undef ENABLE_SHADOW_FB */
+
+/* Define to use a fb manager in the linux-fb port */
+/* #undef ENABLE_FB_MANAGER */
 
 /* #undef XINPUT_NONE */
 /* #undef XINPUT_GXI */
 /* #undef XINPUT_XFREE */
-#define XINPUT_WIN32 1
 
 /* Define as the return type of signal handlers (int or void).  */
 #define RETSIGTYPE void
 
-/* Define if you have the __argz_count function.  */
-/* #undef HAVE___ARGZ_COUNT */
+/* Most machines will be happy with int or void.  IRIX requires '...' */
+/* #undef SIGNAL_ARG_TYPE */
 
-/* Define if you have the __argz_next function.  */
-/* #undef HAVE___ARGZ_NEXT */
+#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
 
-/* Define if you have the __argz_stringify function.  */
-/* #undef HAVE___ARGZ_STRINGIFY */
+/* #undef PACKAGE */
+/* #undef VERSION */
+
+\f
+/* Leave that blank line there!!  Autoheader needs it.
+   If you're adding to this file, keep in mind:
+   The entries are in sort -df order: alphabetical, case insensitive,
+   ignoring punctuation (such as underscores).  */
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+   systems. This function is required for `alloca.c' support on those systems.
+   */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define if using `alloca.c'. */
+/* #undef C_ALLOCA */
 
-/* Define if you have the broken_wctype function.  */
+/* Define if you have `alloca', as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define if you have the <argz.h> header file. */
+/* #undef HAVE_ARGZ_H */
+
+/* Define if you have the `bind_textdomain_codeset' function. */
+/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */
+
+/* Is the wctype implementation broken */
 /* #undef HAVE_BROKEN_WCTYPE */
 
-/* Define if you have the dcgettext function.  */
-/* #undef HAVE_DCGETTEXT */
+/* Define if you have the `dcgettext' function. */
+#define HAVE_DCGETTEXT 1
+
+/* Define if you have the <dimm.h> header file. */
+/* #undef HAVE_DIMM_H */
 
-/* Define if you have the getcwd function.  */
+/* Define if you have the <dirent.h> header file, and it defines `DIR'. */
+#define HAVE_DIRENT_H 1
+
+/* Define if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define if you have the `getcwd' function. */
 #define HAVE_GETCWD 1
 
-/* Define if you have the getpagesize function.  */
+/* Define if you have the `getpagesize' function. */
+#ifndef _MSC_VER
 #define HAVE_GETPAGESIZE 1
+#else /* _MSC_VER */
+/* #undef HAVE_GETPAGESIZE */
+#endif /* _MSC_VER */
+
+/* Define if you have the `getresuid' function. */
+/* #undef HAVE_GETRESUID */
+
+/* Define if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+/* #undef HAVE_LC_MESSAGES */
 
-/* Define if you have the lstat function.  */
+/* Define if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the `lstat' function. */
 /* #undef HAVE_LSTAT */
 
-/* Define if you have the munmap function.  */
+/* Define if you have the <malloc.h> header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if you have the `mkstemp' function. */
+/* #undef HAVE_MKSTEMP */
+
+/* Define if you have a working `mmap' system call. */
+/* #undef HAVE_MMAP */
+
+/* Define if you have the `munmap' function. */
 /* #undef HAVE_MUNMAP */
 
-/* Define if you have the putenv function.  */
+/* Define if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define if you have the <nl_types.h> header file. */
+/* #undef HAVE_NL_TYPES_H */
+
+/* Define if you have the `putenv' function. */
 #define HAVE_PUTENV 1
-#define putenv _putenv
 
-/* Define if you have the setenv function.  */
+/* Define if you have the <pwd.h> header file. */
+/* #undef HAVE_PWD_H */
+
+/* Define if you have the `setenv' function. */
 /* #undef HAVE_SETENV */
 
-/* Define if you have the setlocale function.  */
+/* Define if you have the `setlocale' function. */
 #define HAVE_SETLOCALE 1
 
-/* Define if you have the stpcpy function.  */
-/* #undef HAVE_STPCPY */
+/* Define if you have the `sigsetjmp' function. */
+/* #undef HAVE_SIGSETJMP */
 
-/* Define if you have the strcasecmp function.  */
+/* Define if you have the <stdint.h> header file. */
+#ifndef _MSC_VER
+#define HAVE_STDINT_H 1
+#else /* _MSC_VER */
+/* #undef HAVE_STDINT_H */
+#endif /* _MSC_VER */
+
+/* Define if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define if you have the `strcasecmp' function. */
+#ifndef _MSC_VER
 #define HAVE_STRCASECMP 1
-#define strcasecmp _stricmp
+#else /* _MSC_VER */
+/* #undef HAVE_STRCASECMP */
+#endif /* _MSC_VER */
 
-/* Define if you have the strchr function.  */
+/* Define if you have the `strchr' function. */
 #define HAVE_STRCHR 1
 
-/* Define if you have the strdup function.  */
+/* Define if you have the `strdup' function. */
 #define HAVE_STRDUP 1
 
-/* Define if you have the <argz.h> header file.  */
-/* #undef HAVE_ARGZ_H */
-
-/* Define if you have the <dirent.h> header file.  */
-/* #undef HAVE_DIRENT_H */
+/* Define if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
 
-/* Define if you have the <limits.h> header file.  */
-#define HAVE_LIMITS_H 1
+/* Define if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
 
-/* Define if you have the <locale.h> header file.  */
-#define HAVE_LOCALE_H 1
+/* Define if you have the <sys/dir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_SYS_DIR_H */
 
-/* Define if you have the <malloc.h> header file.  */
-#define HAVE_MALLOC_H 1
+/* Define if you have the <sys/ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_SYS_NDIR_H */
 
-/* Define if you have the <nl_types.h> header file.  */
-/* #undef HAVE_NL_TYPES_H */
+/* Define if you have the <sys/param.h> header file. */
+/* #undef HAVE_SYS_PARAM_H */
 
-/* Define if you have the <pwd.h> header file.  */
-/* #undef HAVE_PWD_H */
+/* Define if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
 
-/* Define if you have the <string.h> header file.  */
-#define HAVE_STRING_H 1
+/* Define if you have the <sys/time.h> header file. */
+#ifndef _MSC_VER
+#define HAVE_SYS_TIME_H 1
+#else /* _MSC_VER */
+/* #undef HAVE_SYS_TIME_H */
+#endif /* _MSC_VER */
 
-/* Define if you have the <sys/param.h> header file.  */
-/* #undef HAVE_SYS_PARAM_H */
+/* Define if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
 
-/* Define if you have the <sys/time.h> header file.  */
-/* #undef HAVE_SYS_TIME_H */
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
+/* #undef HAVE_SYS_WAIT_H */
 
-/* Define if you have the <unistd.h> header file.  */
+/* Define if you have the <unistd.h> header file. */
+#ifndef _MSC_VER
+#define HAVE_UNISTD_H 1
+#else /* _MSC_VER */
 /* #undef HAVE_UNISTD_H */
+#endif /* _MSC_VER */
 
-/* Define if you have the <wchar.h> header file.  */
+/* Have wchar.h include file */
 #define HAVE_WCHAR_H 1
 
-/* Define if you have the <wctype.h> header file.  */
-#ifdef _MSC_VER
+/* Have wctype.h include file */
 #define HAVE_WCTYPE_H 1
-#endif /* _MSC_VER */
 
-/* Define if you have the i library (-li).  */
-/* #undef HAVE_LIBI */
+/* Define if you have the <winsock.h> header file. */
+#define HAVE_WINSOCK_H 1
 
-/* Define if you have the intl library (-lintl).  */
-#define HAVE_LIBINTL 1
+/* Define if you have the `__argz_count' function. */
+/* #undef HAVE___ARGZ_COUNT */
 
-/* define if compiled symbols have a leading underscore */
-/* #undef WITH_SYMBOL_UNDERSCORE */
+/* Define if you have the `__argz_next' function. */
+/* #undef HAVE___ARGZ_NEXT */
 
-/* Define if you have the Wintab programmer's kit */
-#define HAVE_WINTAB 1
+/* Define if you have the `__argz_stringify' function. */
+/* #undef HAVE___ARGZ_STRINGIFY */
 
-/* Define if you have the <dimm.h> header file
- * (available in the Platform SDK)
-*/
-/* #define HAVE_DIMM_H 1 */
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
 
-#ifndef _MSC_VER
-#define USE_GMODULE 1
-#define USE_MMX 1
-#endif
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+        STACK_DIRECTION > 0 => grows toward higher addresses
+        STACK_DIRECTION < 0 => grows toward lower addresses
+        STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
 
-/* #undef HAVE_SIGSETJMP */
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
 
-#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define gid_t int
+
+/* Define as `__inline' if that's what the C compiler calls it, or to nothing
+   if it is not supported. */
+/* #undef inline */
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define uid_t int
index 37f121a132a833f3c7e97806e06b969b3c87f78d..ec5a8ce06fa2435b5a27b016f3d3c3fc33a0fa9f 100644 (file)
@@ -173,6 +173,7 @@ AC_ARG_ENABLE(rebuilds, [  --disable-rebuilds      disable all source autogenera
 AC_ARG_WITH(xinput, [  --with-xinput=[no/gxi/xfree] support XInput ])
 
 AC_ARG_WITH(wintab, [  --with-wintab=DIRECTORY use Wintab API with win32 backend])
+AC_ARG_WITH(ie55, [  --with-ie55=DIRECTORY IE5.5 libs and headers (for Active IMM)])
 
 GLIB_AC_DIVERT_BEFORE_HELP([
 if test "$platform_win32" = yes; then
@@ -182,7 +183,7 @@ else
 fi
 ])
 
-AC_ARG_WITH(gdktarget, [  --with-gdktarget=[x11/linux-fb/win32] select GDK target [default=$gdktarget]],
+AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
        gdktarget=$with_gdktarget)
 
 AC_SUBST(gdktarget)
@@ -394,7 +395,43 @@ AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
 AC_CHECK_HEADERS(winsock.h, AC_DEFINE(HAVE_WINSOCK_H))
-AC_CHECK_HEADERS(dimm.h, AC_DEFINE(HAVE_DIMM_H))
+
+if test "${with_ie55+set}" = set && test $with_ie55 != no; then
+  AC_MSG_CHECKING([for dimm.h])
+  saved_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
+  AC_TRY_COMPILE([#include <windows.h>
+#include <objbase.h>
+#ifdef __GNUC__
+/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
+#define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
+#define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
+#include <imm.h>
+#undef IMEMENUITEMINFOA
+#undef IMEMENUITEMINFOW
+#endif
+#include <dimm.h>
+],
+   [],
+   [AC_MSG_RESULT(yes)
+    AC_MSG_CHECKING([for IE55 uuid.lib])
+    if test -f $with_ie55/Lib/uuid.lib ; then
+      AC_MSG_RESULT(yes)
+      have_ie55=yes
+      AC_DEFINE(HAVE_DIMM_H)
+      IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
+      AC_SUBST(IE55_UUID_LIB)
+    else
+      AC_MSG_RESULT(no)
+      CFLAGS="$saved_CFLAGS"
+      have_ie55=no
+    fi
+    ],
+   [AC_MSG_RESULT(no)
+    CFLAGS="$saved_CFLAGS"
+    have_ie55=no])
+fi
+AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
 
 if test "${with_wintab+set}" = set && test $with_wintab != no; then
   AC_MSG_CHECKING([for wintab.h])
@@ -404,18 +441,22 @@ if test "${with_wintab+set}" = set && test $with_wintab != no; then
 #include <wintab.h>], 
    [],
    [AC_MSG_RESULT(yes)
+    AC_MSG_CHECKING([for wntab32x.lib])
     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
+      AC_MSG_RESULT(yes)
       have_wintab=yes
       AC_DEFINE(HAVE_WINTAB)
       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
       AC_SUBST(WINTAB_LIB)
     else
+      AC_MSG_RESULT(no)
+      CFLAGS="$saved_cflags"
       have_wintab=no
     fi
     ],
    [AC_MSG_RESULT(no)
+    CFLAGS="$saved_cflags"
     have_wintab=no])
-  CFLAGS="$saved_cflags"
 fi
 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
 
index 56d8b48e932f9e6a2f505a6c44879da202f79c46..cea103a9ceb7b99089c24fba4011c7466d6bc5cf 100644 (file)
@@ -30,6 +30,10 @@ no_undefined = -no-undefined
 if HAVE_WINTAB
 wintab_lib = -Lwin32 -lwntab32x
 endif
+
+if HAVE_IE55
+ie55uuid_lib = -Lwin32 -lie55uuid
+endif
 endif
 
 if OS_WIN32
@@ -170,7 +174,7 @@ if USE_WIN32
 libgdk_win32_includedir = $(includedir)/gtk-2.0/gdk
 
 libgdk_win32_1_3_la_LIBADD = \
-       $(gtarget)/libgdk-$(gtarget).la $(wintab_lib)
+       $(gtarget)/libgdk-$(gtarget).la $(wintab_lib) $(ie55uuid_lib)
 
 libgdk_win32_include_HEADERS = $(gdk_headers)
 libgdk_win32_1_3_la_SOURCES = $(gdk_c_sources) gdkenumtypes.c
index 7a6a5d311f529e19bc59057084a0065da101b85d..6990dd230bffe4a1d37c8419d19078358a7704db 100644 (file)
@@ -19,19 +19,30 @@ LDADDS = @STRIP_BEGIN@              \
 @STRIP_END@
 
 if HAVE_WINTAB
-noinst_DATA = .libs/libwntab32x.a
+libwntab32x_a = .libs/libwntab32x.a
 
 .libs/libwntab32x.a: @WINTAB_LIB@
        cp $< $@
 endif
 
+if HAVE_IE55
+libie55uuid_a = .libs/libie55uuid.a
+
+.libs/libie55uuid.a: @IE55_UUID_LIB@
+       cp $< $@
+endif
+
+noinst_DATA = $(libwntab32x_a) $(libie55uuid_a)
+
 noinst_LTLIBRARIES = libgdk-win32.la
 
 SUBDIRS=rc
 
 EXTRA_DIST = \
-       makefile.mingw \
-       makefile.msc
+       makefile.mingw  \
+       makefile.msc    \
+       libie55uuid.la  \
+       libwntab32x.la
 
 libgdk_win32_la_SOURCES = \
        bdfcursor.c \
@@ -63,8 +74,7 @@ libgdk_win32_la_SOURCES = \
        gdkwin32.h \
        gdkwin32id.c \
        gdkwindow-win32.c \
-       gdkwindow-win32.h \
-       surrogate-dimm.h
+       gdkwindow-win32.h
 
 libgdkinclude_HEADERS =                \
        gdkwin32.h
index fcffdf1bd4a2e93cd1547d50c1082a6e03f09ef1..1f52166f427f6177577f1387c2ac3448e933a221 100644 (file)
 #include "gdkkeysyms.h"
 
 #include <objbase.h>
+
+#if defined (__GNUC__) && defined (HAVE_DIMM_H)
+/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
+# define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
+# define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
+#endif
+
 #include <imm.h>
 
+#if defined (__GNUC__) && defined (HAVE_DIMM_H)
+# undef IMEMENUITEMINFOA
+# undef IMEMENUITEMINFOW
+#endif
+
 #ifdef HAVE_DIMM_H
 #include <dimm.h>
-#else
-#include "surrogate-dimm.h"
 #endif
 
 
-typedef struct _GdkIOClosure GdkIOClosure;
 typedef struct _GdkEventPrivate GdkEventPrivate;
 
 typedef enum
@@ -65,14 +74,6 @@ typedef enum
   GDK_EVENT_PENDING = 1 << 0
 } GdkEventFlags;
 
-struct _GdkIOClosure
-{
-  GdkInputFunction function;
-  GdkInputCondition condition;
-  GdkDestroyNotify notify;
-  gpointer data;
-};
-
 struct _GdkEventPrivate
 {
   GdkEvent event;
@@ -135,8 +136,10 @@ static UINT msh_mousewheel_msg;
 static gboolean ignore_wm_char = FALSE;
 static gboolean is_altgr_key = FALSE;
 
+#ifdef HAVE_DIMM_H
 static IActiveIMMApp *active_imm_app = NULL;
 static IActiveIMMMessagePumpOwner *active_imm_msgpump_owner = NULL;
+#endif
 
 typedef BOOL (WINAPI *PFN_TrackMouseEvent) (LPTRACKMOUSEEVENT);
 static PFN_TrackMouseEvent track_mouse_event = NULL;
@@ -255,11 +258,15 @@ real_window_procedure (HWND   hwnd,
     return ret_val;
   else
     {
+#ifndef HAVE_DIMM_H
+      return DefWindowProc (hwnd, message, wparam, lparam);
+#else
       if (active_imm_app == NULL
          || (*active_imm_app->lpVtbl->OnDefWindowProc) (active_imm_app, hwnd, message, wparam, lparam, &lres) == S_FALSE)
        return DefWindowProc (hwnd, message, wparam, lparam);
       else
        return lres;
+#endif
     }
 }
 
@@ -313,6 +320,7 @@ _gdk_events_init (void)
   g_source_set_can_recurse (source, TRUE);
   g_source_attach (source, NULL);
 
+#ifdef HAVE_DIMM_H
   hres = CoCreateInstance (&CLSID_CActiveIMM,
                           NULL,
                           CLSCTX_ALL,
@@ -330,6 +338,7 @@ _gdk_events_init (void)
                                 active_imm_msgpump_owner));
       (active_imm_msgpump_owner->lpVtbl->Start) (active_imm_msgpump_owner);
     }
+#endif
 
 #ifdef USE_TRACKMOUSEEVENT
   user32 = GetModuleHandle ("user32.dll");
@@ -3155,10 +3164,13 @@ _gdk_events_queue (void)
     {
       GDK_NOTE (EVENTS, g_print ("PeekMessage: %#lx %s\n",
                                 (gulong) msg.hwnd, gdk_win32_message_name (msg.message)));
-
+#ifndef HAVE_DIMM_H
+      TranslateMessage (&msg);
+#else
       if (active_imm_msgpump_owner == NULL
          || (active_imm_msgpump_owner->lpVtbl->OnTranslateMessage) (active_imm_msgpump_owner, &msg) != S_OK)
        TranslateMessage (&msg);
+#endif
 
 #if 1 /* It was like this all the time */
       DispatchMessage (&msg);
diff --git a/gdk/win32/libie55uuid.la b/gdk/win32/libie55uuid.la
new file mode 100644 (file)
index 0000000..9727d43
--- /dev/null
@@ -0,0 +1,31 @@
+# libie55uuid.la - a libtool library file
+# Generated by hand, compatible with libtool
+# Just a wrapper for libie55uuid.a, which is just a copy of the IE55 toolkit's
+# uuid.lib
+#
+# The name that we can dlopen(3).
+dlname=''
+
+# Names of this library.
+library_names=''
+
+# The name of the static archive.
+old_library='libie55uuid.a'
+
+# Libraries that this one depends upon.
+dependency_libs=''
+
+# Version information
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir=''
diff --git a/gdk/win32/libwntab32x.la b/gdk/win32/libwntab32x.la
new file mode 100644 (file)
index 0000000..b98c1fe
--- /dev/null
@@ -0,0 +1,30 @@
+# libwntab32x.la - a libtool library file
+# Generated by hand, compatible with libtool
+# Just a wrapper for libwntab32x.a, which is just a copy of wntab32x.lib
+#
+# The name that we can dlopen(3).
+dlname=''
+
+# Names of this library.
+library_names=''
+
+# The name of the static archive.
+old_library='libwntab32x.a'
+
+# Libraries that this one depends upon.
+dependency_libs=''
+
+# Version information
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir=''
diff --git a/gdk/win32/surrogate-dimm.h b/gdk/win32/surrogate-dimm.h
deleted file mode 100644 (file)
index 5d773fc..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#ifndef __SURROGATE_DIMM_H__
-#define __SURROGATE_DIMM_H__
-
-/* The Win32api headers doesn't include <dimm.h>, thus we need
- * this file, which covers just the stuff we need from <dimm.h>.
- */
-
-typedef struct IActiveIMMApp IActiveIMMApp;
-typedef struct IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner;
-
-/* Dummy vtable structs that contain real names and arg lists for
- * only those methods we need.
- */
-typedef struct {
-  HRESULT (__stdcall *QueryInterface) (IActiveIMMApp *This,
-                                      REFIID riid,
-                                      void *ppvObject);
-  /* Dummy method prototypes for those we don't use */
-  ULONG (__stdcall *dummy_AddRef)();
-  ULONG (__stdcall *dummy_Release)();
-  HRESULT (__stdcall *dummy_AssociateContext)();
-  HRESULT (__stdcall *dummy_ConfigureIMEA)();
-  HRESULT (__stdcall *dummy_ConfigureIMEW)();
-  HRESULT (__stdcall *dummy_CreateContext)();
-  HRESULT (__stdcall *dummy_DestroyContext)();
-  HRESULT (__stdcall *dummy_EnumRegisterWordA)();
-  HRESULT (__stdcall *dummy_EnumRegisterWordW)();
-  HRESULT (__stdcall *dummy_EscapeA)();
-  HRESULT (__stdcall *dummy_EscapeW)();
-  HRESULT (__stdcall *dummy_GetCandidateListA)();
-  HRESULT (__stdcall *dummy_GetCandidateListW)();
-  HRESULT (__stdcall *dummy_GetCandidateListCountA)();
-  HRESULT (__stdcall *dummy_GetCandidateListCountW)();
-  HRESULT (__stdcall *dummy_GetCandidateWindow)();
-  HRESULT (__stdcall *dummy_GetCompositionFontA)();
-  HRESULT (__stdcall *dummy_GetCompositionFontW)();
-  HRESULT (__stdcall *dummy_GetCompositionStringA)();
-  HRESULT (__stdcall *dummy_GetCompositionStringW)();
-  HRESULT (__stdcall *dummy_GetCompositionWindow)();
-  HRESULT (__stdcall *dummy_GetContext)();
-  HRESULT (__stdcall *dummy_GetConversionListA)();
-  HRESULT (__stdcall *dummy_GetConversionListW)();
-  HRESULT (__stdcall *dummy_GetConversionStatus)();
-
-  HRESULT (__stdcall *GetDefaultIMEWnd)(IActiveIMMApp *This,
-                                       HWND hWnd,
-                                       HWND *phDefWnd);
-
-  HRESULT (__stdcall *dummy_GetDescriptionA)();
-  HRESULT (__stdcall *dummy_GetDescriptionW)();
-  HRESULT (__stdcall *dummy_GetGuideLineA)();
-  HRESULT (__stdcall *dummy_GetGuideLineW)();
-  HRESULT (__stdcall *dummy_GetIMEFileNameA)();
-  HRESULT (__stdcall *dummy_GetIMEFileNameW)();
-  HRESULT (__stdcall *dummy_GetOpenStatus)();
-  HRESULT (__stdcall *dummy_GetProperty)();
-  HRESULT (__stdcall *dummy_GetRegisterWordStyleA)();
-  HRESULT (__stdcall *dummy_GetRegisterWordStyleW)();
-  HRESULT (__stdcall *dummy_GetStatusWindowPos)();
-  HRESULT (__stdcall *dummy_GetVirtualKey)();
-  HRESULT (__stdcall *dummy_InstallIMEA)();
-  HRESULT (__stdcall *dummy_InstallIMEW)();
-
-  HRESULT (__stdcall *IsIME)(IActiveIMMApp *This,
-                            HKL hKL);
-  HRESULT (__stdcall *IsUIMessageA )(IActiveIMMApp *This,
-                                    HWND hWndIME,
-                                    UINT msg,
-                                    WPARAM wParam,
-                                    LPARAM lParam);
-  HRESULT (__stdcall *dummy_IsUIMessageW)();
-  HRESULT (__stdcall *dummy_NotifyIME)();
-  HRESULT (__stdcall *dummy_RegisterWordA)();
-  HRESULT (__stdcall *dummy_RegisterWordW)();
-  HRESULT (__stdcall *dummy_ReleaseContext)();
-  HRESULT (__stdcall *dummy_SetCandidateWindow)();
-  HRESULT (__stdcall *dummy_SetCompositionFontA)();
-  HRESULT (__stdcall *dummy_SetCompositionFontW)();
-  HRESULT (__stdcall *dummy_SetCompositionStringA)();
-  HRESULT (__stdcall *dummy_SetCompositionStringW)();
-  HRESULT (__stdcall *dummy_SetCompositionWindow)();
-  HRESULT (__stdcall *dummy_SetConversionStatus)();
-  HRESULT (__stdcall *dummy_SetOpenStatus)();
-  HRESULT (__stdcall *dummy_SetStatusWindowPos)();
-  HRESULT (__stdcall *dummy_SimulateHotKey)();
-  HRESULT (__stdcall *dummy_UnregisterWordA)();
-  HRESULT (__stdcall *dummy_UnregisterWordW)();
-
-  HRESULT (__stdcall *Activate)(IActiveIMMApp *This,
-                               BOOL restore);
-  HRESULT (__stdcall *Deactivate)(IActiveIMMApp *This);
-  HRESULT (__stdcall *OnDefWindowProc)(IActiveIMMApp *This,
-                                      HWND hWnd,
-                                      UINT Msg,
-                                      WPARAM wParam,
-                                      LPARAM lParam,
-                                      LRESULT *plResult);
-
-  HRESULT (__stdcall *dummy_FilterClientWindows)();
-
-  HRESULT (__stdcall *GetCodePageA)(IActiveIMMApp *This,
-                                   HKL hKL,
-                                   UINT *uCodePage);
-  HRESULT (__stdcall *GetLangId)(IActiveIMMApp *This,
-                                HKL hKL,
-                                LANGID *plid);
-
-  HRESULT (__stdcall *dummy_AssociateContextEx)();
-  HRESULT (__stdcall *dummy_DisableIME)();
-  HRESULT (__stdcall *dummy_GetImeMenuItemsA)();
-  HRESULT (__stdcall *dummy_GetImeMenuItemsW)();
-  HRESULT (__stdcall *dummy_EnumInputContext)();
-} IActiveIMMAppVtbl;
-
-struct IActiveIMMApp {
-  IActiveIMMAppVtbl *lpVtbl;
-};
-
-typedef struct {
-  HRESULT (__stdcall *dummy_QueryInterface)();
-  ULONG (__stdcall *dummy_AddRef)();
-  ULONG (__stdcall *dummy_Release)();
-
-  HRESULT (__stdcall *Start)(IActiveIMMMessagePumpOwner *This);
-  HRESULT (__stdcall *End)(IActiveIMMMessagePumpOwner *This);
-  HRESULT (__stdcall *OnTranslateMessage)(IActiveIMMMessagePumpOwner *This,
-                                         MSG *pMSG);
-
-  HRESULT (__stdcall *dummy_Pause)();
-  HRESULT (__stdcall *dummy_Resume)();
-} IActiveIMMMessagePumpOwnerVtbl;
-
-struct IActiveIMMMessagePumpOwner {
-  IActiveIMMMessagePumpOwnerVtbl *lpVtbl;
-};
-
-static UUID CLSID_CActiveIMM = {
-  0x4955DD33, 0xB159, 0x11d0, { 0x8F,0xCF,0x00,0xAA,0x00,0x6B,0xCC,0x59 } };
-static IID IID_IActiveIMMApp = {
-  0x08C0E040, 0x62D1, 0x11D1, { 0x93,0x26,0x00,0x60,0xB0,0x67,0xB8,0x6E } };
-static IID IID_IActiveIMMMessagePumpOwner = {
-  0xB5CF2CFA, 0x8AEB, 0x11D1, { 0x93,0x64,0x00,0x60,0xB0,0x67,0xB8,0x6E } };
-
-#endif /* __SURROGATE_DIMM_H__ */