annotate src/syswindows.h @ 4952:19a72041c5ed

Mule-izing, various fixes related to char * arguments -------------------- ChangeLog entries follow: -------------------- modules/ChangeLog addition: 2010-01-26 Ben Wing <ben@xemacs.org> * postgresql/postgresql.c: * postgresql/postgresql.c (CHECK_LIVE_CONNECTION): * postgresql/postgresql.c (print_pgresult): * postgresql/postgresql.c (Fpq_conn_defaults): * postgresql/postgresql.c (Fpq_connectdb): * postgresql/postgresql.c (Fpq_connect_start): * postgresql/postgresql.c (Fpq_result_status): * postgresql/postgresql.c (Fpq_res_status): Mule-ize large parts of it. 2010-01-26 Ben Wing <ben@xemacs.org> * ldap/eldap.c (print_ldap): * ldap/eldap.c (allocate_ldap): Use write_ascstring(). src/ChangeLog addition: 2010-01-26 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (build_ascstring): * alloc.c (build_msg_cistring): * alloc.c (staticpro_1): * alloc.c (staticpro_name): * alloc.c (staticpro_nodump_1): * alloc.c (staticpro_nodump_name): * alloc.c (unstaticpro_nodump_1): * alloc.c (mcpro_1): * alloc.c (mcpro_name): * alloc.c (object_memory_usage_stats): * alloc.c (common_init_alloc_early): * alloc.c (init_alloc_once_early): * buffer.c (print_buffer): * buffer.c (vars_of_buffer): * buffer.c (common_init_complex_vars_of_buffer): * buffer.c (init_initial_directory): * bytecode.c (invalid_byte_code): * bytecode.c (print_compiled_function): * bytecode.c (mark_compiled_function): * chartab.c (print_table_entry): * chartab.c (print_char_table): * config.h.in: * console-gtk.c: * console-gtk.c (gtk_device_to_console_connection): * console-gtk.c (gtk_semi_canonicalize_console_connection): * console-gtk.c (gtk_canonicalize_console_connection): * console-gtk.c (gtk_semi_canonicalize_device_connection): * console-gtk.c (gtk_canonicalize_device_connection): * console-stream.c (stream_init_frame_1): * console-stream.c (vars_of_console_stream): * console-stream.c (init_console_stream): * console-x.c (x_semi_canonicalize_console_connection): * console-x.c (x_semi_canonicalize_device_connection): * console-x.c (x_canonicalize_device_connection): * console-x.h: * data.c (eq_with_ebola_notice): * data.c (Fsubr_interactive): * data.c (Fnumber_to_string): * data.c (digit_to_number): * device-gtk.c (gtk_init_device): * device-msw.c (print_devmode): * device-x.c (x_event_name): * dialog-msw.c (handle_directory_dialog_box): * dialog-msw.c (handle_file_dialog_box): * dialog-msw.c (vars_of_dialog_mswindows): * doc.c (weird_doc): * doc.c (Fsnarf_documentation): * doc.c (vars_of_doc): * dumper.c (pdump): * dynarr.c: * dynarr.c (Dynarr_realloc): * editfns.c (Fuser_real_login_name): * editfns.c (get_home_directory): * elhash.c (print_hash_table_data): * elhash.c (print_hash_table): * emacs.c (main_1): * emacs.c (vars_of_emacs): * emodules.c: * emodules.c (_emodules_list): * emodules.c (Fload_module): * emodules.c (Funload_module): * emodules.c (Flist_modules): * emodules.c (find_make_module): * emodules.c (attempt_module_delete): * emodules.c (emodules_load): * emodules.c (emodules_doc_subr): * emodules.c (emodules_doc_sym): * emodules.c (syms_of_module): * emodules.c (vars_of_module): * emodules.h: * eval.c (print_subr): * eval.c (signal_call_debugger): * eval.c (build_error_data): * eval.c (signal_error): * eval.c (maybe_signal_error): * eval.c (signal_continuable_error): * eval.c (maybe_signal_continuable_error): * eval.c (signal_error_2): * eval.c (maybe_signal_error_2): * eval.c (signal_continuable_error_2): * eval.c (maybe_signal_continuable_error_2): * eval.c (signal_ferror): * eval.c (maybe_signal_ferror): * eval.c (signal_continuable_ferror): * eval.c (maybe_signal_continuable_ferror): * eval.c (signal_ferror_with_frob): * eval.c (maybe_signal_ferror_with_frob): * eval.c (signal_continuable_ferror_with_frob): * eval.c (maybe_signal_continuable_ferror_with_frob): * eval.c (syntax_error): * eval.c (syntax_error_2): * eval.c (maybe_syntax_error): * eval.c (sferror): * eval.c (sferror_2): * eval.c (maybe_sferror): * eval.c (invalid_argument): * eval.c (invalid_argument_2): * eval.c (maybe_invalid_argument): * eval.c (invalid_constant): * eval.c (invalid_constant_2): * eval.c (maybe_invalid_constant): * eval.c (invalid_operation): * eval.c (invalid_operation_2): * eval.c (maybe_invalid_operation): * eval.c (invalid_change): * eval.c (invalid_change_2): * eval.c (maybe_invalid_change): * eval.c (invalid_state): * eval.c (invalid_state_2): * eval.c (maybe_invalid_state): * eval.c (wtaerror): * eval.c (stack_overflow): * eval.c (out_of_memory): * eval.c (print_multiple_value): * eval.c (issue_call_trapping_problems_warning): * eval.c (backtrace_specials): * eval.c (backtrace_unevalled_args): * eval.c (Fbacktrace): * eval.c (warn_when_safe): * event-Xt.c (modwarn): * event-Xt.c (modbarf): * event-Xt.c (check_modifier): * event-Xt.c (store_modifier): * event-Xt.c (emacs_Xt_format_magic_event): * event-Xt.c (describe_event): * event-gtk.c (dragndrop_data_received): * event-gtk.c (store_modifier): * event-gtk.c (gtk_reset_modifier_mapping): * event-msw.c (dde_eval_string): * event-msw.c (Fdde_alloc_advise_item): * event-msw.c (mswindows_dde_callback): * event-msw.c (FROB): * event-msw.c (emacs_mswindows_format_magic_event): * event-stream.c (external_debugging_print_event): * event-stream.c (execute_help_form): * event-stream.c (vars_of_event_stream): * events.c (print_event_1): * events.c (print_event): * events.c (event_equal): * extents.c (print_extent_1): * extents.c (print_extent): * extents.c (vars_of_extents): * faces.c (print_face): * faces.c (complex_vars_of_faces): * file-coding.c: * file-coding.c (print_coding_system): * file-coding.c (print_coding_system_in_print_method): * file-coding.c (default_query_method): * file-coding.c (find_coding_system): * file-coding.c (make_coding_system_1): * file-coding.c (chain_print): * file-coding.c (undecided_print): * file-coding.c (gzip_print): * file-coding.c (vars_of_file_coding): * file-coding.c (complex_vars_of_file_coding): * fileio.c: * fileio.c (report_file_type_error): * fileio.c (report_error_with_errno): * fileio.c (report_file_error): * fileio.c (barf_or_query_if_file_exists): * fileio.c (vars_of_fileio): * floatfns.c (matherr): * fns.c (print_bit_vector): * fns.c (Fmapconcat): * fns.c (add_suffix_to_symbol): * fns.c (add_prefix_to_symbol): * frame-gtk.c: * frame-gtk.c (Fgtk_window_id): * frame-x.c (def): * frame-x.c (x_cde_transfer_callback): * frame.c: * frame.c (Fmake_frame): * gc.c (show_gc_cursor_and_message): * gc.c (vars_of_gc): * glyphs-eimage.c (png_instantiate): * glyphs-eimage.c (tiff_instantiate): * glyphs-gtk.c (gtk_print_image_instance): * glyphs-msw.c (mswindows_print_image_instance): * glyphs-x.c (x_print_image_instance): * glyphs-x.c (update_widget_face): * glyphs.c (make_string_from_file): * glyphs.c (print_image_instance): * glyphs.c (signal_image_error): * glyphs.c (signal_image_error_2): * glyphs.c (signal_double_image_error): * glyphs.c (signal_double_image_error_2): * glyphs.c (xbm_mask_file_munging): * glyphs.c (pixmap_to_lisp_data): * glyphs.h: * gui.c (gui_item_display_flush_left): * hpplay.c (player_error_internal): * hpplay.c (myHandler): * intl-win32.c: * intl-win32.c (langcode_to_lang): * intl-win32.c (sublangcode_to_lang): * intl-win32.c (Fmswindows_get_locale_info): * intl-win32.c (lcid_to_locale_mule_or_no): * intl-win32.c (mswindows_multibyte_to_unicode_print): * intl-win32.c (complex_vars_of_intl_win32): * keymap.c: * keymap.c (print_keymap): * keymap.c (ensure_meta_prefix_char_keymapp): * keymap.c (Fkey_description): * keymap.c (Ftext_char_description): * lisp.h: * lisp.h (struct): * lisp.h (DECLARE_INLINE_HEADER): * lread.c (Fload_internal): * lread.c (locate_file): * lread.c (read_escape): * lread.c (read_raw_string): * lread.c (read1): * lread.c (read_list): * lread.c (read_compiled_function): * lread.c (init_lread): * lrecord.h: * marker.c (print_marker): * marker.c (marker_equal): * menubar-msw.c (displayable_menu_item): * menubar-x.c (command_builder_operate_menu_accelerator): * menubar.c (vars_of_menubar): * minibuf.c (reinit_complex_vars_of_minibuf): * minibuf.c (complex_vars_of_minibuf): * mule-charset.c (Fmake_charset): * mule-charset.c (complex_vars_of_mule_charset): * mule-coding.c (iso2022_print): * mule-coding.c (fixed_width_query): * number.c (bignum_print): * number.c (ratio_print): * number.c (bigfloat_print): * number.c (bigfloat_finalize): * objects-msw.c: * objects-msw.c (mswindows_color_to_string): * objects-msw.c (mswindows_color_list): * objects-tty.c: * objects-tty.c (tty_font_list): * objects-tty.c (tty_find_charset_font): * objects-xlike-inc.c (xft_find_charset_font): * objects-xlike-inc.c (endif): * print.c: * print.c (write_istring): * print.c (write_ascstring): * print.c (Fterpri): * print.c (Fprint): * print.c (print_error_message): * print.c (print_vector_internal): * print.c (print_cons): * print.c (print_string): * print.c (printing_unreadable_object): * print.c (print_internal): * print.c (print_float): * print.c (print_symbol): * process-nt.c (mswindows_report_winsock_error): * process-nt.c (nt_canonicalize_host_name): * process-unix.c (unix_canonicalize_host_name): * process.c (print_process): * process.c (report_process_error): * process.c (report_network_error): * process.c (make_process_internal): * process.c (Fstart_process_internal): * process.c (status_message): * process.c (putenv_internal): * process.c (vars_of_process): * process.h: * profile.c (vars_of_profile): * rangetab.c (print_range_table): * realpath.c (vars_of_realpath): * redisplay.c (vars_of_redisplay): * search.c (wordify): * search.c (Freplace_match): * sheap.c (sheap_adjust_h): * sound.c (report_sound_error): * sound.c (Fplay_sound_file): * specifier.c (print_specifier): * symbols.c (Fsubr_name): * symbols.c (do_symval_forwarding): * symbols.c (set_default_buffer_slot_variable): * symbols.c (set_default_console_slot_variable): * symbols.c (store_symval_forwarding): * symbols.c (default_value): * symbols.c (defsymbol_massage_name_1): * symbols.c (defsymbol_massage_name_nodump): * symbols.c (defsymbol_massage_name): * symbols.c (defsymbol_massage_multiword_predicate_nodump): * symbols.c (defsymbol_massage_multiword_predicate): * symbols.c (defsymbol_nodump): * symbols.c (defsymbol): * symbols.c (defkeyword): * symbols.c (defkeyword_massage_name): * symbols.c (check_module_subr): * symbols.c (deferror_1): * symbols.c (deferror): * symbols.c (deferror_massage_name): * symbols.c (deferror_massage_name_and_message): * symbols.c (defvar_magic): * symeval.h: * symeval.h (DEFVAR_SYMVAL_FWD): * sysdep.c: * sysdep.c (init_system_name): * sysdll.c: * sysdll.c (MAYBE_PREPEND_UNDERSCORE): * sysdll.c (dll_function): * sysdll.c (dll_variable): * sysdll.c (dll_error): * sysdll.c (dll_open): * sysdll.c (dll_close): * sysdll.c (image_for_address): * sysdll.c (my_find_image): * sysdll.c (search_linked_libs): * sysdll.h: * sysfile.h: * sysfile.h (DEFAULT_DIRECTORY_FALLBACK): * syswindows.h: * tests.c (DFC_CHECK_LENGTH): * tests.c (DFC_CHECK_CONTENT): * tests.c (Ftest_hash_tables): * text.c (vars_of_text): * text.h: * tooltalk.c (tt_opnum_string): * tooltalk.c (tt_message_arg_ival_string): * tooltalk.c (Ftooltalk_default_procid): * tooltalk.c (Ftooltalk_default_session): * tooltalk.c (init_tooltalk): * tooltalk.c (vars_of_tooltalk): * ui-gtk.c (Fdll_load): * ui-gtk.c (type_to_marshaller_type): * ui-gtk.c (Fgtk_import_function_internal): * ui-gtk.c (emacs_gtk_object_printer): * ui-gtk.c (emacs_gtk_boxed_printer): * unicode.c (unicode_to_ichar): * unicode.c (unicode_print): * unicode.c (unicode_query): * unicode.c (vars_of_unicode): * unicode.c (complex_vars_of_unicode): * win32.c: * win32.c (mswindows_report_process_error): * window.c (print_window): * xemacs.def.in.in: BASIC IDEA: Further fixing up uses of char * and CIbyte * to reflect their actual semantics; Mule-izing some code; redoing of the not-yet-working code to handle message translation. Clean up code to handle message-translation (not yet working). Create separate versions of build_msg_string() for working with Ibyte *, CIbyte *, and Ascbyte * arguments. Assert that Ascbyte * arguments are pure-ASCII. Make build_msg_string() be the same as build_msg_ascstring(). Create same three versions of GETTEXT() and DEFER_GETTEXT(). Also create build_defer_string() and variants for the equivalent of DEFER_GETTEXT() when building a string. Remove old CGETTEXT(). Clean up code where GETTEXT(), DEFER_GETTEXT(), build_msg_string(), etc. was being called and introduce some new calls to build_msg_string(), etc. Remove GETTEXT() from calls to weird_doc() -- we assume that the message snarfer knows about weird_doc(). Remove uses of DEFER_GETTEXT() from error messages in sysdep.c and instead use special comments /* @@@begin-snarf@@@ */ and /* @@@end-snarf@@@ */ that the message snarfer presumably knows about. Create build_ascstring() and use it in many instances in place of build_string(). The purpose of having Ascbyte * variants is to make the code more self-documenting in terms of what sort of semantics is expected for char * strings. In fact in the process of looking for uses of build_string(), much improperly Mule-ized was discovered. Mule-ize a lot of code as described in previous paragraph, e.g. in sysdep.c. Make the error functions take Ascbyte * strings and fix up a couple of places where non-pure-ASCII strings were being passed in (file-coding.c, mule-coding.c, unicode.c). (It's debatable whether we really need to make the error functions work this way. It helps catch places where code is written in a way that message translation won't work, but we may well never implement message translation.) Make staticpro() and friends take Ascbyte * strings instead of raw char * strings. Create a const_Ascbyte_ptr dynarr type to describe what's held by staticpro_names[] and friends, create pdump descriptions for const_Ascbyte_ptr dynarrs, and use them in place of specially-crafted staticpro descriptions. Mule-ize certain other functions (e.g. x_event_name) by correcting raw use of char * to Ascbyte *, Rawbyte * or another such type, and raw use of char[] buffers to another type (usually Ascbyte[]). Change many uses of write_c_string() to write_msg_string(), write_ascstring(), etc. Mule-ize emodules.c, emodules.h, sysdll.h. Fix some un-Mule-ized code in intl-win32.c. A comment in event-Xt.c and the limitations of the message snarfer (make-msgfile or whatever) is presumably incorrect -- it should be smart enough to handle function calls spread over more than one line. Clean up code in event-Xt.c that was written awkwardly for this reason. In config.h.in, instead of NEED_ERROR_CHECK_TYPES_INLINES, create a more general XEMACS_DEFS_NEEDS_INLINE_DECLS to indicate when inlined functions need to be declared in xemacs.defs.in.in, and make use of it in xemacs.defs.in.in. We need to do this because postgresql.c now calls qxestrdup(), which is an inline function. Make nconc2() and other such functions MODULE_API and put them in xemacs.defs.in.in since postgresql.c now uses them. Clean up indentation in lread.c and a few other places. In text.h, document ASSERT_ASCTEXT_ASCII() and ASSERT_ASCTEXT_ASCII_LEN(), group together the stand-in encodings and add some more for DLL symbols, function and variable names, etc.
author Ben Wing <ben@xemacs.org>
date Tue, 26 Jan 2010 23:22:30 -0600
parents 8b63e21b0436
children 304aebb79cd3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1 /* Copyright (C) 2000 Free Software Foundation, Inc.
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
2 Copyright (C) 2000, 2001, 2002, 2004, 2010 Ben Wing.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
3
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
4 This file is part of XEmacs.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
5
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
9 later version.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
10
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
14 for more details.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
15
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
20
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
21 /* Synched up with: Not in FSF. */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
22
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
23 /* Authorship:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
24
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
25 Current primary author: Ben Wing <ben@xemacs.org>
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
26
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
27 Created May 2000 by Andy Piper.
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
28 Windows-Mule stuff added by Ben Wing, 2000-2001.
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
29 September 2001 Ben Wing reorganized and included nt.h and ntheap.h into
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
30 this file; comments in those files say:
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
31 * Adapted for XEmacs by David Hobley <david@spook-le0.cia.com.au>
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
32 * Sync'ed with Emacs 19.34.6 by Marc Paquette <marcpa@cam.org>
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
33 (Note: Sync messages from Marc Paquette may indicate
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
34 incomplete synching, so beware.)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
35 (in ntheap.h only) Geoff Voelker (voelker@cs.washington.edu) 7-29-94
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
36
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
37 */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
38
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
39 #ifndef INCLUDED_syswindows_h_
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
40 #define INCLUDED_syswindows_h_
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
41
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
42 /* See win32.c for info about the different Windows files in XEmacs. */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
43
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
44 /* ------------------------- Basic includes ------------------------- */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
45
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
46 #ifndef WIN32_LEAN_AND_MEAN
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
47 #define WIN32_LEAN_AND_MEAN
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
48 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
49
4858
e1d8b6b0c589 Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents: 4854
diff changeset
50 #ifdef CYGWIN_HEADERS
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
51 # ifndef _WIN32_IE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
52 # define _WIN32_IE 0x0400
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
53 # endif
665
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
54
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents: 1685
diff changeset
55 BEGIN_C_DECLS
665
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
56
4827
11daf37dae4d more fixes to get a clean compile
Ben Wing <ben@xemacs.org>
parents: 4824
diff changeset
57 #if 0 /* breaks the build, as of GCC 3.4.4 or earlier, since the prototype
11daf37dae4d more fixes to get a clean compile
Ben Wing <ben@xemacs.org>
parents: 4824
diff changeset
58 is now declared static */
665
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
59 /* Fucking GCC complains about "no previous prototype" for inline
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
60 functions. DUH! See DECLARE_INLINE_HEADER. */
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
61 extern __inline void *GetCurrentFiber (void);
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
62 extern __inline void *GetFiberData (void);
4824
c12b646d84ee changes to get things to compile under latest cygwin
Ben Wing <ben@xemacs.org>
parents: 4538
diff changeset
63 #endif
665
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
64
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents: 1685
diff changeset
65 END_C_DECLS
665
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
66
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
67 #endif
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 593
diff changeset
68
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
69 /* Defines for COM so it's usable in both C and C++. XECOMCALLn() calls a
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
70 method with the specified number of parameters. XECOMID() surrounds a
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
71 class or interface name when passed to CoCreateInstance, a
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
72 QueryInterface method, or the like. */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
73 #ifdef __cplusplus
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
74 #define XECOMCALL0(cl, meth) ((cl)->meth ())
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
75 #define XECOMCALL1(cl, meth, a1) ((cl)->meth (a1))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
76 #define XECOMCALL2(cl, meth, a1, a2) ((cl)->meth (a1, a2))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
77 #define XECOMCALL3(cl, meth, a1, a2, a3) ((cl)->meth (a1, a2, a3))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
78 #define XECOMCALL4(cl, meth, a1, a2, a3, a4) ((cl)->meth (a1, a2, a3, a4))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
79 #define XECOMID(id) (id)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
80 #else
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
81 #define XECOMCALL0(cl, meth) ((cl)->lpVtbl->meth (cl))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
82 #define XECOMCALL1(cl, meth, a1) ((cl)->lpVtbl->meth (cl, a1))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
83 #define XECOMCALL2(cl, meth, a1, a2) ((cl)->lpVtbl->meth (cl, a1, a2))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
84 #define XECOMCALL3(cl, meth, a1, a2, a3) ((cl)->lpVtbl->meth (cl, a1, a2, a3))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
85 #define XECOMCALL4(cl, meth, a1, a2, a3, a4) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
86 ((cl)->lpVtbl->meth (cl, a1, a2, a3, a4))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
87 #define XECOMID(id) (&(id))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
88 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
89
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
90 #define OEMRESOURCE /* Define OCR_ and friend constants */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
91 #include <windows.h>
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
92
3728
6765f2581182 [xemacs-hg @ 2006-12-08 02:21:53 by vins]
vins
parents: 3025
diff changeset
93 #include <aclapi.h>
6765f2581182 [xemacs-hg @ 2006-12-08 02:21:53 by vins]
vins
parents: 3025
diff changeset
94
558
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
95 #if defined (WIN32_LEAN_AND_MEAN)
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
96 # ifdef HAVE_X_WINDOWS
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
97 /* Christ almighty. The problems you get when combining two large code bases,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
98 neither with any respect for namespace purity. */
558
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
99 # undef Status
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
100 # endif
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
101 # include <winspool.h>
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
102 # ifdef HAVE_X_WINDOWS
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
103 # define Status int
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
104 # endif
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
105 # include <mmsystem.h>
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 665
diff changeset
106 # include <shlobj.h>
558
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
107 # include <shellapi.h>
ed498ef2108b [xemacs-hg @ 2001-05-23 09:59:33 by ben]
ben
parents: 546
diff changeset
108 # include <ddeml.h>
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
109 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
110
546
666d73d6ac56 [xemacs-hg @ 2001-05-20 01:17:07 by ben]
ben
parents: 531
diff changeset
111 #include <lmaccess.h> /* next three for NetUserEnum and friends */
531
0493e9f3c27f [xemacs-hg @ 2001-05-12 11:16:12 by ben]
ben
parents: 442
diff changeset
112 #include <lmapibuf.h>
0493e9f3c27f [xemacs-hg @ 2001-05-12 11:16:12 by ben]
ben
parents: 442
diff changeset
113 #include <lmerr.h>
546
666d73d6ac56 [xemacs-hg @ 2001-05-20 01:17:07 by ben]
ben
parents: 531
diff changeset
114 #include <lmcons.h> /* for UNLEN and possibly other constants */
531
0493e9f3c27f [xemacs-hg @ 2001-05-12 11:16:12 by ben]
ben
parents: 442
diff changeset
115
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
116 #include <cderr.h>
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
117 #include <commdlg.h>
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
118
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
119 #ifdef NEED_MSWINDOWS_COMMCTRL
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
120 #include <commctrl.h>
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
121 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
122 #ifdef NEED_MSWINDOWS_OBJBASE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
123 #include <objbase.h>
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
124 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
125 #ifdef NEED_MSWINDOWS_SHLOBJ
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
126 #include <shlobj.h>
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
127 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
128
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
129 #include <zmouse.h> /* WHEEL_PAGESCROLL under Cygwin */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
130
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
131 #include <wchar.h>
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
132
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
133 /* ------------------------- Cygwin header brokenness ---------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
134
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
135 #ifdef CYGWIN_HEADERS
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
136
1683
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
137 #include <cygwin/stat.h> /* for struct stat */
1304
579d37cb4395 [xemacs-hg @ 2003-02-15 11:20:38 by ben]
ben
parents: 1204
diff changeset
138 #include <w32api.h> /* for version info */
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
139 #include <sys/cygwin.h> /* path conversion functions */
1304
579d37cb4395 [xemacs-hg @ 2003-02-15 11:20:38 by ben]
ben
parents: 1204
diff changeset
140
1683
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
141 /* Test for a specific version of w32api */
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
142 #define W32API_VER(major,minor) (((major) << 16) + (minor))
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
143 #define W32API_INSTALLED_VER \
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
144 W32API_VER (__W32API_MAJOR_VERSION, __W32API_MINOR_VERSION)
1304
579d37cb4395 [xemacs-hg @ 2003-02-15 11:20:38 by ben]
ben
parents: 1204
diff changeset
145
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
146 /* Various brokennesses in various versions of Cygwin */
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 665
diff changeset
147
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
148 /* windows.h defines. */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
149 #ifndef SPI_GETWHEELSCROLLLINES
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
150 #define SPI_GETWHEELSCROLLLINES 104
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
151 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
152
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
153 /* commctrl.h defines. */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
154 #ifndef TB_SETIMAGELIST
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
155 #define TB_SETIMAGELIST (WM_USER + 48)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
156 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
157 #ifndef TB_GETIMAGELIST
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
158 #define TB_GETIMAGELIST (WM_USER + 49)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
159 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
160 #ifndef TB_SETDISABLEDIMAGELIST
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
161 #define TB_SETDISABLEDIMAGELIST (WM_USER + 54)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
162 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
163 #ifndef TB_GETDISABLEDIMAGELIST
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
164 #define TB_GETDISABLEDIMAGELIST (WM_USER + 55)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
165 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
166 #ifndef TB_SETPADDING
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
167 #define TB_SETPADDING (WM_USER + 87)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
168 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
169 #ifndef TB_GETBUTTONINFOA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
170 #define TB_GETBUTTONINFOA (WM_USER + 65)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
171 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
172 #ifndef TB_GETBUTTONINFOW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
173 #define TB_GETBUTTONINFOW (WM_USER + 63)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
174 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
175 #ifndef TB_SETBUTTONINFOA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
176 #define TB_SETBUTTONINFOA (WM_USER + 66)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
177 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
178 #ifndef TB_SETBUTTONINFOW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
179 #define TB_SETBUTTONINFOW (WM_USER + 64)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
180 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
181 #ifndef TB_INSERTBUTTONA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
182 #define TB_INSERTBUTTONA (WM_USER + 21)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
183 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
184 #ifndef TB_INSERTBUTTONW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
185 #define TB_INSERTBUTTONW (WM_USER + 67)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
186 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
187 #ifndef TB_ADDBUTTONSA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
188 #define TB_ADDBUTTONSA (WM_USER + 20)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
189 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
190 #ifndef TB_ADDBUTTONSW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
191 #define TB_ADDBUTTONSW (WM_USER + 68)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
192 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
193 #ifndef LVM_SETBKIMAGEA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
194 #define LVM_SETBKIMAGEA (LVM_FIRST + 68)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
195 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
196 #ifndef LVM_SETBKIMAGEW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
197 #define LVM_SETBKIMAGEW (LVM_FIRST + 138)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
198 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
199 #ifndef LVM_GETBKIMAGEA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
200 #define LVM_GETBKIMAGEA (LVM_FIRST + 69)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
201 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
202 #ifndef LVM_GETBKIMAGEW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
203 #define LVM_GETBKIMAGEW (LVM_FIRST + 139)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
204 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
205 #ifndef WC_COMBOBOXEXW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
206 #define WC_COMBOBOXEXW L"ComboBoxEx32"
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
207 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
208 #ifndef CBEM_INSERTITEMA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
209 #define CBEM_INSERTITEMA (WM_USER + 1)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
210 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
211 #ifndef CBEM_INSERTITEMW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
212 #define CBEM_INSERTITEMW (WM_USER + 11)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
213 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
214 #ifndef CBEM_SETITEMA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
215 #define CBEM_SETITEMA (WM_USER + 5)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
216 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
217 #ifndef CBEM_SETITEMW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
218 #define CBEM_SETITEMW (WM_USER + 12)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
219 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
220 #ifndef CBEM_GETITEMA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
221 #define CBEM_GETITEMA (WM_USER + 4)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
222 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
223 #ifndef CBEM_GETITEMW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
224 #define CBEM_GETITEMW (WM_USER + 13)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
225 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
226 #ifndef HDN_GETDISPINFOA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
227 #define HDN_GETDISPINFOA (HDN_FIRST - 9)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
228 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
229 #ifndef HDN_GETDISPINFOW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
230 #define HDN_GETDISPINFOW (HDN_FIRST - 29)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
231 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
232 #ifndef TBN_GETDISPINFOA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
233 #define TBN_GETDISPINFOA (TBN_FIRST - 16)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
234 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
235 #ifndef TBN_GETDISPINFOW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
236 #define TBN_GETDISPINFOW (TBN_FIRST - 17)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
237 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
238 #ifndef TBN_GETINFOTIPA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
239 #define TBN_GETINFOTIPA (TBN_FIRST - 18)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
240 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
241 #ifndef TBN_GETINFOTIPW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
242 #define TBN_GETINFOTIPW (TBN_FIRST - 19)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
243 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
244 #ifndef TTN_GETDISPINFOA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
245 #define TTN_GETDISPINFOA (TTN_FIRST - 0)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
246 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
247 #ifndef TTN_GETDISPINFOW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
248 #define TTN_GETDISPINFOW (TTN_FIRST - 10)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
249 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
250
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
251 #if (_WIN32_IE >= 0x0400)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
252
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
253 #ifndef LVN_GETINFOTIPA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
254 #define LVN_GETINFOTIPA (LVN_FIRST - 57)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
255 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
256 #ifndef LVN_GETINFOTIPW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
257 #define LVN_GETINFOTIPW (LVN_FIRST - 58)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
258 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
259 #ifndef TVN_GETINFOTIPA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
260 #define TVN_GETINFOTIPA (TVN_FIRST - 13)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
261 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
262 #ifndef TVN_GETINFOTIPW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
263 #define TVN_GETINFOTIPW (TVN_FIRST - 14)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
264 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
265 #ifndef CBEN_GETDISPINFOA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
266 #define CBEN_GETDISPINFOA (CBEN_FIRST - 0)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
267 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
268 #ifndef CBEN_GETDISPINFOW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
269 #define CBEN_GETDISPINFOW (CBEN_FIRST - 7)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
270 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
271 #ifndef CBEN_DRAGBEGINA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
272 #define CBEN_DRAGBEGINA (CBEN_FIRST - 8)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
273 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
274 #ifndef CBEN_DRAGBEGINW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
275 #define CBEN_DRAGBEGINW (CBEN_FIRST - 9)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
276 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
277
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
278 #endif /* (_WIN32_IE >= 0x0400) */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
279
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
280 #ifndef CBEN_ENDEDITA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
281 #define CBEN_ENDEDITA (CBEN_FIRST - 5)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
282 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
283 #ifndef CBEN_ENDEDITW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
284 #define CBEN_ENDEDITW (CBEN_FIRST - 6)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
285 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
286
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
287 #ifndef CBEMAXSTRLEN
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
288 #define CBEMAXSTRLEN 260
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
289 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
290
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
291 #ifndef NMCBEENDEDIT
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
292
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
293 typedef struct
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
294 {
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
295 NMHDR hdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
296 BOOL fChanged;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
297 int iNewSelection;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
298 WCHAR szText[CBEMAXSTRLEN];
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
299 int iWhy;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
300 } NMCBEENDEDITW, *LPNMCBEENDEDITW, *PNMCBEENDEDITW;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
301
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
302 typedef struct
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
303 {
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
304 NMHDR hdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
305 BOOL fChanged;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
306 int iNewSelection;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
307 char szText[CBEMAXSTRLEN];
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
308 int iWhy;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
309 } NMCBEENDEDITA, *LPNMCBEENDEDITA,*PNMCBEENDEDITA;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
310
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
311 #endif /* not NMCBEENDEDIT */
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
312
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
313 #if (_WIN32_IE >= 0x0400)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
314
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
315 #ifndef NMCBEDRAGBEGIN
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
316
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
317 typedef struct
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
318 {
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
319 NMHDR hdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
320 int iItemid;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
321 WCHAR szText[CBEMAXSTRLEN];
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
322 } NMCBEDRAGBEGINW, *LPNMCBEDRAGBEGINW, *PNMCBEDRAGBEGINW;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
323
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
324 typedef struct
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
325 {
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
326 NMHDR hdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
327 int iItemid;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
328 char szText[CBEMAXSTRLEN];
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
329 } NMCBEDRAGBEGINA, *LPNMCBEDRAGBEGINA, *PNMCBEDRAGBEGINA;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
330
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
331 #endif /* not NMCBEDRAGBEGIN */
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
332
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
333 typedef struct tagNMDATETIMEFORMATA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
334 {
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
335 NMHDR nmhdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
336 LPCSTR pszFormat;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
337 SYSTEMTIME st;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
338 LPCSTR pszDisplay;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
339 CHAR szDisplay[64];
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
340 } NMDATETIMEFORMATA, FAR * LPNMDATETIMEFORMATA;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
341
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
342 typedef struct tagNMDATETIMEFORMATW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
343 {
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
344 NMHDR nmhdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
345 LPCWSTR pszFormat;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
346 SYSTEMTIME st;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
347 LPCWSTR pszDisplay;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
348 WCHAR szDisplay[64];
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
349 } NMDATETIMEFORMATW, FAR * LPNMDATETIMEFORMATW;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
350
1683
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
351 #if W32API_INSTALLED_VER < W32API_VER(2,2)
1304
579d37cb4395 [xemacs-hg @ 2003-02-15 11:20:38 by ben]
ben
parents: 1204
diff changeset
352
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
353 typedef struct tagNMTTDISPIFNOA
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
354 {
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
355 NMHDR hdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
356 LPSTR lpszText;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
357 char szText[80];
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
358 HINSTANCE hinst;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
359 UINT uFlags;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
360 #if (_WIN32_IE >= 0x0300)
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
361 LPARAM lParam;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
362 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
363 } NMTTDISPINFOA, FAR *LPNMTTDISPINFOA;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
364
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
365 typedef struct tagNMTTDISPINFOW
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
366 {
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
367 NMHDR hdr;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
368 LPWSTR lpszText;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
369 WCHAR szText[80];
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
370 HINSTANCE hinst;
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
371 UINT uFlags;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
372 #if (_WIN32_IE >= 0x0300)
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
373 LPARAM lParam;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
374 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
375 } NMTTDISPINFOW, FAR *LPNMTTDISPINFOW;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
376
1683
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
377 #endif /* W32API_INSTALLED_VER < W32API_VER(2,2) */
1304
579d37cb4395 [xemacs-hg @ 2003-02-15 11:20:38 by ben]
ben
parents: 1204
diff changeset
378
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
379 #endif /* (_WIN32_IE >= 0x0400) */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
380
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
381 /* shlobj.h defines */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
382 #ifndef BFFM_VALIDATEFAILEDA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
383 #define BFFM_VALIDATEFAILEDA 3
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
384 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
385 #ifndef BFFM_VALIDATEFAILEDW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
386 #define BFFM_VALIDATEFAILEDW 4
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
387 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
388 #ifndef BFFM_SETSELECTIONA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
389 #define BFFM_SETSELECTIONA (WM_USER + 102)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
390 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
391 #ifndef BFFM_SETSELECTIONW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
392 #define BFFM_SETSELECTIONW (WM_USER + 103)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
393 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
394 #ifndef BFFM_SETSTATUSTEXTA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
395 #define BFFM_SETSTATUSTEXTA (WM_USER + 100)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
396 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
397 #ifndef BFFM_SETSTATUSTEXTW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
398 #define BFFM_SETSTATUSTEXTW (WM_USER + 104)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
399 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
400 #ifndef SHARD_PATHA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
401 #define SHARD_PATHA 2
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
402 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
403 #ifndef SHARD_PATHW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
404 #define SHARD_PATHW 3
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
405 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
406 #ifndef SHCNF_PATHA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
407 #define SHCNF_PATHA 1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
408 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
409 #ifndef SHCNF_PATHW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
410 #define SHCNF_PATHW 5
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
411 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
412 #ifndef SHCNF_PRINTERA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
413 #define SHCNF_PRINTERA 2
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
414 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
415 #ifndef SHCNF_PRINTERW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
416 #define SHCNF_PRINTERW 6
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
417 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
418 #ifndef BFFM_VALIDATEFAILED
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
419 #ifdef UNICODE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
420 #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
421 #else
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
422 #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
423 #endif
819
6504113e7c2d [xemacs-hg @ 2002-04-25 18:03:23 by andyp]
andyp
parents: 814
diff changeset
424 #endif
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
425
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
426 /* winnls.h defines */
819
6504113e7c2d [xemacs-hg @ 2002-04-25 18:03:23 by andyp]
andyp
parents: 814
diff changeset
427 #ifndef MAC_CHARSET
6504113e7c2d [xemacs-hg @ 2002-04-25 18:03:23 by andyp]
andyp
parents: 814
diff changeset
428 #define MAC_CHARSET 77
6504113e7c2d [xemacs-hg @ 2002-04-25 18:03:23 by andyp]
andyp
parents: 814
diff changeset
429 #endif
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
430 #ifndef LOCALE_RETURN_NUMBER
819
6504113e7c2d [xemacs-hg @ 2002-04-25 18:03:23 by andyp]
andyp
parents: 814
diff changeset
431 #define LOCALE_RETURN_NUMBER 0x20000000
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
432 #endif
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
433
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
434 /* OEM resources */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
435 #ifndef OCR_ICOCUR
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
436 #define OCR_ICOCUR 32647
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
437 #define OIC_SAMPLE 32512
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
438 #define OIC_HAND 32513
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
439 #define OIC_QUES 32514
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
440 #define OIC_BANG 32515
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
441 #define OIC_NOTE 32516
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
442 #define OIC_WINLOGO 32517
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
443 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
444
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
445 /* More Cygwin stupidity: Current w32api's winuser.h has IME message
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
446 constants and they conflict with imm.h. (NOTE: Currently fixed, but
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
447 I'm sure the problems were present post 1.0.) */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
448 #undef WM_IME_STARTCOMPOSITION
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
449 #undef WM_IME_ENDCOMPOSITION
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
450 #undef WM_IME_COMPOSITION
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
451 #undef WM_IME_KEYLAST
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
452 #undef WM_IME_SETCONTEXT
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
453 #undef WM_IME_NOTIFY
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
454 #undef WM_IME_CONTROL
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
455 #undef WM_IME_COMPOSITIONFULL
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
456 #undef WM_IME_SELECT
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
457 #undef WM_IME_CHAR
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
458 #undef WM_IME_KEYDOWN
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
459 #undef WM_IME_KEYUP
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
460
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
461 #include <imm.h>
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
462
1683
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
463 #if W32API_INSTALLED_VER < W32API_VER(2,4)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
464 typedef struct _SHQUERYRBINFO
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
465 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
466 DWORD cbSize;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
467 __int64 i64Size;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
468 __int64 i64NumItems;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
469 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
1683
74353ce403ce [xemacs-hg @ 2003-09-15 15:24:56 by james]
james
parents: 1304
diff changeset
470 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
471
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
472 typedef LPCDLGTEMPLATE LPCDLGTEMPLATEW;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
473 typedef LPCDLGTEMPLATE LPCDLGTEMPLATEA;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
474
1685
29c45c1b64f3 [xemacs-hg @ 2003-09-15 21:19:11 by james]
james
parents: 1683
diff changeset
475 #else /* !CYGWIN_HEADERS */
29c45c1b64f3 [xemacs-hg @ 2003-09-15 21:19:11 by james]
james
parents: 1683
diff changeset
476 #define W32API_VER(major,minor) 0
29c45c1b64f3 [xemacs-hg @ 2003-09-15 21:19:11 by james]
james
parents: 1683
diff changeset
477 #define W32API_INSTALLED_VER 0
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
478 #endif /* CYGWIN_HEADERS */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
479
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
480 /* Not in VC 6 */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
481 #ifndef BIF_NEWDIALOGSTYLE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
482 #define BIF_NEWDIALOGSTYLE 64
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
483 #endif
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
484
4538
112f6ed44299 Allow compilation under Cygwin 1.7
acs@samwise
parents: 3728
diff changeset
485 #if defined (CYGWIN) && (CYGWIN_VERSION_DLL_COMBINED < 190)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
486
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
487 /* All but wcscmp and wcslen left out of Cygwin headers -- but present
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
488 in /usr/include/mingw/string.h! */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
489 wchar_t* wcscat (wchar_t*, const wchar_t*);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
490 wchar_t* wcschr (const wchar_t*, wchar_t);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
491 int wcscoll (const wchar_t*, const wchar_t*);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
492 wchar_t* wcscpy (wchar_t*, const wchar_t*);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
493 wchar_t* wcsdup (const wchar_t*);
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
494 size_t wcscspn (const wchar_t*, const wchar_t*);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
495 /* Note: No wcserror in CRTDLL. */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
496 wchar_t* wcsncat (wchar_t*, const wchar_t*, size_t);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
497 int wcsncmp (const wchar_t*, const wchar_t*, size_t);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
498 wchar_t* wcsncpy (wchar_t*, const wchar_t*, size_t);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
499 wchar_t* wcspbrk (const wchar_t*, const wchar_t*);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
500 wchar_t* wcsrchr (const wchar_t*, wchar_t);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
501 size_t wcsspn (const wchar_t*, const wchar_t*);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
502 wchar_t* wcsstr (const wchar_t*, const wchar_t*);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
503 wchar_t* wcstok (wchar_t*, const wchar_t*);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
504 size_t wcsxfrm (wchar_t*, const wchar_t*, size_t);
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
505
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
506 #endif /* CYGWIN */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
507
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
508 /* ------------------------- Unicode encapsulation ------------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
509
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
510 /* See intl-win32.c for more information about Unicode-encapsulation */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
511
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
512 #define ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
513
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
514 #include "intl-auto-encap-win32.h"
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
515
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
516 /* would be encapsulatable but for parsing problems */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
517
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
518 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
519 #undef DefWindowProc
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
520 #define DefWindowProc error use qxeDefWindowProc or DefWindowProcA/DefWindowProcW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
521 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
522 LRESULT qxeDefWindowProc (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
523
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
524 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
525 #undef CallWindowProc
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
526 #define CallWindowProc error use qxeCallWindowProc or CallWindowProcA/CallWindowProcW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
527 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
528 LRESULT qxeCallWindowProc (WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
529 WPARAM wParam, LPARAM lParam);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
530
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
531 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
532 #undef DefDlgProc
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
533 #define DefDlgProc error use qxeDefDlgProc or DefDlgProcA/DefDlgProcW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
534 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
535 LRESULT qxeDefDlgProc (HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
536
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
537 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
538 #undef SetWindowsHook
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
539 #define SetWindowsHook error use qxeSetWindowsHook or SetWindowsHookA/SetWindowsHookW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
540 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
541 HHOOK qxeSetWindowsHook (int nFilterType, HOOKPROC pfnFilterProc);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
542
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
543 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
544 #undef DefMDIChildProc
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
545 #define DefMDIChildProc error use qxeDefMDIChildProc or DefMDIChildProcA/DefMDIChildProcW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
546 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
547 LRESULT qxeDefMDIChildProc (HWND hWnd, UINT uMsg, WPARAM wParam,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
548 LPARAM lParam);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
549
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
550 #undef GetEnvironmentStrings
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
551 #undef GetEnvironmentStringsA
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
552 #define GetEnvironmentStringsA GetEnvironmentStrings
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
553 Extbyte * qxeGetEnvironmentStrings (void);
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
554
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
555 /* would be encapsulatable but for Cygwin problems */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
556
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
557 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
558 #undef DdeCreateStringHandle
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
559 #define DdeCreateStringHandle error use qxeDdeCreateStringHandle or DdeCreateStringHandleA/DdeCreateStringHandleW
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
560 #endif
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
561 HSZ qxeDdeCreateStringHandle (DWORD idInst, const Extbyte * psz, int iCodePage);
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
562
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 872
diff changeset
563 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
564 #undef RegConnectRegistry
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
565 #define RegConnectRegistry error use qxeRegConnectRegistry or RegConnectRegistryA/RegConnectRegistryW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
566 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
567 LONG qxeRegConnectRegistry (const Extbyte * lpMachineName, HKEY hKey, PHKEY phkResult);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
568
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
569 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
570 #undef ExtractIconEx
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
571 #define ExtractIconEx error use qxeExtractIconEx or ExtractIconExA/ExtractIconExW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
572 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
573 UINT qxeExtractIconEx (const Extbyte * lpszFile, int nIconIndex, HICON FAR * phiconLarge, HICON FAR * phiconSmall, UINT nIcons);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
574
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
575 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
576 #undef GetICMProfile
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
577 #define GetICMProfile error use qxeGetICMProfile or GetICMProfileA/GetICMProfileW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
578 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
579 BOOL qxeGetICMProfile (HDC arg1, LPDWORD arg2, Extbyte * arg3);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
580
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
581 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
582 #undef UpdateICMRegKey
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
583 #define UpdateICMRegKey error use qxeUpdateICMRegKey or UpdateICMRegKeyA/UpdateICMRegKeyW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
584 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
585 BOOL qxeUpdateICMRegKey (DWORD arg1, Extbyte * arg2, Extbyte * arg3, UINT arg4);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
586
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
587 /* would be encapsulatable but for header changes in different versions of VC++ */
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
588
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
589 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
590 #undef EnumResourceTypes
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
591 #define EnumResourceTypes error_use_qxeEnumResourceTypes_or_EnumResourceTypesA_and_EnumResourceTypesW
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
592 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
593 #if MSC_VERSION >= 1300
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
594 BOOL qxeEnumResourceTypes (HMODULE hModule, ENUMRESTYPEPROCW lpEnumFunc, LONG lParam);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
595 #else
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
596 BOOL qxeEnumResourceTypes (HMODULE hModule, ENUMRESTYPEPROC lpEnumFunc, LONG lParam);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
597 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
598
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
599 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
600 #undef EnumResourceNames
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
601 #define EnumResourceNames error_use_qxeEnumResourceNames_or_EnumResourceNamesA_and_EnumResourceNamesW
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
602 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
603 #if MSC_VERSION >= 1300
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
604 BOOL qxeEnumResourceNames (HMODULE hModule, const Extbyte * lpType, ENUMRESNAMEPROCW lpEnumFunc, LONG lParam);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
605 #else
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
606 BOOL qxeEnumResourceNames (HMODULE hModule, const Extbyte * lpType, ENUMRESNAMEPROC lpEnumFunc, LONG lParam);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
607 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
608
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
609 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
610 #undef EnumResourceLanguages
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
611 #define EnumResourceLanguages error_use_qxeEnumResourceLanguages_or_EnumResourceLanguagesA_and_EnumResourceLanguagesW
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
612 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
613 #if MSC_VERSION >= 1300
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
614 BOOL qxeEnumResourceLanguages (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, ENUMRESLANGPROCW lpEnumFunc, LONG lParam);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
615 #else
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
616 BOOL qxeEnumResourceLanguages (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, ENUMRESLANGPROC lpEnumFunc, LONG lParam);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
617 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
618
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
619 /* files */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
620 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
621 #undef FindFirstFile
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
622 #define FindFirstFile error use qxeFindFirstFile or FindFirstFileA/FindFirstFileW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
623 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
624 HANDLE qxeFindFirstFile (const Extbyte *lpFileName,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
625 WIN32_FIND_DATAW *lpFindFileData);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
626
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
627 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
628 #undef FindNextFile
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
629 #define FindNextFile error use qxeFindNextFile or FindNextFileA/FindNextFileW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
630 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
631 BOOL qxeFindNextFile (HANDLE hFindFile, WIN32_FIND_DATAW *lpFindFileData);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
632
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
633 /* shell */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
634 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
635 #undef SHGetFileInfo
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
636 #define SHGetFileInfo error use qxeSHGetFileInfo or SHGetFileInfoA/SHGetFileInfoW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
637 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
638 DWORD qxeSHGetFileInfo (const Extbyte *pszPath, DWORD dwFileAttributes,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
639 SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
640
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
641 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
642 #undef SHBrowseForFolder
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
643 #define SHBrowseForFolder error use qxeSHBrowseForFolder or SHBrowseForFolderA/SHBrowseForFolderW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
644 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
645 LPITEMIDLIST qxeSHBrowseForFolder (LPBROWSEINFOW lpbi);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
646
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
647 /* Not Unicode-split */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
648 VOID qxeSHAddToRecentDocs (UINT uFlags, LPCVOID pv);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
649
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
650 /* Not Unicode-split */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
651 VOID qxeSHChangeNotify (LONG wEventId, UINT uFlags, LPCVOID dwItem1,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
652 LPCVOID dwItem2);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
653
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
654 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
655 #undef SHGetDataFromIDList
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
656 #define SHGetDataFromIDList error use qxeSHGetDataFromIDList or SHGetDataFromIDListA/SHGetDataFromIDListW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
657 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
658 HRESULT qxeSHGetDataFromIDList (IShellFolder *psf, LPCITEMIDLIST pidl,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
659 int nFormat, PVOID pv, int cb);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
660
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
661 /* devmode */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
662 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
663 #undef CreateDC
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
664 #define CreateDC error use qxeCreateDC or CreateDCA/CreateDCW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
665 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
666 HDC qxeCreateDC (const Extbyte *lpszDriver, const Extbyte *lpszDevice,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
667 const Extbyte *lpszOutput, CONST DEVMODEW *lpInitData);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
668
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
669 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
670 #undef ResetDC
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
671 #define ResetDC error use qxeResetDC or ResetDCA/ResetDCW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
672 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
673 HDC qxeResetDC (HDC hdc, CONST DEVMODEW *lpInitData);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
674
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
675 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
676 #undef OpenPrinter
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
677 #define OpenPrinter error use qxeOpenPrinter or OpenPrinterA/OpenPrinterW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
678 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
679 DWORD qxeOpenPrinter (Extbyte *pPrinterName, LPHANDLE phPrinter,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
680 LPPRINTER_DEFAULTSW pDefaultconst);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
681
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
682 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
683 #undef DocumentProperties
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
684 #define DocumentProperties error use qxeDocumentProperties or DocumentPropertiesA/DocumentPropertiesW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
685 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
686 LONG qxeDocumentProperties (HWND hWnd, HANDLE hPrinter, Extbyte *pDeviceName,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
687 DEVMODEW *pDevModeOutput, DEVMODEW *pDevModeInput,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
688 DWORD fMode);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
689
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
690 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
691 #undef PrintDlg
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
692 #define PrintDlg error use qxePrintDlg or PrintDlgA/PrintDlgW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
693 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
694 BOOL qxePrintDlg (PRINTDLGW *lppd);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
695
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
696 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
697 #undef PageSetupDlg
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
698 #define PageSetupDlg error use qxePageSetupDlg or PageSetupDlgA/PageSetupDlgW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
699 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
700 BOOL qxePageSetupDlg (PAGESETUPDLGW *lppd);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
701
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
702 /* fonts */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
703
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
704 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
705 #undef EnumFontFamiliesEx
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
706 #define EnumFontFamiliesEx error use qxeEnumFontFamiliesEx or EnumFontFamiliesExA/EnumFontFamiliesExW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
707 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
708 int qxeEnumFontFamiliesEx (HDC hdc, LOGFONTW *lpLogfont,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
709 FONTENUMPROCW lpEnumFontFamProc, LPARAM lParam,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
710 DWORD dwFlags);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
711
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
712 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
713 #undef CreateFontIndirect
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
714 #define CreateFontIndirect error use qxeCreateFontIndirect or CreateFontIndirectA/CreateFontIndirectW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
715 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
716 HFONT qxeCreateFontIndirect (CONST LOGFONTW *lplf);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
717
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
718 #if defined (HAVE_MS_WINDOWS)
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
719 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
720 #undef ImmSetCompositionFont
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
721 #define ImmSetCompositionFont error use qxeImmSetCompositionFont or ImmSetCompositionFontA/ImmSetCompositionFontW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
722 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
723 BOOL qxeImmSetCompositionFont (HIMC imc, LOGFONTW *lplf);
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
724 #endif /* defined (HAVE_MS_WINDOWS) */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
725
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
726 #if defined (HAVE_MS_WINDOWS)
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
727 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
728 #undef ImmGetCompositionFont
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
729 #define ImmGetCompositionFont error use qxeImmGetCompositionFont or ImmGetCompositionFontA/ImmGetCompositionFontW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
730 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
731 BOOL qxeImmGetCompositionFont (HIMC imc, LOGFONTW *lplf);
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
732 #endif /* defined (HAVE_MS_WINDOWS) */
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
733
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
734 #if defined (HAVE_MS_WINDOWS)
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
735 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
736 #undef ImmSetCompositionString
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
737 #define ImmSetCompositionString error_use_qxeImmSetCompositionString_or_ImmSetCompositionStringA_and_ImmSetCompositionStringW
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
738 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
739 #if MSC_VERSION >= 1300
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
740 BOOL qxeImmSetCompositionString (HIMC arg1, DWORD dwIndex, LPVOID lpComp, DWORD arg4, LPCVOID lpRead, DWORD arg6);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
741 #else
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
742 BOOL qxeImmSetCompositionString (HIMC arg1, DWORD dwIndex, LPCVOID lpComp, DWORD arg4, LPCVOID lpRead, DWORD arg6);
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
743 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2421
diff changeset
744 #endif /* defined (HAVE_MS_WINDOWS) */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
745
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
746 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
747 #undef GetObject
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
748 #define GetObject error use qxeGetObject or GetObjectA/GetObjectW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
749 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
750 int qxeGetObject (HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
751
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
752 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
753 #undef GetTextMetrics
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
754 #define GetTextMetrics error use qxeGetTextMetrics or GetTextMetricsA/GetTextMetricsW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
755 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
756 BOOL qxeGetTextMetrics (HDC hdc, LPTEXTMETRICW lptm);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
757
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
758 /* COMMCTRL.H */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
759
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
760 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
761 #undef SendMessage
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
762 #define SendMessage error use qxeSendMessage or SendMessageA/SendMessageW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
763 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
764 LRESULT qxeSendMessage (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
765
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
766 /* windows */
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
767
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
768 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
769 #undef RegisterClass
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
770 #define RegisterClass error use qxeRegisterClass or RegisterClassA/RegisterClassW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
771 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
772 ATOM qxeRegisterClass (CONST WNDCLASSW * lpWndClass);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
773
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
774 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
775 #undef UnregisterClass
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
776 #define UnregisterClass error use qxeUnregisterClass or UnregisterClassA/UnregisterClassW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
777 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
778 BOOL qxeUnregisterClass (const Extbyte * lpClassName, HINSTANCE hInstance);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
779
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
780 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
781 #undef RegisterClassEx
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
782 #define RegisterClassEx error use qxeRegisterClassEx or RegisterClassExA/RegisterClassExW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
783 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
784 ATOM qxeRegisterClassEx (CONST WNDCLASSEXW * arg1);
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
785
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
786 #ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
787 #undef CreateWindow
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
788 #define CreateWindow error use qxeCreateWindow or CreateWindowA/CreateWindowW
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
789 #endif
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
790 #define qxeCreateWindow(lpClassName, lpWindowName, dwStyle, x, y, \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
791 nWidth, nHeight, hWndParent, hMenu, hInstance, \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
792 lpParam) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
793 qxeCreateWindowEx (0L, lpClassName, lpWindowName, dwStyle, x, y, \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
794 nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
795
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
796 /* ------------------------- Unicode conversion ------------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
797
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
798 /* Set early in command-line processing, when -nuni or
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
799 --no-unicode-lib-calls is seen. */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
800 extern int no_mswin_unicode_lib_calls;
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
801 /* Set early, in init_win32_very_very_early(). */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
802 extern int mswindows_windows9x_p;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
803 #define XEUNICODE_P (!mswindows_windows9x_p && !no_mswin_unicode_lib_calls)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
804
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
805 #define XELPTSTR LPWSTR
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
806 #define XELPCTSTR LPCWSTR
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
807
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
808 #define XETCHAR_SIZE (XEUNICODE_P ? sizeof (WCHAR) : sizeof (CHAR))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
809 #define MAX_XETCHAR_SIZE sizeof (WCHAR)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
810 #define XETEXT1(arg) (XEUNICODE_P ? ((char *) (L##arg)) : (arg))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
811 /* We need to do this indirection in case ARG is also a manifest constant.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
812 I don't really understand why. --ben */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
813 #define XETEXT(arg) XETEXT1(arg)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
814 #define XECOPY_TCHAR(ptr, ch) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
815 (XEUNICODE_P ? (* (LPWSTR) (ptr) = L##ch) : (* (LPSTR) (ptr) = (ch)))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
816 #define qxetcslen(arg) \
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
817 (XEUNICODE_P ? wcslen ((wchar_t *) arg) : strlen (arg))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
818 #define qxetcsbytelen(arg) \
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
819 (XEUNICODE_P ? wcslen ((wchar_t *) arg) * XETCHAR_SIZE : strlen (arg))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
820 #define qxetcscmp(s1, s2) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
821 (XEUNICODE_P ? wcscmp ((wchar_t *) s1, (wchar_t *) s2) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
822 : strcmp (s1, s2))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
823 #define qxetcscpy(s1, s2) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
824 (XEUNICODE_P ? (char *) wcscpy ((wchar_t *) s1, (wchar_t *) s2) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
825 : strcpy (s1, s2))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
826 #define qxetcsncpy(s1, s2, n) \
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
827 (XEUNICODE_P ? (char *) wcsncpy ((wchar_t *) s1, (wchar_t *) s2, n) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
828 : strncpy (s1, s2, n))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
829 #define qxetcschr(s, ch) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
830 (XEUNICODE_P ? (char *) wcschr ((wchar_t *) s, (WCHAR) ch) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
831 : strchr (s, ch))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
832 #define qxetcsrchr(s, ch) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
833 (XEUNICODE_P ? (char *) wcsrchr ((wchar_t *) s, (WCHAR) ch) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
834 : strrchr (s, ch))
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
835 #define qxetcsdup(s) \
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
836 (XEUNICODE_P ? (char *) wcsdup ((wchar_t *) s) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
837 : xstrdup (s))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
838
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
839 #define C_STRING_TO_TSTR(in, out) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
840 C_STRING_TO_EXTERNAL (in, out, Qmswindows_tstr)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
841 #define LISP_STRING_TO_TSTR(in, out) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
842 LISP_STRING_TO_EXTERNAL (in, out, Qmswindows_tstr)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
843 #define TSTR_TO_C_STRING(in, out) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
844 EXTERNAL_TO_C_STRING (in, out, Qmswindows_tstr)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
845 #define TSTR_TO_C_STRING_MALLOC(in, out) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
846 EXTERNAL_TO_C_STRING_MALLOC (in, out, Qmswindows_tstr)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
847
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
848 #define build_tstr_string(in) \
2421
ab71ad6ff3dd [xemacs-hg @ 2004-12-06 03:50:53 by ben]
ben
parents: 2367
diff changeset
849 make_ext_string (in, qxetcsbytelen ((Extbyte *) in), Qmswindows_tstr)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
850
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
851 #define MAX_ANSI_CHAR_LEN 1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
852 #define MAX_UNICODE_CHAR_LEN 2
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
853
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
854 DECLARE_INLINE_HEADER (int ansi_char_to_text (int ch, Extbyte *t))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
855 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
856 ch &= 0xFF;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
857 t[0] = ch;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
858 return 1;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
859 }
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
860
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
861 DECLARE_INLINE_HEADER (int unicode_char_to_text (int ch, Extbyte *t))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
862 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
863 t[0] = ch & 0xFF;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
864 t[1] = (ch >> 8) & 0xFF;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
865 return 2;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
866 }
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
867
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
868 Extbyte *convert_multibyte_to_unicode_malloc (const Extbyte *src,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
869 Bytecount n,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
870 int cp, Bytecount *size_out);
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
871 Extbyte *convert_unicode_to_multibyte_malloc (const Extbyte *src,
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
872 Bytecount n,
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
873 int cp, Bytecount *size_out);
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
874 Ibyte *convert_multibyte_to_internal_malloc (const Extbyte *src,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
875 Bytecount n,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
876 int cp, Bytecount *size_out);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
877 void convert_multibyte_to_unicode_dynarr (const Extbyte *src, Bytecount n,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
878 int cp, unsigned_char_dynarr *dst);
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
879 void convert_unicode_to_multibyte_dynarr (const Extbyte *src, Bytecount n,
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
880 int cp, unsigned_char_dynarr *dst);
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
881
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
882 Bytecount unicode_multibyte_convert_size (const char *srctext, const void *src,
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
883 Bytecount src_size, int to_unicode,
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
884 int cp);
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
885 void *unicode_multibyte_convert_copy_data (const char *srctext,
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
886 void *alloca_data);
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
887
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
888 /* NOTE: If you make two invocations of the following functions in the same
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
889 subexpression and use the exact same expression for the source in both
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
890 cases, you will lose. In this unlikely case, you may get an abort, and
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
891 need to rewrite the code.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
892
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
893 We need to use ALLOCA_FUNCALL_OK here, see NEW_DFC in text.h.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
894 */
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
895
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
896 #ifdef WEXTTEXT_IS_WIDE
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
897 #define MULTIBYTE_TO_WEXTTEXT(str) \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
898 ((Wexttext *) \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
899 unicode_multibyte_convert_copy_data \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
900 (#str, ALLOCA_FUNCALL_OK (unicode_multibyte_convert_size \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
901 (#str, str, strlen (str) + 1, 1, CP_ACP))))
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
902
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
903 #define WEXTTEXT_TO_MULTIBYTE(str) \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
904 ((Extbyte *) \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
905 unicode_multibyte_convert_copy_data \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
906 (#str, ALLOCA_FUNCALL_OK (unicode_multibyte_convert_size \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
907 (#str, str, \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
908 (wcslen (str) + 1) * sizeof (WCHAR), 0, \
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
909 CP_ACP))))
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
910 #else
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
911 #define MULTIBYTE_TO_WEXTTEXT(str) ((Wexttext *) (str))
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
912 #define WEXTTEXT_TO_MULTIBYTE(str) ((Extbyte *) (str))
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
913 #endif
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
914
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
915 /* #### mbstowcs() uses MB_ERR_INVALID_CHARS in addition to MB_PRECOMPOSED.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
916 Should we do this? But then we have to handle errors.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
917 #### Do we already check for invalid sequences in the coding system? */
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
918 #define MBTOWC_OPTIONS MB_PRECOMPOSED /* | MB_ERR_INVALID_CHARS */
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
919 /* The following options are what wcstombs() uses in the CRT. It uses
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
920 NULL in place of "~". */
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
921 #define WCTOMB_OPTIONS WC_COMPOSITECHECK | WC_SEPCHARS
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
922 #define WCTOMB_INVALID_STRING "~"
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
923
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
924 /* ------------------------- Other Mule stuff ------------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
925
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
926 LCID mswindows_current_locale (void);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
927 int mswindows_locale_to_code_page (LCID lcid);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
928 int mswindows_locale_to_oem_code_page (LCID lcid);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
929
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
930 /* ------------------------- Filename conversion ------------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
931
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
932 #ifdef CYGWIN
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents: 1685
diff changeset
933
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
934 /* We should just remove the Windows 9x support */
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents: 1685
diff changeset
935
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
936 #define CCP_POSIX_TO_WIN_T \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
937 (XEUNICODE_P ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_A)
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
938 #define CCP_WIN_T_TO_POSIX \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
939 (XEUNICODE_P ? CCP_WIN_W_TO_POSIX : CCP_WIN_A_TO_POSIX)
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents: 1685
diff changeset
940
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
941 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
942
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
943 #ifdef HAVE_CYGWIN_CONV_PATH
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
944 #define LOCAL_FILE_FORMAT_TO_TSTR(path, out) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
945 do { \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
946 const Ibyte *lfftt = (path); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
947 if (isalpha (lfftt[0]) && (IS_DEVICE_SEP (lfftt[1]))) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
948 PATHNAME_CONVERT_OUT_TSTR (lfftt, out); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
949 else \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
950 { \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
951 int lfftt_size; \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
952 Extbyte *lfftt_utf8_path; \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
953 Extbyte *lfftt_tstr_path; \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
954 \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
955 PATHNAME_CONVERT_OUT_UTF_8 (lfftt, lfftt_utf8_path); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
956 lfftt_size = cygwin_conv_path (CCP_POSIX_TO_WIN_T | CCP_RELATIVE, \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
957 lfftt_utf8_path, NULL, 0); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
958 lfftt_tstr_path = alloca_extbytes (lfftt_size); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
959 cygwin_conv_path (CCP_POSIX_TO_WIN_T | CCP_RELATIVE, \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
960 lfftt_utf8_path, lfftt_tstr_path, lfftt_size); \
4854
95c4ced5c07c fix compile problems
Ben Wing <ben@xemacs.org>
parents: 4834
diff changeset
961 * (const Extbyte **) &(out) = lfftt_tstr_path; \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
962 } \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
963 } while (0)
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
964 #define TSTR_TO_LOCAL_FILE_FORMAT(path, out) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
965 do { \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
966 const Extbyte *ttlff = (path); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
967 int ttlff_size; \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
968 Extbyte *ttlff_utf8_path; \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
969 \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
970 ttlff_size = cygwin_conv_path (CCP_WIN_T_TO_POSIX | CCP_RELATIVE, \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
971 ttlff, NULL, 0); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
972 ttlff_utf8_path = alloca_extbytes (ttlff_size); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
973 cygwin_conv_path (CCP_WIN_T_TO_POSIX | CCP_RELATIVE, \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
974 ttlff, ttlff_utf8_path, ttlff_size); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
975 EXTERNAL_TO_C_STRING (ttlff_utf8_path, out, Qutf_8); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
976 } while (0)
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
977 #else /* not HAVE_CYGWIN_CONV_PATH */
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
978 #define LOCAL_FILE_FORMAT_TO_TSTR(path, out) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
979 do { \
4867
7822019c5d98 Revert cast in check_writable() and fix up macros to use const.
Vin Shelton <acs@xemacs.org>
parents: 4858
diff changeset
980 const Ibyte *lfftt; \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
981 \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
982 LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN (path, lfftt); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
983 PATHNAME_CONVERT_OUT_TSTR (lfftt, out); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
984 } while (0)
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
985 #define TSTR_TO_LOCAL_FILE_FORMAT(path, out) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
986 do { \
4867
7822019c5d98 Revert cast in check_writable() and fix up macros to use const.
Vin Shelton <acs@xemacs.org>
parents: 4858
diff changeset
987 const Ibyte *ttlff; \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
988 \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
989 TSTR_TO_C_STRING (path, ttlff); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
990 INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT (ttlff, out); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
991 } while (0)
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
992 #endif /* (not) HAVE_CYGWIN_CONV_PATH */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
993
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
994 #define LISP_LOCAL_FILE_FORMAT_TO_TSTR(path, out) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
995 LOCAL_FILE_FORMAT_TO_TSTR (XSTRING_DATA (path), out)
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
996 /* Convert from local file format, as used in XEmacs, to valid win32
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
997 filenames as can be given to Windows API routines. Under native XEmacs,
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
998 this is a no-op, but under Cygwin, the local names look different --
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
999 Cygwin mount points, forward slashes, etc. Currently, under Cygwin, we
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1000 actually allow local names to be of both formats, i.e. Cygwin or Win32
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1001 native. So we check to see if we have Win32 native already (a cheesy
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1002 check, look for letter plus colon at beginning of name) and do nothing
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1003 in that case. */
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1004
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1005 #ifdef HAVE_CYGWIN_CONV_PATH
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1006 /* When Cygwin uses UTF-8, we can't just manipulate internal-format data
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1007 with its routines because it will mangle the high bytes, so we need to
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1008 convert to UTF-8 first, then to Win32 TSTR format (i.e. UTF-16, on
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1009 Windows NT), then back to internal format. Routines that want external
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1010 format should avoid this by using LISP_LOCAL_FILE_FORMAT_TO_TSTR().
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1011 Same thing applies going the other direction. */
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1012 #define LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN(path, pathout) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1013 do \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1014 { \
4867
7822019c5d98 Revert cast in check_writable() and fix up macros to use const.
Vin Shelton <acs@xemacs.org>
parents: 4858
diff changeset
1015 const Extbyte *lfftiwp; \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1016 \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1017 LOCAL_FILE_FORMAT_TO_TSTR (path, lfftiwp); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1018 TSTR_TO_C_STRING (lfftiwp, pathout); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1019 } \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1020 while (0)
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1021 #define INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT(path, pathout) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1022 do { \
4867
7822019c5d98 Revert cast in check_writable() and fix up macros to use const.
Vin Shelton <acs@xemacs.org>
parents: 4858
diff changeset
1023 const Extbyte *iwtlffp; \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1024 C_STRING_TO_TSTR (path, iwtlffp); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1025 TSTR_TO_LOCAL_FILE_FORMAT (iwtlffp, pathout); \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1026 } while (0)
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1027 #elif defined (CYGWIN)
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1028 #define LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN(path, pathout) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1029 do { \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1030 /* NOTE: It is a bit evil that here and below we are passing \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1031 internal-format data to a function that (nominally) should work \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1032 with external-format data. But in point of fact, the Cygwin \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1033 conversion functions are *NOT* localized, and will fail if they \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1034 get 7-bit ISO2022-encoded data. We know that our internal format \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1035 is ASCII-compatible, and so these functions will work fine with \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1036 this data. */ \
4867
7822019c5d98 Revert cast in check_writable() and fix up macros to use const.
Vin Shelton <acs@xemacs.org>
parents: 4858
diff changeset
1037 const Ibyte *lfftiwp = (path); \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1038 if (isalpha (lfftiwp[0]) && (IS_DEVICE_SEP (lfftiwp[1]))) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1039 pathout = lfftiwp; \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1040 else \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1041 { \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1042 int lfftiw2 = \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1043 cygwin_posix_to_win32_path_list_buf_size ((char *) lfftiwp); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1044 pathout = alloca_ibytes (lfftiw2); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1045 cygwin_posix_to_win32_path_list ((char *) lfftiwp, (char *) pathout); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1046 } \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1047 } while (0)
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1048 #define INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT(path, pathout) \
593
5fd7ba8b56e7 [xemacs-hg @ 2001-05-31 12:45:27 by ben]
ben
parents: 558
diff changeset
1049 do { \
4867
7822019c5d98 Revert cast in check_writable() and fix up macros to use const.
Vin Shelton <acs@xemacs.org>
parents: 4858
diff changeset
1050 const Ibyte *wtlff1 = (path); \
593
5fd7ba8b56e7 [xemacs-hg @ 2001-05-31 12:45:27 by ben]
ben
parents: 558
diff changeset
1051 int wtlff2 = \
5fd7ba8b56e7 [xemacs-hg @ 2001-05-31 12:45:27 by ben]
ben
parents: 558
diff changeset
1052 cygwin_win32_to_posix_path_list_buf_size ((char *) wtlff1); \
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1743
diff changeset
1053 Ibyte *wtlff3 = alloca_ibytes (wtlff2); \
593
5fd7ba8b56e7 [xemacs-hg @ 2001-05-31 12:45:27 by ben]
ben
parents: 558
diff changeset
1054 cygwin_win32_to_posix_path_list ((char *) wtlff1, (char *) wtlff3); \
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1055 (pathout) = wtlff3; \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1056 } while (0)
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1057 #else /* not defined (CYGWIN) */
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1058 #define LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN(path, pathout) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1059 do { \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1060 (pathout) = (path); \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1061 } while (0)
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1062 #define INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT(path, pathout) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1063 do { \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1064 (pathout) = (path); \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1065 } while (0)
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1066 #endif /* (not) defined (CYGWIN) */
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1067
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1068 Lisp_Object tstr_to_local_file_format (Extbyte *pathout);
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1069
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1070 /* Convert a local-format file name or URL in internal format into a Win32
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1071 file name or URL in tstr format. */
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1072
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1073 #ifdef CYGWIN
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1074
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1075 #define LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR(lispstr, pathout) \
2526
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1076 do \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1077 { \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1078 Ibyte *lffmutt_fname1; \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1079 Ibyte *lffmutt_pathint = XSTRING_DATA (lispstr); \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1080 \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1081 if ((lffmutt_fname1 = qxestrchr (lffmutt_pathint, ':')) != NULL \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1082 && *++lffmutt_fname1 == '/' && *++lffmutt_fname1 == '/') \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1083 { \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1084 /* If URL style file, the innards may have Cygwin mount points and \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1085 the like. so separate out the innards, process them, and put back \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1086 together. */ \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1087 if (qxestrncasecmp_ascii (lffmutt_pathint, "file://", 7) == 0) \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1088 { \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1089 Ibyte *lffmutt_path1, *lffmutt_path2; \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1090 LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN (lffmutt_pathint + 7, \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1091 lffmutt_path1); \
2526
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1092 if (lffmutt_path1 == lffmutt_pathint + 7) /* Optimization */ \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1093 lffmutt_path2 = lffmutt_pathint; \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1094 else \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1095 { \
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1096 lffmutt_path2 = alloca_ibytes (7 + qxestrlen (lffmutt_path1) \
2526
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1097 + 1); \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1098 qxestrncpy (lffmutt_path2, lffmutt_pathint, 7); \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1099 qxestrcpy (lffmutt_path2 + 7, lffmutt_path1); \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1100 } \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1101 C_STRING_TO_TSTR (lffmutt_path2, pathout); \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1102 } \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1103 else \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1104 /* A straight URL, just convert */ \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1105 LISP_STRING_TO_TSTR (lispstr, pathout); \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1106 } \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1107 else \
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1108 /* Not URL-style, must be a straight filename. */ \
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1109 LISP_LOCAL_FILE_FORMAT_TO_TSTR (lispstr, pathout); \
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1110 } while (0)
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1111
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1112 #else /* not CYGWIN */
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1113
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1114 /* URL's (and everything else) are already in the right format */
4834
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1115 #define LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR(lispstr, pathout) \
b3ea9c582280 Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
Ben Wing <ben@xemacs.org>
parents: 4827
diff changeset
1116 LISP_LOCAL_FILE_FORMAT_TO_TSTR (lispstr, pathout)
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1117
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1118 #endif /* not CYGWIN */
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1119
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 819
diff changeset
1120
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1121 Ibyte *urlify_filename (Ibyte *filename);
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1122 Ibyte *mswindows_canonicalize_filename (Ibyte *name);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1123 #define MSWINDOWS_NORMALIZE_FILENAME(name) \
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1124 IBYTE_STRING_TO_ALLOCA (mswindows_canonicalize_filename (name), name)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1125
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1126 /* ------------------- Functions needed dynamic binding ------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1127
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1128 typedef BOOL (WINAPI *pfSwitchToThread_t) (VOID);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1129
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1130 typedef NET_API_STATUS (NET_API_FUNCTION *pfNetUserEnum_t)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1131 (LPCWSTR, DWORD, DWORD, LPBYTE *, DWORD, LPDWORD, LPDWORD, LPDWORD);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1132 typedef NET_API_STATUS (NET_API_FUNCTION *pfNetApiBufferFree_t) (LPVOID);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1133
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1134 extern pfSwitchToThread_t xSwitchToThread;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1135
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1136 extern pfNetUserEnum_t xNetUserEnum;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1137 extern pfNetApiBufferFree_t xNetApiBufferFree;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1138
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1139 /* --------- Useful routines for manipulating memory-mapped files -------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1140
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1141 typedef struct file_data
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1142 {
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1143 const Ibyte *name;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1144 unsigned long size;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1145 HANDLE file;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1146 HANDLE file_mapping;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1147 void *file_base;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1148 } file_data;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1149
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1150 #define OFFSET_TO_RVA(var,section) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1151 (section->VirtualAddress + \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1152 ((DWORD)(var) - section->PointerToRawData))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1153
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1154 #define RVA_TO_OFFSET(var,section) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1155 (section->PointerToRawData + \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1156 ((DWORD)(var) - section->VirtualAddress))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1157
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1158 #define RVA_TO_PTR(var,section,filedata) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1159 ((void *)(RVA_TO_OFFSET(var,section) + \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1160 (char *)(filedata).file_base))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1161
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1162 int open_input_file (file_data *p_file, const Ibyte *name);
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1163 int open_output_file (file_data *p_file, const Ibyte *name,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1164 unsigned long size);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1165 void close_file_data (file_data *p_file);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1166
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1167 /* ------------------------- Heap related stuff ------------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1168
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1169 #ifdef WIN32_NATIVE
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1170
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1171 #define get_reserved_heap_size() reserved_heap_size
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1172 #define get_committed_heap_size() (get_data_end () - get_data_start ())
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1173 #define get_heap_start() get_data_start ()
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1174 #define get_heap_end() get_data_end ()
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1175 #define get_page_size() sysinfo_cache.dwPageSize
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1176 #define get_allocation_unit() sysinfo_cache.dwAllocationGranularity
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1177 #define get_processor_type() sysinfo_cache.dwProcessorType
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1178 #define get_nt_major_version() nt_major_version
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1179 #define get_nt_minor_version() nt_minor_version
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1180
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1181 unsigned char *get_data_start (void);
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1182 unsigned char *get_data_end (void);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1183 extern unsigned long data_region_size;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1184 extern unsigned long reserved_heap_size;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1185 extern SYSTEM_INFO sysinfo_cache;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1186 extern int nt_major_version;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1187 extern int nt_minor_version;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1188
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1189 /* To prevent zero-initialized variables from being placed into the bss
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1190 section, use non-zero values to represent an uninitialized state. */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1191 #define UNINIT_PTR ((unsigned char*) 0xF0A0F0A0)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1192 #define UNINIT_LONG (0xF0A0F0A0L)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1193
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1194 /* Recreate the heap created during dumping. */
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1195 void recreate_heap (Extbyte *executable_path);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1196
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1197 /* Round the heap to this size. */
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1198 void round_heap (unsigned long size);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1199
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1200 /* Load in the dumped .bss section. */
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1201 void read_in_bss (Extbyte *name);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1202
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1203 /* Map in the dumped heap. */
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1204 void map_in_heap (Extbyte *name);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1205
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1206 /* Cache system info, e.g., the NT page size. */
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1207 void cache_system_info (void);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1208
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1209 /* Round ADDRESS up to be aligned with ALIGN. */
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1210 unsigned char *round_to_next (unsigned char *address,
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1211 unsigned long align);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1212 #endif /* WIN32_NATIVE */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1213
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1214 /* ------------------------- Misc prototypes ------------------------- */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1215
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1216 #ifdef WIN32_NATIVE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1217 DECLARE_INLINE_HEADER (int strcasecmp (const char *a, const char *b))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1218 {
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1219 return qxestrcasecmp ((const Ibyte *) a, (const Ibyte *) b);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1220 }
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1221 #endif /* WIN32_NATIVE */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1222
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1223 /* in nt.c */
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1224 int mswindows_access (const Ibyte *path, int mode);
3025
facf3239ba30 [xemacs-hg @ 2005-10-25 11:16:19 by ben]
ben
parents: 2526
diff changeset
1225 int mswindows_link (const Ibyte *old, const Ibyte *new_);
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1226 int mswindows_rename (const Ibyte *oldname, const Ibyte *newname);
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1227 int mswindows_unlink (const Ibyte *path);
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1228 int mswindows_stat (const Ibyte *path, struct stat *buf);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1229 int mswindows_fstat (int desc, struct stat *buf);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1230 time_t mswindows_convert_time (FILETIME ft);
1204
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 1111
diff changeset
1231 int mswindows_is_executable (const Ibyte *filename);
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 1111
diff changeset
1232 void mswindows_executable_type (const Ibyte *filename, int *is_dos_app,
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 1111
diff changeset
1233 int *is_cygnus_app);
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 851
diff changeset
1234 Ibyte *mswindows_getdcwd (int drivelet);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1235
872
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 867
diff changeset
1236 /* in process-nt.c */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1237 extern int mswindows_compare_env (const void *strp1, const void *strp2);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1238
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1239 /* in win32.c */
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 800
diff changeset
1240 Extbyte *mswindows_get_module_file_name (void);
4932
8b63e21b0436 fix compile issues with gcc 4
Ben Wing <ben@xemacs.org>
parents: 4867
diff changeset
1241 void mswindows_output_last_error (const Ascbyte *frob);
4952
19a72041c5ed Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents: 4932
diff changeset
1242 DECLARE_DOESNT_RETURN (mswindows_report_process_error (const Ascbyte *reason,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1243 Lisp_Object data,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1244 int errnum));
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1245 Lisp_Object mswindows_lisp_error (int errnum);
2526
902d5bd9b75c [xemacs-hg @ 2005-01-28 02:36:11 by ben]
ben
parents: 2500
diff changeset
1246 Ibyte *mswindows_read_link (const Ibyte *fname);
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 673
diff changeset
1247
872
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 867
diff changeset
1248 /* in intl-win32.c */
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 867
diff changeset
1249 extern Lisp_Object Qmswindows_tstr, Qmswindows_unicode;
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 867
diff changeset
1250 extern Lisp_Object Qmswindows_multibyte, Qmswindows_multibyte_to_unicode;
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 867
diff changeset
1251
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1252 #endif /* INCLUDED_syswindows_h_ */