From ba1e26a03bef27c9ac4ef32f41e2b37076ab2cc7 Mon Sep 17 00:00:00 2001 From: Erik Walthinsen Date: Sun, 24 Jun 2001 22:44:44 +0000 Subject: [PATCH] Merge from HEAD to BRANCH-GOBJECT1 at 200106241 Original commit message from CVS: Merge from HEAD to BRANCH-GOBJECT1 at 200106241 --- LICENSE_readme | 4 +- REQUIREMENTS | 13 +- acconfig.h | 4 +- autogen.sh | 2 +- configure.base | 106 +- docs/gst/gstreamer-sections.txt | 4 + docs/manual/advanced.sgml | 4 +- docs/manual/bins.sgml | 4 +- docs/manual/factories.sgml | 2 +- docs/manual/helloworld.sgml | 91 +- docs/manual/helloworld2.sgml | 2 +- docs/manual/pads.sgml | 134 +- docs/manual/states.sgml | 26 +- docs/random/eos | 73 + examples/Makefile.am | 8 +- examples/cutter/Makefile.am | 5 + examples/cutter/cutter.c | 210 ++ examples/cutter/cutter.h | 14 + gst/Makefile.am | 8 +- gst/elements/gstdisksink.c | 2 +- gst/elements/gstdisksrc.c | 10 +- gst/gst.c | 9 +- gst/gstautoplug.c | 1 - gst/gstbin.c | 6 + gst/gstbuffer.c | 2 +- gst/gstbufferpool.c | 207 +- gst/gstbufferpool.h | 28 +- gst/gstcaps.c | 3 - gst/gstelement.c | 11 +- gst/gstelementfactory.c | 3 +- gst/gstobject.c | 17 + gst/gstobject.h | 8 + gst/gstpad.c | 40 +- gst/gstparse.c | 227 +- gst/gstplugin.c | 14 +- gst/gstprops.c | 184 +- gst/gstscheduler.c | 2 +- gst/gstthread.c | 24 +- gstplay/ChangeLog | 41 + gstplay/Makefile.am | 7 +- gstplay/callbacks.c | 23 +- gstplay/full-screen.c | 247 --- gstplay/full-screen.h | 44 - gstplay/gstmediaplay.c | 102 +- gstplay/gstmediaplay.glade | 98 +- gstplay/gstmediaplay.h | 10 +- gstplay/gstplay.c | 68 +- gstplay/gstplay.h | 4 +- gstplay/main.c | 2 +- gstreamer.spec.in | 485 +++- idiottest.mak | 10 +- include/Makefile.am | 2 - include/wine/.gitignore | 7 - include/wine/Makefile.am | 28 - include/wine/basetsd.h | 145 -- include/wine/config.h | 442 ---- include/wine/debugtools.h | 93 - include/wine/driver.h | 112 - include/wine/elfdll.h | 14 - include/wine/heap.h | 56 - include/wine/ldt.h | 98 - include/wine/mmreg.h | 104 - include/wine/module.h | 198 -- include/wine/msacm.h | 942 -------- include/wine/msacmdrv.h | 203 -- include/wine/ntdef.h | 101 - include/wine/pe_image.h | 81 - include/wine/poppack.h | 15 - include/wine/pshpack1.h | 13 - include/wine/pshpack2.h | 12 - include/wine/pshpack4.h | 15 - include/wine/pshpack8.h | 12 - include/wine/vfw.h | 654 ------ include/wine/winbase.h | 1791 --------------- include/wine/windef.h | 656 ------ include/wine/windows.h | 38 - include/wine/winerror.h | 1658 -------------- include/wine/winestring.h | 13 - include/wine/winnt.h | 2665 ---------------------- include/wine/winreg.h | 57 - include/wine/winuser.h | 2929 ------------------------- libs/audio/gstaudio.c | 115 + libs/audio/gstaudio.h | 16 +- libs/riff/gstriffencode.c | 2 +- plugins/elements/gstdisksink.c | 2 +- plugins/elements/gstdisksrc.c | 10 +- tests/old/examples/Makefile.am | 8 +- tests/old/examples/cutter/Makefile.am | 5 + tests/old/examples/cutter/cutter.c | 210 ++ tests/old/examples/cutter/cutter.h | 14 + tools/README | 75 +- tools/gstreamer-compprep.1 | 31 +- tools/gstreamer-launch.c | 35 +- 93 files changed, 2501 insertions(+), 13829 deletions(-) create mode 100644 examples/cutter/Makefile.am create mode 100644 examples/cutter/cutter.c create mode 100644 examples/cutter/cutter.h delete mode 100644 gstplay/full-screen.c delete mode 100644 gstplay/full-screen.h delete mode 100644 include/wine/.gitignore delete mode 100644 include/wine/Makefile.am delete mode 100644 include/wine/basetsd.h delete mode 100644 include/wine/config.h delete mode 100644 include/wine/debugtools.h delete mode 100644 include/wine/driver.h delete mode 100644 include/wine/elfdll.h delete mode 100644 include/wine/heap.h delete mode 100644 include/wine/ldt.h delete mode 100644 include/wine/mmreg.h delete mode 100644 include/wine/module.h delete mode 100644 include/wine/msacm.h delete mode 100644 include/wine/msacmdrv.h delete mode 100644 include/wine/ntdef.h delete mode 100644 include/wine/pe_image.h delete mode 100644 include/wine/poppack.h delete mode 100644 include/wine/pshpack1.h delete mode 100644 include/wine/pshpack2.h delete mode 100644 include/wine/pshpack4.h delete mode 100644 include/wine/pshpack8.h delete mode 100644 include/wine/vfw.h delete mode 100644 include/wine/winbase.h delete mode 100644 include/wine/windef.h delete mode 100644 include/wine/windows.h delete mode 100644 include/wine/winerror.h delete mode 100644 include/wine/winestring.h delete mode 100644 include/wine/winnt.h delete mode 100644 include/wine/winreg.h delete mode 100644 include/wine/winuser.h create mode 100644 tests/old/examples/cutter/Makefile.am create mode 100644 tests/old/examples/cutter/cutter.c create mode 100644 tests/old/examples/cutter/cutter.h diff --git a/LICENSE_readme b/LICENSE_readme index f0c315f3bf..607a79f764 100644 --- a/LICENSE_readme +++ b/LICENSE_readme @@ -3,8 +3,6 @@ When using GPL linked plugins GStreamer is for all practical reasons under the G The plugins which use a GPL library are as follows: cdparanoia libcdparanoia (http://www.xiph.org/paranoia/) -lame libmp3lame (http://www.mp3dev.org/mp3/) -icastsend libshout (http://www.icecast.org) aasink aalib (http://aa-project.sourceforge.net/aalib/) gst1394 libraw1394 (http://linux1394.sourceforge.net) xmms libxmms (http://www.xmms.org) @@ -19,6 +17,8 @@ sdlsink libsdl (http://www.libsdl.org) gnomevfssource gnome-vfs (ftp.gnome.org//pub/GNOME/stable/sources/gnome-vfs) gnomevfssink gnome-vfs esdsink libesd (ftp.gnome.org/pub/GNOME/stable/sources/esound) +icastsend libshout (http://www.icecast.org) +lame libmp3lame (http://www.mp3dev.org/mp3/) Plugins which use a BSD covered library are as follows: vorbisenc libogg/libvorbis (http://www.xiph.org/ogg/vorbis) diff --git a/REQUIREMENTS b/REQUIREMENTS index 2f3381e272..983087fa90 100644 --- a/REQUIREMENTS +++ b/REQUIREMENTS @@ -50,11 +50,11 @@ librtp (for the rtp sink plugin, shipped with Gnome-O-Phone) aalib (for the aa sink plugin) http://aa-project.sourceforge.net/aalib/ aRts (for the arts plugin wrapper, and the artsd sink) - http://www.arts-project.org/ + http://www.arts-project.org raw1394/linux1394 (for the dv plugin) - http://linux1394.sourceforge.net/ + http://linux1394.sourceforge.net decss (for the dvdsrc) - huh, I don't know, sorry (FIXME) + http://www.linuxrising.com/dvd-munitions_tar.gz libesound (for the esd sink ftp.gnome.org/pub/GNOME/stable/sources/esound) gnome-vfs (for the gnome-vfs src) @@ -67,9 +67,10 @@ xmms (for the xmms plugins wrapper) mpeg2dec/ac3dec (for mpeg2 related plugins and dvd playback) http://linuxvideo.org/mpeg2dec/ and http://linuxvideo.org/ac3dec/ - -for AVI playback you might want to get the windows libraries from -http://divx.euro.ru/ and put the .dll files in /usr/lib/win32/ +avifile (for the avi windows decoder plugins + you might want to get the windows libraries + from http://divx.euro.ru/ and put the .dll files + in /usr/lib/win32/) An extra set of tools is required if you wish to build GStreamer out of CVS (using autogen.sh): diff --git a/acconfig.h b/acconfig.h index 197b074ac1..c9b1b8aeac 100644 --- a/acconfig.h +++ b/acconfig.h @@ -11,8 +11,8 @@ #undef USE_GLIB2 #undef PLUGINS_DIR -#undef PLUGINS_SRCDIR -#undef PLUGINS_USE_SRCDIR +#undef PLUGINS_BUILDDIR +#undef PLUGINS_USE_BUILDDIR #undef GST_CONFIG_DIR #undef GST_WIN32_LIBDIR diff --git a/autogen.sh b/autogen.sh index 096f8f48fb..bcd79c503f 100755 --- a/autogen.sh +++ b/autogen.sh @@ -185,7 +185,7 @@ rm -f config.cache # The new configure options for busy application developers (Hadess) #./configure --enable-maintainer-mode --enable-debug --enable-debug-verbose -./configure --enable-maintainer-mode --enable-plugin-srcdir --enable-debug --enable-debug-verbose "$@" || { +./configure --enable-maintainer-mode --enable-plugin-builddir --enable-debug --enable-debug-verbose "$@" || { echo echo "configure failed" exit 1 diff --git a/configure.base b/configure.base index f89dad5a27..c18d6ccda4 100644 --- a/configure.base +++ b/configure.base @@ -247,20 +247,40 @@ dnl Next, check for the optional libraries: dnl ======================================= -dnl Check for libesd -esd_save_LIBS=$LIBS -esd_save_CFLAGS=$CFLAGS -AM_PATH_ESD(0.2.12, HAVE_LIBESD=yes, HAVE_LIBESD=no) -LIBS=$esd_save_LIBS -CFLAGS=$esd_save_CFLAGS -AC_ARG_ENABLE(esdsink, -[ --enable-esdsink enable the building of the esdsink], -[case "${enableval}" in - yes) : ;; - no) HAVE_LIBESD=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-esdsink) ;; - esac], -[HAVE_LIBESD=$HAVE_LIBESD]) + +dnl ***** ESound ***** + +dnl *** First, the --enable-esd arg +AC_ARG_ENABLE(esd, + [ --enable-esd enable esound plugins: esdsrc, esdsink], + [ case "${enableval}" in + yes) USE_LIBESD=yes ;; + no) USE_LIBESD=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-esd) ;; + esac], + [ USE_LIBESD=yes ]) dnl DEFAULT +dnl *** If it's enabled +if test x$USE_LIBESD = xyes; then + esd_save_LIBS=$LIBS + esd_save_CFLAGS=$CFLAGS + AM_PATH_ESD(0.2.12, HAVE_LIBESD=yes, HAVE_LIBESD=no) + LIBS=$esd_save_LIBS + CFLAGS=$esd_save_CFLAGS + + dnl If it isn't found, unset USE_LIBESD + if test x$HAVE_LIBESD = xno; then + USE_LIBESD=yes + fi +fi +dnl *** Warn if it's disabled or not found +if test x$USE_LIBESD = xno; then + AC_MSG_WARN( +***** NOTE: These plugins won't be built: esdsink +) +fi +dnl *** Define the conditional as appropriate +AM_CONDITIONAL(USE_LIBESD, test x$USE_LIBESD = xyes) + dnl Check for artsc AC_PATH_PROG(ARTSC_CONFIG, artsc-config, no) @@ -335,25 +355,34 @@ dnl AM_PATH_XMMS(0.1.0, HAVE_LIBXMMS=yes, HAVE_LIBXMMS=no) dnl Check for libasound -alsa_save_LIBS=$LIBS -alsa_save_CFLAGS=$CFLAGS +dnl alsa_save also used in ALSA macro, use our own namespace +gst_alsa_save_LIBS=$LIBS +gst_alsa_save_LDFLAGS=$LDFLAGS +gst_alsa_save_CFLAGS=$CFLAGS AM_PATH_ALSA(0.5.0, HAVE_LIBASOUND=yes, HAVE_LIBASOUND=no AC_MSG_WARN( ***** NOTE: These plugins won't be built: gstalsa )) +LIBS=$gst_alsa_save_LIBS +LDFLAGS=$gst_alsa_save_LDFLAGS +CFLAGS=$gst_alsa_save_CFLAGS if test x$HAVE_LIBASOUND = xyes;then + gst_alsa_save_LIBS=$LIBS + gst_alsa_save_LDFLAGS=$LDFLAGS + gst_alsa_save_CFLAGS=$CFLAGS AM_PATH_ALSA(0.9.0, HAVE_LIBASOUND=no AC_MSG_WARN(Alsa 0.9.x not yet supported. ***** NOTE: These plugins won't be built: gstalsa ) ,:) + LIBS=$gst_alsa_save_LIBS + LDFLAGS=$gst_alsa_save_LDFLAGS + CFLAGS=$gst_alsa_save_CFLAGS fi -LIBS=$alsa_save_LIBS -CFLAGS=$alsa_save_CFLAGS AC_ARG_ENABLE(alsasink, [ --enable-alsasink enable the building of the alsasink], [case "${enableval}" in @@ -644,7 +673,7 @@ AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no) dnl Check for liblame AC_MSG_CHECKING(LAME library) -AC_CHECK_LIB(mp3lame, lame_init, HAVE_LIBLAME=yes, HAVE_LIBLAME=no, ) +AC_CHECK_LIB(mp3lame, lame_init, HAVE_LIBLAME=yes, HAVE_LIBLAME=no, -lm) AC_CHECK_HEADER(lame/lame.h, :, HAVE_LIBLAME=no) dnl Check for libshout @@ -672,7 +701,10 @@ AC_CHECK_HEADER(libraw1394/raw1394.h, :, HAVE_RAW1394=no) dnl Check for libdv AC_MSG_CHECKING(libdv) AC_CHECK_LIB(dv, dv_init, HAVE_LIBDV=yes, HAVE_LIBDV=no, -lm $GLIB_LIBS $GLIB_CFLAGS) +libdvcheck_save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS" AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no) +CPPFLAGS="$libdvcheck_save_CPPFLAGS" dnl Check for aalib AC_MSG_CHECKING(aalib) @@ -705,13 +737,12 @@ if sdl-config --libs > /dev/null 2>&1; then SDL_LIBS="`sdl-config --libs`" SDL_CFLAGS="`sdl-config --cflags`" AC_CHECK_LIB(SDL, SDL_Init, :, HAVE_LIBSDL=no, $SDL_LIBS) - dnl FIXME: CPPFLAGS should be set from SDL_CFLAGS for the next check dnl AC_CHECK_HEADER uses CPPFLAGS, but not CFLAGS. dnl Assume only suitable flags result from artsc-config --cflags - CPPFLAGS="$sdlcheck_save_CPPFLAGS" + sdlcheck_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $SDL_CFLAGS" AC_CHECK_HEADER(SDL.h, :, HAVE_LIBSDL=no) - sdlcheck_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$sdlcheck_save_CPPFLAGS" AC_CHECK_LIB(SDL, SDL_CreateYUVOverlay, :, HAVE_LIBSDL=no, $SDL_LIBS) else AC_MSG_RESULT(not found) @@ -781,14 +812,14 @@ AC_ARG_ENABLE(atomic, esac], [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value -AC_ARG_ENABLE(plugin-srcdir, -[ --enable-plugin-srcdir allow tests/demos to use non-installed plugins ], +AC_ARG_ENABLE(plugin-builddir, +[ --enable-plugin-builddir allow tests/demos to use non-installed plugins ], [case "${enableval}" in - yes) PLUGINS_USE_SRCDIR=yes ;; - no) PLUGINS_USE_SRCDIR=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-srcdir) ;; + yes) PLUGINS_USE_BUILDDIR=yes ;; + no) PLUGINS_USE_BUILDDIR=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;; esac], -[PLUGINS_USE_SRCDIR=no]) dnl Default value +[PLUGINS_USE_BUILDDIR=no]) dnl Default value AC_ARG_ENABLE(debug, [ --enable-debug compile with -g debugging info], @@ -927,8 +958,8 @@ if test "x$USE_ATOMIC_H" = xyes; then AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available]) fi -if test "x$PLUGINS_USE_SRCDIR" = xyes; then - AC_DEFINE(PLUGINS_USE_SRCDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this]) +if test "x$PLUGINS_USE_BUILDDIR" = xyes; then + AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this]) fi if test "x$USE_DEBUG" = xyes; then @@ -1056,7 +1087,7 @@ AM_CONDITIONAL(HAVE_FIG2DEV_EPS, $HAVE_FIG2DEV_EPS) AM_CONDITIONAL(HAVE_CDPARANOIA, test "x$HAVE_CDPARANOIA" = "xyes") AM_CONDITIONAL(HAVE_LIBLAME, test "x$HAVE_LIBLAME" = "xyes") AM_CONDITIONAL(HAVE_LIBSHOUT, test "x$HAVE_LIBSHOUT" = "xyes") -AM_CONDITIONAL(HAVE_LIBESD, test "x$HAVE_LIBESD" = "xyes") +dnl AM_CONDITIONAL(HAVE_LIBESD, test "x$HAVE_LIBESD" = "xyes") AM_CONDITIONAL(HAVE_ARTSC, test "x$HAVE_ARTSC" = "xyes") AM_CONDITIONAL(HAVE_LIBASOUND, test "x$HAVE_LIBASOUND" = "xyes") AM_CONDITIONAL(HAVE_MPEG2DEC, test "x$HAVE_MPEG2DEC" = "xyes") @@ -1070,7 +1101,7 @@ AM_CONDITIONAL(HAVE_GNOME_VFS, test "x$HAVE_GNOME_VFS" = "xyes") AM_CONDITIONAL(HAVE_AVIFILE, test "x$HAVE_AVIFILE" = "xyes") AM_CONDITIONAL(HAVE_LIBOPENQUICKTIME, test "x$HAVE_LIBOPENQUICKTIME" = "xyes") AM_CONDITIONAL(HAVE_LIBGSM, test "x$HAVE_LIBGSM" = "xyes") -AM_CONDITIONAL(PLUGINS_USE_SRCDIR, test "x$PLUGINS_USE_SRCDIR" = "xyes") +AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes") dnl ############################ @@ -1095,9 +1126,9 @@ AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR") AC_SUBST(PLUGINS_DIR) dnl Set location of uninstalled plugin directory -PLUGINS_SRCDIR=`pwd`/$srcdir -AC_DEFINE_UNQUOTED(PLUGINS_SRCDIR,"$PLUGINS_SRCDIR") -AC_SUBST(PLUGINS_SRCDIR) +PLUGINS_BUILDDIR=${builddir} +AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR") +AC_SUBST(PLUGINS_BUILDDIR) @@ -1201,6 +1232,7 @@ plugins/avi/wincodec/Makefile plugins/avi/winaudio/Makefile plugins/flx/Makefile plugins/festival/Makefile +plugins/flac/Makefile plugins/jpeg/Makefile plugins/mp3decode/Makefile plugins/mp3decode/types/Makefile @@ -1248,6 +1280,7 @@ plugins/filters/volenv/Makefile plugins/filters/level/Makefile plugins/filters/lav/Makefile plugins/filters/cutter/Makefile +plugins/filters/deinterlace/Makefile plugins/gnomevfs/Makefile plugins/icecast/Makefile plugins/icecast/icecastsend/Makefile @@ -1260,8 +1293,10 @@ plugins/visualization/spectrum/Makefile plugins/visualization/vumeter/Makefile plugins/visualization/synaesthesia/Makefile plugins/visualization/smoothwave/Makefile +plugins/visualization/chart/Makefile plugins/videoscale/Makefile plugins/xvideosink/Makefile +plugins/vgasink/Makefile plugins/wav/Makefile plugins/dvdsrc/Makefile plugins/vcdsrc/Makefile @@ -1303,6 +1338,7 @@ examples/queue3/Makefile examples/queue4/Makefile examples/thread/Makefile examples/mixer/Makefile +examples/cutter/Makefile examples/launch/Makefile examples/xml/Makefile examples/plugins/Makefile diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index fc32d3d19b..667ef29e5e 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -199,9 +199,13 @@ GstBufferPoolDestroyFunction gst_buffer_pool_new gst_buffer_pool_new_buffer gst_buffer_pool_destroy_buffer +gst_buffer_pool_ref +gst_buffer_pool_ref_by_count +gst_buffer_pool_unref gst_buffer_pool_set_create_function gst_buffer_pool_set_destroy_function gst_buffer_pool_destroy +gst_buffer_pool_get_default GST_BUFFER_POOL diff --git a/docs/manual/advanced.sgml b/docs/manual/advanced.sgml index 1c67a53e60..91d9055108 100644 --- a/docs/manual/advanced.sgml +++ b/docs/manual/advanced.sgml @@ -220,7 +220,7 @@ struct _GstType { As you can see, there might be a multitude of elements that - are able to operate on video/raw types. some might include: + are able to operate on audio/raw types. some might include: @@ -274,7 +274,7 @@ struct _GstType { creating elements with the factory In the previous section we described how you could obtain - an element factory using MIME types. One the factory has been + an element factory using MIME types. Once the factory has been obtained, you can create an element using: diff --git a/docs/manual/bins.sgml b/docs/manual/bins.sgml index 6befcc36c7..04d46a858d 100644 --- a/docs/manual/bins.sgml +++ b/docs/manual/bins.sgml @@ -28,7 +28,7 @@ A pipeline (GstPipeline). Which is a generic container you will - use most of the time. + use most of the time. The toplevel bin has to be a pipeline. @@ -189,7 +189,7 @@ gst_bin_add (GST_BIN (bin), element); - gst_element_add_ghost_pad (bin, gst_element_get_pad (element, "sink")); + gst_element_add_ghost_pad (bin, gst_element_get_pad (element, "sink"), "sink"); diff --git a/docs/manual/factories.sgml b/docs/manual/factories.sgml index b35b11b621..d67146f648 100644 --- a/docs/manual/factories.sgml +++ b/docs/manual/factories.sgml @@ -229,7 +229,7 @@ struct _GstType { As you can see, there might be a multitude of elements that - are able to operate on video/raw types. some might include: + are able to operate on audio/raw types. some might include: diff --git a/docs/manual/helloworld.sgml b/docs/manual/helloworld.sgml index 292234b552..90436398de 100644 --- a/docs/manual/helloworld.sgml +++ b/docs/manual/helloworld.sgml @@ -22,17 +22,17 @@ int main (int argc, char *argv[]) { - GstElement *bin, *disksrc, *parse, *decoder, *audiosink; + GstElement *pipeline, *disksrc, *parse, *decoder, *audiosink; gst_init(&argc, &argv); if (argc != 2) { - g_print ("usage: %s <filename>n", argv[0]); + g_print ("usage: %s <filename>\n", argv[0]); exit (-1); } - /* create a new bin to hold the elements */ - bin = gst_bin_new ("bin"); + /* create a new pipeline to hold the elements */ + pipeline = gst_pipeline_new ("pipeline"); /* create a disk reader */ disksrc = gst_elementfactory_make ("disksrc", "disk_source"); @@ -43,13 +43,13 @@ main (int argc, char *argv[]) decoder = gst_elementfactory_make ("mpg123", "decoder"); /* and an audio sink */ - audiosink = gst_elementfactory_make ("audiosink", "play_audio"); + audiosink = gst_elementfactory_make ("osssink", "play_audio"); /* add objects to the main pipeline */ - gst_bin_add (GST_BIN (bin), disksrc); - gst_bin_add (GST_BIN (bin), parse); - gst_bin_add (GST_BIN (bin), decoder); - gst_bin_add (GST_BIN (bin), audiosink); + gst_bin_add (GST_BIN (pipeline), disksrc); + gst_bin_add (GST_BIN (pipeline), parse); + gst_bin_add (GST_BIN (pipeline), decoder); + gst_bin_add (GST_BIN (pipeline), audiosink); /* connect src to sink */ gst_pad_connect (gst_element_get_pad (disksrc, "src"), @@ -60,18 +60,19 @@ main (int argc, char *argv[]) gst_element_get_pad (audiosink, "sink")); /* start playing */ - gst_element_set_state (bin, GST_STATE_PLAYING); + gst_element_set_state (pipeline, GST_STATE_PLAYING); - while (gst_bin_iterate (GST_BIN (bin))); + while (gst_bin_iterate (GST_BIN (pipeline))); - /* stop the bin */ - gst_element_set_state (bin, GST_STATE_NULL); + /* stop the pipeline */ + gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_destroy (GST_OBJECT (audiosink)); - gst_object_destroy (GST_OBJECT (parse)); - gst_object_destroy (GST_OBJECT (decoder)); - gst_object_destroy (GST_OBJECT (disksrc)); - gst_object_destroy (GST_OBJECT (bin)); + /* we don't need a reference to these objects anymore */ + gst_object_unref (GST_OBJECT (audiosink)); + gst_object_unref (GST_OBJECT (parse)); + gst_object_unref (GST_OBJECT (decoder)); + gst_object_unref (GST_OBJECT (disksrc)); + gst_object_unref (GST_OBJECT (pipeline)); exit (0); } @@ -102,26 +103,26 @@ main (int argc, char *argv[]) - We are going to create 4 elements and one bin. Since all objects are + We are going to create 4 elements and one pipeline. Since all objects are in fact elements, we can define them as: ... - GstElement *bin, *disksrc, *parse, *decoder, *audiosink; + GstElement *pipeline, *disksrc, *parse, *decoder, *audiosink; ... - Next, we are going to create an empty bin. As you have seen in the basic - introduction, this bin will hold and manage all the elements we are + Next, we are going to create an empty pipeline. As you have seen in the basic + introduction, this pipeline will hold and manage all the elements we are going to stuff into it. - /* create a new bin to hold the elements */ - bin = gst_bin_new ("bin"); + /* create a new pipeline to hold the elements */ + pipeline = gst_pipeline_new ("pipeline"); - We use the standard constructor for a bin: gst_bin_new ("name"). + We use the standard constructor for a pipeline: gst_pipeline_new ("name"). @@ -158,7 +159,7 @@ main (int argc, char *argv[]) identify the element you need and a second argument: how you want to name the element. The name of the element is something you can choose yourself and might be used to retrieve the element from a - bin. + bin/pipeline. @@ -171,14 +172,14 @@ main (int argc, char *argv[]) - We then add the elements to the bin. + We then add the elements to the pipeline. /* add objects to the main pipeline */ - gst_bin_add (GST_BIN (bin), disksrc); - gst_bin_add (GST_BIN (bin), parse); - gst_bin_add (GST_BIN (bin), decoder); - gst_bin_add (GST_BIN (bin), audiosink); + gst_bin_add (GST_BIN (pipeline), disksrc); + gst_bin_add (GST_BIN (pipeline), parse); + gst_bin_add (GST_BIN (pipeline), decoder); + gst_bin_add (GST_BIN (pipeline), audiosink); @@ -205,46 +206,46 @@ main (int argc, char *argv[]) Everything is now set up to start the streaming. We use the following - statements to change the state of the bin: + statements to change the state of the pipeline: /* start playing */ - gst_element_set_state (bin, GST_STATE_PLAYING); + gst_element_set_state (pipeline, GST_STATE_PLAYING); - GStreamer will take care of the READY state for you when going from - NULL to PLAYING. + GStreamer will take care of the READY and PAUSED state for y + ou when going from NULL to PLAYING. Since we do not use threads, nothing will happen yet. We manually have to - call gst_bin_iterate() to execute one iteration of the bin. + call gst_bin_iterate() to execute one iteration of the pipeline. - while (gst_bin_iterate (GST_BIN (bin))); + while (gst_bin_iterate (GST_BIN (pipeline))); The gst_bin_iterate() function will return TRUE as long as something interesting - happended inside the bin. When the end-of-file has been reached the _iterate + happended inside the pipeline. When the end-of-file has been reached the _iterate function will return FALSE and we can end the loop. - /* stop the bin */ - gst_element_set_state (bin, GST_STATE_NULL); + /* stop the pipeline */ + gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_destroy (GST_OBJECT (audiosink)); - gst_object_destroy (GST_OBJECT (decoder)); - gst_object_destroy (GST_OBJECT (disksrc)); - gst_object_destroy (GST_OBJECT (bin)); + gst_object_unref (GST_OBJECT (audiosink)); + gst_object_unref (GST_OBJECT (decoder)); + gst_object_unref (GST_OBJECT (disksrc)); + gst_object_unref (GST_OBJECT (pipeline)); exit (0); - don't forget to set the state of the bin to NULL. This will free + don't forget to set the state of the pipeline to NULL. This will free all of the resources held by the elements. diff --git a/docs/manual/helloworld2.sgml b/docs/manual/helloworld2.sgml index 1a48f7f991..df973472b7 100644 --- a/docs/manual/helloworld2.sgml +++ b/docs/manual/helloworld2.sgml @@ -12,7 +12,7 @@ - Autoplugging helloworld + Autoplugging helloworld (outdated) We will create a second version of the helloworld application using autoplugging. Its source code is considerably easier to write and diff --git a/docs/manual/pads.sgml b/docs/manual/pads.sgml index 4f83e86229..544d0b68c4 100644 --- a/docs/manual/pads.sgml +++ b/docs/manual/pads.sgml @@ -197,10 +197,13 @@ main(int argc, char *argv[]) struct _GstCaps { gchar *name; /* the name of this caps */ - guint16 id; /* type id (major type) */ + guint refcount; /* caps are refcounted */ + GstProps *properties; /* properties for this capability */ + + GstCaps *next; /* caps can be chained together */ }; @@ -317,27 +320,140 @@ Pads: Getting the capabilities of a pad - A pad can have a GList of capabilities attached to it. You can get the capabilities list + A pad can have a chain of capabilities attached to it. You can get the capabilities chain with: - GList *caps; + GstCaps *caps; ... - caps = gst_pad_get_caps_list (pad); + caps = gst_pad_get_caps (pad); g_print ("pad name %s\n", gst_pad_get_name (pad)); while (caps) { - GstCaps *cap = (GstCaps *) caps->data; - - g_print (" Capability name %s, MIME type\n", gst_caps_get_name (cap), - gst_caps_get_mime (cap)); + g_print (" Capability name %s, MIME type %s\n", + gst_caps_get_name (cap), + gst_caps_get_mime (cap)); - caps = g_list_next (caps); + caps = caps->next; } ... + + Creating capabilities structures + + While the capabilities are mainly used inside the plugin to describe the media type of the + pads, the application programmer also has to have basic understanding of caps in order to + interface with the plugins, specially when using the autopluggers. + + + As we said, a capability has a name, a mime-type and some properties. The signature of the + function to create a new GstCaps * structure is like: + +GstCaps* gst_caps_new (const gchar *name, const gchar *mime, GstProps *props); + + + + You can therefore create a new capability with no properties like this: + + GstCaps *newcaps; + + newcaps = gst_caps_new ("my_caps", "audio/wav", NULL); + + + + GstProps basically consist of a set of key-value pairs + and are created with a function with this signature: + +GstProps* gst_props_new (const gchar *firstname, ...); + + + + The keys are given as strings and the values are given with a set of macros: + + + + GST_PROPS_INT(a): An integer value + + + + + GST_PROPS_FLOAT(a): A floating point value + + + + + GST_PROPS_FOURCC(a): A fourcc value + + + + + GST_PROPS_BOOLEAN(a): A boolean value + + + + + GST_PROPS_STRING(a): A string value + + + + The values can also be specified as ranges with: + + + + GST_PROPS_INT_RANGE(a,b): An integer ragne from a to b + + + + + GST_PROPS_FLOAT_RANGE(a,b): A float ragne from a to b + + + + All of the above values can be given with a list too using: + + + + GST_PROPS_LIST(a,...): A list of property values. + + + + + + A more complex capability with properties is created like this: + + GstCaps *newcaps; + + newcaps = gst_caps_new ("my_caps", + "audio/wav", + gst_props_new ( + "bitrate", GST_PROPS_INT_RANGE (11025,22050), + "depth", GST_PROPS_INT (16), + "signed", GST_PROPS_LIST ( + GST_PROPS_BOOLEAN (TRUE), + GST_PROPS_BOOLEAN (FALSE) + ), + NULL + ); + + Optionally the convenient shortcut macro can be used. The above complex + capability can be created with: + + GstCaps *newcaps; + + newcaps = GST_CAPS_NEW ("my_caps", + "audio/wav", + "bitrate", GST_PROPS_INT_RANGE (11025,22050), + "depth", GST_PROPS_INT (16), + "signed", GST_PROPS_LIST ( + GST_PROPS_BOOLEAN (TRUE), + GST_PROPS_BOOLEAN (FALSE) + ) + ); + + + diff --git a/docs/manual/states.sgml b/docs/manual/states.sgml index e3e0999db4..9027910bf3 100644 --- a/docs/manual/states.sgml +++ b/docs/manual/states.sgml @@ -23,12 +23,12 @@ - PLAYING: The element is doing something. + PAUSED: The element is paused for a period of time. - PAUSED: The element is paused for a period of time. + PLAYING: The element is doing something. @@ -36,10 +36,8 @@ All elements start with the NULL state. The elements will go throught the following state changes: -
- The different states of a <classname>GstElement</classname> and the state transitions - -
+ NULL -> READY -> PAUSED -> PLAYING. Remember when going from PLAYING to READY GStreamer + will internally go throught the intermediate states.
The state of an element can be changed with the following code: @@ -61,11 +59,6 @@ - - GST_STATE_NONE_PENDING - The element is in the desired state. - - GST_STATE_NULL Reset the state of an element. @@ -77,13 +70,13 @@ - GST_STATE_PLAYING - means there really is data flowing through the graph. + GST_STATE_PAUSED + temporary stops the data flow. - GST_STATE_PAUSED - temporary stops the data flow. + GST_STATE_PLAYING + means there really is data flowing through the graph. @@ -121,7 +114,8 @@ You can also go from the NULL to PLAYING state directly without going through the READY - state. this is a shortcut, the framework will internally go through the READY state for you. + state. this is a shortcut, the framework will internally go through the READY and the + PAUSED state for you. diff --git a/docs/random/eos b/docs/random/eos index 5cc6732c2c..98593110ca 100644 --- a/docs/random/eos +++ b/docs/random/eos @@ -131,3 +131,76 @@ case 4) +case 5) + + (--------) (--------) (--------) + ! disksrc! ! mad ! !disksink! + ! src ----- sink src ---- sink ! + (--------) (--------) (--------) + + + disksrc detects the end of stream. It just sent the last buffer + and sets the srcpad to EOS with gst_pad_eos (). + + the eos handler returns false because mad returns false on the + eos request. the parent removes mad as an EOS provider. + + mad was responsible for the EOS delay and so it gets added to the bin + as a possible EOS provider. + + After mad has sent its last buffer, it performs gst_pad_eos on its + src pad. + the parent already has mad in the list of EOS providers so it does not + get added twice. + mad finally fires the EOS signal. This time, disksink returns false on + the eos request. the parent removes mad as an EOS provider. + + disksink was responsible for the EOS delay and gets added to the bin + as a possible EOS provider. + When disksink has written all of it's data and closed the output file, + it fires EOS. + The parent already has disksink in the list of EOS providers so it does + not get added twice. + The parent removes the EOS provider + from its list, and since the list is empty, the parent fires EOS. + +case 6) + + (--------) (--------) (--------) + !disksrc1! ! mad1 ! ! mixer ! + ! src ----- sink src ---- sink1 ! (--------) + (--------) (--------) ! ! !disksink! + ! src ---- sink ! + (--------) (--------) ! ! (--------) + !disksrc2! ! mad2 ! ! ! + ! src ----- sink src ---- sink2 ! + (--------) (--------) (--------) + + In this case, we want to make sure the pipeline keeps running after one + of the two sources reaches eos. Suppose in this case that disksrc1 will + reach eos first. + + disksrc1 detects the end of stream. It sets eos, mad1 will return false, + and mad1 will be responsible for eos. When mad1 had sent out the last + buffer, it sends out eos. + + The mixer intercepts eos and returns false. mad1 is removed from the + eos providers and mixer is added. + + (At this point, the mixer might choose to disconnect mad1->src and + mixer->sink1 pads, since it's received eos on mad1->src) + + mixer will not send out eos since it hasn't received eos from + mad2->src. + + After a while, disksrc2 will detect end of stream, and eos will finally + propagate to mixer. mixer might disconnect mad->src2, and after + realizing all of it's sources have reached eos, it sends out the final + buffer and fires EOS. + + At this point, disksink will return false, mixer will be removed as an + eos provider, and disksink will write out it's final buffer and close + the file on disk. At this point, it fires eos, and since it's the last + eos provider, the parent can fire eos. + + diff --git a/examples/Makefile.am b/examples/Makefile.am index 7d5a43860f..6fe9c9c70b 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -8,6 +8,10 @@ endif SUBDIRS = $(GNOME_SUBDS) \ helloworld helloworld2 \ queue queue2 queue3 queue4 \ - launch thread xml typefind mixer + launch thread xml plugins typefind mixer cutter + +DIST_SUBDIRS = autoplug \ + helloworld helloworld2 \ + queue queue2 queue3 queue4 \ + launch thread xml plugins typefind mixer cutter -DIST_SUBDIRS = autoplug plugins diff --git a/examples/cutter/Makefile.am b/examples/cutter/Makefile.am new file mode 100644 index 0000000000..c1fca3f985 --- /dev/null +++ b/examples/cutter/Makefile.am @@ -0,0 +1,5 @@ +noinst_PROGRAMS = cutter +noinst_HEADERS = cutter.h + +LIBS += $(GST_LIBS) +CFLAGS += $(GST_CFLAGS) diff --git a/examples/cutter/cutter.c b/examples/cutter/cutter.c new file mode 100644 index 0000000000..323778d0f7 --- /dev/null +++ b/examples/cutter/cutter.c @@ -0,0 +1,210 @@ +/* + * cutter.c - cut audio into pieces based on silence - thomas@apestaart.org + * + * construct a simple pipeline osssrc ! cutter ! disksink + * pause when necessary, change output + * + * Latest change : 03/06/2001 + * + * Version : 0.3 + */ + +#include +#include +#include +#include + +#define DEBUG + +gboolean playing = TRUE; +gboolean cut_start_signalled = FALSE; +gboolean cut_stop_signalled = FALSE; + +int id = 0; /* increment this for each new cut */ +GstElement *main_bin; +GstElement *audiosrc; +GstElement *queue; +GstElement *thread; +GstElement *cutter; +GstElement *disksink; +GstElement *encoder; +char buffer[255]; + +/* signal callbacks */ + +void cut_start (GstElement *element) +{ + g_print ("\nDEBUG: main: cut start\n"); + /* we should pause the pipeline, disconnect cutter and disksink + * create a new disksink to a real file, reconnect, and set to play + */ + g_print ("DEBUG: cut_start: main_bin pausing\n"); + gst_element_set_state (main_bin, GST_STATE_PAUSED); + g_print ("DEBUG: cut_start: main_bin paused\n"); + + { + long seconds; + struct tm *ct; + time (&seconds); + ct = localtime (&seconds); +// sprintf (buffer, "/news/incoming/audio/cutter.%06d.wav", id); + sprintf (buffer, "/news/incoming/audio/cutter.%04d%02d%02d.%02d%02d%02d.wav", + ct->tm_year + 1900, ct->tm_mon, ct->tm_mday, + ct->tm_hour, ct->tm_min, ct->tm_sec); + } + g_print ("DEBUG: cut_start: setting new location to %s\n", buffer); + gtk_object_set (G_OBJECT (disksink), "location", buffer, NULL); + gtk_object_set (G_OBJECT (disksink), "type", 4, NULL); + + gst_element_set_state (main_bin, GST_STATE_PLAYING); + ++id; + g_print ("start_cut_signal done\n"); + return; +} + +void cut_start_signal (GstElement *element) +{ + g_print ("\nDEBUG: main: cut start signal\n"); + cut_start_signalled = TRUE; +} + +void cut_stop (GstElement *element) +{ + g_print ("\nDEBUG: main: cut stop\n"); + /* we should pause the pipeline, disconnect disksink, create a fake disksink, + * connect to pipeline, and set to play + */ + g_print ("DEBUG: cut_stop: main_bin paused\n"); + gst_element_set_state (main_bin, GST_STATE_PAUSED); + + g_print ("DEBUG: cut_stop: setting new location\n"); + gtk_object_set (G_OBJECT (disksink), "location", "/dev/null", NULL); + + gst_element_set_state (main_bin, GST_STATE_PLAYING); + g_print ("stop_cut_signal done\n"); + return; +} + +void cut_stop_signal (GstElement *element) +{ + g_print ("\nDEBUG: main: cut stop signal\n"); + cut_stop_signalled = TRUE; +} + +int main (int argc, char *argv[]) +{ + //int i, j; + //gboolean done; + + //char buffer[20]; + + //output_channel_t *channel_out; + + GstElement *audiosrc; + + gst_init (&argc,&argv); +/* + if (argc == 1) + { + g_print("usage: %s <...>\n", argv[0]); + exit(-1); + }*/ + + /* set up input channel and main bin */ + + g_print ("creating main bin\n"); + /* create cutter */ + cutter = gst_elementfactory_make ("cutter", "cutter"); + + gtk_object_set (G_OBJECT (cutter), + "threshold_dB", -40.0, + "runlength", 0.5, + NULL); + + /* create an audio src */ + audiosrc = gst_elementfactory_make ("osssrc", "audio_src"); + + /* set params */ + + gtk_object_set (G_OBJECT (audiosrc), "frequency", 44100, + "channels", 1, + "format", 16, NULL); + + encoder = gst_elementfactory_make ("passthrough", "encoder"); + disksink = gst_elementfactory_make ("afsink", "disk_sink"); + + gtk_object_set (G_OBJECT (disksink), "location", "/dev/null", NULL); + + thread = gst_thread_new ("thread"); + g_assert (thread != NULL); + + /* create main bin */ + main_bin = gst_pipeline_new ("bin"); + g_assert (main_bin != NULL); + + queue = gst_elementfactory_make ("queue", "queue"); + + /* add elements to bin */ + gst_bin_add (GST_BIN (main_bin), audiosrc); + gst_bin_add (GST_BIN (thread), queue); + + gst_bin_add (GST_BIN (thread), cutter); + gst_bin_add (GST_BIN (thread), encoder); + gst_bin_add (GST_BIN (thread), disksink); + + /* connect adder and disksink */ + + gst_pad_connect (gst_element_get_pad (audiosrc, "src"), + gst_element_get_pad (queue, "sink")); + + gst_pad_connect (gst_element_get_pad (queue, "src"), + gst_element_get_pad (cutter, "sink")); + gst_pad_connect (gst_element_get_pad (cutter, "src"), + gst_element_get_pad (encoder, "sink")); + gst_pad_connect (gst_element_get_pad (encoder, "src"), + gst_element_get_pad (disksink, "sink")); + + gst_bin_add (GST_BIN (main_bin), thread); + + /* set signal handlers */ + g_print ("setting signal handlers\n"); + gtk_signal_connect (G_OBJECT(cutter), "cut_start", + GTK_SIGNAL_FUNC(cut_start_signal), NULL); + gtk_signal_connect (G_OBJECT(cutter), "cut_stop", + GTK_SIGNAL_FUNC(cut_stop_signal), NULL); + + /* start playing */ + g_print ("setting to play\n"); + gst_element_set_state (main_bin, GST_STATE_PLAYING); +/* + g_print ("setting thread to play\n"); + gst_element_set_state (GST_ELEMENT (thread), GST_STATE_PLAYING); +*/ + while (playing) + { +// g_print ("> "); + gst_bin_iterate (GST_BIN (main_bin)); +// g_print (" <"); + if (cut_start_signalled) + { + g_print ("\nDEBUG: main: cut_start_signalled true !\n"); + cut_start (cutter); + cut_start_signalled = FALSE; + } + if (cut_stop_signalled) + { + g_print ("\nDEBUG: main: cut_stop_signalled true !\n"); + cut_stop (cutter); + cut_stop_signalled = FALSE; + } + } + g_print ("we're done iterating.\n"); + /* stop the bin */ + + gst_element_set_state (main_bin, GST_STATE_NULL); + + gst_object_destroy (GST_OBJECT (disksink)); + gst_object_destroy (GST_OBJECT (main_bin)); + + exit(0); +} diff --git a/examples/cutter/cutter.h b/examples/cutter/cutter.h new file mode 100644 index 0000000000..f7ba2d6ca7 --- /dev/null +++ b/examples/cutter/cutter.h @@ -0,0 +1,14 @@ +/* + * cutter.h header file + * thomas@apestaart.org + */ + +typedef struct +{ + GstElement *pipe; + GstElement *disksink; + GstElement *audiosink; + + char *location; + int channel_id; +} output_channel_t; diff --git a/gst/Makefile.am b/gst/Makefile.am index a29764fb5b..790a0cc3d6 100644 --- a/gst/Makefile.am +++ b/gst/Makefile.am @@ -48,9 +48,9 @@ libgst_la_SOURCES = \ gsttype.c \ gsttypefind.c \ gstutils.c \ - gstxml.c \ gstparse.c \ - $(GSTARCH_SRCS) + $(GSTARCH_SRCS) \ + gstxml.c ##### Oh this sucks so badly. This isn't funny. ##### @@ -127,8 +127,8 @@ libgstinclude_HEADERS = \ gsttypefind.h \ gstutils.h \ gstparse.h \ - gstxml.h \ - gstversion.h + gstversion.h \ + gstxml.h noinst_HEADERS = \ gst_private.h \ diff --git a/gst/elements/gstdisksink.c b/gst/elements/gstdisksink.c index 23f1c1b631..2922ccca17 100644 --- a/gst/elements/gstdisksink.c +++ b/gst/elements/gstdisksink.c @@ -216,7 +216,7 @@ static void gst_disksink_chain (GstPad *pad, GstBuffer *buf) { GstDiskSink *disksink; - guint16 bytes_written = 0; + gint bytes_written = 0; g_return_if_fail (pad != NULL); g_return_if_fail (GST_IS_PAD (pad)); diff --git a/gst/elements/gstdisksrc.c b/gst/elements/gstdisksrc.c index e88f06698a..259473e750 100644 --- a/gst/elements/gstdisksrc.c +++ b/gst/elements/gstdisksrc.c @@ -233,8 +233,10 @@ gst_disksrc_get (GstPad *pad) src = GST_DISKSRC (gst_pad_get_parent (pad)); g_return_val_if_fail (GST_FLAG_IS_SET (src, GST_DISKSRC_OPEN), NULL); + /* deal with EOF state */ if (src->curoffset >= src->size) { + GST_DEBUG (0,"map offset %ld >= size %ld --> eos\n", src->curoffset, src->size); gst_pad_set_eos (pad); return NULL; } @@ -296,8 +298,12 @@ gst_disksrc_get_region (GstPad *pad, GstRegionType type,guint64 offset,guint64 l /* deal with EOF state */ if (offset >= src->size) { - gst_pad_set_eos (pad); - return NULL; + //gst_pad_set_eos (pad); + GST_DEBUG (0,"map offset %lld >= size %ld --> eos\n", offset, src->size); + //FIXME + buf = gst_buffer_new(); + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_EOS); + return buf; } /* create the buffer */ diff --git a/gst/gst.c b/gst/gst.c index 68725e08d1..affcf53935 100644 --- a/gst/gst.c +++ b/gst/gst.c @@ -58,8 +58,6 @@ gst_init (int *argc, char **argv[]) { GstTrace *gst_trace; - GST_INFO (GST_CAT_GST_INIT, "Initializing GStreamer Core Library"); - if (!g_thread_supported ()) g_thread_init (NULL); #ifdef USE_GLIB2 @@ -81,15 +79,18 @@ gst_init (int *argc, char **argv[]) #endif if (!gst_init_check (argc,argv)) { - exit (0); + exit (0); // FIXME! } + GST_INFO (GST_CAT_GST_INIT, "Initializing GStreamer Core Library"); + _gst_cpu_initialize (); _gst_type_initialize (); _gst_props_initialize (); _gst_caps_initialize (); _gst_plugin_initialize (); _gst_buffer_initialize (); + _gst_buffer_pool_initialize (); /* register some standard builtin types */ gst_elementfactory_new ("bin", gst_bin_get_type (), &gst_bin_details); @@ -139,7 +140,7 @@ gst_init_check (int *argc, gboolean showhelp = FALSE; _gst_progname = NULL; - + if (argc && argv) { gint i, j, k; diff --git a/gst/gstautoplug.c b/gst/gstautoplug.c index ca220917d8..9b1a012afa 100644 --- a/gst/gstautoplug.c +++ b/gst/gstautoplug.c @@ -356,4 +356,3 @@ gst_autoplugfactory_load_thyself (xmlNodePtr parent) return factory; } - diff --git a/gst/gstbin.c b/gst/gstbin.c index 34d2e5228a..58a66d6aa9 100644 --- a/gst/gstbin.c +++ b/gst/gstbin.c @@ -48,8 +48,10 @@ static gboolean gst_bin_change_state_type (GstBin *bin, static gboolean gst_bin_iterate_func (GstBin *bin); +#ifndef GST_DISABLE_XML static xmlNodePtr gst_bin_save_thyself (GstObject *object, xmlNodePtr parent); static void gst_bin_restore_thyself (GstObject *object, xmlNodePtr self); +#endif /* Bin signals and args */ enum { @@ -114,8 +116,10 @@ gst_bin_class_init (GstBinClass *klass) klass->change_state_type = gst_bin_change_state_type; klass->iterate = gst_bin_iterate_func; +#ifndef GST_DISABLE_XML gstobject_class->save_thyself = gst_bin_save_thyself; gstobject_class->restore_thyself = gst_bin_restore_thyself; +#endif gstelement_class->change_state = gst_bin_change_state; @@ -592,6 +596,7 @@ gst_bin_get_list (GstBin *bin) return bin->children; } +#ifndef GST_DISABLE_XML static xmlNodePtr gst_bin_save_thyself (GstObject *object, xmlNodePtr parent) @@ -643,6 +648,7 @@ gst_bin_restore_thyself (GstObject *object, field = field->next; } } +#endif // GST_DISABLE_XML /** diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index 59ebf44a59..9ece39a3e2 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -36,7 +36,7 @@ _gst_buffer_initialize (void) int buffersize = sizeof(GstBuffer); // round up to the nearest 32 bytes for cache-line and other efficiencies - buffersize = ((buffersize-1 / 32) + 1) * 32; + buffersize = (((buffersize-1) / 32) + 1) * 32; _gst_buffer_chunk = g_mem_chunk_new ("GstBuffer", buffersize, buffersize * 32, G_ALLOC_AND_FREE); diff --git a/gst/gstbufferpool.c b/gst/gstbufferpool.c index 828baeafe4..8d81f2cf0d 100644 --- a/gst/gstbufferpool.c +++ b/gst/gstbufferpool.c @@ -25,6 +25,18 @@ #include "gstbuffer.h" +static GMutex *_default_pool_lock; +static GHashTable *_default_pools; + +static GstBuffer* gst_buffer_pool_default_create (GstBufferPool *pool, gpointer user_data); +static void gst_buffer_pool_default_destroy (GstBufferPool *pool, GstBuffer *buffer, gpointer user_data); + +void +_gst_buffer_pool_initialize (void) +{ + _default_pools = g_hash_table_new(NULL,NULL); + _default_pool_lock = g_mutex_new (); +} /** * gst_buffer_pool_new: @@ -43,10 +55,97 @@ gst_buffer_pool_new (void) pool->new_buffer = NULL; pool->destroy_buffer = NULL; - + pool->lock = g_mutex_new (); +#ifdef HAVE_ATOMIC_H + atomic_set (&pool->refcount, 1); +#else + pool->refcount = 1; +#endif + return pool; } +/** + * gst_buffer_pool_ref: + * @pool: the GstBufferPool to reference + * + * Increment the refcount of this buffer pool. + */ +void +gst_buffer_pool_ref (GstBufferPool *pool) +{ + g_return_if_fail (pool != NULL); + + GST_DEBUG(0,"referencing buffer pool %p from %d\n", pool, GST_BUFFER_POOL_REFCOUNT(pool)); + +#ifdef HAVE_ATOMIC_H + atomic_inc (&(pool->refcount)); +#else + g_return_if_fail (pool->refcount > 0); + GST_BUFFER_POOL_LOCK (pool); + buffer->refcount++; + GST_BUFFER_POOL_UNLOCK (pool); +#endif +} + +/** + * gst_buffer_pool_ref_by_count: + * @pool: the GstBufferPool to reference + * @count: a number + * + * Increment the refcount of this buffer pool by the given number. + */ +void +gst_buffer_pool_ref_by_count (GstBufferPool *pool, int count) +{ + g_return_if_fail (pool != NULL); + g_return_if_fail (count > 0); + +#ifdef HAVE_ATOMIC_H + g_return_if_fail (atomic_read (&(pool->refcount)) > 0); + atomic_add (count, &(pool->refcount)); +#else + g_return_if_fail (pool->refcount > 0); + GST_BUFFER_POOL_LOCK (pool); + pool->refcount += count; + GST_BUFFER_POOL_UNLOCK (pool); +#endif +} + +/** + * gst_buffer_pool_unref: + * @pool: the GstBufferPool to unref + * + * Decrement the refcount of this buffer pool. If the refcount is + * zero and the pool is a default implementation, + * the buffer pool will be destroyed. + */ +void +gst_buffer_pool_unref (GstBufferPool *pool) +{ + gint zero; + + g_return_if_fail (pool != NULL); + + GST_DEBUG(0,"unreferencing buffer pool %p from %d\n", pool, GST_BUFFER_POOL_REFCOUNT(pool)); + +#ifdef HAVE_ATOMIC_H + g_return_if_fail (atomic_read (&(pool->refcount)) > 0); + zero = atomic_dec_and_test (&(pool->refcount)); +#else + g_return_if_fail (pool->refcount > 0); + GST_BUFFER_POOL_LOCK (pool); + pool->refcount--; + zero = (pool->refcount == 0); + GST_BUFFER_POOL_UNLOCK (pool); +#endif + + /* if we ended up with the refcount at zero, destroy the buffer pool*/ + if (zero) { + gst_buffer_pool_destroy (pool); + } +} + /** * gst_buffer_pool_set_create_function: * @pool: the pool to set the create function for @@ -96,8 +195,18 @@ gst_buffer_pool_set_destroy_function (GstBufferPool *pool, void gst_buffer_pool_destroy (GstBufferPool *pool) { + GMemChunk *data_chunk; g_return_if_fail (pool != NULL); - + + // if its a default buffer pool, we know how to free the user data + if (pool->new_buffer == gst_buffer_pool_default_create && + pool->destroy_buffer == gst_buffer_pool_default_destroy){ + GST_DEBUG(0,"destroying default buffer pool %p\n", pool); + data_chunk = (GMemChunk*)pool->new_user_data; + g_mem_chunk_reset(data_chunk); + g_free(data_chunk); + } + g_free(pool); } @@ -138,3 +247,97 @@ gst_buffer_pool_destroy_buffer (GstBufferPool *pool, pool->destroy_buffer (pool, buffer, pool->new_user_data); } + +/** + * gst_buffer_pool_get_default: + * @pool: instance of GstBufferPool which is no longer required (or NULL if it doesn't exist) + * @buffer_size: the number of bytes this buffer will store + * @pool_size: the default number of buffers to be preallocated + * + * Returns an instance of a buffer pool using the default + * implementation. If a buffer pool instance with the same buffer_size + * already exists this will be returned, otherwise a new instance will + * be created. + * + * Returns: an instance of GstBufferPool + */ +GstBufferPool* +gst_buffer_pool_get_default (GstBufferPool *oldpool, guint buffer_size, guint pool_size) +{ + GstBufferPool *pool; + GMemChunk *data_chunk; + guint real_buffer_size; + + // round up to the nearest 32 bytes for cache-line and other efficiencies + real_buffer_size = (((buffer_size-1) / 32) + 1) * 32; + + // check for an existing GstBufferPool with the same real_buffer_size + // (we won't worry about the pool_size) + g_mutex_lock (_default_pool_lock); + pool = (GstBufferPool*)g_hash_table_lookup(_default_pools,GINT_TO_POINTER(real_buffer_size)); + g_mutex_unlock (_default_pool_lock); + + if (pool != NULL){ + if (oldpool != pool){ + gst_buffer_pool_ref(pool); + + if (oldpool != NULL){ + gst_buffer_pool_unref(oldpool); + } + } + return pool; + } + + + data_chunk = g_mem_chunk_new ("GstBufferPoolDefault", real_buffer_size, + real_buffer_size * pool_size, G_ALLOC_AND_FREE); + + pool = gst_buffer_pool_new(); + gst_buffer_pool_set_create_function (pool, gst_buffer_pool_default_create, data_chunk); + gst_buffer_pool_set_destroy_function (pool, gst_buffer_pool_default_destroy, data_chunk); + + g_mutex_lock (_default_pool_lock); + g_hash_table_insert(_default_pools,GINT_TO_POINTER(real_buffer_size),pool); + g_mutex_unlock (_default_pool_lock); + + GST_DEBUG(0,"new buffer pool %p bytes:%d size:%d\n", pool, real_buffer_size, pool_size); + + if (oldpool != NULL){ + gst_buffer_pool_unref(oldpool); + } + return pool; +} + +static GstBuffer* +gst_buffer_pool_default_create (GstBufferPool *pool, gpointer user_data) +{ + GMemChunk *data_chunk = (GMemChunk*)user_data; + GstBuffer *buffer; + + gst_buffer_pool_ref(pool); + buffer = gst_buffer_new(); + GST_BUFFER_FLAG_SET(buffer,GST_BUFFER_DONTFREE); + buffer->pool = pool; + + g_mutex_lock (pool->lock); + GST_BUFFER_DATA(buffer) = g_mem_chunk_alloc(data_chunk); + g_mutex_unlock (pool->lock); + + return buffer; +} + +static void +gst_buffer_pool_default_destroy (GstBufferPool *pool, GstBuffer *buffer, gpointer user_data) +{ + GMemChunk *data_chunk = (GMemChunk*)user_data; + gpointer data = GST_BUFFER_DATA(buffer); + + g_mutex_lock (pool->lock); + g_mem_chunk_free (data_chunk,data); + g_mutex_unlock (pool->lock); + + buffer->pool = NULL; + gst_buffer_pool_unref(pool); + gst_buffer_destroy (buffer); + +} diff --git a/gst/gstbufferpool.h b/gst/gstbufferpool.h index 9f52b52cc2..e8b8908dbc 100644 --- a/gst/gstbufferpool.h +++ b/gst/gstbufferpool.h @@ -31,8 +31,9 @@ extern "C" { #endif /* __cplusplus */ -#define GST_BUFFER_POOL(buf) \ - ((GstBufferPool *)(buf)) +#define GST_BUFFER_POOL(pool) \ + ((GstBufferPool *)(pool)) +#define GST_BUFFER_POOL_LOCK(pool) (g_mutex_lock(GST_BUFFER_POOL(pool)->lock)) typedef struct _GstBufferPool GstBufferPool; @@ -40,6 +41,18 @@ typedef GstBuffer* (*GstBufferPoolCreateFunction) (GstBufferPool *pool, gpointe typedef void (*GstBufferPoolDestroyFunction) (GstBufferPool *pool, GstBuffer *buffer, gpointer user_data); struct _GstBufferPool { + /* locking */ + GMutex *lock; + + /* refcounting */ +#ifdef HAVE_ATOMIC_H + atomic_t refcount; +#define GST_BUFFER_POOL_REFCOUNT(pool) (atomic_read(&(GST_BUFFER_POOL((pool))->refcount))) +#else + int refcount; +#define GST_BUFFER_POOL_REFCOUNT(pool) (GST_BUFFER_POOL(pool)->refcount) +#endif + /* will be called when a new buffer is to be created */ GstBufferPoolCreateFunction new_buffer; /* user data to pass with the new_buffer function */ @@ -47,8 +60,11 @@ struct _GstBufferPool { gpointer destroy_user_data; GstBufferPoolDestroyFunction destroy_buffer; + }; +void _gst_buffer_pool_initialize (void); + /* creating a new buffer pool from scratch */ GstBufferPool* gst_buffer_pool_new (void); @@ -56,6 +72,11 @@ GstBufferPool* gst_buffer_pool_new (void); GstBuffer* gst_buffer_pool_new_buffer (GstBufferPool *pool); void gst_buffer_pool_destroy_buffer (GstBufferPool *pool, GstBuffer *buffer); +/* refcounting */ +void gst_buffer_pool_ref (GstBufferPool *pool); +void gst_buffer_pool_ref_by_count (GstBufferPool *pool, int count); +void gst_buffer_pool_unref (GstBufferPool *buffer); + /* setting create and destroy functions */ void gst_buffer_pool_set_create_function (GstBufferPool *pool, GstBufferPoolCreateFunction create, @@ -67,6 +88,9 @@ void gst_buffer_pool_set_destroy_function (GstBufferPool *pool, /* destroying the buffer pool */ void gst_buffer_pool_destroy (GstBufferPool *pool); +/* a default buffer pool implementation */ +GstBufferPool* gst_buffer_pool_get_default (GstBufferPool *oldpool, guint buffer_size, guint pool_size); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/gst/gstcaps.c b/gst/gstcaps.c index 0ef1c55436..fb4c868e41 100644 --- a/gst/gstcaps.c +++ b/gst/gstcaps.c @@ -623,6 +623,3 @@ gst_caps_load_thyself (xmlNodePtr parent) return result; } - - - diff --git a/gst/gstelement.c b/gst/gstelement.c index fc915e833e..15d4f0a2d0 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -59,8 +59,10 @@ static void gst_element_real_destroy (GObject *object); static GstElementStateReturn gst_element_change_state (GstElement *element); -GstElement* gst_element_restore_thyself (xmlNodePtr self, GstObject *parent); +#ifndef GST_DISABLE_XML static xmlNodePtr gst_element_save_thyself (GstObject *object, xmlNodePtr parent); +GstElement* gst_element_restore_thyself (xmlNodePtr self, GstObject *parent); +#endif static GstObjectClass *parent_class = NULL; static guint gst_element_signals[LAST_SIGNAL] = { 0 }; @@ -139,8 +141,10 @@ gst_element_class_init (GstElementClass *klass) // FIXME! // gobject_class->destroy = GST_DEBUG_FUNCPTR(gst_element_real_destroy); +#ifndef GST_DISABLE_XML gstobject_class->save_thyself = GST_DEBUG_FUNCPTR(gst_element_save_thyself); gstobject_class->restore_thyself = GST_DEBUG_FUNCPTR(gst_element_restore_thyself); +#endif klass->change_state = GST_DEBUG_FUNCPTR(gst_element_change_state); klass->elementfactory = NULL; @@ -650,7 +654,8 @@ gst_element_request_pad_by_name (GstElement *element, const gchar *name) g_return_val_if_fail (name != NULL, NULL); templ = gst_element_get_padtemplate_by_name (element, name); - g_return_val_if_fail (templ != NULL, NULL); + if (templ == NULL) + return NULL; pad = gst_element_request_pad (element, templ); @@ -948,6 +953,7 @@ static gchar *_gst_element_type_names[] = { }; */ +#ifndef GST_DISABLE_XML /** * gst_element_save_thyself: * @element: GstElement to save @@ -1149,6 +1155,7 @@ gst_element_restore_thyself (xmlNodePtr self, GstObject *parent) return element; } +#endif // GST_DISABLE_XML /** * gst_element_set_sched: diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c index dc5f5659c3..62e207290f 100644 --- a/gst/gstelementfactory.c +++ b/gst/gstelementfactory.c @@ -287,6 +287,7 @@ gst_elementfactory_can_sink_caps (GstElementFactory *factory, return FALSE; } +#ifndef GST_DISABLE_XML /** * gst_elementfactory_save_thyself: * @factory: factory to save @@ -380,4 +381,4 @@ gst_elementfactory_load_thyself (xmlNodePtr parent) return factory; } - +#endif // GST_DISABLE_XML diff --git a/gst/gstobject.c b/gst/gstobject.c index 6c4b462c24..2463e86fc4 100644 --- a/gst/gstobject.c +++ b/gst/gstobject.c @@ -27,7 +27,9 @@ /* Object signals and args */ enum { PARENT_SET, +#ifndef GST_DISABLE_XML OBJECT_SAVED, +#endif LAST_SIGNAL }; @@ -96,11 +98,13 @@ gst_object_class_init (GstObjectClass *klass) G_STRUCT_OFFSET (GstObjectClass, parent_set), NULL, NULL, g_cclosure_marshal_VOID__OBJECT,G_TYPE_NONE,1, G_TYPE_OBJECT); +#ifndef GST_DISABLE_XML gst_object_signals[OBJECT_SAVED] = g_signal_newc("object_saved", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstObjectClass, object_saved), NULL, NULL, g_cclosure_marshal_VOID__POINTER,G_TYPE_NONE,1, G_TYPE_POINTER); +#endif klass->path_string_separator = "/"; // FIXME!!! @@ -463,6 +467,8 @@ gst_object_check_uniqueness (GList *list, const gchar *name) } +#ifndef GST_DISABLE_XML + /** * gst_object_save_thyself: * @object: GstObject to save @@ -486,11 +492,15 @@ gst_object_save_thyself (GstObject *object, xmlNodePtr parent) if (oclass->save_thyself) oclass->save_thyself (object, parent); +#ifndef GST_DISABLE_XML g_signal_emit (G_OBJECT (object), gst_object_signals[OBJECT_SAVED], 0, parent); +#endif return parent; } +#endif // GST_DISABLE_XML + /** * gst_object_get_path_string: * @object: GstObject to get the path from @@ -570,7 +580,9 @@ struct _GstSignalObjectClass { GObjectClass parent_class; /* signals */ +#ifndef GST_DISABLE_XML void (*object_loaded) (GstSignalObject *object, GstObject *new, xmlNodePtr self); +#endif GST_DISABLE_XML }; static GType @@ -604,11 +616,13 @@ gst_signal_object_class_init (GstSignalObjectClass *klass) parent_class = g_type_class_ref (G_TYPE_OBJECT); +#ifndef GST_DISABLE_XML gst_signal_object_signals[SO_OBJECT_LOADED] = g_signal_newc("object_loaded", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstObjectClass, parent_set), NULL, NULL, gst_marshal_VOID__OBJECT_POINTER,G_TYPE_NONE,2, G_TYPE_OBJECT,G_TYPE_POINTER); +#endif } static void @@ -636,6 +650,7 @@ gst_class_signal_connect (GstObjectClass *klass, return g_signal_connectc (klass->signal_object, name, func, func_data, FALSE); } +#ifndef GST_DISABLE_XML /** * gst_class_signal_emit_by_name: * @object: the object that sends the signal @@ -655,3 +670,5 @@ gst_class_signal_emit_by_name (GstObject *object, g_signal_emit_by_name (oclass->signal_object, name, object, self); } + +#endif // GST_DISABLE_XML diff --git a/gst/gstobject.h b/gst/gstobject.h index 6a4c7eb3eb..ed6c6df354 100644 --- a/gst/gstobject.h +++ b/gst/gstobject.h @@ -103,13 +103,17 @@ struct _GstObjectClass { /* signals */ void (*parent_set) (GstObject *object, GstObject *parent); +#ifndef GST_DISABLE_XML void (*object_saved) (GstObject *object, xmlNodePtr parent); +#endif /* functions go here */ void (*destroy) (GstObject *object); +#ifndef GST_DISABLE_XML xmlNodePtr (*save_thyself) (GstObject *object, xmlNodePtr parent); void (*restore_thyself) (GstObject *object, xmlNodePtr self); +#endif }; #define GST_FLAGS(obj) (GST_OBJECT (obj)->flags) @@ -145,7 +149,9 @@ void gst_object_unparent (GstObject *object); gboolean gst_object_check_uniqueness (GList *list, const gchar *name); +#ifndef GST_DISABLE_XML xmlNodePtr gst_object_save_thyself (GstObject *object, xmlNodePtr parent); +#endif /* refcounting */ GstObject * gst_object_ref (GstObject *object); @@ -163,9 +169,11 @@ guint gst_class_signal_connect (GstObjectClass *klass, gpointer func, gpointer func_data); +#ifndef GST_DISABLE_XML void gst_class_signal_emit_by_name (GstObject *object, const gchar *name, xmlNodePtr self); +#endif #ifdef __cplusplus diff --git a/gst/gstpad.c b/gst/gstpad.c index 93e798a236..2bdd4f7fe7 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -34,7 +34,9 @@ static void gst_pad_class_init (GstPadClass *klass); static void gst_pad_init (GstPad *pad); +#ifndef GST_DISABLE_XML static xmlNodePtr gst_pad_save_thyself (GstObject *object, xmlNodePtr parent); +#endif static GstObject *pad_parent_class = NULL; @@ -176,7 +178,9 @@ gst_real_pad_class_init (GstRealPadClass *klass) g_param_spec_boolean("active","Active","Whether the pad is active.", TRUE,G_PARAM_READWRITE)); +#ifndef GST_DISABLE_XML gstobject_class->save_thyself = GST_DEBUG_FUNCPTR(gst_pad_save_thyself); +#endif gstobject_class->path_string_separator = "."; } @@ -1087,6 +1091,7 @@ gst_real_pad_destroy (GObject *object) } +#ifndef GST_DISABLE_XML /** * gst_pad_load_and_connect: * @self: the XML node to read the description from @@ -1143,6 +1148,7 @@ gst_pad_load_and_connect (xmlNodePtr self, cleanup: g_strfreev (split); } +#endif // GST_DISABLE_XML static gboolean gst_pad_renegotiate_func (GstPad *pad, gpointer *data1, GstPad *peerpad, gpointer *data2, GstCaps **newcaps) @@ -1390,6 +1396,7 @@ gst_pad_negotiate_proxy (GstPad *srcpad, GstPad *destpad, GstCaps **caps) return GST_PAD_NEGOTIATE_AGREE; } +#ifndef GST_DISABLE_XML /** * gst_pad_save_thyself: * @pad: the pad to save @@ -1450,6 +1457,7 @@ gst_pad_ghost_save_thyself (GstPad *pad, return self; } +#endif // GST_DISABLE_XML #ifndef gst_pad_push /** @@ -1526,21 +1534,35 @@ gst_pad_pull (GstPad *pad) GstBuffer* gst_pad_pullregion (GstPad *pad, GstRegionType type, guint64 offset, guint64 len) { - GstRealPad *peer = GST_RPAD_PEER(pad); + GstRealPad *peer; + GstBuffer *result = NULL; g_return_val_if_fail (GST_PAD_DIRECTION (pad) == GST_PAD_SINK, NULL); - g_return_val_if_fail (peer != NULL, NULL); - GST_DEBUG_ENTER("(%s:%s,%d,%lld,%lld)",GST_DEBUG_PAD_NAME(pad),type,offset,len); + do { + peer = GST_RPAD_PEER(pad); + g_return_val_if_fail (peer != NULL, NULL); - if (peer->pullregionfunc) { - GST_DEBUG (GST_CAT_DATAFLOW,"calling pullregionfunc &%s of peer pad %s:%s\n", + if (result) + gst_buffer_unref (result); + + GST_DEBUG_ENTER("(%s:%s,%d,%lld,%lld)",GST_DEBUG_PAD_NAME(pad),type,offset,len); + + if (peer->pullregionfunc) { + GST_DEBUG (GST_CAT_DATAFLOW,"calling pullregionfunc &%s of peer pad %s:%s\n", GST_DEBUG_FUNCPTR_NAME(peer->pullregionfunc),GST_DEBUG_PAD_NAME(((GstPad*)peer))); - return (peer->pullregionfunc)(((GstPad*)peer),type,offset,len); - } else { - GST_DEBUG (GST_CAT_DATAFLOW,"no pullregionfunc\n"); - return NULL; + result = (peer->pullregionfunc)(((GstPad*)peer),type,offset,len); + } else { + GST_DEBUG (GST_CAT_DATAFLOW,"no pullregionfunc\n"); + result = NULL; + break; + } } + while (result && ! GST_BUFFER_FLAG_IS_SET (result, GST_BUFFER_EOS) + && !(GST_BUFFER_OFFSET (result) == offset && + GST_BUFFER_SIZE (result) == len)); + + return result; } #endif diff --git a/gst/gstparse.c b/gst/gstparse.c index eb97c0f078..1aee871023 100644 --- a/gst/gstparse.c +++ b/gst/gstparse.c @@ -24,6 +24,8 @@ #define DEBUG_NOPREFIX(format,args...) #define VERBOSE(format,args...) +#define GST_PARSE_LISTPAD(list) ((GstPad*)(list->data)) + #include #include "gst_private.h" @@ -100,14 +102,16 @@ gst_parse_unique_name(gchar *type,gst_parse_priv *priv) static gint gst_parse_launch_cmdline(int argc,char *argv[],GstBin *parent,gst_parse_priv *priv) { - gint i = 0; + gint i = 0, j = 0; gchar *arg; GstElement *element = NULL, *previous = NULL, *prevelement = NULL; gchar closingchar = '\0'; gint len; gchar *ptr; - gchar *sinkpadname = NULL, *srcpadname = NULL; - GstPad *sinkpad = NULL, *srcpad = NULL; + gchar *sinkpadname = NULL, *srcpadname = NULL, *tempname; + GstPad *temppad; + GSList *sinkpads = NULL, *srcpads = NULL; + gint numsrcpads = 0, numsinkpads = 0; GList *pads; gint elementcount = 0; gint retval = 0; @@ -163,32 +167,62 @@ gst_parse_launch_cmdline(int argc,char *argv[],GstBin *parent,gst_parse_priv *pr GST_DEBUG(0,"have srcpad %s, sinkpad %s\n",srcpadname,sinkpadname); - srcpad = NULL; + g_slist_free(srcpads); + srcpads = NULL; + numsrcpads=0; + tempname=NULL; - // if the srcpadname doesn't have any commas in it, find an actual pad - if (!srcpadname || !strchr(srcpadname,',')) { - if (srcpadname != NULL) { - srcpad = gst_element_get_pad(previous,srcpadname); - if (!srcpad) { - GST_DEBUG(0,"NO SUCH pad %s in element %s\n",srcpadname,GST_ELEMENT_NAME(previous)); - } - } - else if (srcpad == NULL) { - // check through the list to find the first sink pad - GST_DEBUG(0,"CHECKING through element %s for pad named %s\n",GST_ELEMENT_NAME(previous),srcpadname); - pads = gst_element_get_pad_list(previous); - while (pads) { - srcpad = GST_PAD(pads->data); -GST_DEBUG(0,"have pad %s:%s\n",GST_DEBUG_PAD_NAME(srcpad)); -if (GST_IS_GHOST_PAD(srcpad)) GST_DEBUG(0,"it's a ghost pad\n"); - pads = g_list_next (pads); - if (gst_pad_get_direction (srcpad) == GST_PAD_SRC) break; - srcpad = NULL; + // find src pads + if (srcpadname != NULL) { + while (1){ + // split name at commas + if ((ptr = strchr(srcpadname,','))){ + tempname = g_strndup(srcpadname,(ptr-srcpadname)); + srcpadname = &ptr[1]; + } else { + tempname = srcpadname; } - if (!srcpad) GST_DEBUG(0,"error, can't find a src pad!!!\n"); - else GST_DEBUG(0,"have src pad %s:%s\n",GST_DEBUG_PAD_NAME(srcpad)); + + // look for pad with that name + if ((temppad = gst_element_get_pad(previous,tempname))){ + srcpads = g_slist_append(srcpads,temppad); + numsrcpads++; + } + + // try to create a pad using that padtemplate name + else if ((temppad = gst_element_request_pad_by_name(previous,tempname))) { + srcpads = g_slist_append(srcpads,temppad); + numsrcpads++; + } + if (!temppad) { + GST_DEBUG(0,"NO SUCH pad %s in element %s\n",tempname,GST_ELEMENT_NAME(previous)); + } else { + GST_DEBUG(0,"have src pad %s:%s\n",GST_DEBUG_PAD_NAME(temppad)); + } + + // if there is no more commas in srcpadname then we're done + if (tempname == srcpadname) break; + g_free(tempname); } } + else { + // check through the list to find the first sink pad + GST_DEBUG(0,"CHECKING through element %s for pad named %s\n",GST_ELEMENT_NAME(previous),srcpadname); + pads = gst_element_get_pad_list(previous); + while (pads) { + temppad = GST_PARSE_LISTPAD(pads); + GST_DEBUG(0,"have pad %s:%s\n",GST_DEBUG_PAD_NAME(temppad)); + if (GST_IS_GHOST_PAD(temppad)) GST_DEBUG(0,"it's a ghost pad\n"); + if (gst_pad_get_direction (temppad) == GST_PAD_SRC){ + srcpads = g_slist_append(srcpads,temppad); + numsrcpads++; + break; + } + pads = g_list_next (pads); + } + if (!srcpads) GST_DEBUG(0,"error, can't find a src pad!!!\n"); + else GST_DEBUG(0,"have src pad %s:%s\n",GST_DEBUG_PAD_NAME(GST_PARSE_LISTPAD(srcpads))); + } // argument with = in it } else if (strstr(arg, "=")) { @@ -245,50 +279,91 @@ if (GST_IS_GHOST_PAD(srcpad)) GST_DEBUG(0,"it's a ghost pad\n"); gst_bin_add (GST_BIN (parent), element); elementcount++; - if (srcpad != NULL || srcpadname != NULL) { - if (srcpad) - DEBUG("need to connect to srcpad %s:%s\n",GST_DEBUG_PAD_NAME(srcpad)); + g_slist_free(sinkpads); + sinkpads = NULL; + numsinkpads=0; + tempname=NULL; - sinkpad = NULL; - - if (sinkpadname != NULL) - sinkpad = gst_element_get_pad(previous,sinkpadname); - - if (!sinkpad) { - // check through the list to find the first sink pad - pads = gst_element_get_pad_list(element); - while (pads) { - sinkpad = GST_PAD(pads->data); - pads = g_list_next (pads); - if (gst_pad_get_direction (sinkpad) == GST_PAD_SINK) break; - sinkpad = NULL; + // find sink pads + if (sinkpadname != NULL) { + while (1){ + // split name at commas + if ((ptr = strchr(sinkpadname,','))){ + tempname = g_strndup(sinkpadname,(ptr-sinkpadname)); + sinkpadname = &ptr[1]; + } else { + tempname = sinkpadname; + } + + // look for pad with that name + if ((temppad = gst_element_get_pad(element,tempname))){ + sinkpads = g_slist_append(sinkpads,temppad); + numsinkpads++; + } + + // try to create a pad using that padtemplate name + else if ((temppad = gst_element_request_pad_by_name(element,tempname))) { + sinkpads = g_slist_append(sinkpads,temppad); + numsinkpads++; + } + if (!temppad) { + GST_DEBUG(0,"NO SUCH pad %s in element %s\n",tempname,GST_ELEMENT_NAME(element)); + } else { + GST_DEBUG(0,"have sink pad %s:%s\n",GST_DEBUG_PAD_NAME(temppad)); + } + + // if there is no more commas in sinkpadname then we're done + if (tempname == sinkpadname) break; + g_free(tempname); + } + } + else { + // check through the list to find the first sink pad + pads = gst_element_get_pad_list(element); + while (pads) { + temppad = GST_PAD(pads->data); + pads = g_list_next (pads); + if (gst_pad_get_direction (temppad) == GST_PAD_SINK){ + sinkpads = g_slist_append(sinkpads,temppad); + numsinkpads++; + break; } } - - if (!sinkpad) DEBUG("error, can't find a sink pad!!!\n"); - else DEBUG("have sink pad %s:%s\n",GST_DEBUG_PAD_NAME(sinkpad)); - - if (!srcpad) { - dyn_connect *connect = g_malloc (sizeof (dyn_connect)); - - connect->srcpadname = srcpadname; - connect->target = sinkpad; - - GST_DEBUG(0,"SETTING UP dynamic connection %s:%s and %s:%s\n",gst_element_get_name (previous), - srcpadname,GST_DEBUG_PAD_NAME(sinkpad)); - - g_signal_connectc (G_OBJECT (previous), "new_pad", dynamic_connect, connect, FALSE); - g_signal_connectc (G_OBJECT (previous), "new_ghost_pad", dynamic_connect, connect, FALSE); - } - else { - GST_DEBUG(0,"CONNECTING %s:%s and %s:%s\n",GST_DEBUG_PAD_NAME(srcpad),GST_DEBUG_PAD_NAME(sinkpad)); - gst_pad_connect(srcpad,sinkpad); - } - - sinkpad = NULL; - srcpad = NULL; } + + if (!sinkpads) GST_DEBUG(0,"can't find a sink pad for %s\n", gst_element_get_name (previous)); + else GST_DEBUG(0,"have sink pad %s:%s\n",GST_DEBUG_PAD_NAME(GST_PARSE_LISTPAD(sinkpads))); + + if (!srcpads && sinkpads && previous) { + dyn_connect *connect = g_malloc (sizeof (dyn_connect)); + + connect->srcpadname = srcpadname; + connect->target = GST_PARSE_LISTPAD(sinkpads); + + GST_DEBUG(0,"SETTING UP dynamic connection %s:%s and %s:%s\n", + gst_element_get_name (previous), + srcpadname, + GST_DEBUG_PAD_NAME(GST_PARSE_LISTPAD(sinkpads))); + + g_signal_connectc (G_OBJECT (previous), "new_pad", dynamic_connect, connect, FALSE); + g_signal_connectc (G_OBJECT (previous), "new_ghost_pad", dynamic_connect, connect, FALSE); + } + else { + for (j=0; (jdata); + temppad = GST_PAD (pads->data); pads = g_list_next (pads); - if (!sinkpad) DEBUG("much oddness, pad doesn't seem to exist\n"); - else if (gst_pad_get_direction (sinkpad) == GST_PAD_SINK) { - gst_element_add_ghost_pad (GST_ELEMENT (parent), sinkpad, -g_strdup_printf("%s-ghost",GST_PAD_NAME(sinkpad))); + if (!temppad) DEBUG("much oddness, pad doesn't seem to exist\n"); + else if (gst_pad_get_direction (temppad) == GST_PAD_SINK) { + gst_element_add_ghost_pad (GST_ELEMENT (parent), temppad, +g_strdup_printf("%s-ghost",GST_PAD_NAME(temppad))); GST_DEBUG(0,"GHOSTED %s:%s to %s as %s-ghost\n", - GST_DEBUG_PAD_NAME(sinkpad),GST_ELEMENT_NAME(GST_ELEMENT(parent)),GST_PAD_NAME(sinkpad)); + GST_DEBUG_PAD_NAME(temppad),GST_ELEMENT_NAME(GST_ELEMENT(parent)),GST_PAD_NAME(temppad)); } } } @@ -327,14 +402,14 @@ g_strdup_printf("%s-ghost",GST_PAD_NAME(sinkpad))); GST_ELEMENT_NAME(prevelement),GST_ELEMENT_NAME(GST_ELEMENT(parent))); pads = gst_element_get_pad_list (prevelement); while (pads) { - srcpad = GST_PAD (pads->data); + temppad = GST_PAD (pads->data); pads = g_list_next (pads); - if (!srcpad) DEBUG("much oddness, pad doesn't seem to exist\n"); - else if (gst_pad_get_direction (srcpad) == GST_PAD_SRC) { - gst_element_add_ghost_pad (GST_ELEMENT (parent), srcpad, -g_strdup_printf("%s-ghost",GST_PAD_NAME(srcpad))); + if (!temppad) DEBUG("much oddness, pad doesn't seem to exist\n"); + else if (gst_pad_get_direction (temppad) == GST_PAD_SRC) { + gst_element_add_ghost_pad (GST_ELEMENT (parent), temppad, +g_strdup_printf("%s-ghost",GST_PAD_NAME(temppad))); GST_DEBUG(0,"GHOSTED %s:%s to %s as %s-ghost\n", -GST_DEBUG_PAD_NAME(srcpad),GST_ELEMENT_NAME (parent),GST_PAD_NAME(srcpad)); +GST_DEBUG_PAD_NAME(temppad),GST_ELEMENT_NAME (parent),GST_PAD_NAME(temppad)); } } } diff --git a/gst/gstplugin.c b/gst/gstplugin.c index fb188b3adf..ee656fc04b 100644 --- a/gst/gstplugin.c +++ b/gst/gstplugin.c @@ -73,21 +73,21 @@ _gst_plugin_initialize (void) _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, PLUGINS_DIR); /* if this is set, we add build-directory paths to the list */ -#ifdef PLUGINS_USE_SRCDIR +#ifdef PLUGINS_USE_BUILDDIR /* the catch-all plugins directory */ _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, - PLUGINS_SRCDIR "/plugins"); + PLUGINS_BUILDDIR "/plugins"); /* the libreary directory */ _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, - PLUGINS_SRCDIR "/libs"); + PLUGINS_BUILDDIR "/libs"); /* location libgstelements.so */ _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, - PLUGINS_SRCDIR "/gst/elements"); + PLUGINS_BUILDDIR "/gst/elements"); _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, - PLUGINS_SRCDIR "/gst/types"); + PLUGINS_BUILDDIR "/gst/types"); _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, - PLUGINS_SRCDIR "/gst/autoplug"); -#endif /* PLUGINS_USE_SRCDIR */ + PLUGINS_BUILDDIR "/gst/autoplug"); +#endif /* PLUGINS_USE_BUILDDIR */ doc = xmlParseFile (GST_CONFIG_DIR"/reg.xml"); diff --git a/gst/gstprops.c b/gst/gstprops.c index 1d61041fae..97dec7c24d 100644 --- a/gst/gstprops.c +++ b/gst/gstprops.c @@ -55,6 +55,9 @@ gst_props_debug_entry (GstPropsEntry *entry) case GST_PROPS_INT_ID: GST_DEBUG (GST_CAT_PROPERTIES, "%d\n", entry->data.int_data); break; + case GST_PROPS_FLOAT_ID: + GST_DEBUG (GST_CAT_PROPERTIES, "%f\n", entry->data.float_data); + break; case GST_PROPS_FOURCC_ID: GST_DEBUG (GST_CAT_PROPERTIES, "%4.4s\n", (gchar*)&entry->data.fourcc_data); break; @@ -68,6 +71,12 @@ gst_props_debug_entry (GstPropsEntry *entry) GST_DEBUG (GST_CAT_PROPERTIES, "%d-%d\n", entry->data.int_range_data.min, entry->data.int_range_data.max); break; + case GST_PROPS_FLOAT_RANGE_ID: + GST_DEBUG (GST_CAT_PROPERTIES, "%f-%f\n", entry->data.float_range_data.min, + entry->data.float_range_data.max); + break; + case GST_PROPS_LIST_ID: + GST_DEBUG (GST_CAT_PROPERTIES, "[list]\n"); default: break; } @@ -151,6 +160,129 @@ gst_props_new (const gchar *firstname, ...) va_end (var_args); return props; +} + +/** + * gst_props_add_to_list: + * @entries: the existing list of entries + * @entry: the new entry to add to the list + * + * Add a property to a list of properties. + * + * Returns: a pointer to a list with the new entry added. + */ +static GList * +gst_props_add_to_list (GList * entries, GstPropsEntry *entry) +{ + return g_list_prepend (entries, entry); +} + +/** + * gst_props_merge_int_entries: + * @newentry: the new entry + * @oldentry: an old entry + * + * Tries to merge oldentry into newentry, if there is a simpler single entry which represents + * + * Assumes that the entries are either ints or int ranges. + * + * Returns: TRUE if the entries were merged, FALSE otherwise. + */ +static gboolean +gst_props_merge_int_entries(GstPropsEntry * newentry, GstPropsEntry * oldentry) +{ + gint new_min, new_max, old_min, old_max; + gboolean can_merge = FALSE; + + if (newentry->propstype == GST_PROPS_INT_ID) { + new_min = newentry->data.int_data; + new_max = newentry->data.int_data; + } else { + new_min = newentry->data.int_range_data.min; + new_max = newentry->data.int_range_data.max; + } + + if (oldentry->propstype == GST_PROPS_INT_ID) { + old_min = oldentry->data.int_data; + old_max = oldentry->data.int_data; + } else { + old_min = oldentry->data.int_range_data.min; + old_max = oldentry->data.int_range_data.max; + } + + // Put range which starts lower into (new_min, new_max) + if (old_min < new_min) { + gint tmp; + tmp = old_min; + old_min = new_min; + new_min = tmp; + tmp = old_max; + old_max = new_max; + new_max = tmp; + } + + // new_min is min of either entry - second half of the following conditional + // is to avoid overflow problems. + if (new_max >= old_min - 1 && old_min - 1 < old_min) { + // ranges overlap, or are adjacent. Pick biggest maximum. + can_merge = TRUE; + if (old_max > new_max) new_max = old_max; + } + + if (can_merge) { + if (new_min == new_max) { + newentry->propstype = GST_PROPS_INT_ID; + newentry->data.int_data = new_min; + } else { + newentry->propstype = GST_PROPS_INT_RANGE_ID; + newentry->data.int_range_data.min = new_min; + newentry->data.int_range_data.max = new_max; + } + } + return can_merge; +} + +/** + * gst_props_add_to_int_list: + * @entries: the existing list of entries + * @entry: the new entry to add to the list + * + * Add an integer property to a list of properties, removing duplicates + * and merging ranges. + * + * Assumes that the existing list is in simplest form, contains + * only ints and int ranges, and that the new entry is an int or + * an int range. + * + * Returns: a pointer to a list with the new entry added. + */ +static GList * +gst_props_add_to_int_list (GList * entries, GstPropsEntry * newentry) +{ + GList * i; + + i = entries; + while (i) { + GstPropsEntry * oldentry = (GstPropsEntry *)(i->data); + gboolean merged = gst_props_merge_int_entries(newentry, oldentry); + + if (merged) { + // replace the existing one with the merged one + g_mutex_lock (_gst_props_entries_chunk_lock); + g_mem_chunk_free (_gst_props_entries_chunk, oldentry); + g_mutex_unlock (_gst_props_entries_chunk_lock); + entries = g_list_remove_link (entries, i); + g_list_free_1 (i); + + // start again: it's possible that this change made an earlier entry + // mergeable, and the pointer is now invalid anyway. + i = entries; + } + + i = g_list_next (i); + } + + return gst_props_add_to_list (entries, newentry); } /** @@ -170,6 +302,18 @@ gst_props_newv (const gchar *firstname, va_list var_args) const gchar *prop_name; GstPropsEntry *list_entry = NULL; + typedef enum { + GST_PROPS_LIST_T_UNSET, + GST_PROPS_LIST_T_INTS, + GST_PROPS_LIST_T_FLOATS, + GST_PROPS_LIST_T_MISC, + } list_types; + + // type of the list + list_types list_type = GST_PROPS_LIST_T_UNSET; + // type of current item + list_types entry_type = GST_PROPS_LIST_T_UNSET; + if (firstname == NULL) return NULL; @@ -196,20 +340,40 @@ gst_props_newv (const gchar *firstname, va_list var_args) switch (entry->propstype) { case GST_PROPS_INT_ID: case GST_PROPS_INT_RANGE_ID: + entry_type = GST_PROPS_LIST_T_INTS; + break; case GST_PROPS_FLOAT_ID: case GST_PROPS_FLOAT_RANGE_ID: + entry_type = GST_PROPS_LIST_T_FLOATS; + break; case GST_PROPS_FOURCC_ID: case GST_PROPS_BOOL_ID: case GST_PROPS_STRING_ID: + entry_type = GST_PROPS_LIST_T_MISC; break; case GST_PROPS_LIST_ID: g_return_val_if_fail (inlist == FALSE, NULL); inlist = TRUE; list_entry = entry; + list_type = GST_PROPS_LIST_T_UNSET; list_entry->data.list_data.entries = NULL; break; case GST_PROPS_END_ID: g_return_val_if_fail (inlist == TRUE, NULL); + + // if list was of size 1, replace the list by a the item it contains + if (g_list_length(list_entry->data.list_data.entries) == 1) { + GstPropsEntry * subentry = (GstPropsEntry *)(list_entry->data.list_data.entries->data); + list_entry->propstype = subentry->propstype; + list_entry->data = subentry->data; + g_mutex_lock (_gst_props_entries_chunk_lock); + g_mem_chunk_free (_gst_props_entries_chunk, subentry); + g_mutex_unlock (_gst_props_entries_chunk_lock); + } + + g_mutex_lock (_gst_props_entries_chunk_lock); + g_mem_chunk_free (_gst_props_entries_chunk, entry); + g_mutex_unlock (_gst_props_entries_chunk_lock); inlist = FALSE; list_entry = NULL; prop_name = va_arg (var_args, gchar*); @@ -223,7 +387,21 @@ gst_props_newv (const gchar *firstname, va_list var_args) } if (inlist && (list_entry != entry)) { - list_entry->data.list_data.entries = g_list_prepend (list_entry->data.list_data.entries, entry); + if (list_type == GST_PROPS_LIST_T_UNSET) list_type = entry_type; + if (list_type != entry_type) { + g_warning ("property list contained incompatible entry types\n"); + } else { + switch (list_type) { + case GST_PROPS_LIST_T_INTS: + list_entry->data.list_data.entries = + gst_props_add_to_int_list (list_entry->data.list_data.entries, entry); + break; + default: + list_entry->data.list_data.entries = + gst_props_add_to_list (list_entry->data.list_data.entries, entry); + break; + } + } } else { props->properties = g_list_insert_sorted (props->properties, entry, props_compare_func); @@ -621,6 +799,8 @@ gst_props_entry_check_compatibility (GstPropsEntry *entry1, GstPropsEntry *entry { GST_DEBUG (GST_CAT_PROPERTIES,"compare: %s %s\n", g_quark_to_string (entry1->propid), g_quark_to_string (entry2->propid)); + gst_props_debug_entry (entry1); + gst_props_debug_entry (entry2); switch (entry1->propstype) { case GST_PROPS_LIST_ID: { @@ -806,6 +986,7 @@ end: return compatible; } +#ifndef GST_DISABLE_XML static xmlNodePtr gst_props_save_thyself_func (GstPropsEntry *entry, xmlNodePtr parent) { @@ -1060,3 +1241,4 @@ gst_props_load_thyself (xmlNodePtr parent) return props; } +#endif // GST_DISABLE_XML diff --git a/gst/gstscheduler.c b/gst/gstscheduler.c index 8962aab5d3..53e7a2bf21 100644 --- a/gst/gstscheduler.c +++ b/gst/gstscheduler.c @@ -116,7 +116,7 @@ gst_schedule_src_wrapper (int argc,char *argv[]) } GST_DEBUG (GST_CAT_DATAFLOW,"calling gst_pad_push on pad %s:%s\n",GST_DEBUG_PAD_NAME(realpad)); - if (buf) gst_pad_push ((GstPad*)realpad, buf); + gst_pad_push ((GstPad*)realpad, buf); } } } while (!GST_ELEMENT_IS_COTHREAD_STOPPING(element)); diff --git a/gst/gstthread.c b/gst/gstthread.c index 4541cd6c74..983a30042e 100644 --- a/gst/gstthread.c +++ b/gst/gstthread.c @@ -68,8 +68,10 @@ static void gst_thread_get_property (GObject *object, guint prop_id, GValue * static GstElementStateReturn gst_thread_change_state (GstElement *element); +#ifndef GST_DISABLE_XML static xmlNodePtr gst_thread_save_thyself (GstObject *object, xmlNodePtr parent); static void gst_thread_restore_thyself (GstObject *object, xmlNodePtr self); +#endif static void gst_thread_signal_thread (GstThread *thread, gboolean spinning); @@ -121,8 +123,10 @@ gst_thread_class_init (GstThreadClass *klass) // FIXME! // gobject_class->destroy = gst_thread_real_destroy; +#ifndef GST_DISABLE_XML gstobject_class->save_thyself = gst_thread_save_thyself; gstobject_class->restore_thyself = gst_thread_restore_thyself; +#endif gstelement_class->change_state = gst_thread_change_state; @@ -670,6 +674,16 @@ gst_thread_signal_thread (GstThread *thread, gboolean spinning) } +#ifndef GST_DISABLE_XML +static xmlNodePtr +gst_thread_save_thyself (GstObject *object, + xmlNodePtr self) +{ + if (GST_OBJECT_CLASS (parent_class)->save_thyself) + GST_OBJECT_CLASS (parent_class)->save_thyself (object, self); + return NULL; +} + static void gst_thread_restore_thyself (GstObject *object, xmlNodePtr self) @@ -679,12 +693,4 @@ gst_thread_restore_thyself (GstObject *object, if (GST_OBJECT_CLASS (parent_class)->restore_thyself) GST_OBJECT_CLASS (parent_class)->restore_thyself (object, self); } - -static xmlNodePtr -gst_thread_save_thyself (GstObject *object, - xmlNodePtr self) -{ - if (GST_OBJECT_CLASS (parent_class)->save_thyself) - GST_OBJECT_CLASS (parent_class)->save_thyself (object, self); - return NULL; -} +#endif // GST_DISABLE_XML diff --git a/gstplay/ChangeLog b/gstplay/ChangeLog index 946e3077f0..aa134d00a7 100644 --- a/gstplay/ChangeLog +++ b/gstplay/ChangeLog @@ -1,3 +1,44 @@ +2001-06-12 Arik Devens + + * gstmediaplay.glade: Added a basic preferences dialog, not hooked + up yet. + + * callbacks.c (on_preferences1_activate): Added loading the new + preferences dialog. + + * Makefile.am: Removed full-screen.[c,h] from the build. + + * full-screen.h: Removed this file, no longer needed. + + * full-screen.c: Removed this file, no longer needed. + + * gstplay.c (gst_play_get_video_widget): New function to return + the actual video_widget. + (gst_play_get_source_width): New function to get the width of the + source media. + (gst_play_get_source_height): New function to get the height of + the source media. + (gst_play_set_uri): Added check to make sure the file we are + trying to play actually exists. i wonder if this fails with + gnomevfs? + + * callbacks.c (on_original_size_activate): Use the new function. + (on_double_size_activate): Use the new function. + (on_full_screen_activate): Use the new function. + + * gstmediaplay.h (gst_media_play_set_fullscreen): Added function + prototypes for the new functions. + + * gstmediaplay.c (gst_media_play_start_uri): Added a check for the + return value of set_uri so that we don't crash on not being able + to load a file. + (gst_media_play_set_original_size): New function to size the + video_widget to its default size. + (gst_media_play_set_fullscreen): New function to do + full-screen. Still a hack but at least this one works. + (gst_media_play_set_double_size): New function to size the + video_widget to double its default size. + 2001-06-06 Arik Devens * gstmediaplay.glade: Dissabled full-screen for the moment till it diff --git a/gstplay/Makefile.am b/gstplay/Makefile.am index 552490962e..eed8ea90c3 100644 --- a/gstplay/Makefile.am +++ b/gstplay/Makefile.am @@ -20,8 +20,7 @@ libgstmediaplay_la_SOURCES = \ gstplay.c \ gstmediaplay.c \ gststatusarea.c \ - callbacks.c \ - full-screen.c + callbacks.c gstmediaplay_SOURCES = \ main.c @@ -34,9 +33,7 @@ noinst_HEADERS = \ gstmediaplay.h \ gststatusarea.h \ callbacks.h \ - gstplayprivate.h \ - full-screen.h - + gstplayprivate.h libgstmediaplay_la_LDFLAGS = -rdynamic diff --git a/gstplay/callbacks.c b/gstplay/callbacks.c index 585efae70d..8e4e92ffca 100644 --- a/gstplay/callbacks.c +++ b/gstplay/callbacks.c @@ -35,42 +35,43 @@ void on_original_size_activate (GtkMenuItem *menuitem, gpointer user_data) { GstMediaPlay *mplay; - GstPlay *play; mplay = GST_MEDIA_PLAY (user_data); - play = mplay->play; - gst_play_set_display_size (play, 0); + gst_media_play_set_original_size (mplay); } void on_double_size_activate (GtkMenuItem *menuitem, gpointer user_data) { GstMediaPlay *mplay; - GstPlay *play; mplay = GST_MEDIA_PLAY (user_data); - play = mplay->play; - gst_play_set_display_size (play, 1); + gst_media_play_set_double_size (mplay); } void on_full_screen_activate (GtkMenuItem *menuitem, gpointer user_data) { GstMediaPlay *mplay; - GstPlay *play; mplay = GST_MEDIA_PLAY (user_data); - play = mplay->play; - - gst_play_set_display_size (play, 2); + + gst_media_play_set_fullscreen (mplay); } void on_preferences1_activate (GtkMenuItem *menuitem, gpointer user_data) { - printf ("file1 activate\n"); + GladeXML *xml; + struct stat statbuf; + + if (stat (DATADIR"gstmediaplay.glade", &statbuf) == 0) { + xml = glade_xml_new (DATADIR"gstmediaplay.glade", "preferences"); + } + else + xml = glade_xml_new ("gstmediaplay.glade", "preferences"); } void on_about_activate (GtkWidget *widget, gpointer data) diff --git a/gstplay/full-screen.c b/gstplay/full-screen.c deleted file mode 100644 index c68d7f515e..0000000000 --- a/gstplay/full-screen.c +++ /dev/null @@ -1,247 +0,0 @@ -#include -#include -#include -#include "full-screen.h" -#include "gstplay.h" - -/* Private part of the FullScreen structure */ -struct _FullScreenPrivate { - GstPlay *play; - - /* Whether we have a keyboard grab */ - guint have_grab : 1; -}; - - - -static void full_screen_class_init (FullScreenClass *class); -static void full_screen_init (FullScreen *fs); -static void full_screen_finalize (GtkObject *object); - -static void full_screen_show (GtkWidget *widget); -static void full_screen_hide (GtkWidget *widget); - -static gint full_screen_key_press (GtkWidget *widget, GdkEventKey *event); - -static GtkWindowClass *parent_class; - -/** - - * @void: - * - * Registers the #FullScreen class if necessary, and returns the type ID - * associated to it. - * - * Return value: The type ID of the #FullScreen class. - **/ -GtkType -full_screen_get_type (void) -{ - static GtkType full_screen_type = 0; - - if (!full_screen_type) { - static GtkTypeInfo full_screen_info = { - "FullScreen", - sizeof (FullScreen), - sizeof (FullScreenClass), - (GtkClassInitFunc) full_screen_class_init, - (GtkObjectInitFunc) full_screen_init, - NULL, /* reserved_1 */ - NULL, /* reserved_2 */ - (GtkClassInitFunc) NULL - }; - - full_screen_type = gtk_type_unique (GTK_TYPE_WINDOW, &full_screen_info); - } - - return full_screen_type; -} - -/* Class initialization function for the full screen mode */ -static void -full_screen_class_init (FullScreenClass *class) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - - object_class = (GtkObjectClass *) class; - widget_class = (GtkWidgetClass *) class; - - parent_class = gtk_type_class (GTK_TYPE_WINDOW); - - object_class->finalize = full_screen_finalize; - - widget_class->show = full_screen_show; - widget_class->hide = full_screen_hide; - widget_class->key_press_event = full_screen_key_press; -} - -/* Object initialization function for the full screen view */ -static void -full_screen_init (FullScreen *fs) -{ - FullScreenPrivate *priv; - - priv = g_new0 (FullScreenPrivate, 1); - fs->priv = priv; - - GTK_WINDOW (fs)->type = GTK_WINDOW_POPUP; - g_assert (fs != NULL); - gtk_widget_set_usize (GTK_WIDGET (fs), gdk_screen_width (), gdk_screen_height ()); - gtk_widget_set_uposition (GTK_WIDGET (fs), 0, 0); - - priv->play = gst_play_new(); - gtk_container_add (GTK_CONTAINER (fs), GTK_WIDGET (priv->play)); - gtk_widget_show (priv->play); -} - -/* Finalize handler for the full screen view */ -static void -full_screen_finalize (GtkObject *object) -{ - FullScreen *fs; - FullScreenPrivate *priv; - - g_return_if_fail (object != NULL); - g_return_if_fail (IS_FULL_SCREEN (object)); - - fs = FULL_SCREEN (object); - priv = fs->priv; - - g_free (priv); - fs->priv = NULL; - - if (GTK_OBJECT_CLASS (parent_class)->finalize) - (* GTK_OBJECT_CLASS (parent_class)->finalize) (object); -} - - - -/* Widget methods */ - -/* Show handler for the full screen view */ -static void -full_screen_show (GtkWidget *widget) -{ - FullScreen *fs; - FullScreenPrivate *priv; - - fs = FULL_SCREEN (widget); - priv = fs->priv; - - if (GTK_WIDGET_CLASS (parent_class)->show) - (* GTK_WIDGET_CLASS (parent_class)->show) (widget); - - priv->have_grab = gdk_keyboard_grab (widget->window, TRUE, GDK_CURRENT_TIME) == 0; - gtk_grab_add (widget); - - //gtk_widget_grab_focus (ui_image_get_image_view (UI_IMAGE (priv->ui))); -} - -/* Hide handler for the full screen view */ -static void -full_screen_hide (GtkWidget *widget) -{ - FullScreen *fs; - FullScreenPrivate *priv; - - fs = FULL_SCREEN (widget); - priv = fs->priv; - - if (priv->have_grab) { - priv->have_grab = FALSE; - gdk_keyboard_ungrab (GDK_CURRENT_TIME); - } - - if (GTK_WIDGET_CLASS (parent_class)->show) - (* GTK_WIDGET_CLASS (parent_class)->show) (widget); - - gtk_widget_destroy (widget); -} - -/* Key press handler for the full screen view */ -static gint -full_screen_key_press (GtkWidget *widget, GdkEventKey *event) -{ - gint result; - gboolean do_hide; - - result = FALSE; - - if (GTK_WIDGET_CLASS (parent_class)->key_press_event) - result = (* GTK_WIDGET_CLASS (parent_class)->key_press_event) (widget, event); - - if (result) - return result; - - do_hide = FALSE; - - switch (event->keyval) { - case GDK_Escape: - do_hide = TRUE; - break; - - case GDK_W: - case GDK_w: - if (event->state & GDK_CONTROL_MASK) - do_hide = TRUE; - break; - - case GDK_Q: - case GDK_q: - do_hide = TRUE; - break; - - default: - return FALSE; - } - - if (do_hide) - gtk_widget_hide (widget); - - return TRUE; -} - - - -/** - * full_screen_new: - * @void: - * - * Creates a new empty full screen image viewer. - * - * Return value: A newly-created full screen image viewer. - **/ -GtkWidget * -full_screen_new (void) -{ - return GTK_WIDGET (gtk_type_new (TYPE_FULL_SCREEN)); -} - -void -full_screen_set_uri (FullScreen *fs, - GstPlay *play, - const guchar *uri) -{ - g_return_if_fail (fs != NULL); - g_return_if_fail (play != NULL); - g_return_if_fail (uri != NULL); - - g_return_if_fail (IS_FULL_SCREEN (fs)); - g_return_if_fail (GST_IS_PLAY (play)); - - gst_play_set_uri (play, uri); - - gst_play_play (play); -} - -GstPlay * -full_screen_get_gst_play (FullScreen *fs) -{ - FullScreenPrivate *priv; - g_return_val_if_fail (fs != NULL, 0); - - priv = fs->priv; - - return priv->play; -} diff --git a/gstplay/full-screen.h b/gstplay/full-screen.h deleted file mode 100644 index 5e57f6145a..0000000000 --- a/gstplay/full-screen.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef FULL_SCREEN_H -#define FULL_SCREEN_H - -#include -#include -#include "gstplay.h" - -BEGIN_GNOME_DECLS - - - -#define TYPE_FULL_SCREEN (full_screen_get_type ()) -#define FULL_SCREEN(obj) (GTK_CHECK_CAST ((obj), TYPE_FULL_SCREEN, FullScreen)) -#define FULL_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_FULL_SCREEN, \ - FullScreenClass)) -#define IS_FULL_SCREEN(obj) (GTK_CHECK_TYPE ((obj), TYPE_FULL_SCREEN)) -#define IS_FULL_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TYPE_FULL_SCREEN)) - -typedef struct _FullScreen FullScreen; -typedef struct _FullScreenClass FullScreenClass; - -typedef struct _FullScreenPrivate FullScreenPrivate; - -struct _FullScreen { - GtkWindow window; - - /* Private data */ - FullScreenPrivate *priv; -}; - -struct _FullScreenClass { - GtkWindowClass parent_class; -}; - -GtkType full_screen_get_type (void); - -GtkWidget *full_screen_new (void); - -void full_screen_set_uri (FullScreen *fs, GstPlay *play, const guchar *uri); -GstPlay * full_screen_get_gst_play (FullScreen *fs); - -END_GNOME_DECLS - -#endif diff --git a/gstplay/gstmediaplay.c b/gstplay/gstmediaplay.c index e42cc3bfc8..936029e057 100644 --- a/gstplay/gstmediaplay.c +++ b/gstplay/gstmediaplay.c @@ -20,6 +20,8 @@ static void gst_media_play_slider_changed (GtkAdjustment *adj, GstMediaPlay static void update_buttons (GstMediaPlay *mplay, GstPlayState state); static void update_slider (GstMediaPlay *mplay, GtkAdjustment *adjustment, gfloat value); +gboolean fullscreen_active = FALSE; + /* signals and args */ enum { LAST_SIGNAL @@ -230,15 +232,19 @@ gst_media_play_start_uri (GstMediaPlay *play, if (uri != NULL) { ret = gst_play_set_uri (play->play, uri); + + if (ret == GST_PLAY_CANNOT_PLAY) { + printf ("*** Cannot load file: %s ***\n", uri); + } else { + if (!gst_play_media_can_seek (play->play)) { + gtk_widget_set_sensitive (play->slider, FALSE); + } - if (!gst_play_media_can_seek (play->play)) { - gtk_widget_set_sensitive (play->slider, FALSE); + gtk_window_set_title (GTK_WINDOW (play->window), + g_strconcat ( "Gstplay - ", uri, NULL)); + + gst_play_play (play->play); } - - gtk_window_set_title (GTK_WINDOW (play->window), - g_strconcat ( "Gstplay - ", uri, NULL)); - - gst_play_play (play->play); } } @@ -387,6 +393,88 @@ on_extended1_activate (GtkCheckMenuItem *item, GstMediaPlay *mplay) gdk_threads_enter (); } +void +gst_media_play_set_original_size (GstMediaPlay *mplay) +{ + GstPlay *play; + GtkWidget *video_widget; + gint width, height; + + play = mplay->play; + + video_widget = gst_play_get_video_widget (play); + width = gst_play_get_source_width (play); + height = gst_play_get_source_height (play); + + gtk_widget_set_usize (video_widget, width, height); +} + +void +gst_media_play_set_double_size (GstMediaPlay *mplay) +{ + GstPlay *play; + GtkWidget *video_widget; + gint width, height; + + play = mplay->play; + + video_widget = gst_play_get_video_widget (play); + width = gst_play_get_source_width (play); + height = gst_play_get_source_height (play); + + gtk_widget_set_usize (video_widget, width * 1.5, height * 1.5); +} + +void +gst_media_play_set_fullscreen (GstMediaPlay *mplay) +{ + GdkWindow *gdk_window; + gint client_x, client_y, root_x, root_y; + gint width, height, source_width, source_height; + GstPlay *play; + GtkWidget *video_widget; + + gdk_window = mplay->window->window; + play = mplay->play; + + video_widget = gst_play_get_video_widget (play); + source_width = gst_play_get_source_width (play); + source_height = gst_play_get_source_height (play); + + if (!fullscreen_active) { + gtk_widget_hide (glade_xml_get_widget (mplay->xml, "dockitem1")); + gtk_widget_hide (glade_xml_get_widget (mplay->xml, "dockitem2")); + gtk_widget_hide (glade_xml_get_widget (mplay->xml, "dockitem3")); + gtk_widget_hide (glade_xml_get_widget (mplay->xml, "dockitem4")); + + gdk_window_get_origin (gdk_window, &root_x, &root_y); + gdk_window_get_geometry (gdk_window, &client_x, &client_y, + &width, &height, NULL); + gdk_window_move (gdk_window, -client_x, -client_y); + gtk_widget_set_usize (video_widget, gdk_screen_width () + 1, + gdk_screen_height () + 1); + + mplay->x = root_x - client_x; + mplay->y = root_y - client_y; + mplay->width = width; + mplay->height = height; + + fullscreen_active = TRUE; + } else { + gtk_widget_show (glade_xml_get_widget (mplay->xml, "dockitem1")); + gtk_widget_show (glade_xml_get_widget (mplay->xml, "dockitem2")); + gtk_widget_show (glade_xml_get_widget (mplay->xml, "dockitem3")); + gtk_widget_show (glade_xml_get_widget (mplay->xml, "dockitem4")); + gtk_widget_queue_resize (glade_xml_get_widget (mplay->xml, "dock1")); + + gdk_window_move (gdk_window, mplay->x, mplay->y); + gtk_widget_set_usize (video_widget, source_width, + source_height); + + fullscreen_active = FALSE; + } +} + static void gst_media_play_frame_displayed (GstPlay *play, GstMediaPlay *mplay) { diff --git a/gstplay/gstmediaplay.glade b/gstplay/gstmediaplay.glade index 7ce075b123..e508eb69a7 100644 --- a/gstplay/gstmediaplay.glade +++ b/gstplay/gstmediaplay.glade @@ -187,7 +187,6 @@ GtkMenuItem full_screen - False GDK_CONTROL_MASK GDK_3 @@ -469,7 +468,7 @@ True about GstMediaPlay - (C) 1999-2001 Erik Walthinsen + (C) 1999-2001 Erik Walthinsen, Arik Devens Erik Walthinsen <omega@cse.ogi.edu> Wim Taymans <wim.taymans@tvd.be> Richard Boulton <richard@tartarus.org> @@ -532,4 +531,99 @@ Arik Devens <arik@gnome.org> + + GtkWindow + preferences + GstMediaPlayer Preferences + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + False + True + False + + + GtkNotebook + notebook1 + True + True + True + GTK_POS_TOP + False + 2 + 2 + False + + + GtkFrame + frame1 + + 0 + GTK_SHADOW_ETCHED_IN + + + GtkVBox + vbox1 + False + 0 + + + GtkCheckButton + checkbutton1 + True + + False + True + + 0 + False + False + + + + + GtkCheckButton + checkbutton2 + True + + False + True + + 0 + False + False + + + + + GtkCheckButton + checkbutton3 + True + + False + True + + 0 + False + False + + + + + + + GtkLabel + Notebook:tab + label1 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + + + diff --git a/gstplay/gstmediaplay.h b/gstplay/gstmediaplay.h index 4454362208..a009406edf 100644 --- a/gstplay/gstmediaplay.h +++ b/gstplay/gstmediaplay.h @@ -32,6 +32,8 @@ struct _GstMediaPlay { GtkWidget *slider; gulong last_time; + + gint x, y, width, height; }; struct _GstMediaPlayClass { @@ -42,8 +44,12 @@ struct _GstMediaPlayClass { GtkType gst_media_play_get_type (void); /* setup the player */ -GstMediaPlay* gst_media_play_new (void); +GstMediaPlay* gst_media_play_new (void); -void gst_media_play_start_uri (GstMediaPlay *play, const guchar *uri); +void gst_media_play_start_uri (GstMediaPlay *play, const guchar *uri); + +void gst_media_play_set_original_size (GstMediaPlay *mplay); +void gst_media_play_set_double_size (GstMediaPlay *mplay); +void gst_media_play_set_fullscreen (GstMediaPlay *mplay); #endif /* __GST_MEDIA_PLAY_H__ */ diff --git a/gstplay/gstplay.c b/gstplay/gstplay.c index 1f49ca848c..1bd39d7fd7 100644 --- a/gstplay/gstplay.c +++ b/gstplay/gstplay.c @@ -4,7 +4,6 @@ #include "gstplay.h" #include "gstplayprivate.h" -#include "full-screen.h" static void gst_play_class_init (GstPlayClass *klass); static void gst_play_init (GstPlay *play); @@ -165,6 +164,9 @@ gst_play_init (GstPlay *play) priv->offset_element = NULL; priv->bit_rate_element = NULL; priv->media_time_element = NULL; + + priv->source_width = 100; + priv->source_height = 100; } GstPlay * @@ -374,6 +376,7 @@ GstPlayReturn gst_play_set_uri (GstPlay *play, const guchar *uri) { GstPlayPrivate *priv; + FILE *file; gchar* uriloc; g_return_val_if_fail (play != NULL, GST_PLAY_ERROR); @@ -385,7 +388,6 @@ gst_play_set_uri (GstPlay *play, const guchar *uri) if (priv->uri) g_free (priv->uri); - /* see if it looks like an URI */ if ((uriloc = strstr (uri, ":/"))) { priv->src = gst_elementfactory_make ("gnomevfssrc", "srcelement"); @@ -498,7 +500,7 @@ gst_play_pause (GstPlay *play) if (play->state != GST_PLAY_PLAYING) return; - gst_element_set_state (GST_ELEMENT (priv->pipeline),GST_STATE_PAUSED); + gst_element_set_state (GST_ELEMENT (priv->pipeline), GST_STATE_PAUSED); play->state = GST_PLAY_PAUSED; g_idle_remove_by_data (priv->pipeline); @@ -515,13 +517,13 @@ gst_play_stop (GstPlay *play) g_return_if_fail (play != NULL); g_return_if_fail (GST_IS_PLAY (play)); - if (play->state == GST_PLAY_STOPPED) return; - priv = (GstPlayPrivate *)play->priv; + if (play->state == GST_PLAY_STOPPED) return; + // FIXME until state changes are handled properly - gst_element_set_state (GST_ELEMENT (priv->pipeline),GST_STATE_READY); - gtk_object_set (G_OBJECT (priv->src),"offset",0,NULL); + gst_element_set_state (GST_ELEMENT (priv->pipeline), GST_STATE_READY); + gtk_object_set (GTK_OBJECT (priv->src), "offset", 0, NULL); //gst_element_set_state (GST_ELEMENT (priv->pipeline),GST_STATE_NULL); play->state = GST_PLAY_STOPPED; @@ -531,37 +533,43 @@ gst_play_stop (GstPlay *play) play->state); } -void -gst_play_set_display_size (GstPlay *play, gint display_preference) +GtkWidget * +gst_play_get_video_widget (GstPlay *play) { GstPlayPrivate *priv; - g_return_if_fail (play != NULL); - g_return_if_fail (GST_IS_PLAY (play)); + g_return_val_if_fail (play != NULL, 0); + g_return_val_if_fail (GST_IS_PLAY (play), 0); priv = (GstPlayPrivate *)play->priv; - - if (display_preference == 0) { - gtk_widget_set_usize (GTK_WIDGET (priv->video_widget), priv->source_width, priv->source_height); - } - else if (display_preference == 1) { - gtk_widget_set_usize (GTK_WIDGET (priv->video_widget), priv->source_width * 2, priv->source_height * 2); - } - else if (display_preference == 2) { - GtkWidget *fs; - GstPlay *fs_play; - - fs = full_screen_new (); - fs_play = full_screen_get_gst_play (FULL_SCREEN (fs)); + return priv->video_widget; +} - if (priv->uri != NULL) { - //gst_play_stop (play); - full_screen_set_uri (FULL_SCREEN (fs), fs_play, priv->uri); +gint +gst_play_get_source_width (GstPlay *play) +{ + GstPlayPrivate *priv; - gtk_widget_show (fs); - } - } + g_return_val_if_fail (play != NULL, 0); + g_return_val_if_fail (GST_IS_PLAY (play), 0); + + priv = (GstPlayPrivate *)play->priv; + + return priv->source_width; +} + +gint +gst_play_get_source_height (GstPlay *play) +{ + GstPlayPrivate *priv; + + g_return_val_if_fail (play != NULL, 0); + g_return_val_if_fail (GST_IS_PLAY (play), 0); + + priv = (GstPlayPrivate *)play->priv; + + return priv->source_height; } gulong diff --git a/gstplay/gstplay.h b/gstplay/gstplay.h index 8356dd1ee9..23d578e1ca 100644 --- a/gstplay/gstplay.h +++ b/gstplay/gstplay.h @@ -76,7 +76,9 @@ gulong gst_play_get_media_total_time (GstPlay *play); gulong gst_play_get_media_current_time (GstPlay *play); /* set display stuff */ -void gst_play_set_display_size (); +GtkWidget * gst_play_get_video_widget (GstPlay *play); +gint gst_play_get_source_width (GstPlay *play); +gint gst_play_get_source_height (GstPlay *play); /* the autoplugged pipeline */ GstElement* gst_play_get_pipeline (GstPlay *play); diff --git a/gstplay/main.c b/gstplay/main.c index 765baf5e69..44338b7d54 100644 --- a/gstplay/main.c +++ b/gstplay/main.c @@ -11,7 +11,7 @@ main (int argc, char *argv[]) gnome_init ("gstreamer", VERSION, argc, argv); glade_init(); glade_gnome_init(); - + play = gst_media_play_new (); if (argc > 1) { diff --git a/gstreamer.spec.in b/gstreamer.spec.in index b764825bdb..9683190c16 100644 --- a/gstreamer.spec.in +++ b/gstreamer.spec.in @@ -1,6 +1,6 @@ %define name gstreamer %define ver @VERSION@ -%define rel 0.2.0 +%define rel 2 %define prefix /usr Summary: GStreamer Streaming-media framework runtime @@ -13,6 +13,8 @@ Source: %{name}-%{ver}.tar.gz BuildRoot: /var/tmp/%{name}-%{ver}-root Docdir: %{prefix}/doc Prefix: %prefix +Requires: libxml >= 1.8.0 +Requires: gnome-libs >= 1.2.0 %description GStreamer is a streaming-media framework, based on graphs of filters which @@ -22,10 +24,56 @@ else media-related. Its plugin-based architecture means that new data types or processing capabilities can be added simply by installing new plugins. +%files +%defattr(-, root, root) +%doc AUTHORS COPYING README +%{prefix}/bin/gsteditor +%{prefix}/bin/gstmediaplay +%{prefix}/bin/gstreamer-complete +%{prefix}/bin/gstreamer-compprep +%{prefix}/bin/gstreamer-inspect +%{prefix}/bin/gstreamer-launch +%{prefix}/bin/gstreamer-register +%{prefix}/lib/lib*.so* +%{prefix}/lib/gst/libadder* +%{prefix}/lib/gst/libalaw* +%{prefix}/lib/gst/libaudioscale* +%{prefix}/lib/gst/libcutter* +%{prefix}/lib/gst/libgstaudio* +%{prefix}/lib/gst/libcolorspace* +%{prefix}/lib/gst/libgstcolorspace* +%{prefix}/lib/gst/libgstautoplug* +%{prefix}/lib/gst/libgstelements* +%{prefix}/lib/gst/libgstgetbits* +%{prefix}/lib/gst/libgstidct* +%{prefix}/lib/gst/libgstriff* +%{prefix}/lib/gst/libgstjpeg* +%{prefix}/lib/gst/libintfloatconvert* +%{prefix}/lib/gst/liblevel* +%{prefix}/lib/gst/libmedian* +%{prefix}/lib/gst/libmono2stereo* +%{prefix}/lib/gst/libmulaw* +%{prefix}/lib/gst/libpassthrough* +%{prefix}/lib/gst/librtjpe* +%{prefix}/lib/gst/libstereo* +%{prefix}/lib/gst/libsystem_* +%{prefix}/lib/gst/libgstputbits* +%{prefix}/lib/gst/libvideoscale* +%{prefix}/lib/gst/libgstvideoscale* +%{prefix}/lib/gst/libvol* +%{prefix}/lib/gst/libxvideosink* +%{prefix}/lib/gst/libgstparsewav* +%{prefix}/lib/gst/libgststaticautoplug* +%{prefix}/lib/gst/libgsttypes* +%{prefix}/lib/gst/liblavencode* +%{prefix}/share/gsteditor/* +%{prefix}/share/gstmediaplay/* +%{prefix}/man/man1/* + %package devel Summary: Libraries and include files for GStreamer streaming-media framework Group: Development/Libraries -Requires: %{name} +Requires: %{name} = %{ver} %description devel GStreamer is a streaming-media framework, based on graphs of filters which @@ -38,11 +86,343 @@ plugins. This package contains the libraries and includes files necessary to develop applications and plugins for GStreamer. +%files devel +%defattr(-, root, root) +%{prefix}/bin/gstreamer-config +%{prefix}/include/* +%{prefix}/lib/lib*.la +%{prefix}/lib/lib*.so +%{prefix}/lib/pkgconfig/* +%{prefix}/share/aclocal/* + +%package -n gstreamer-visualisation +Summary: Gstreamer visualisations plugins +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-visualisation +Various plugins for visual effects to use with audio. Included are Smoothwave, Spectrum and vumeter + +%files -n gstreamer-visualisation +%defattr(-, root, root) +%{prefix}/lib/gst/libsmooth* +%{prefix}/lib/gst/libgstspectrum* +%{prefix}/lib/gst/libvu* + +%package -n gstreamer-esd +Summary: Gstreamer plugin for ESD sound output +Group: Libraries/Multimedia +Requires: esound >= 0.2.8 +Requires: %{name} = %{ver} + +%description -n gstreamer-esd +Output plugin for GStreamer for use with the esound package + +%files -n gstreamer-esd +%defattr(-, root, root) +%{prefix}/lib/gst/libesd* + +%package -n gstreamer-aalib +Summary: Gstreamer plugin for Ascii-art output +Group: Libraries/Multimedia +Requires: aalib >= 1.3 +Requires: %{name} = %{ver} + +%description -n gstreamer-aalib +Plugin for viewing movies in Ascii-art using aalib library. + +%files -n gstreamer-aalib +%defattr(-, root, root) +%{prefix}/lib/gst/libaa* + +%package -n gstreamer-afs +Summary: Gstreamer plugin audiofile support +Group: Libraries/Multimedia +Requires: %{name} = %{ver} +Requires: audiofile >= 0.2.1 + +%description -n gstreamer-afs +Plugin for supporting reading and writing all files audiofile support + +%files -n gstreamer-afs +%defattr(-, root, root) +%{prefix}/lib/gst/libafs* + +%package -n gstreamer-avi +Summary: Gstreamer plugin for AVI format movie playback +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-avi +Plugins for playback of AVI format media files. + +%files -n gstreamer-avi +%defattr(-, root, root) +%{prefix}/lib/gst/libavi* +%{prefix}/lib/gst/libwin* + +%package -n gstreamer-cdparanoia +Summary: Gstreamer plugin for CD audio input using CDParanoia IV +Group: Libraries/Multimedia +Requires: cdparanoia >= alpha9.7 +Requires: %{name} = %{ver} + +%description -n gstreamer-cdparanoia +Plugin for ripping audio tracks using cdparania under GStreamer + +%files -n gstreamer-cdparanoia +%defattr(-, root, root) +%{prefix}/lib/gst/libcdparanoia* + +%package -n gstreamer-flx +Summary: Gstreamer plugin for FLI/FLX animation format +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-flx +Plugin for playing FLI/FLX animations under GStreamer + +%files -n gstreamer-flx +%defattr(-, root, root) +%{prefix}/lib/gst/libflx* + +%package -n gstreamer-mpeg1 +Summary: GStreamer plugins for Mpeg level 1 video playback +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-mpeg1 +Plugins for playing mpeg level 1 encoded movies + +%files -n gstreamer-mpeg1 +%defattr(-, root, root) +%{prefix}/lib/gst/libmpeg1* +%{prefix}/lib/gst/libmpegaudio* +%{prefix}/lib/gst/libmp1* +%{prefix}/lib/gst/libmpeg_play* + +%package -n gstreamer-mpeg2 +Summary: GStreamer plugins for Mpeg level 2 playback +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-mpeg2 +Plugins for playing mpeg level 2 encoded movies + +%files -n gstreamer-mpeg2 +%defattr(-, root, root) +%{prefix}/lib/gst/libmpeg2parse* +%{prefix}/lib/gst/libmpeg2play* +%{prefix}/lib/gst/libmpeg2enc* +%{prefix}/lib/gst/libmpeg2subt* +%{prefix}/lib/gst/libmp2videoparse* + +%package -n gstreamer-mpeg2dec +Summary: GStreamer plugins for Mpeg level 2 playback +Group: Libraries/Multimedia +Requires: %{name} = %{ver} +Requires: mpeg2dec >= 0.2.0 + +%description -n gstreamer-mpeg2dec +Plugins for playing mpeg level 2 encoded movies + +%files -n gstreamer-mpeg2dec +%defattr(-, root, root) +%{prefix}/lib/gst/libmpeg2dec* + +%package -n gstreamer-mp3 +Summary: GStreamer plugins for mp3 playback +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-mp3 +Plugins for decoding mp3 files. We do recommend you +use Ogg Vorbis format instead however since it is both free and +better. + +%files -n gstreamer-mp3 +%defattr(-, root, root) +%{prefix}/lib/gst/libmpg123* +%{prefix}/lib/gst/libmp3parse* +%{prefix}/lib/gst/libmp3types* + +%package -n gstreamer-gnomevfs +Summary: GStreamer plugins for GNOME VFS input and output +Group: Libraries/Multimedia +Requires: gnome-vfs > 1.0 +Requires: %{name} = %{ver} + +%description -n gstreamer-gnomevfs +Plugins for reading and writing through GNOME VFS. + +%files -n gstreamer-gnomevfs +%defattr(-, root, root) +%{prefix}/lib/gst/libgnomevfs* + +%package -n gstreamer-gsm +Summary: Gstreamer plugin for GSM lossy audio format +Group: Libraries/Multimedia +Requires: gsm >= 1.0.10 +Requires: %{name} = %{ver} + +%description -n gstreamer-gsm +Output plugin for GStreamer to convert to GSM lossy audio format. + +%files -n gstreamer-gsm +%defattr(-, root, root) +%{prefix}/lib/gst/libgstgsm* + +%package -n gstreamer-vorbis +Summary: Gstreamer plugin for encoding and decoding Ogg Vorbis audio files +Group: Libraries/Multimedia +Requires: libogg >= 1.0beta4 +Requires: libvorbis >= 1.0beta4 +Requires: %{name} = %{ver} + +%description -n gstreamer-vorbis +Plugins for creating end playing Ogg Vorbis audio files. + +%files -n gstreamer-vorbis +%defattr(-, root, root) +%{prefix}/lib/gst/libgstvorbis* + +%package -n gstreamer-sdl +Summary: Gstreamer plugin for outputing to SDL +Group: Libraries/Multimedia +Requires: SDL >= 1.1.7 +Requires: %{name} = %{ver} + +%description -n gstreamer-sdl +Plugin for sending output to the Simple Direct Media architecture. +(http://www.libsdl.org). Usefull for fullscreen playback. + +%files -n gstreamer-sdl +%defattr(-, root, root) +%{prefix}/lib/gst/libsdl* + +%package -n gstreamer-oss +Summary: Gstreamer plugins for input and output using OSS +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-oss +Plugins for output and input to the OpenSoundSytem audio +drivers found in the Linux kernels or comercially available +from OpenSound. + +%files -n gstreamer-oss +%defattr(-, root, root) +%{prefix}/lib/gst/libgstoss* + +%package -n gstreamer-ac3dec +Summary: Gstreamer plugin for VOB playback +Group: Libraries/Multimedia +Requires: ac3dec >= 0.6.2 +Requires: %{name} = %{ver} + +%description -n gstreamer-ac3dec +Plugin for the free AC-3 stream decoder from Linuxvideo. +(http://linuxvideo.org/ac3dec/) + +%files -n gstreamer-ac3dec +%defattr(-, root, root) +%{prefix}/lib/gst/libac3* + +%package -n gstreamer-ladspa +Summary: Gstreamer wrapper for LADSPA plugins +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%files -n gstreamer-ladspa +%defattr(-, root, root) +%{prefix}/lib/gst/libgstladspa* + +%description -n gstreamer-ladspa +Plugin which wraps LADSPA plugins for use by GStreamer applications. + +%package -n gstreamer-mad +Summary: Gstreamer MAD mp3 decoder library +Group: Libraries/Multimedia +Requires: %{name} = %{ver} +Requires: mad >= 0.13.0 + +%description -n gstreamer-mad +Plugin for playback of mp3 songs using the very good MAD library + +%files -n gstreamer-mad +%defattr(-, root, root) +%{prefix}/lib/gst/libgstmad* + +%package -n gstreamer-v4l +Summary: Gstreamer video for linux input plugin +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-v4l +Plugin for inputing video for Linux streams. + +%files -n gstreamer-v4l +%defattr(-, root, root) +%{prefix}/lib/gst/libv4l* + +%package -n gstreamer-synaesthesia +Summary: GStreamer Synaesthesia effect plugin +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-synaesthesia +Plugin for the very nice synaesthesia visual effect. + +%files -n gstreamer-synaesthesia +%defattr(-, root, root) +%{prefix}/lib/gst/libsynaesthesia* + +%package -n gstreamer-vcd +Summary: GStreamer Video CD plugin +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-vcd +Video CD playback plugin + +%files -n gstreamer-vcd +%defattr(-, root, root) +%{prefix}/lib/gst/libvcd* + +# %package -n gstreamer-alsa +# Summary: GStreamer plugins for the ALSA sound architecture +# Group: Libraries/Multimedia + +# %description -n gstreamer-alsa +# Input and output plugin for the ALSA soundcard driver architecture. + +# %files -n gstreamer-alsa +# %defattr(-, root, root) +# %{prefix}/lib/gst/libalsa* + +%package -n gstreamer-au +Summary: GStreamer au audiofile plugin +Group: Libraries/Multimedia +Requires: %{name} = %{ver} + +%description -n gstreamer-au +Plugin for playback of the SUN au audio format. + +%files -n gstreamer-au +%defattr(-, root, root) +%{prefix}/lib/gst/libgstparseau* + %changelog +* Sat Jun 09 2001 Christian Schaller +- Continue regrouping files with +- Visualisation plugins bundled out togheter +- Moved files sections up close to their respective descriptions + * Sat Jun 02 2001 Christian Schaller -* Small fix to RPM group statement +- Split the package into separate RPMS, plutting most plugins out by themselves. + * Fri Jun 01 2001 Christian Schaller -- Included fix suggestions from Dennis Bjorklund +- Updated with change suggestions from Dennis Bjorklund * Tue Jan 09 2001 Erik Walthinsen - updated to build -devel package as well @@ -53,7 +433,8 @@ applications and plugins for GStreamer. %setup %build -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix +FLAGS="$RPM_OPT_FLAGS" ./autogen.sh --prefix=%{prefix} +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} if [ "$SMP" != "" ]; then (make "MAKE=make -k -j $SMP"; exit 0) @@ -72,30 +453,76 @@ make prefix=$RPM_BUILD_ROOT%{prefix} install %post /sbin/ldconfig -%{prefix}/bin/gstreamer-register +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-esd +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-mpeg1 +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-mpeg2 +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-mp3 +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-mpeg2dec +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-visualisation +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-gsm +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-cdparanoia +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-aalib +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-gnomevfs +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-flx +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-avi +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-vorbis +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-sdl +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-oss +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-ac3dec +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-afs +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-ladspa +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-mad +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-au +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-v4l +%{prefix}/bin/gstreamer-register --gst-mask=0 + +%post -n gstreamer-vcd +%{prefix}/bin/gstreamer-register --gst-mask=0 + +# %post -n gstreamer-alsa +# %{prefix}/bin/gstreamer-register --gst-mask=0 %postun /sbin/ldconfig - -%files -%defattr(-, root, root) -%doc AUTHORS COPYING README -%{prefix}/bin/gsteditor -%{prefix}/bin/gstmediaplay -%{prefix}/bin/gstreamer-complete -%{prefix}/bin/gstreamer-compprep -%{prefix}/bin/gstreamer-inspect -%{prefix}/bin/gstreamer-launch -%{prefix}/bin/gstreamer-register -%{prefix}/lib/lib*.so.* -%{prefix}/lib/gst/* -%{prefix}/share/* -%{prefix}/man/man1/* - -%files devel -%defattr(-, root, root) -%{prefix}/bin/gstreamer-config -%{prefix}/include/* -%{prefix}/lib/lib*.la -%{prefix}/lib/lib*.so -%{prefix}/lib/pkgconfig/* diff --git a/idiottest.mak b/idiottest.mak index 1d86733145..45c96aec0d 100644 --- a/idiottest.mak +++ b/idiottest.mak @@ -1,13 +1,13 @@ -# Idiot test to stop the installing of versions with plugin srcdir enabled +# Idiot test to stop the installing of versions with plugin builddir enabled install-exec-local: -if PLUGINS_USE_SRCDIR +if PLUGINS_USE_BUILDDIR @echo "*** ERROR: Cannot install:" - @echo "GStreamer was configured using the --enable-plugin-srcdir option." + @echo "GStreamer was configured using the --enable-plugin-builddir option." @echo @echo "This option is for development purposes only: binaries built with" @echo "it should be used with code in the build tree only. To build an" - @echo "installable version, use ./configure without the --enable-plugin-srcdir" - @echo "option. Note that the autogen.sh script supplies the plugin srcdir" + @echo "installable version, use ./configure without the --enable-plugin-builddir" + @echo "option. Note that the autogen.sh script supplies the plugin builddir" @echo "option automatically - it cannot be used to configure installable builds." @echo @/bin/false diff --git a/include/Makefile.am b/include/Makefile.am index 3aac1d18d5..8253f453fb 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,5 +1,3 @@ -SUBDIRS = wine - noinst_HEADERS = \ mmx.h \ sse.h \ diff --git a/include/wine/.gitignore b/include/wine/.gitignore deleted file mode 100644 index 08f5ed37d8..0000000000 --- a/include/wine/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -Makefile -Makefile.in -*.o -*.lo -*.la -.deps -.libs diff --git a/include/wine/Makefile.am b/include/wine/Makefile.am deleted file mode 100644 index 1ea6c1d6bd..0000000000 --- a/include/wine/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -noinst_HEADERS = \ -basetsd.h \ -config.h \ -debugtools.h \ -driver.h \ -elfdll.h \ -heap.h \ -ldt.h \ -mmreg.h \ -module.h \ -msacm.h \ -msacmdrv.h \ -ntdef.h \ -pe_image.h \ -poppack.h \ -pshpack1.h \ -pshpack2.h \ -pshpack4.h \ -pshpack8.h \ -vfw.h \ -winbase.h \ -windef.h \ -windows.h \ -winerror.h \ -winestring.h \ -winnt.h \ -winreg.h \ -winuser.h diff --git a/include/wine/basetsd.h b/include/wine/basetsd.h deleted file mode 100644 index 075516fb15..0000000000 --- a/include/wine/basetsd.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Compilers that uses ILP32, LP64 or P64 type models - * for both Win32 and Win64 are supported by this file. - */ - -#ifndef __WINE_BASETSD_H -#define __WINE_BASETSD_H - -#ifdef __WINE__ -#include "config.h" -#endif /* defined(__WINE__) */ - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -/* - * Win32 was easy to implement under Unix since most (all?) 32-bit - * Unices uses the same type model (ILP32) as Win32, where int, long - * and pointer are 32-bit. - * - * Win64, however, will cause some problems when implemented under Unix. - * Linux/{Alpha, Sparc64} and most (all?) other 64-bit Unices uses - * the LP64 type model where int is 32-bit and long and pointer are - * 64-bit. Win64 on the other hand uses the P64 (sometimes called LLP64) - * type model where int and long are 32 bit and pointer is 64-bit. - */ - -/* Type model indepent typedefs */ - -typedef char __int8; -typedef unsigned char __uint8; - -typedef short __int16; -typedef unsigned short __uint16; - -typedef int __int32; -typedef unsigned int __uint32; - -typedef long long __int64; -typedef unsigned long long __uint64; - -#if defined(_WIN64) - -typedef __uint32 __ptr32; -typedef void *__ptr64; - -#else /* FIXME: defined(_WIN32) */ - -typedef void *__ptr32; -typedef __uint64 __ptr64; - -#endif - -/* Always signed and 32 bit wide */ - -typedef __int32 LONG32; -typedef __int32 INT32; - -typedef LONG32 *PLONG32; -typedef INT32 *PINT32; - -/* Always unsigned and 32 bit wide */ - -typedef __uint32 ULONG32; -typedef __uint32 DWORD32; -typedef __uint32 UINT32; - -typedef ULONG32 *PULONG32; -typedef DWORD32 *PDWORD32; -typedef UINT32 *PUINT32; - -/* Always signed and 64 bit wide */ - -typedef __int64 LONG64; -typedef __int64 INT64; - -typedef LONG64 *PLONG64; -typedef INT64 *PINT64; - -/* Always unsigned and 64 bit wide */ - -typedef __uint64 ULONG64; -typedef __uint64 DWORD64; -typedef __uint64 UINT64; - -typedef ULONG64 *PULONG64; -typedef DWORD64 *PDWORD64; -typedef UINT64 *PUINT64; - -/* Win32 or Win64 dependent typedef/defines. */ - -#ifdef _WIN64 - -typedef __int64 INT_PTR, *PINT_PTR; -typedef __uint64 UINT_PTR, *PUINT_PTR; - -#define MAXINT_PTR 0x7fffffffffffffff -#define MININT_PTR 0x8000000000000000 -#define MAXUINT_PTR 0xffffffffffffffff - -typedef __int32 HALF_PTR, *PHALF_PTR; -typedef __int32 UHALF_PTR, *PUHALF_PTR; - -#define MAXHALF_PTR 0x7fffffff -#define MINHALF_PTR 0x80000000 -#define MAXUHALF_PTR 0xffffffff - -typedef __int64 LONG_PTR, *PLONG_PTR; -typedef __uint64 ULONG_PTR, *PULONG_PTR; -typedef __uint64 DWORD_PTR, *PDWORD_PTR; - -#else /* FIXME: defined(_WIN32) */ - -typedef __int32 INT_PTR, *PINT_PTR; -typedef __uint32 UINT_PTR, *PUINT_PTR; - -#define MAXINT_PTR 0x7fffffff -#define MININT_PTR 0x80000000 -#define MAXUINT_PTR 0xffffffff - -typedef __int16 HALF_PTR, *PHALF_PTR; -typedef __uint16 UHALF_PTR, *PUHALF_PTR; - -#define MAXUHALF_PTR 0xffff -#define MAXHALF_PTR 0x7fff -#define MINHALF_PTR 0x8000 - -typedef __int32 LONG_PTR, *PLONG_PTR; -typedef __uint32 ULONG_PTR, *PULONG_PTR; -typedef __uint32 DWORD_PTR, *PDWORD_PTR; - -#endif /* defined(_WIN64) || defined(_WIN32) */ - -typedef INT_PTR SSIZE_T, *PSSIZE_T; -typedef UINT_PTR SIZE_T, *PSIZE_T; - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* !defined(__WINE_BASETSD_H) */ - - - diff --git a/include/wine/config.h b/include/wine/config.h deleted file mode 100644 index dc651b3d89..0000000000 --- a/include/wine/config.h +++ /dev/null @@ -1,442 +0,0 @@ -/* include/config.h. Generated automatically by configure. */ -/* include/config.h.in. Generated automatically from configure.in by autoheader. */ - -/* Define if using alloca.c. */ -/* #undef C_ALLOCA */ - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. - This function is required for alloca.c support on those systems. */ -/* #undef CRAY_STACKSEG_END */ - -/* Define if you have alloca, as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define if you have and it should be used (not on Ultrix). */ -#define HAVE_ALLOCA_H 1 - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define to `unsigned' if doesn't define. */ -/* #undef size_t */ - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown - */ -/* #undef STACK_DIRECTION */ - -/* Define if the `S_IS*' macros in do not work properly. */ -/* #undef STAT_MACROS_BROKEN */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if your processor stores words with the most significant - byte first (like Motorola and SPARC, unlike Intel and VAX). */ -/* #undef WORDS_BIGENDIAN */ - -/* Define if the X Window System is missing or not being used. */ -/* #undef X_DISPLAY_MISSING */ - -/* Define if symbols declared in assembly code need an underscore prefix */ -/* #undef NEED_UNDERSCORE_PREFIX */ - -/* Define to use .string instead of .ascii */ -#define HAVE_ASM_STRING 1 - -/* Define if struct msghdr contains msg_accrights */ -/* #undef HAVE_MSGHDR_ACCRIGHTS */ - -/* Define if struct sockaddr_un contains sun_len */ -/* #undef HAVE_SOCKADDR_SUN_LEN */ - -/* Define if you have the Xxf86dga library (-lXxf86dga). */ -#define HAVE_LIBXXF86DGA 1 - -/* Define if you have the Xxf86dga library version 2.0 (-lXxf86dga). */ -/* #undef HAVE_LIBXXF86DGA2 */ - -/* Define if you have the X Shm extension */ -#define HAVE_LIBXXSHM 1 - -/* Define if you have the Xxf86vm library */ -#define HAVE_LIBXXF86VM 1 - -/* Define if you have the Xpm library */ -#define HAVE_LIBXXPM 1 - -/* Define if you have the Open Sound system. */ -#define HAVE_OSS 1 - -/* Define if you have the Open Sound system (MIDI interface). */ -#define HAVE_OSS_MIDI 1 - -/* Define if X libraries are not reentrant (compiled without -D_REENTRANT). */ -/* #undef NO_REENTRANT_X11 */ - -/* Define if libc is not reentrant */ -/* #undef NO_REENTRANT_LIBC */ - -/* Define if libc uses __errno_location for reentrant errno */ -#define HAVE__ERRNO_LOCATION 1 - -/* Define if libc uses __error for reentrant errno */ -/* #undef HAVE__ERROR */ - -/* Define if libc uses ___errno for reentrant errno */ -/* #undef HAVE___ERRNO */ - -/* Define if libc uses __thr_errno for reentrant errno */ -/* #undef HAVE__THR_ERRNO */ - -/* Define if all debug messages are to be compiled out */ -/* #undef NO_DEBUG_MSGS */ - -/* Define if TRACE messages are to be compiled out */ -/* #undef NO_TRACE_MSGS */ - -/* Define if the struct statfs has the member bavail */ -#define STATFS_HAS_BAVAIL 1 - -/* Define if the struct statfs has the member bfree */ -#define STATFS_HAS_BFREE 1 - -/* Define if the struct statfs is defined by */ -#define STATFS_DEFINED_BY_SYS_VFS 1 - -/* Define if the struct statfs is defined by */ -#define STATFS_DEFINED_BY_SYS_STATFS 1 - -/* Define if the struct statfs is defined by */ -/* #undef STATFS_DEFINED_BY_SYS_MOUNT */ - -/* Define if ncurses have the new resizeterm function */ -#define HAVE_RESIZETERM 1 - -/* Define if ncurses have the new getbkgd function */ -#define HAVE_GETBKGD 1 - -/* Define if IPX should use netipx/ipx.h from libc */ -#define HAVE_IPX_GNU 1 - -/* Define if IPX includes are taken from Linux kernel */ -/* #undef HAVE_IPX_LINUX */ - -/* Define if Mesa is present on the system or not */ -/* #undef HAVE_LIBMESAGL */ - -/* Define if the system has dynamic link library support with the dl* API */ -#define HAVE_DL_API 1 - -/* Define if defines the Linux 2.2 joystick API */ -#define HAVE_LINUX_22_JOYSTICK_API 1 - -/* Define if the OpenGL implementation supports the GL_EXT_color_table extension */ -/* #undef HAVE_GL_COLOR_TABLE */ - -/* Define if the OpenGL implementation supports the GL_EXT_paletted_texture extension */ -/* #undef HAVE_GL_PALETTED_TEXTURE */ - -/* The number of bytes in a long long. */ -#define SIZEOF_LONG_LONG 8 - -/* Define if you have the __libc_fork function. */ -/* #undef HAVE___LIBC_FORK */ - -/* Define if you have the _lwp_create function. */ -/* #undef HAVE__LWP_CREATE */ - -/* Define if you have the clone function. */ -#define HAVE_CLONE 1 - -/* Define if you have the connect function. */ -#define HAVE_CONNECT 1 - -/* Define if you have the dlopen function. */ -/* #undef HAVE_DLOPEN */ - -/* Define if you have the gethostbyname function. */ -#define HAVE_GETHOSTBYNAME 1 - -/* Define if you have the getnetbyaddr function. */ -#define HAVE_GETNETBYADDR 1 - -/* Define if you have the getnetbyname function. */ -#define HAVE_GETNETBYNAME 1 - -/* Define if you have the getpagesize function. */ -#define HAVE_GETPAGESIZE 1 - -/* Define if you have the getprotobyname function. */ -#define HAVE_GETPROTOBYNAME 1 - -/* Define if you have the getprotobynumber function. */ -#define HAVE_GETPROTOBYNUMBER 1 - -/* Define if you have the getservbyport function. */ -#define HAVE_GETSERVBYPORT 1 - -/* Define if you have the getsockopt function. */ -#define HAVE_GETSOCKOPT 1 - -/* Define if you have the inet_network function. */ -#define HAVE_INET_NETWORK 1 - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE 1 - -/* Define if you have the openpty function. */ -#define HAVE_OPENPTY 1 - -/* Define if you have the rfork function. */ -/* #undef HAVE_RFORK */ - -/* Define if you have the select function. */ -#define HAVE_SELECT 1 - -/* Define if you have the sendmsg function. */ -#define HAVE_SENDMSG 1 - -/* Define if you have the settimeofday function. */ -#define HAVE_SETTIMEOFDAY 1 - -/* Define if you have the sigaltstack function. */ -#define HAVE_SIGALTSTACK 1 - -/* Define if you have the statfs function. */ -#define HAVE_STATFS 1 - -/* Define if you have the strcasecmp function. */ -#define HAVE_STRCASECMP 1 - -/* Define if you have the strerror function. */ -#define HAVE_STRERROR 1 - -/* Define if you have the strncasecmp function. */ -#define HAVE_STRNCASECMP 1 - -/* Define if you have the tcgetattr function. */ -#define HAVE_TCGETATTR 1 - -/* Define if you have the timegm function. */ -#define HAVE_TIMEGM 1 - -/* Define if you have the usleep function. */ -#define HAVE_USLEEP 1 - -/* Define if you have the vfscanf function. */ -#define HAVE_VFSCANF 1 - -/* Define if you have the wait4 function. */ -#define HAVE_WAIT4 1 - -/* Define if you have the waitpid function. */ -#define HAVE_WAITPID 1 - -/* Define if you have the header file. */ -/* #undef HAVE_GL_GL_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_GL_GLX_H */ - -/* Define if you have the header file. */ -#define HAVE_X11_XLIB_H 1 - -/* Define if you have the header file. */ -#define HAVE_X11_EXTENSIONS_XSHM_H 1 - -/* Define if you have the header file. */ -#define HAVE_X11_EXTENSIONS_XF86DGA_H 1 - -/* Define if you have the header file. */ -#define HAVE_X11_EXTENSIONS_XF86VMODE_H 1 - -/* Define if you have the header file. */ -#define HAVE_X11_XPM_H 1 - -/* Define if you have the header file. */ -#define HAVE_A_OUT_H 1 - -/* Define if you have the header file. */ -#define HAVE_A_OUT_H 1 - -/* Define if you have the header file. */ -#define HAVE_ARPA_INET_H 1 - -/* Define if you have the header file. */ -#define HAVE_ARPA_NAMESER_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_CURSES_H */ - -/* Define if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* Define if you have the header file. */ -#define HAVE_ELF_H 1 - -/* Define if you have the header file. */ -#define HAVE_FLOAT_H 1 - -/* Define if you have the header file. */ -#define HAVE_LIBIO_H 1 - -/* Define if you have the header file. */ -#define HAVE_LINK_H 1 - -/* Define if you have the header file. */ -#define HAVE_LINUX_CDROM_H 1 - -/* Define if you have the header file. */ -#define HAVE_LINUX_JOYSTICK_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_LINUX_UCDROM_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_MACHINE_SOUNDCARD_H */ - -/* Define if you have the header file. */ -#define HAVE_NCURSES_H 1 - -/* Define if you have the header file. */ -#define HAVE_NET_IF_H 1 - -/* Define if you have the header file. */ -#define HAVE_NETINET_IN_H 1 - -/* Define if you have the header file. */ -#define HAVE_NETINET_TCP_H 1 - -/* Define if you have the header file. */ -#define HAVE_PTY_H 1 - -/* Define if you have the header file. */ -#define HAVE_RESOLV_H 1 - -/* Define if you have the header file. */ -#define HAVE_SCHED_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SOCKET_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_SOUNDCARD_H */ - -/* Define if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_CDIO_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_ERRNO_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_FILE_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_FILIO_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_IPC_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_LWP_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_MMAN_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_MODEM_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_MOUNT_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_MSG_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_PARAM_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_REG_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_SHM_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_SIGNAL_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_SOCKET_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_SOCKIO_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_SOUNDCARD_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_STATFS_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_STRTIO_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_SYSCALL_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_V86_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_V86INTR_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_VFS_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_VM86_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_WAIT_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYSCALL_H 1 - -/* Define if you have the header file. */ -#define HAVE_UCONTEXT_H 1 - -/* Define if you have the header file. */ -#define HAVE_WCTYPE_H 1 - -/* Define if you have the curses library (-lcurses). */ -/* #undef HAVE_LIBCURSES */ - -/* Define if you have the i386 library (-li386). */ -/* #undef HAVE_LIBI386 */ - -/* Define if you have the m library (-lm). */ -#define HAVE_LIBM 1 - -/* Define if you have the mmap library (-lmmap). */ -/* #undef HAVE_LIBMMAP */ - -/* Define if you have the ncurses library (-lncurses). */ -#define HAVE_LIBNCURSES 1 - -/* Define if you have the ossaudio library (-lossaudio). */ -/* #undef HAVE_LIBOSSAUDIO */ - -/* Define if you have the w library (-lw). */ -/* #undef HAVE_LIBW */ - -/* Define if you have the xpg4 library (-lxpg4). */ -/* #undef HAVE_LIBXPG4 */ diff --git a/include/wine/debugtools.h b/include/wine/debugtools.h deleted file mode 100644 index ce2448db87..0000000000 --- a/include/wine/debugtools.h +++ /dev/null @@ -1,93 +0,0 @@ - -#ifndef __WINE_DEBUGTOOLS_H -#define __WINE_DEBUGTOOLS_H - -#ifdef __WINE__ /* Debugging interface is internal to Wine */ - -#include -#include "config.h" -#include "windef.h" - -struct _GUID; - -/* Internal definitions (do not use these directly) */ - -enum __DEBUG_CLASS { __DBCL_FIXME, __DBCL_ERR, __DBCL_WARN, __DBCL_TRACE, __DBCL_COUNT }; - -#ifndef NO_TRACE_MSGS -# define __GET_DEBUGGING_trace(dbch) ((dbch)[0] & (1 << __DBCL_TRACE)) -#else -# define __GET_DEBUGGING_trace(dbch) 0 -#endif - -#ifndef NO_DEBUG_MSGS -# define __GET_DEBUGGING_warn(dbch) ((dbch)[0] & (1 << __DBCL_WARN)) -# define __GET_DEBUGGING_fixme(dbch) ((dbch)[0] & (1 << __DBCL_FIXME)) -#else -# define __GET_DEBUGGING_warn(dbch) 0 -# define __GET_DEBUGGING_fixme(dbch) 0 -#endif - -/* define error macro regardless of what is configured */ -#define __GET_DEBUGGING_err(dbch) ((dbch)[0] & (1 << __DBCL_ERR)) - -#define __GET_DEBUGGING(dbcl,dbch) __GET_DEBUGGING_##dbcl(dbch) -#define __SET_DEBUGGING(dbcl,dbch,on) \ - ((on) ? ((dbch)[0] |= 1 << (dbcl)) : ((dbch)[0] &= ~(1 << (dbcl)))) - -#ifndef __GNUC__ -#define __FUNCTION__ "" -#endif - -#define __DPRINTF(dbcl,dbch) \ - (!__GET_DEBUGGING(dbcl,(dbch)) || (dbg_header_##dbcl((dbch),__FUNCTION__),0)) ? \ - (void)0 : (void)dbg_printf - -/* Exported definitions and macros */ - -/* These function return a printable version of a string, including - quotes. The string will be valid for some time, but not indefinitely - as strings are re-used. */ -extern LPCSTR debugstr_an (LPCSTR s, int n); -extern LPCSTR debugstr_wn (LPCWSTR s, int n); -extern LPCSTR debugres_a (LPCSTR res); -extern LPCSTR debugres_w (LPCWSTR res); -extern LPCSTR debugstr_guid( const struct _GUID *id ); -extern LPCSTR debugstr_hex_dump (const void *ptr, int len); -extern int dbg_header_err( const char *dbg_channel, const char *func ); -extern int dbg_header_warn( const char *dbg_channel, const char *func ); -extern int dbg_header_fixme( const char *dbg_channel, const char *func ); -extern int dbg_header_trace( const char *dbg_channel, const char *func ); -extern int dbg_vprintf( const char *format, va_list args ); - -static inline LPCSTR debugstr_a( LPCSTR s ) { return debugstr_an( s, 80 ); } -static inline LPCSTR debugstr_w( LPCWSTR s ) { return debugstr_wn( s, 80 ); } - -#ifdef __GNUC__ -extern int dbg_printf(const char *format, ...) __attribute__((format (printf,1,2))); -#else -extern int dbg_printf(const char *format, ...); -#endif - -#define TRACE_(X) TRACE -#define WARN_(X) TRACE -#define WARN TRACE -#define ERR_(X) printf -#define ERR printf -#define FIXME_(X) TRACE -#define FIXME TRACE - -#define TRACE_ON(X) 1 -#define ERR_ON(X) 1 - -#define DECLARE_DEBUG_CHANNEL(ch) \ - extern char dbch_##ch[]; -#define DEFAULT_DEBUG_CHANNEL(ch) \ - extern char dbch_##ch[]; static char * const __dbch_default = dbch_##ch; - -#define DPRINTF dbg_printf -#define MESSAGE dbg_printf - -#endif /* __WINE__ */ - -#endif /* __WINE_DEBUGTOOLS_H */ diff --git a/include/wine/driver.h b/include/wine/driver.h deleted file mode 100644 index dc8661aa3a..0000000000 --- a/include/wine/driver.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Drivers definitions - */ - -#ifndef __WINE_DRIVER_H -#define __WINE_DRIVER_H - -#include "windef.h" - -#define MMSYSERR_BASE 0 - -#define MMSYSERR_NOERROR 0 /* no error */ -#define MMSYSERR_ERROR (MMSYSERR_BASE + 1) /* unspecified error */ -#define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) /* device ID out of range */ -#define MMSYSERR_NOTENABLED (MMSYSERR_BASE + 3) /* driver failed enable */ -#define MMSYSERR_ALLOCATED (MMSYSERR_BASE + 4) /* device already allocated */ -#define MMSYSERR_INVALHANDLE (MMSYSERR_BASE + 5) /* device handle is invalid */ -#define MMSYSERR_NODRIVER (MMSYSERR_BASE + 6) /* no device driver present */ -#define MMSYSERR_NOMEM (MMSYSERR_BASE + 7) /* memory allocation error */ -#define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8) /* function isn't supported */ -#define MMSYSERR_BADERRNUM (MMSYSERR_BASE + 9) /* error value out of range */ -#define MMSYSERR_INVALFLAG (MMSYSERR_BASE + 10) /* invalid flag passed */ -#define MMSYSERR_INVALPARAM (MMSYSERR_BASE + 11) /* invalid parameter passed */ -#define MMSYSERR_LASTERROR (MMSYSERR_BASE + 11) /* last error in range */ - -#define DRV_LOAD 0x0001 -#define DRV_ENABLE 0x0002 -#define DRV_OPEN 0x0003 -#define DRV_CLOSE 0x0004 -#define DRV_DISABLE 0x0005 -#define DRV_FREE 0x0006 -#define DRV_CONFIGURE 0x0007 -#define DRV_QUERYCONFIGURE 0x0008 -#define DRV_INSTALL 0x0009 -#define DRV_REMOVE 0x000A -#define DRV_EXITSESSION 0x000B -#define DRV_EXITAPPLICATION 0x000C -#define DRV_POWER 0x000F - -#define DRV_RESERVED 0x0800 -#define DRV_USER 0x4000 - -#define DRVCNF_CANCEL 0x0000 -#define DRVCNF_OK 0x0001 -#define DRVCNF_RESTART 0x0002 - -#define DRVEA_NORMALEXIT 0x0001 -#define DRVEA_ABNORMALEXIT 0x0002 - -#define DRV_SUCCESS 0x0001 -#define DRV_FAILURE 0x0000 - -#define GND_FIRSTINSTANCEONLY 0x00000001 - -#define GND_FORWARD 0x00000000 -#define GND_REVERSE 0x00000002 - -typedef struct { - DWORD dwDCISize; - LPCSTR lpszDCISectionName; - LPCSTR lpszDCIAliasName; -} DRVCONFIGINFO16, *LPDRVCONFIGINFO16; - -typedef struct { - DWORD dwDCISize; - LPCWSTR lpszDCISectionName; - LPCWSTR lpszDCIAliasName; -} DRVCONFIGINFO, *LPDRVCONFIGINFO; - - -/* GetDriverInfo16 references this structure, so this a struct defined - * in the Win16 API. - * GetDriverInfo has been deprecated in Win32. - */ -typedef struct -{ - UINT16 length; - HDRVR16 hDriver; - HINSTANCE16 hModule; - CHAR szAliasName[128]; -} DRIVERINFOSTRUCT16, *LPDRIVERINFOSTRUCT16; - -LRESULT WINAPI DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, - LPARAM dwParam1, LPARAM dwParam2); -LRESULT WINAPI DefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr, - UINT Msg, LPARAM lParam1, LPARAM lParam2); -HDRVR16 WINAPI OpenDriver16(LPCSTR szDriverName, LPCSTR szSectionName, - LPARAM lParam2); -HDRVR WINAPI OpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName, - LPARAM lParam2); -HDRVR WINAPI OpenDriverW(LPCWSTR szDriverName, LPCWSTR szSectionName, - LPARAM lParam2); -#define OpenDriver WINELIB_NAME_AW(OpenDriver) -LRESULT WINAPI CloseDriver16(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2); -LRESULT WINAPI CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2); -LRESULT WINAPI SendDriverMessage16( HDRVR16 hDriver, UINT16 message, - LPARAM lParam1, LPARAM lParam2 ); -LRESULT WINAPI SendDriverMessage( HDRVR hDriver, UINT message, - LPARAM lParam1, LPARAM lParam2 ); -HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16 hDriver); -HMODULE WINAPI GetDriverModuleHandle(HDRVR hDriver); - -DWORD WINAPI GetDriverFlags( HDRVR hDriver ); -#ifdef __WINE__ -/* this call (GetDriverFlags) is not documented, nor the flags returned. - * here are Wine only definitions - */ -#define WINE_GDF_EXIST 0x80000000 -#define WINE_GDF_16BIT 0x10000000 -#endif - -#endif /* __WINE_DRIVER_H */ diff --git a/include/wine/elfdll.h b/include/wine/elfdll.h deleted file mode 100644 index 1f356856ff..0000000000 --- a/include/wine/elfdll.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __WINE_ELFDLL_H -#define __WINE_ELFDLL_H - -#include "module.h" -#include "windef.h" - -WINE_MODREF *ELFDLL_LoadLibraryExA(LPCSTR libname, DWORD flags); -HINSTANCE16 ELFDLL_LoadModule16(LPCSTR libname); -void ELFDLL_UnloadLibrary(WINE_MODREF *wm); - -void *ELFDLL_dlopen(const char *libname, int flags); -extern char *extra_ld_library_path; - -#endif diff --git a/include/wine/heap.h b/include/wine/heap.h deleted file mode 100644 index bd0604b752..0000000000 --- a/include/wine/heap.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Win32 heap definitions - * - * Copyright 1996 Alexandre Julliard - */ - -#ifndef __WINE_HEAP_H -#define __WINE_HEAP_H - -#include "config.h" - -#include "winbase.h" - -extern HANDLE SystemHeap; -extern HANDLE SegptrHeap; - -extern int HEAP_IsInsideHeap( HANDLE heap, DWORD flags, LPCVOID ptr ); -extern SEGPTR HEAP_GetSegptr( HANDLE heap, DWORD flags, LPCVOID ptr ); -extern LPSTR HEAP_strdupA( HANDLE heap, DWORD flags, LPCSTR str ); -extern LPWSTR HEAP_strdupW( HANDLE heap, DWORD flags, LPCWSTR str ); -extern LPWSTR HEAP_strdupAtoW( HANDLE heap, DWORD flags, LPCSTR str ); -extern LPSTR HEAP_strdupWtoA( HANDLE heap, DWORD flags, LPCWSTR str ); - -/* SEGPTR helper macros */ - -#define SEGPTR_ALLOC(size) \ - (HeapAlloc( SegptrHeap, 0, (size) )) -#define SEGPTR_NEW(type) \ - ((type *)HeapAlloc( SegptrHeap, 0, sizeof(type) )) -#define SEGPTR_STRDUP(str) \ - (HIWORD(str) ? HEAP_strdupA( SegptrHeap, 0, (str) ) : (LPSTR)(str)) -#define SEGPTR_STRDUP_WtoA(str) \ - (HIWORD(str) ? HEAP_strdupWtoA( SegptrHeap, 0, (str) ) : (LPSTR)(str)) - /* define an inline function, a macro won't do */ -static inline SEGPTR WINE_UNUSED SEGPTR_Get(LPCVOID ptr) { - return (HIWORD(ptr) ? HEAP_GetSegptr( SegptrHeap, 0, ptr ) : (SEGPTR)ptr); -} -#define SEGPTR_GET(ptr) SEGPTR_Get(ptr) -#define SEGPTR_FREE(ptr) \ - (HIWORD(ptr) ? HeapFree( SegptrHeap, 0, (ptr) ) : 0) - -/* system heap private data */ -/* you must lock the system heap before using this structure */ -typedef struct -{ - void *gdi; /* GDI heap */ - void *user; /* USER handle table */ - void *cursor; /* cursor information */ - void *queue; /* message queues descriptor */ - void *win; /* windows descriptor */ - void *root; /* X11 root window */ -} SYSTEM_HEAP_DESCR; - -extern SYSTEM_HEAP_DESCR *SystemHeapDescr; - -#endif /* __WINE_HEAP_H */ diff --git a/include/wine/ldt.h b/include/wine/ldt.h deleted file mode 100644 index f87ecc14e2..0000000000 --- a/include/wine/ldt.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * LDT copy - * - * Copyright 1995 Alexandre Julliard - */ - -#ifndef __WINE_LDT_H -#define __WINE_LDT_H - -#include "windef.h" -enum seg_type -{ - SEGMENT_DATA = 0, - SEGMENT_STACK = 1, - SEGMENT_CODE = 2 -}; - - /* This structure represents a real LDT entry. */ - /* It is used by get_ldt_entry() and set_ldt_entry(). */ -typedef struct -{ - unsigned long base; /* base address */ - unsigned long limit; /* segment limit (in pages or bytes) */ - int seg_32bit; /* is segment 32-bit? */ - int read_only; /* is segment read-only? */ - int limit_in_pages; /* is the limit in pages or bytes? */ - enum seg_type type; /* segment type */ -} ldt_entry; -#ifdef __cplusplus -extern "C" -{ -#endif -extern void LDT_BytesToEntry( const unsigned long *buffer, ldt_entry *content); -extern void LDT_EntryToBytes( unsigned long *buffer, const ldt_entry *content); -extern int LDT_GetEntry( int entry, ldt_entry *content ); -extern int LDT_SetEntry( int entry, const ldt_entry *content ); -extern void LDT_Print( int start, int length ); - - - /* This structure is used to build the local copy of the LDT. */ -typedef struct -{ - unsigned long base; /* base address or 0 if entry is free */ - unsigned long limit; /* limit in bytes or 0 if entry is free */ -} ldt_copy_entry; - -#define LDT_SIZE 8192 - -extern ldt_copy_entry ldt_copy[LDT_SIZE]; - -#define __AHSHIFT 3 /* don't change! */ -#define __AHINCR (1 << __AHSHIFT) - -#define SELECTOR_TO_ENTRY(sel) (((int)(sel) & 0xffff) >> __AHSHIFT) -#define ENTRY_TO_SELECTOR(i) ((i) ? (((int)(i) << __AHSHIFT) | 7) : 0) -#define IS_LDT_ENTRY_FREE(i) (!(ldt_flags_copy[(i)] & LDT_FLAGS_ALLOCATED)) -#define IS_SELECTOR_FREE(sel) (IS_LDT_ENTRY_FREE(SELECTOR_TO_ENTRY(sel))) -#define GET_SEL_BASE(sel) (ldt_copy[SELECTOR_TO_ENTRY(sel)].base) -#define GET_SEL_LIMIT(sel) (ldt_copy[SELECTOR_TO_ENTRY(sel)].limit) - -/* Convert a segmented ptr (16:16) to a linear (32) pointer */ - -#define PTR_SEG_OFF_TO_LIN(seg,off) \ - ((void*)(GET_SEL_BASE(seg) + (unsigned int)(off))) -#define PTR_SEG_TO_LIN(ptr) \ - PTR_SEG_OFF_TO_LIN(SELECTOROF(ptr),OFFSETOF(ptr)) -#define PTR_SEG_OFF_TO_SEGPTR(seg,off) \ - ((SEGPTR)MAKELONG(off,seg)) -#define PTR_SEG_OFF_TO_HUGEPTR(seg,off) \ - PTR_SEG_OFF_TO_SEGPTR( (seg) + (HIWORD(off) << __AHSHIFT), LOWORD(off) ) - -#define W32S_APPLICATION() (PROCESS_Current()->flags & PDB32_WIN32S_PROC) -#define W32S_OFFSET 0x10000 -#define W32S_APP2WINE(addr, offset) ((addr)? (DWORD)(addr) + (DWORD)(offset) : 0) -#define W32S_WINE2APP(addr, offset) ((addr)? (DWORD)(addr) - (DWORD)(offset) : 0) - -extern unsigned char ldt_flags_copy[LDT_SIZE]; - -#define LDT_FLAGS_TYPE 0x03 /* Mask for segment type */ -#define LDT_FLAGS_READONLY 0x04 /* Segment is read-only (data) */ -#define LDT_FLAGS_EXECONLY 0x04 /* Segment is execute-only (code) */ -#define LDT_FLAGS_32BIT 0x08 /* Segment is 32-bit (code or stack) */ -#define LDT_FLAGS_BIG 0x10 /* Segment is big (limit is in pages) */ -#define LDT_FLAGS_ALLOCATED 0x80 /* Segment is allocated (no longer free) */ - -#define GET_SEL_FLAGS(sel) (ldt_flags_copy[SELECTOR_TO_ENTRY(sel)]) - -#define FIRST_LDT_ENTRY_TO_ALLOC 17 - -/* Determine if sel is a system selector (i.e. not managed by Wine) */ -#define IS_SELECTOR_SYSTEM(sel) \ - (!((sel) & 4) || (SELECTOR_TO_ENTRY(sel) < FIRST_LDT_ENTRY_TO_ALLOC)) -#define IS_SELECTOR_32BIT(sel) \ - (IS_SELECTOR_SYSTEM(sel) || (GET_SEL_FLAGS(sel) & LDT_FLAGS_32BIT)) -#ifdef __cplusplus -} -#endif -#endif /* __WINE_LDT_H */ diff --git a/include/wine/mmreg.h b/include/wine/mmreg.h deleted file mode 100644 index 74e26250d0..0000000000 --- a/include/wine/mmreg.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * mmreg.h - Declarations for ??? - */ - -#ifndef __WINE_MMREG_H -#define __WINE_MMREG_H - -/*********************************************************************** - * Defines/Enums - */ - -#ifndef _ACM_WAVEFILTER -#define _ACM_WAVEFILTER - -#include "windef.h" - -#define WAVE_FILTER_UNKNOWN 0x0000 -#define WAVE_FILTER_DEVELOPMENT 0xFFFF - -typedef struct _WAVEFILTER { - DWORD cbStruct; - DWORD dwFilterTag; - DWORD fdwFilter; - DWORD dwReserved[5]; -} WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER; -#endif /* _ACM_WAVEFILTER */ - -#ifndef WAVE_FILTER_VOLUME -#define WAVE_FILTER_VOLUME 0x0001 - -typedef struct _WAVEFILTER_VOLUME { - WAVEFILTER wfltr; - DWORD dwVolume; -} VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER; -#endif /* WAVE_FILTER_VOLUME */ - -#ifndef WAVE_FILTER_ECHO -#define WAVE_FILTER_ECHO 0x0002 - -typedef struct WAVEFILTER_ECHO { - WAVEFILTER wfltr; - DWORD dwVolume; - DWORD dwDelay; -} ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER; -#endif /* WAVEFILTER_ECHO */ - -#ifndef _WAVEFORMATEX_ -#define _WAVEFORMATEX_ -typedef struct _WAVEFORMATEX { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wBitsPerSample; - WORD cbSize; -} WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; -#endif /* _WAVEFORMATEX_ */ - -/* WAVE form wFormatTag IDs */ -#define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ -#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */ -#define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */ -#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */ -#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */ -#define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */ -#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */ -#define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */ -#define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */ -#define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */ -#define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */ -#define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */ -#define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */ -#define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */ -#define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */ -#define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */ -#define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */ -#define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */ -#define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* */ -#define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */ -#define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* */ -#define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */ -#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */ -#define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */ -#define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */ -#define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */ -#define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */ -#define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */ -#define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */ -#define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */ -#define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */ -#define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */ -#define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */ -#define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */ -#define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */ -#define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */ -#define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */ -#define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */ -#define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */ -#define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */ - -#define WAVE_FORMAT_DEVELOPMENT (0xFFFF) - -#endif /* __WINE_MMREG_H */ diff --git a/include/wine/module.h b/include/wine/module.h deleted file mode 100644 index 7237c95f06..0000000000 --- a/include/wine/module.h +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Module definitions - * - * Copyright 1995 Alexandre Julliard - */ - -#ifndef __WINE_MODULE_H -#define __WINE_MODULE_H - -#include "windef.h" -//#include "dosexe.h" -#include "pe_image.h" - - - -typedef struct { - BYTE type; - BYTE flags; - BYTE segnum; - WORD offs WINE_PACKED; -} ET_ENTRY; - -typedef struct { - WORD first; /* ordinal */ - WORD last; /* ordinal */ - WORD next; /* bundle */ -} ET_BUNDLE; - - - /* In-memory segment table */ -typedef struct -{ - WORD filepos; /* Position in file, in sectors */ - WORD size; /* Segment size on disk */ - WORD flags; /* Segment flags */ - WORD minsize; /* Min. size of segment in memory */ - HANDLE16 hSeg; /* Selector or handle (selector - 1) */ - /* of segment in memory */ -} SEGTABLEENTRY; - - - /* Self-loading modules contain this structure in their first segment */ - -#include "pshpack1.h" - -typedef struct -{ - WORD version; /* Must be "A0" (0x3041) */ - WORD reserved; - FARPROC16 BootApp; /* startup procedure */ - FARPROC16 LoadAppSeg; /* procedure to load a segment */ - FARPROC16 reserved2; - FARPROC16 MyAlloc; /* memory allocation procedure, - * wine must write this field */ - FARPROC16 EntryAddrProc; - FARPROC16 ExitProc; /* exit procedure */ - WORD reserved3[4]; - FARPROC16 SetOwner; /* Set Owner procedure, exported by wine */ -} SELFLOADHEADER; - - /* Parameters for LoadModule() */ -typedef struct -{ - HGLOBAL16 hEnvironment; /* Environment segment */ - SEGPTR cmdLine WINE_PACKED; /* Command-line */ - SEGPTR showCmd WINE_PACKED; /* Code for ShowWindow() */ - SEGPTR reserved WINE_PACKED; -} LOADPARAMS16; - -typedef struct -{ - LPSTR lpEnvAddress; - LPSTR lpCmdLine; - UINT16 *lpCmdShow; - DWORD dwReserved; -} LOADPARAMS; - -#include "poppack.h" - -/* internal representation of 32bit modules. per process. */ -typedef enum { - MODULE32_PE = 1, - MODULE32_ELF, - MODULE32_ELFDLL -} MODULE32_TYPE; - -typedef struct _wine_modref -{ - struct _wine_modref *next; - struct _wine_modref *prev; - MODULE32_TYPE type; - union { - PE_MODREF pe; - ELF_MODREF elf; - } binfmt; - - HMODULE module; - - int nDeps; - struct _wine_modref **deps; - - int flags; - int refCount; - - char *filename; - char *modname; - char *short_filename; - char *short_modname; -} WINE_MODREF; - -#define WINE_MODREF_INTERNAL 0x00000001 -#define WINE_MODREF_NO_DLL_CALLS 0x00000002 -#define WINE_MODREF_PROCESS_ATTACHED 0x00000004 -#define WINE_MODREF_LOAD_AS_DATAFILE 0x00000010 -#define WINE_MODREF_DONT_RESOLVE_REFS 0x00000020 -#define WINE_MODREF_MARKER 0x80000000 - - - -/* Resource types */ -typedef struct resource_typeinfo_s NE_TYPEINFO; -typedef struct resource_nameinfo_s NE_NAMEINFO; - -#define NE_SEG_TABLE(pModule) \ - ((SEGTABLEENTRY *)((char *)(pModule) + (pModule)->seg_table)) - -#define NE_MODULE_TABLE(pModule) \ - ((WORD *)((char *)(pModule) + (pModule)->modref_table)) - -#define NE_MODULE_NAME(pModule) \ - (((OFSTRUCT *)((char*)(pModule) + (pModule)->fileinfo))->szPathName) - -/* module.c */ -extern FARPROC MODULE_GetProcAddress( HMODULE hModule, LPCSTR function, WIN_BOOL snoop ); -extern WINE_MODREF *MODULE32_LookupHMODULE( HMODULE hModule ); -extern WIN_BOOL MODULE_DllProcessAttach( WINE_MODREF *wm, LPVOID lpReserved ); -extern void MODULE_DllProcessDetach( WINE_MODREF *wm, WIN_BOOL bForceDetach, LPVOID lpReserved ); -extern void MODULE_DllThreadAttach( LPVOID lpReserved ); -extern void MODULE_DllThreadDetach( LPVOID lpReserved ); -extern WINE_MODREF *MODULE_LoadLibraryExA( LPCSTR libname, HFILE hfile, DWORD flags ); -extern WIN_BOOL MODULE_FreeLibrary( WINE_MODREF *wm ); -extern WINE_MODREF *MODULE_FindModule( LPCSTR path ); -extern HMODULE MODULE_CreateDummyModule( LPCSTR filename, HMODULE module32 ); -extern FARPROC16 WINAPI WIN32_GetProcAddress16( HMODULE hmodule, LPCSTR name ); -extern SEGPTR WINAPI HasGPHandler16( SEGPTR address ); -extern void MODULE_WalkModref( DWORD id ); - -/* resource.c */ -extern INT WINAPI AccessResource(HMODULE,HRSRC); -/* -/ loader/ne/module.c -extern NE_MODULE *NE_GetPtr( HMODULE16 hModule ); -extern void NE_DumpModule( HMODULE16 hModule ); -extern void NE_WalkModules(void); -extern void NE_RegisterModule( NE_MODULE *pModule ); -extern WORD NE_GetOrdinal( HMODULE16 hModule, const char *name ); -extern FARPROC16 WINAPI NE_GetEntryPoint( HMODULE16 hModule, WORD ordinal ); -extern FARPROC16 NE_GetEntryPointEx( HMODULE16 hModule, WORD ordinal, WIN_BOOL16 snoop ); -extern WIN_BOOL16 NE_SetEntryPoint( HMODULE16 hModule, WORD ordinal, WORD offset ); -extern int NE_OpenFile( NE_MODULE *pModule ); -extern WIN_BOOL NE_CreateProcess( HANDLE hFile, LPCSTR filename, LPCSTR cmd_line, LPCSTR env, - LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa, - WIN_BOOL inherit, DWORD flags, LPSTARTUPINFOA startup, - LPPROCESS_INFORMATION info ); -extern WIN_BOOL NE_InitProcess( NE_MODULE *pModule ); - - -/ loader/ne/resource.c -extern HGLOBAL16 WINAPI NE_DefResourceHandler(HGLOBAL16,HMODULE16,HRSRC16); -extern WIN_BOOL NE_InitResourceHandler( HMODULE16 hModule ); -extern HRSRC16 NE_FindResource( NE_MODULE *pModule, LPCSTR name, LPCSTR type ); -extern INT16 NE_AccessResource( NE_MODULE *pModule, HRSRC16 hRsrc ); -extern DWORD NE_SizeofResource( NE_MODULE *pModule, HRSRC16 hRsrc ); -extern HGLOBAL16 NE_LoadResource( NE_MODULE *pModule, HRSRC16 hRsrc ); -extern WIN_BOOL16 NE_FreeResource( NE_MODULE *pModule, HGLOBAL16 handle ); -extern NE_TYPEINFO *NE_FindTypeSection( LPBYTE pResTab, NE_TYPEINFO *pTypeInfo, LPCSTR typeId ); -extern NE_NAMEINFO *NE_FindResourceFromType( LPBYTE pResTab, NE_TYPEINFO *pTypeInfo, LPCSTR resId ); - -// loader/ne/segment.c -extern WIN_BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum ); -extern WIN_BOOL NE_LoadAllSegments( NE_MODULE *pModule ); -extern WIN_BOOL NE_CreateSegment( NE_MODULE *pModule, int segnum ); -extern WIN_BOOL NE_CreateAllSegments( NE_MODULE *pModule ); -extern HINSTANCE16 NE_GetInstance( NE_MODULE *pModule ); -extern void NE_InitializeDLLs( HMODULE16 hModule ); -extern void NE_DllProcessAttach( HMODULE16 hModule ); - -// loader/ne/convert.c -HGLOBAL16 NE_LoadPEResource( NE_MODULE *pModule, WORD type, LPVOID bits, DWORD size ); -*/ -/* relay32/builtin.c */ -extern WINE_MODREF *BUILTIN32_LoadLibraryExA(LPCSTR name, DWORD flags); -extern HMODULE BUILTIN32_LoadExeModule( LPCSTR *filename ); -extern void BUILTIN32_UnloadLibrary(WINE_MODREF *wm); -extern void *BUILTIN32_dlopen( const char *name ); -extern int BUILTIN32_dlclose( void *handle ); - -#endif /* __WINE_MODULE_H */ diff --git a/include/wine/msacm.h b/include/wine/msacm.h deleted file mode 100644 index b76c1095a8..0000000000 --- a/include/wine/msacm.h +++ /dev/null @@ -1,942 +0,0 @@ -/* - * msacm.h - Declarations for MSACM - */ - -#ifndef __WINE_MSACM_H -#define __WINE_MSACM_H - -#include "windef.h" -#include "driver.h" -#include "mmreg.h" - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -//typedef WORD VERSION; /* major (high byte), minor (low byte) */ - -typedef UINT16 MMVERSION16; -typedef UINT MMVERSION; -typedef UINT16 MCIDEVICEID16; -typedef UINT MCIDEVICEID; -typedef UINT16 MMRESULT16; -typedef UINT MMRESULT; -typedef DWORD FOURCC; /* a four character code */ - - - -#define WAVE_FORMAT_PCM 1 - -/*********************************************************************** - * Defines/Enums - */ - -#define ACMERR_BASE 512 -#define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0) -#define ACMERR_BUSY (ACMERR_BASE + 1) -#define ACMERR_UNPREPARED (ACMERR_BASE + 2) -#define ACMERR_CANCELED (ACMERR_BASE + 3) - -#define MM_ACM_OPEN MM_STREAM_OPEN -#define MM_ACM_CLOSE MM_STREAM_CLOSE -#define MM_ACM_DONE MM_STREAM_DONE - -#define ACM_DRIVERADDF_FUNCTION 0x00000003L -#define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L -#define ACM_DRIVERADDF_TYPEMASK 0x00000007L -#define ACM_DRIVERADDF_LOCAL 0x00000000L -#define ACM_DRIVERADDF_GLOBAL 0x00000008L - -#define ACMDRIVERDETAILS_SHORTNAME_CHARS 32 -#define ACMDRIVERDETAILS_LONGNAME_CHARS 128 -#define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80 -#define ACMDRIVERDETAILS_LICENSING_CHARS 128 -#define ACMDRIVERDETAILS_FEATURES_CHARS 512 - -#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c') -#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0') - -#define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L -#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L -#define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L -#define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L -#define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L -#define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L -#define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L - -#define ACM_DRIVERENUMF_NOLOCAL 0x40000000L -#define ACM_DRIVERENUMF_DISABLED 0x80000000L - -#define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L -#define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L -#define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L -#define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L -#define ACM_DRIVERPRIORITYF_END 0x00020000L -#define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L - -#define MM_ACM_FILTERCHOOSE 0x8000 - -#define FILTERCHOOSE_MESSAGE 0 -#define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0) -#define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1) -#define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2) - -#define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L -#define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L -#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L -#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L -#define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L -#define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L - -#define ACMFILTERDETAILS_FILTER_CHARS 128 - -#define ACM_FILTERDETAILSF_INDEX 0x00000000L -#define ACM_FILTERDETAILSF_FILTER 0x00000001L -#define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL - -#define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48 - -#define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L -#define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L -#define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L -#define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL - -#define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L - -#define ACMHELPMSGSTRINGA "acmchoose_help" -#define ACMHELPMSGSTRINGW L"acmchoose_help" -#define ACMHELPMSGSTRING16 "acmchoose_help" - -#define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu" -#define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu" -#define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu" - -#define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp" -#define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp" -#define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp" - -#define MM_ACM_FORMATCHOOSE 0x8000 - -#define FORMATCHOOSE_MESSAGE 0 -#define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0) -#define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1) -#define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2) - -#define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L -#define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L -#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L -#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L -#define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L -#define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L - -#define ACMFORMATDETAILS_FORMAT_CHARS 128 - -#define ACM_FORMATDETAILSF_INDEX 0x00000000L -#define ACM_FORMATDETAILSF_FORMAT 0x00000001L -#define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL - -#define ACM_FORMATENUMF_WFORMATTAG 0x00010000L -#define ACM_FORMATENUMF_NCHANNELS 0x00020000L -#define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L -#define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L -#define ACM_FORMATENUMF_CONVERT 0x00100000L -#define ACM_FORMATENUMF_SUGGEST 0x00200000L -#define ACM_FORMATENUMF_HARDWARE 0x00400000L -#define ACM_FORMATENUMF_INPUT 0x00800000L -#define ACM_FORMATENUMF_OUTPUT 0x01000000L - -#define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L -#define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L -#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L -#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L -#define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L - -#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48 - -#define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L -#define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L -#define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L -#define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL - -#define ACM_METRIC_COUNT_DRIVERS 1 -#define ACM_METRIC_COUNT_CODECS 2 -#define ACM_METRIC_COUNT_CONVERTERS 3 -#define ACM_METRIC_COUNT_FILTERS 4 -#define ACM_METRIC_COUNT_DISABLED 5 -#define ACM_METRIC_COUNT_HARDWARE 6 -#define ACM_METRIC_COUNT_LOCAL_DRIVERS 20 -#define ACM_METRIC_COUNT_LOCAL_CODECS 21 -#define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22 -#define ACM_METRIC_COUNT_LOCAL_FILTERS 23 -#define ACM_METRIC_COUNT_LOCAL_DISABLED 24 -#define ACM_METRIC_HARDWARE_WAVE_INPUT 30 -#define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31 -#define ACM_METRIC_MAX_SIZE_FORMAT 50 -#define ACM_METRIC_MAX_SIZE_FILTER 51 -#define ACM_METRIC_DRIVER_SUPPORT 100 -#define ACM_METRIC_DRIVER_PRIORITY 101 - -#define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004 -#define ACM_STREAMCONVERTF_START 0x00000010 -#define ACM_STREAMCONVERTF_END 0x00000020 - -#define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L -#define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L -#define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L - -#define ACM_STREAMOPENF_QUERY 0x00000001 -#define ACM_STREAMOPENF_ASYNC 0x00000002 -#define ACM_STREAMOPENF_NONREALTIME 0x00000004 - -#define ACM_STREAMSIZEF_SOURCE 0x00000000L -#define ACM_STREAMSIZEF_DESTINATION 0x00000001L -#define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL - -#define ACMDM_USER (DRV_USER + 0x0000) -#define ACMDM_RESERVED_LOW (DRV_USER + 0x2000) -#define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF) - -#define ACMDM_BASE ACMDM_RESERVED_LOW - -#define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11) - -/*********************************************************************** - * Callbacks - */ - -typedef WIN_BOOL CALLBACK ( *ACMDRIVERENUMCB)( - HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL16 CALLBACK ( *ACMDRIVERENUMCB16)( - HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport -); - -typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCA)( - HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam -); - -typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCW)( - HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam -); - -typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROC16)( - HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam -); - -typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCA)( - HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam -); - -typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCW)( - HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam -); - -typedef UINT16 CALLBACK ( *ACMFORMATCHOOSEHOOKPROC16)( - HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam -); - -/*********************************************************************** - * Structures - */ - -typedef struct _ACMDRIVERDETAILSA -{ - DWORD cbStruct; - - FOURCC fccType; - FOURCC fccComp; - - WORD wMid; - WORD wPid; - - DWORD vdwACM; - DWORD vdwDriver; - - DWORD fdwSupport; - DWORD cFormatTags; - DWORD cFilterTags; - - HICON hicon; - - CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; - CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; - CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; - CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; - CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; -} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA; - -typedef struct _ACMDRIVERDETAILSW -{ - DWORD cbStruct; - - FOURCC fccType; - FOURCC fccComp; - - WORD wMid; - WORD wPid; - - DWORD vdwACM; - DWORD vdwDriver; - - DWORD fdwSupport; - DWORD cFormatTags; - DWORD cFilterTags; - - HICON hicon; - - WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; - WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; - WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; - WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; - WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; -} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW; - -typedef struct _ACMDRIVERDETAILS16 -{ - DWORD cbStruct; - - FOURCC fccType; - FOURCC fccComp; - - WORD wMid; - WORD wPid; - - DWORD vdwACM; - DWORD vdwDriver; - - DWORD fdwSupport; - DWORD cFormatTags; - DWORD cFilterTags; - - HICON16 hicon; - - CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; - CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; - CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; - CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; - CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; -} ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16; - -typedef struct _ACMFILTERCHOOSEA -{ - DWORD cbStruct; - DWORD fdwStyle; - - HWND hwndOwner; - - PWAVEFILTER pwfltr; - DWORD cbwfltr; - - LPCSTR pszTitle; - - CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; - CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; - LPSTR pszName; - DWORD cchName; - - DWORD fdwEnum; - PWAVEFILTER pwfltrEnum; - - HINSTANCE hInstance; - LPCSTR pszTemplateName; - LPARAM lCustData; - ACMFILTERCHOOSEHOOKPROCA pfnHook; -} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA; - -typedef struct _ACMFILTERCHOOSEW -{ - DWORD cbStruct; - DWORD fdwStyle; - - HWND hwndOwner; - - PWAVEFILTER pwfltr; - DWORD cbwfltr; - - LPCWSTR pszTitle; - - WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; - WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; - LPWSTR pszName; - DWORD cchName; - - DWORD fdwEnum; - PWAVEFILTER pwfltrEnum; - - HINSTANCE hInstance; - LPCWSTR pszTemplateName; - LPARAM lCustData; - ACMFILTERCHOOSEHOOKPROCW pfnHook; -} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW; - -typedef struct _ACMFILTERCHOOSE16 -{ - DWORD cbStruct; - DWORD fdwStyle; - - HWND16 hwndOwner; - - LPWAVEFILTER pwfltr; - DWORD cbwfltr; - - LPCSTR pszTitle; - - char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; - char szFilter[ACMFILTERDETAILS_FILTER_CHARS]; - LPSTR pszName; - DWORD cchName; - - DWORD fdwEnum; - LPWAVEFILTER pwfltrEnum; - - HINSTANCE16 hInstance; - LPCSTR pszTemplateName; - LPARAM lCustData; - ACMFILTERCHOOSEHOOKPROC16 pfnHook; -} ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16; - -typedef struct _ACMFILTERDETAILSA -{ - DWORD cbStruct; - DWORD dwFilterIndex; - DWORD dwFilterTag; - DWORD fdwSupport; - PWAVEFILTER pwfltr; - DWORD cbwfltr; - CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; -} ACMFILTERDETAILSA, *PACMFILTERDETAILSA; - -typedef struct _ACMFILTERDETAILSW -{ - DWORD cbStruct; - DWORD dwFilterIndex; - DWORD dwFilterTag; - DWORD fdwSupport; - PWAVEFILTER pwfltr; - DWORD cbwfltr; - WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; -} ACMFILTERDETAILSW, *PACMFILTERDETAILSW; - -typedef struct _ACMFILTERDETAILS16 -{ - DWORD cbStruct; - DWORD dwFilterIndex; - DWORD dwFilterTag; - DWORD fdwSupport; - LPWAVEFILTER pwfltr; - DWORD cbwfltr; - CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; -} ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16; - -typedef struct _ACMFILTERTAGDETAILSA -{ - DWORD cbStruct; - DWORD dwFilterTagIndex; - DWORD dwFilterTag; - DWORD cbFilterSize; - DWORD fdwSupport; - DWORD cStandardFilters; - CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; -} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA; - -typedef struct _ACMFILTERTAGDETAILSW -{ - DWORD cbStruct; - DWORD dwFilterTagIndex; - DWORD dwFilterTag; - DWORD cbFilterSize; - DWORD fdwSupport; - DWORD cStandardFilters; - WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; -} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW; - -typedef struct _ACMFILTERTAGDETAILS16 -{ - DWORD cbStruct; - DWORD dwFilterTagIndex; - DWORD dwFilterTag; - DWORD cbFilterSize; - DWORD fdwSupport; - DWORD cStandardFilters; - CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; -} ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16; - -typedef struct _ACMFORMATCHOOSEA -{ - DWORD cbStruct; - DWORD fdwStyle; - - HWND hwndOwner; - - PWAVEFORMATEX pwfx; - DWORD cbwfx; - LPCSTR pszTitle; - - CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; - CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; - - LPSTR pszName; - DWORD cchName; - - DWORD fdwEnum; - PWAVEFORMATEX pwfxEnum; - - HINSTANCE hInstance; - LPCSTR pszTemplateName; - LPARAM lCustData; - ACMFORMATCHOOSEHOOKPROCA pfnHook; -} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA; - -typedef struct _ACMFORMATCHOOSEW -{ - DWORD cbStruct; - DWORD fdwStyle; - - HWND hwndOwner; - - PWAVEFORMATEX pwfx; - DWORD cbwfx; - LPCWSTR pszTitle; - - WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; - WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; - - LPWSTR pszName; - DWORD cchName; - - DWORD fdwEnum; - LPWAVEFORMATEX pwfxEnum; - - HINSTANCE hInstance; - LPCWSTR pszTemplateName; - LPARAM lCustData; - ACMFORMATCHOOSEHOOKPROCW pfnHook; -} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW; - -typedef struct _ACMFORMATCHOOSE16 -{ - DWORD cbStruct; - DWORD fdwStyle; - - HWND16 hwndOwner; - - LPWAVEFORMATEX pwfx; - DWORD cbwfx; - LPCSTR pszTitle; - - CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; - CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; - - LPSTR pszName; - DWORD cchName; - - DWORD fdwEnum; - LPWAVEFORMATEX pwfxEnum; - - HINSTANCE16 hInstance; - LPCSTR pszTemplateName; - LPARAM lCustData; - ACMFORMATCHOOSEHOOKPROC16 pfnHook; -} ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16; - -typedef struct _ACMFORMATDETAILSA -{ - DWORD cbStruct; - DWORD dwFormatIndex; - DWORD dwFormatTag; - DWORD fdwSupport; - PWAVEFORMATEX pwfx; - DWORD cbwfx; - CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; -} ACMFORMATDETAILSA, *PACMFORMATDETAILSA; - -typedef struct _ACMFORMATDETAILSW -{ - DWORD cbStruct; - DWORD dwFormatIndex; - DWORD dwFormatTag; - DWORD fdwSupport; - PWAVEFORMATEX pwfx; - DWORD cbwfx; - WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; -} ACMFORMATDETAILSW, *PACMFORMATDETAILSW; - -typedef struct _ACMFORMATDETAILS16 -{ - DWORD cbStruct; - DWORD dwFormatIndex; - DWORD dwFormatTag; - DWORD fdwSupport; - LPWAVEFORMATEX pwfx; - DWORD cbwfx; - CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; -} ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16; - -typedef struct _ACMFORMATTAGDETAILSA -{ - DWORD cbStruct; - DWORD dwFormatTagIndex; - DWORD dwFormatTag; - DWORD cbFormatSize; - DWORD fdwSupport; - DWORD cStandardFormats; - CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; -} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA; - -typedef struct _ACMFORMATTAGDETAILSW -{ - DWORD cbStruct; - DWORD dwFormatTagIndex; - DWORD dwFormatTag; - DWORD cbFormatSize; - DWORD fdwSupport; - DWORD cStandardFormats; - WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; -} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW; - -typedef struct _ACMFORMATTAGDETAILS16 -{ - DWORD cbStruct; - DWORD dwFormatTagIndex; - DWORD dwFormatTag; - DWORD cbFormatSize; - DWORD fdwSupport; - DWORD cStandardFormats; - CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; -} ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16; - -typedef struct _ACMSTREAMHEADER -{ - DWORD cbStruct; - DWORD fdwStatus; - DWORD dwUser; - LPBYTE pbSrc; - DWORD cbSrcLength; - DWORD cbSrcLengthUsed; - DWORD dwSrcUser; - LPBYTE pbDst; - DWORD cbDstLength; - DWORD cbDstLengthUsed; - DWORD dwDstUser; - DWORD dwReservedDriver[10]; -} ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16, - ACMSTREAMHEADER, *PACMSTREAMHEADER; - -/*********************************************************************** - * Callbacks 2 - */ - -typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBA)( - HACMDRIVERID hadid, PACMFILTERDETAILSA pafd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBW)( - HACMDRIVERID hadid, PACMFILTERDETAILSW pafd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL16 CALLBACK ( *ACMFILTERENUMCB16)( - HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBA)( - HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBW)( - HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL16 CALLBACK ( *ACMFILTERTAGENUMCB16)( - HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBA)( - HACMDRIVERID hadid, PACMFORMATDETAILSA pafd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBW)( - HACMDRIVERID hadid, PACMFORMATDETAILSW pafd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL16 CALLBACK ( *ACMFORMATENUMCB16)( - HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBA)( - HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBW)( - HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd, - DWORD dwInstance, DWORD fdwSupport -); - -typedef WIN_BOOL16 CALLBACK ( *ACMFORMATTAGENUMCB16)( - HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd, - DWORD dwInstance, DWORD fdwSupport -); - -/*********************************************************************** - * Functions - Win16 - */ - -DWORD WINAPI acmGetVersion16( -); -MMRESULT16 WINAPI acmMetrics16( - HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric -); -MMRESULT16 WINAPI acmDriverEnum16( - ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT16 WINAPI acmDriverDetails16( - HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails -); -MMRESULT16 WINAPI acmDriverAdd16( - LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule, - LPARAM lParam, DWORD dwPriority, DWORD fdwAdd -); -MMRESULT16 WINAPI acmDriverRemove16( - HACMDRIVERID16 hadid, DWORD fdwRemove -); -MMRESULT16 WINAPI acmDriverOpen16( - LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen -); -MMRESULT16 WINAPI acmDriverClose16( - HACMDRIVER16 had, DWORD fdwClose -); -LRESULT WINAPI acmDriverMessage16( - HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2 -); -MMRESULT16 WINAPI acmDriverID16( - HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID -); -MMRESULT16 WINAPI acmDriverPriority16( - HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority -); -MMRESULT16 WINAPI acmFormatTagDetails16( - HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails -); -MMRESULT16 WINAPI acmFormatTagEnum16( - HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, - ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT16 WINAPI acmFormatChoose16( - LPACMFORMATCHOOSE16 pafmtc -); -MMRESULT16 WINAPI acmFormatDetails16( - HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails -); -MMRESULT16 WINAPI acmFormatEnum16( - HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, - ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT16 WINAPI acmFormatSuggest16( - HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc, - LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest -); -MMRESULT16 WINAPI acmFilterTagDetails16( - HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails -); -MMRESULT16 WINAPI acmFilterTagEnum16( - HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, - ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT16 WINAPI acmFilterChoose16( - LPACMFILTERCHOOSE16 pafltrc -); -MMRESULT16 WINAPI acmFilterDetails16( - HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails -); -MMRESULT16 WINAPI acmFilterEnum16( - HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, - ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT16 WINAPI acmStreamOpen16( - LPHACMSTREAM16 phas, HACMDRIVER16 had, - LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst, - LPWAVEFILTER pwfltr, DWORD dwCallback, - DWORD dwInstance, DWORD fdwOpen -); -MMRESULT16 WINAPI acmStreamClose16( - HACMSTREAM16 has, DWORD fdwClose -); -MMRESULT16 WINAPI acmStreamSize16( - HACMSTREAM16 has, DWORD cbInput, - LPDWORD pdwOutputBytes, DWORD fdwSize -); -MMRESULT16 WINAPI acmStreamConvert16( - HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert -); -MMRESULT16 WINAPI acmStreamReset16( - HACMSTREAM16 has, DWORD fdwReset -); -MMRESULT16 WINAPI acmStreamPrepareHeader16( - HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare -); -MMRESULT16 WINAPI acmStreamUnprepareHeader16( - HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare -); - -/*********************************************************************** - * Functions - Win32 - */ - -MMRESULT WINAPI acmDriverAddA( - PHACMDRIVERID phadid, HINSTANCE hinstModule, - LPARAM lParam, DWORD dwPriority, DWORD fdwAdd -); -MMRESULT WINAPI acmDriverAddW( - PHACMDRIVERID phadid, HINSTANCE hinstModule, - LPARAM lParam, DWORD dwPriority, DWORD fdwAdd -); -MMRESULT WINAPI acmDriverClose( - HACMDRIVER had, DWORD fdwClose -); -MMRESULT WINAPI acmDriverDetailsA( - HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails -); -MMRESULT WINAPI acmDriverDetailsW( - HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails -); -MMRESULT WINAPI acmDriverEnum( - ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmDriverID( - HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID -); -LRESULT WINAPI acmDriverMessage( - HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2 -); -MMRESULT WINAPI acmDriverOpen( - PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen -); -MMRESULT WINAPI acmDriverPriority( - HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority -); -MMRESULT WINAPI acmDriverRemove( - HACMDRIVERID hadid, DWORD fdwRemove -); -MMRESULT WINAPI acmFilterChooseA( - PACMFILTERCHOOSEA pafltrc -); -MMRESULT WINAPI acmFilterChooseW( - PACMFILTERCHOOSEW pafltrc -); -MMRESULT WINAPI acmFilterDetailsA( - HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails -); -MMRESULT WINAPI acmFilterDetailsW( - HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails -); -MMRESULT WINAPI acmFilterEnumA( - HACMDRIVER had, PACMFILTERDETAILSA pafd, - ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmFilterEnumW( - HACMDRIVER had, PACMFILTERDETAILSW pafd, - ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmFilterTagDetailsA( - HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails -); -MMRESULT WINAPI acmFilterTagDetailsW( - HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails -); -MMRESULT WINAPI acmFilterTagEnumA( - HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, - ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmFilterTagEnumW( - HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, - ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmFormatChooseA( - PACMFORMATCHOOSEA pafmtc -); -MMRESULT WINAPI acmFormatChooseW( - PACMFORMATCHOOSEW pafmtc -); -MMRESULT WINAPI acmFormatDetailsA( - HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails -); -MMRESULT WINAPI acmFormatDetailsW( - HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails -); -MMRESULT WINAPI acmFormatEnumA( - HACMDRIVER had, PACMFORMATDETAILSA pafd, - ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmFormatEnumW( - HACMDRIVER had, PACMFORMATDETAILSW pafd, - ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmFormatSuggest( - HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, - DWORD cbwfxDst, DWORD fdwSuggest -); -MMRESULT WINAPI acmFormatTagDetailsA( - HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails -); -MMRESULT WINAPI acmFormatTagDetailsW( - HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails -); -MMRESULT WINAPI acmFormatTagEnumA( - HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, - ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum -); -MMRESULT WINAPI acmFormatTagEnumW( - HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, - ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum -); -DWORD WINAPI acmGetVersion( -); -MMRESULT WINAPI acmMetrics( - HACMOBJ hao, UINT uMetric, LPVOID pMetric -); -MMRESULT WINAPI acmStreamClose( - HACMSTREAM has, DWORD fdwClose -); -MMRESULT WINAPI acmStreamConvert( - HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert -); -MMRESULT WINAPI acmStreamMessage( - HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2 -); -MMRESULT WINAPI acmStreamOpen( - PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc, - PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback, - DWORD dwInstance, DWORD fdwOpen -); -MMRESULT WINAPI acmStreamPrepareHeader( - HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare -); -MMRESULT WINAPI acmStreamReset( - HACMSTREAM has, DWORD fdwReset -); -MMRESULT WINAPI acmStreamSize( - HACMSTREAM has, DWORD cbInput, - LPDWORD pdwOutputBytes, DWORD fdwSize -); -MMRESULT WINAPI acmStreamUnprepareHeader( - HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare -); -void MSACM_RegisterAllDrivers(void); - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_MSACM_H */ - - diff --git a/include/wine/msacmdrv.h b/include/wine/msacmdrv.h deleted file mode 100644 index 2e23a17d79..0000000000 --- a/include/wine/msacmdrv.h +++ /dev/null @@ -1,203 +0,0 @@ -/* - * msacmdrv.h - Declarations for MSACM driver - */ - -#ifndef __WINE_MSACMDRV_H -#define __WINE_MSACMDRV_H - -#include "windef.h" -#include "msacm.h" - -/*********************************************************************** - * Types - */ - -/*********************************************************************** - * Defines/Enums - */ - -#define MAKE_ACM_VERSION(mjr, mnr, bld) \ - (((long)(mjr)<<24) | ((long)(mnr)<<16) | ((long)bld)) - -#define ACMDRVOPENDESC_SECTIONNAME_CHARS - -#define ACMDM_DRIVER_NOTIFY (ACMDM_BASE + 1) -#define ACMDM_DRIVER_DETAILS (ACMDM_BASE + 10) - -#define ACMDM_HARDWARE_WAVE_CAPS_INPUT (ACMDM_BASE + 20) -#define ACMDM_HARDWARE_WAVE_CAPS_OUTPUT (ACMDM_BASE + 21) - -#define ACMDM_FORMATTAG_DETAILS (ACMDM_BASE + 25) -#define ACMDM_FORMAT_DETAILS (ACMDM_BASE + 26) -#define ACMDM_FORMAT_SUGGEST (ACMDM_BASE + 27) - -#define ACMDM_FILTERTAG_DETAILS (ACMDM_BASE + 50) -#define ACMDM_FILTER_DETAILS (ACMDM_BASE + 51) - -#define ACMDM_STREAM_OPEN (ACMDM_BASE + 76) -#define ACMDM_STREAM_CLOSE (ACMDM_BASE + 77) -#define ACMDM_STREAM_SIZE (ACMDM_BASE + 78) -#define ACMDM_STREAM_CONVERT (ACMDM_BASE + 79) -#define ACMDM_STREAM_RESET (ACMDM_BASE + 80) -#define ACMDM_STREAM_PREPARE (ACMDM_BASE + 81) -#define ACMDM_STREAM_UNPREPARE (ACMDM_BASE + 82) -#define ACMDM_STREAM_UPDATE (ACMDM_BASE + 83) - -/*********************************************************************** - * Structures - */ - -typedef struct _ACMDRVOPENDESCA -{ - DWORD cbStruct; - FOURCC fccType; - FOURCC fccComp; - DWORD dwVersion; - DWORD dwFlags; - DWORD dwError; - LPCSTR pszSectionName; - LPCSTR pszAliasName; - DWORD dnDevNode; -} ACMDRVOPENDESCA, *PACMDRVOPENDESCA; - -typedef struct _ACMDRVOPENDESCW -{ - DWORD cbStruct; - FOURCC fccType; - FOURCC fccComp; - DWORD dwVersion; - DWORD dwFlags; - DWORD dwError; - LPCWSTR pszSectionName; - LPCWSTR pszAliasName; - DWORD dnDevNode; -} ACMDRVOPENDESCW, *PACMDRVOPENDESCW; - -typedef struct _ACMDRVOPENDESC16 -{ - DWORD cbStruct; - FOURCC fccType; - FOURCC fccComp; - DWORD dwVersion; - DWORD dwFlags; - DWORD dwError; - LPCSTR pszSectionName; - LPCSTR pszAliasName; - DWORD dnDevNode; -} ACMDRVOPENDESC16, *NPACMDRVOPENDESC16, *LPACMDRVOPENDESC16; - -typedef struct _ACMDRVSTREAMINSTANCE16 -{ - DWORD cbStruct; - LPWAVEFORMATEX pwfxSrc; - LPWAVEFORMATEX pwfxDst; - LPWAVEFILTER pwfltr; - DWORD dwCallback; - DWORD dwInstance; - DWORD fdwOpen; - DWORD fdwDriver; - DWORD dwDriver; - HACMSTREAM16 has; -} ACMDRVSTREAMINSTANCE16, *NPACMDRVSTREAMINSTANCE16, *LPACMDRVSTREAMINSTANCE16; - -typedef struct _ACMDRVSTREAMINSTANCE -{ - DWORD cbStruct; - PWAVEFORMATEX pwfxSrc; - PWAVEFORMATEX pwfxDst; - PWAVEFILTER pwfltr; - DWORD dwCallback; - DWORD dwInstance; - DWORD fdwOpen; - DWORD fdwDriver; - DWORD dwDriver; - HACMSTREAM has; -} ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE; - - -typedef struct _ACMDRVSTREAMHEADER16 *LPACMDRVSTREAMHEADER16; -typedef struct _ACMDRVSTREAMHEADER16 { - DWORD cbStruct; - DWORD fdwStatus; - DWORD dwUser; - LPBYTE pbSrc; - DWORD cbSrcLength; - DWORD cbSrcLengthUsed; - DWORD dwSrcUser; - LPBYTE pbDst; - DWORD cbDstLength; - DWORD cbDstLengthUsed; - DWORD dwDstUser; - - DWORD fdwConvert; - LPACMDRVSTREAMHEADER16 *padshNext; - DWORD fdwDriver; - DWORD dwDriver; - - /* Internal fields for ACM */ - DWORD fdwPrepared; - DWORD dwPrepared; - LPBYTE pbPreparedSrc; - DWORD cbPreparedSrcLength; - LPBYTE pbPreparedDst; - DWORD cbPreparedDstLength; -} ACMDRVSTREAMHEADER16, *NPACMDRVSTREAMHEADER16; - -typedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER; -typedef struct _ACMDRVSTREAMHEADER { - DWORD cbStruct; - DWORD fdwStatus; - DWORD dwUser; - LPBYTE pbSrc; - DWORD cbSrcLength; - DWORD cbSrcLengthUsed; - DWORD dwSrcUser; - LPBYTE pbDst; - DWORD cbDstLength; - DWORD cbDstLengthUsed; - DWORD dwDstUser; - - DWORD fdwConvert; - PACMDRVSTREAMHEADER *padshNext; - DWORD fdwDriver; - DWORD dwDriver; - - /* Internal fields for ACM */ - DWORD fdwPrepared; - DWORD dwPrepared; - LPBYTE pbPreparedSrc; - DWORD cbPreparedSrcLength; - LPBYTE pbPreparedDst; - DWORD cbPreparedDstLength; -} ACMDRVSTREAMHEADER; - -typedef struct _ACMDRVSTREAMSIZE -{ - DWORD cbStruct; - DWORD fdwSize; - DWORD cbSrcLength; - DWORD cbDstLength; -} ACMDRVSTREAMSIZE16, *NPACMDRVSTREAMSIZE16, *LPACMDRVSTREAMSIZE16, - ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE; - -typedef struct _ACMDRVFORMATSUGGEST16 -{ - DWORD cbStruct; - DWORD fdwSuggest; - LPWAVEFORMATEX pwfxSrc; - DWORD cbwfxSrc; - LPWAVEFORMATEX pwfxDst; - DWORD cbwfxDst; -} ACMDRVFORMATSUGGEST16, *NPACMDRVFORMATSUGGEST, *LPACMDRVFORMATSUGGEST; - -typedef struct _ACMDRVFORMATSUGGEST -{ - DWORD cbStruct; - DWORD fdwSuggest; - PWAVEFORMATEX pwfxSrc; - DWORD cbwfxSrc; - PWAVEFORMATEX pwfxDst; - DWORD cbwfxDst; -} ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST; - -#endif /* __WINE_MSACMDRV_H */ diff --git a/include/wine/ntdef.h b/include/wine/ntdef.h deleted file mode 100644 index edf0af86c1..0000000000 --- a/include/wine/ntdef.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef __WINE_NTDEF_H -#define __WINE_NTDEF_H - -#include "basetsd.h" -#include "windef.h" - -#include "pshpack1.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define NTAPI __stdcall - -#ifndef IN -#define IN -#endif - -#ifndef OUT -#define OUT -#endif - -#ifndef OPTIONAL -#define OPTIONAL -#endif - -#ifndef VOID -#define VOID void -#endif - -typedef LONG NTSTATUS; -typedef NTSTATUS *PNTSTATUS; - -typedef short CSHORT; -typedef CSHORT *PCSHORT; - -typedef WCHAR * PWCHAR; - -/* NT lowlevel Strings (handled by Rtl* functions in NTDLL) - * If they are zero terminated, Length does not include the terminating 0. - */ - -typedef struct _STRING { - USHORT Length; - USHORT MaximumLength; - PSTR Buffer; -} STRING,*PSTRING,ANSI_STRING,*PANSI_STRING; - -typedef struct _CSTRING { - USHORT Length; - USHORT MaximumLength; - PCSTR Buffer; -} CSTRING,*PCSTRING; - -typedef struct _UNICODE_STRING { - USHORT Length; /* bytes */ - USHORT MaximumLength; /* bytes */ - PWSTR Buffer; -} UNICODE_STRING,*PUNICODE_STRING; - -/* - Objects -*/ - -#define OBJ_INHERIT 0x00000002L -#define OBJ_PERMANENT 0x00000010L -#define OBJ_EXCLUSIVE 0x00000020L -#define OBJ_CASE_INSENSITIVE 0x00000040L -#define OBJ_OPENIF 0x00000080L -#define OBJ_OPENLINK 0x00000100L -#define OBJ_KERNEL_HANDLE 0x00000200L -#define OBJ_VALID_ATTRIBUTES 0x000003F2L - -typedef struct _OBJECT_ATTRIBUTES -{ ULONG Length; - HANDLE RootDirectory; - PUNICODE_STRING ObjectName; - ULONG Attributes; - PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */ - PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */ -} OBJECT_ATTRIBUTES; - -typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; - -#define InitializeObjectAttributes(p,n,a,r,s) \ -{ (p)->Length = sizeof(OBJECT_ATTRIBUTES); \ - (p)->RootDirectory = r; \ - (p)->Attributes = a; \ - (p)->ObjectName = n; \ - (p)->SecurityDescriptor = s; \ - (p)->SecurityQualityOfService = NULL; \ -} - - -#ifdef __cplusplus -} -#endif - -#include "poppack.h" - -#endif diff --git a/include/wine/pe_image.h b/include/wine/pe_image.h deleted file mode 100644 index 9b4f322c6d..0000000000 --- a/include/wine/pe_image.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef __WINE_PE_IMAGE_H -#define __WINE_PE_IMAGE_H - -#include "windef.h" -#include "winbase.h" - -#define PE_HEADER(module) \ - ((IMAGE_NT_HEADERS*)((LPBYTE)(module) + \ - (((IMAGE_DOS_HEADER*)(module))->e_lfanew))) - -#define PE_SECTIONS(module) \ - ((IMAGE_SECTION_HEADER*)((LPBYTE)&PE_HEADER(module)->OptionalHeader + \ - PE_HEADER(module)->FileHeader.SizeOfOptionalHeader)) - -#define RVA_PTR(module,field) ((LPBYTE)(module) + PE_HEADER(module)->field) - -/* modreference used for attached processes - * all section are calculated here, relocations etc. - */ -typedef struct { - PIMAGE_IMPORT_DESCRIPTOR pe_import; - PIMAGE_EXPORT_DIRECTORY pe_export; - PIMAGE_RESOURCE_DIRECTORY pe_resource; - int tlsindex; -} PE_MODREF; - -struct _wine_modref; -extern int PE_unloadImage(HMODULE hModule); -extern FARPROC PE_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName, WIN_BOOL snoop); -extern WIN_BOOL PE_EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG); -extern WIN_BOOL PE_EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG); -extern WIN_BOOL PE_EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG); -extern WIN_BOOL PE_EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG); -extern WIN_BOOL PE_EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG); -extern WIN_BOOL PE_EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG); -extern HRSRC PE_FindResourceExW(struct _wine_modref*,LPCWSTR,LPCWSTR,WORD); -extern DWORD PE_SizeofResource(HMODULE,HRSRC); -extern struct _wine_modref *PE_LoadLibraryExA(LPCSTR, DWORD); -extern void PE_UnloadLibrary(struct _wine_modref *); -extern HGLOBAL PE_LoadResource(struct _wine_modref *wm,HRSRC); -extern HMODULE PE_LoadImage( int hFile, LPCSTR filename, WORD *version ); -extern struct _wine_modref *PE_CreateModule( HMODULE hModule, LPCSTR filename, - DWORD flags, WIN_BOOL builtin ); -extern WIN_BOOL PE_CreateProcess( HANDLE hFile, LPCSTR filename, LPCSTR cmd_line, LPCSTR env, - LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa, - WIN_BOOL inherit, DWORD flags, LPSTARTUPINFOA startup, - LPPROCESS_INFORMATION info ); - -extern void PE_InitTls(void); -extern WIN_BOOL PE_InitDLL(struct _wine_modref *wm, DWORD type, LPVOID lpReserved); - -extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryA(PIMAGE_RESOURCE_DIRECTORY,LPCSTR,DWORD,WIN_BOOL); -extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(PIMAGE_RESOURCE_DIRECTORY,LPCWSTR,DWORD,WIN_BOOL); - -typedef DWORD CALLBACK (*DLLENTRYPROC)(HMODULE,DWORD,LPVOID); - -typedef struct { - WORD popl WINE_PACKED; /* 0x8f 0x05 */ - DWORD addr_popped WINE_PACKED;/* ... */ - BYTE pushl1 WINE_PACKED; /* 0x68 */ - DWORD newret WINE_PACKED; /* ... */ - BYTE pushl2 WINE_PACKED; /* 0x68 */ - DWORD origfun WINE_PACKED; /* original function */ - BYTE ret1 WINE_PACKED; /* 0xc3 */ - WORD addesp WINE_PACKED; /* 0x83 0xc4 */ - BYTE nrofargs WINE_PACKED; /* nr of arguments to add esp, */ - BYTE pushl3 WINE_PACKED; /* 0x68 */ - DWORD oldret WINE_PACKED; /* Filled out from popl above */ - BYTE ret2 WINE_PACKED; /* 0xc3 */ -} ELF_STDCALL_STUB; - -typedef struct { - void* dlhandle; - ELF_STDCALL_STUB *stubs; -} ELF_MODREF; - -extern struct _wine_modref *ELF_LoadLibraryExA( LPCSTR libname, DWORD flags); -extern void ELF_UnloadLibrary(struct _wine_modref *); -extern FARPROC ELF_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName); - -#endif /* __WINE_PE_IMAGE_H */ diff --git a/include/wine/poppack.h b/include/wine/poppack.h deleted file mode 100644 index 7104791591..0000000000 --- a/include/wine/poppack.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef __WINE_PSHPACK_H -#undef __WINE_PSHPACK_H - -#if defined(__GNUC__) || defined(__SUNPRO_C) -#pragma pack() -#elif defined(__SUNPRO_CC) -#warning "Assumes default alignment is 4" -#pragma pack(4) -#elif !defined(RC_INVOKED) -#error "Restoration of the previous alignment isn't supported by the compiler" -#endif /* defined(__GNUC__) || defined(__SUNPRO_C) ; !defined(RC_INVOKED) */ - -#else /* defined(__WINE_PSHPACK_H) */ -#error "Popping alignment isn't possible since no alignment has been pushed" -#endif /* defined(__WINE_PSHPACK_H) */ diff --git a/include/wine/pshpack1.h b/include/wine/pshpack1.h deleted file mode 100644 index 775642dc1c..0000000000 --- a/include/wine/pshpack1.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __WINE_PSHPACK_H -#define __WINE_PSHPACK_H 1 - -#if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) -#pragma pack(1) -#elif !defined(RC_INVOKED) -#error "1 as alignment isn't supported by the compiler" -#endif /* defined(__GNUC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) ; !defined(RC_INVOKED) */ - -#else /* !defined(__WINE_PSHPACK_H) */ -#error "Nested pushing of alignment isn't supported by the compiler" -#endif /* !defined(__WINE_PSHPACK_H) */ - diff --git a/include/wine/pshpack2.h b/include/wine/pshpack2.h deleted file mode 100644 index 8b7e29e7ec..0000000000 --- a/include/wine/pshpack2.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __WINE_PSHPACK_H -#define __WINE_PSHPACK_H 2 - -#if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) -#pragma pack(2) -#elif !defined(RC_INVOKED) -#error "2 as alignment isn't supported by the compiler" -#endif /* defined(__GNUC__) || defined(__SUNPRO_CC) ; !defined(RC_INVOKED) */ - -#else /* !defined(__WINE_PSHPACK_H) */ -#error "Nested pushing of alignment isn't supported by the compiler" -#endif /* !defined(__WINE_PSHPACK_H) */ diff --git a/include/wine/pshpack4.h b/include/wine/pshpack4.h deleted file mode 100644 index bc66f9fb39..0000000000 --- a/include/wine/pshpack4.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __WINE_PSHPACK_H -#define __WINE_PSHPACK_H 4 - -#if defined(__GNUC__) || defined(__SUNPRO_CC) -#pragma pack(4) -#elif defined(__SUNPRO_C) -#pragma pack() -#elif !defined(RC_INVOKED) -#error "4 as alignment isn't supported by the compiler" -#endif /* defined(__GNUC__) || defined(__SUNPRO_CC) ; !defined(RC_INVOKED) */ - -#else /* !defined(__WINE_PSHPACK_H) */ -#error "Nested pushing of alignment isn't supported by the compiler" -#endif /* !defined(__WINE_PSHPACK_H) */ - diff --git a/include/wine/pshpack8.h b/include/wine/pshpack8.h deleted file mode 100644 index d0de2635df..0000000000 --- a/include/wine/pshpack8.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __WINE_PSHPACK_H -#define __WINE_PSHPACK_H 8 - -#if 0 -#pragma pack(8) -#elif !defined(RC_INVOKED) -#error "8 as alignment is not supported" -#endif /* 0 ; !defined(RC_INVOKED) */ - -#else /* !defined(__WINE_PSHPACK_H) */ -#error "Nested pushing of alignment isn't supported by the compiler" -#endif /* !defined(__WINE_PSHPACK_H) */ diff --git a/include/wine/vfw.h b/include/wine/vfw.h deleted file mode 100644 index 94a672c8ed..0000000000 --- a/include/wine/vfw.h +++ /dev/null @@ -1,654 +0,0 @@ -#ifndef __WINE_VFW_H -#define __WINE_VFW_H -#include "pshpack1.h" -#ifdef __cplusplus -extern "C" { -#endif -#ifndef __WINE_WINGDI_H - -typedef struct -{ - short bfType; - long bfSize; - short bfReserved1; - short bfReserved2; - long bfOffBits; -} BITMAPFILEHEADER; - -typedef struct -{ - long biSize; - long biWidth; - long biHeight; - short biPlanes; - short biBitCount; - long biCompression; - long biSizeImage; - long biXPelsPerMeter; - long biYPelsPerMeter; - long biClrUsed; - long biClrImportant; -} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER; -typedef struct { - BITMAPINFOHEADER bmiHeader; - int bmiColors[1]; -} BITMAPINFO, *LPBITMAPINFO; -#endif -#define VFWAPI -#define VFWAPIV -#ifndef __WINE_WINDEF_H -typedef long (__stdcall__ *DRIVERPROC)(long,HDRVR,unsigned int,long,long); -#endif - - - -#ifndef mmioFOURCC -#define mmioFOURCC( ch0, ch1, ch2, ch3 ) \ - ( (long)(unsigned char)(ch0) | ( (long)(unsigned char)(ch1) << 8 ) | \ - ( (long)(unsigned char)(ch2) << 16 ) | ( (long)(unsigned char)(ch3) << 24 ) ) -#endif - -#ifndef aviTWOCC -#define aviTWOCC(ch0, ch1) ((short)(unsigned char)(ch0) | ((short)(unsigned char)(ch1) << 8)) -#endif - -#define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c') -#define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c') - - -/* Installable Compressor M? */ - -/* HIC struct (same layout as Win95 one) */ -typedef struct tagWINE_HIC { - long magic; /* 00: 'Smag' */ - HANDLE curthread; /* 04: */ - long type; /* 08: */ - long handler; /* 0C: */ - HDRVR hdrv; /* 10: */ -#ifndef __cplusplus - long private; /* 14:(handled by SendDriverMessage)*/ -#else - long _private; /* 14:(handled by SendDriverMessage)*/ -#endif - DRIVERPROC driverproc; /* 18:(handled by SendDriverMessage)*/ - long x1; /* 1c: name? */ - short x2; /* 20: */ - long x3; /* 22: */ - /* 26: */ -} WINE_HIC; - -/* error return codes */ -#define ICERR_OK 0 -#define ICERR_DONTDRAW 1 -#define ICERR_NEWPALETTE 2 -#define ICERR_GOTOKEYFRAME 3 -#define ICERR_STOPDRAWING 4 - -#define ICERR_UNSUPPORTED -1 -#define ICERR_BADFORMAT -2 -#define ICERR_MEMORY -3 -#define ICERR_INTERNAL -4 -#define ICERR_BADFLAGS -5 -#define ICERR_BADPARAM -6 -#define ICERR_BADSIZE -7 -#define ICERR_BADHANDLE -8 -#define ICERR_CANTUPDATE -9 -#define ICERR_ABORT -10 -#define ICERR_ERROR -100 -#define ICERR_BADBITDEPTH -200 -#define ICERR_BADIMAGESIZE -201 - -#define ICERR_CUSTOM -400 - -/* ICM Messages */ -#define ICM_USER (DRV_USER+0x0000) - -/* ICM driver message range */ -#define ICM_RESERVED_LOW (DRV_USER+0x1000) -#define ICM_RESERVED_HIGH (DRV_USER+0x2000) -#define ICM_RESERVED ICM_RESERVED_LOW - -#define ICM_GETSTATE (ICM_RESERVED+0) -#define ICM_SETSTATE (ICM_RESERVED+1) -#define ICM_GETINFO (ICM_RESERVED+2) - -#define ICM_CONFIGURE (ICM_RESERVED+10) -#define ICM_ABOUT (ICM_RESERVED+11) -/* */ - -#define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30) -#define ICM_GETQUALITY (ICM_RESERVED+31) -#define ICM_SETQUALITY (ICM_RESERVED+32) - -#define ICM_SET (ICM_RESERVED+40) -#define ICM_GET (ICM_RESERVED+41) - -/* 2 constant FOURCC codes */ -#define ICM_FRAMERATE mmioFOURCC('F','r','m','R') -#define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R') - -#define ICM_COMPRESS_GET_FORMAT (ICM_USER+4) -#define ICM_COMPRESS_GET_SIZE (ICM_USER+5) -#define ICM_COMPRESS_QUERY (ICM_USER+6) -#define ICM_COMPRESS_BEGIN (ICM_USER+7) -#define ICM_COMPRESS (ICM_USER+8) -#define ICM_COMPRESS_END (ICM_USER+9) - -#define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10) -#define ICM_DECOMPRESS_QUERY (ICM_USER+11) -#define ICM_DECOMPRESS_BEGIN (ICM_USER+12) -#define ICM_DECOMPRESS (ICM_USER+13) -#define ICM_DECOMPRESS_END (ICM_USER+14) -#define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29) -#define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30) - -#define ICM_DRAW_QUERY (ICM_USER+31) -#define ICM_DRAW_BEGIN (ICM_USER+15) -#define ICM_DRAW_GET_PALETTE (ICM_USER+16) -#define ICM_DRAW_START (ICM_USER+18) -#define ICM_DRAW_STOP (ICM_USER+19) -#define ICM_DRAW_END (ICM_USER+21) -#define ICM_DRAW_GETTIME (ICM_USER+32) -#define ICM_DRAW (ICM_USER+33) -#define ICM_DRAW_WINDOW (ICM_USER+34) -#define ICM_DRAW_SETTIME (ICM_USER+35) -#define ICM_DRAW_REALIZE (ICM_USER+36) -#define ICM_DRAW_FLUSH (ICM_USER+37) -#define ICM_DRAW_RENDERBUFFER (ICM_USER+38) - -#define ICM_DRAW_START_PLAY (ICM_USER+39) -#define ICM_DRAW_STOP_PLAY (ICM_USER+40) - -#define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50) -#define ICM_DRAW_CHANGEPALETTE (ICM_USER+51) - -#define ICM_GETBUFFERSWANTED (ICM_USER+41) - -#define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42) - -#define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60) -#define ICM_DECOMPRESSEX_QUERY (ICM_USER+61) -#define ICM_DECOMPRESSEX (ICM_USER+62) -#define ICM_DECOMPRESSEX_END (ICM_USER+63) - -#define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70) -#define ICM_SET_STATUS_PROC (ICM_USER+72) - -/* structs */ - -typedef struct { - long dwSize; /* 00: size */ - long fccType; /* 04: type 'vidc' usually */ - long fccHandler; /* 08: */ - long dwVersion; /* 0c: version of compman opening you */ - long dwFlags; /* 10: LOshort is type specific */ - LRESULT dwError; /* 14: */ - void* pV1Reserved; /* 18: */ - void* pV2Reserved; /* 1c: */ - long dnDevNode; /* 20: */ - /* 24: */ -} ICOPEN,*LPICOPEN; - -#define ICCOMPRESS_KEYFRAME 0x00000001L - -typedef struct { - long dwFlags; - LPBITMAPINFOHEADER lpbiOutput; - void* lpOutput; - LPBITMAPINFOHEADER lpbiInput; - void* lpInput; - long* lpckid; - long* lpdwFlags; - long lFrameNum; - long dwFrameSize; - long dwQuality; - LPBITMAPINFOHEADER lpbiPrev; - void* lpPrev; -} ICCOMPRESS; - -long VFWAPIV ICCompress( - HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData, - LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid, - long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality, - LPBITMAPINFOHEADER lpbiPrev,void* lpPrev -); - - -#define ICCompressGetFormat(hic, lpbiInput, lpbiOutput) \ - ICSendMessage( \ - hic,ICM_COMPRESS_GET_FORMAT,(long)(void*)(lpbiInput), \ - (long)(void*)(lpbiOutput) \ - ) - -#define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL) - -#define ICGetDefaultKeyFrameRate(hic,lpint) \ - ICSendMessage( \ - hic, ICM_GETDEFAULTKEYFRAMERATE, \ - (long)(void*)(lpint), \ - 0 ) - -#define ICGetDefaultQuality(hic,lpint) \ - ICSendMessage( \ - hic, ICM_GETDEFAULTQUALITY, \ - (long)(void*)(lpint), \ - 0 ) - - -#define ICCompressBegin(hic, lpbiInput, lpbiOutput) \ - ICSendMessage( \ - hic, ICM_COMPRESS_BEGIN, (long)(void*)(lpbiInput), \ - (long)(void*)(lpbiOutput) \ - ) - -#define ICCompressGetSize(hic, lpbiInput, lpbiOutput) \ - ICSendMessage( \ - hic, ICM_COMPRESS_GET_SIZE, (long)(void*)(lpbiInput), \ - (long)(void*)(lpbiOutput) \ - ) - -#define ICCompressQuery(hic, lpbiInput, lpbiOutput) \ - ICSendMessage( \ - hic, ICM_COMPRESS_QUERY, (long)(void*)(lpbiInput), \ - (long)(void*)(lpbiOutput) \ - ) - - -#define ICCompressEnd(hic) ICSendMessage(hic, ICM_COMPRESS_END, 0, 0) - -/* ICCOMPRESSFRAMES.dwFlags */ -#define ICCOMPRESSFRAMES_PADDING 0x00000001 -typedef struct { - long dwFlags; - LPBITMAPINFOHEADER lpbiOutput; - LPARAM lOutput; - LPBITMAPINFOHEADER lpbiInput; - LPARAM lInput; - long lStartFrame; - long lFrameCount; - long lQuality; - long lDataRate; - long lKeyRate; - long dwRate; - long dwScale; - long dwOverheadPerFrame; - long dwReserved2; - long CALLBACK (*GetData)(LPARAM lInput,long lFrame,void* lpBits,long len); - long CALLBACK (*PutData)(LPARAM lOutput,long lFrame,void* lpBits,long len); -} ICCOMPRESSFRAMES; - -/* Values for wMode of ICOpen() */ -#define ICMODE_COMPRESS 1 -#define ICMODE_DECOMPRESS 2 -#define ICMODE_FASTDECOMPRESS 3 -#define ICMODE_QUERY 4 -#define ICMODE_FASTCOMPRESS 5 -#define ICMODE_DRAW 8 - -/* quality flags */ -#define ICQUALITY_LOW 0 -#define ICQUALITY_HIGH 10000 -#define ICQUALITY_DEFAULT -1 - -typedef struct { - long dwSize; /* 00: */ - long fccType; /* 04:compressor type 'vidc' 'audc' */ - long fccHandler; /* 08:compressor sub-type 'rle ' 'jpeg' 'pcm '*/ - long dwFlags; /* 0c:flags LOshort is type specific */ - long dwVersion; /* 10:version of the driver */ - long dwVersionICM; /* 14:version of the ICM used */ - /* - * under Win32, the driver always returns UNICODE strings. - */ - WCHAR szName[16]; /* 18:short name */ - WCHAR szDescription[128]; /* 38:long name */ - WCHAR szDriver[128]; /* 138:driver that contains compressor*/ - /* 238: */ -} ICINFO; - -/* ICINFO.dwFlags */ -#define VIDCF_QUALITY 0x0001 /* supports quality */ -#define VIDCF_CRUNCH 0x0002 /* supports crunching to a frame size */ -#define VIDCF_TEMPORAL 0x0004 /* supports inter-frame compress */ -#define VIDCF_COMPRESSFRAMES 0x0008 /* wants the compress all frames message */ -#define VIDCF_DRAW 0x0010 /* supports drawing */ -#define VIDCF_FASTTEMPORALC 0x0020 /* does not need prev frame on compress */ -#define VIDCF_FASTTEMPORALD 0x0080 /* does not need prev frame on decompress */ -#define VIDCF_QUALITYTIME 0x0040 /* supports temporal quality */ - -#define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD) - - -/* function shortcuts */ -/* ICM_ABOUT */ -#define ICMF_ABOUT_QUERY 0x00000001 - -#define ICQueryAbout(hic) \ - (ICSendMessage(hic,ICM_ABOUT,(long)-1,ICMF_ABOUT_QUERY)==ICERR_OK) - -#define ICAbout(hic, hwnd) ICSendMessage(hic,ICM_ABOUT,(long)(unsigned int)(hwnd),0) - -/* ICM_CONFIGURE */ -#define ICMF_CONFIGURE_QUERY 0x00000001 -#define ICQueryConfigure(hic) \ - (ICSendMessage(hic,ICM_CONFIGURE,(long)-1,ICMF_CONFIGURE_QUERY)==ICERR_OK) - -#define ICConfigure(hic,hwnd) \ - ICSendMessage(hic,ICM_CONFIGURE,(long)(unsigned int)(hwnd),0) - -/* Decompression stuff */ -#define ICDECOMPRESS_HURRYUP 0x80000000 /* don't draw just buffer (hurry up!) */ -#define ICDECOMPRESS_UPDATE 0x40000000 /* don't draw just update screen */ -#define ICDECOMPRESS_PREROL 0x20000000 /* this frame is before real start */ -#define ICDECOMPRESS_NULLFRAME 0x10000000 /* repeat last frame */ -#define ICDECOMPRESS_NOTKEYFRAME 0x08000000 /* this frame is not a key frame */ - -typedef struct { - long dwFlags; /* flags (from AVI index...) */ - LPBITMAPINFOHEADER lpbiInput; /* BITMAPINFO of compressed data */ - void* lpInput; /* compressed data */ - LPBITMAPINFOHEADER lpbiOutput; /* DIB to decompress to */ - void* lpOutput; - long ckid; /* ckid from AVI file */ -} ICDECOMPRESS; - -typedef struct { - long dwFlags; - LPBITMAPINFOHEADER lpbiSrc; - void* lpSrc; - LPBITMAPINFOHEADER lpbiDst; - void* lpDst; - - /* changed for ICM_DECOMPRESSEX */ - INT xDst; /* destination rectangle */ - INT yDst; - INT dxDst; - INT dyDst; - - INT xSrc; /* source rectangle */ - INT ySrc; - INT dxSrc; - INT dySrc; -} ICDECOMPRESSEX; - - -long VFWAPIV ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits); - - -#define ICDecompressBegin(hic, lpbiInput, lpbiOutput) \ - ICSendMessage( \ - hic, ICM_DECOMPRESS_BEGIN, (long)(void*)(lpbiInput), \ - (long)(void*)(lpbiOutput) \ - ) - -#define ICDecompressQuery(hic, lpbiInput, lpbiOutput) \ - ICSendMessage( \ - hic,ICM_DECOMPRESS_QUERY, (long)(void*)(lpbiInput), \ - (long) (void*)(lpbiOutput) \ - ) - -#define ICDecompressGetFormat(hic, lpbiInput, lpbiOutput) \ - ((long)ICSendMessage( \ - hic,ICM_DECOMPRESS_GET_FORMAT, (long)(void*)(lpbiInput), \ - (long)(void*)(lpbiOutput) \ - )) - -#define ICDecompressGetFormatSize(hic, lpbi) \ - ICDecompressGetFormat(hic, lpbi, NULL) - -#define ICDecompressGetPalette(hic, lpbiInput, lpbiOutput) \ - ICSendMessage( \ - hic, ICM_DECOMPRESS_GET_PALETTE, (long)(void*)(lpbiInput), \ - (long)(void*)(lpbiOutput) \ - ) - -#define ICDecompressSetPalette(hic,lpbiPalette) \ - ICSendMessage( \ - hic,ICM_DECOMPRESS_SET_PALETTE, \ - (long)(void*)(lpbiPalette),0 \ - ) - -#define ICDecompressEnd(hic) ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0) - - -#define ICDRAW_QUERY 0x00000001L /* test for support */ -#define ICDRAW_FULLSCREEN 0x00000002L /* draw to full screen */ -#define ICDRAW_HDC 0x00000004L /* draw to a HDC/HWND */ - - -WIN_BOOL VFWAPI ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo); -LRESULT VFWAPI ICGetInfo(HIC hic,ICINFO *picinfo, long cb); -HIC VFWAPI ICOpen(long fccType, long fccHandler, UINT wMode); -HIC VFWAPI ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler); - -LRESULT VFWAPI ICClose(HIC hic); -LRESULT VFWAPI ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2); -HIC VFWAPI ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags); - -int VFWAPI ICDoSomething(); - -long VFWAPIV ICDrawBegin( - HIC hic, - long dwFlags,/* flags */ - HPALETTE hpal, /* palette to draw with */ - HWND hwnd, /* window to draw to */ - HDC hdc, /* HDC to draw to */ - INT xDst, /* destination rectangle */ - INT yDst, - INT dxDst, - INT dyDst, - LPBITMAPINFOHEADER lpbi, /* format of frame to draw */ - INT xSrc, /* source rectangle */ - INT ySrc, - INT dxSrc, - INT dySrc, - long dwRate, /* frames/second = (dwRate/dwScale) */ - long dwScale -); - -/* as passed to ICM_DRAW_BEGIN (FIXME: correct only for Win32?) */ -typedef struct { - long dwFlags; - HPALETTE hpal; - HWND hwnd; - HDC hdc; - INT xDst; - INT yDst; - INT dxDst; - INT dyDst; - LPBITMAPINFOHEADER lpbi; - INT xSrc; - INT ySrc; - INT dxSrc; - INT dySrc; - long dwRate; - long dwScale; -} ICDRAWBEGIN; - -#define ICDRAW_HURRYUP 0x80000000L /* don't draw just buffer (hurry up!) */ -#define ICDRAW_UPDATE 0x40000000L /* don't draw just update screen */ -#define ICDRAW_PREROLL 0x20000000L /* this frame is before real start */ -#define ICDRAW_NULLFRAME 0x10000000L /* repeat last frame */ -#define ICDRAW_NOTKEYFRAME 0x08000000L /* this frame is not a key frame */ - -typedef struct { - long dwFlags; - void* lpFormat; - void* lpData; - long cbData; - long lTime; -} ICDRAW; - -long VFWAPIV ICDraw(HIC hic,long dwFlags,void* lpFormat,void* lpData,long cbData,long lTime); - - -#define AVIGETFRAMEF_BESTDISPLAYFMT 1 - -typedef struct _AVISTREAMINFOA { - long fccType; - long fccHandler; - long dwFlags; /* AVIIF_* */ - long dwCaps; - short wPriority; - short wLanguage; - long dwScale; - long dwRate; /* dwRate / dwScale == samples/second */ - long dwStart; - long dwLength; /* In units above... */ - long dwInitialFrames; - long dwSuggestedBufferSize; - long dwQuality; - long dwSampleSize; - RECT rcFrame; - long dwEditCount; - long dwFormatChangeCount; - char szName[64]; -} AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA; - -typedef struct _AVISTREAMINFOW { - long fccType; - long fccHandler; - long dwFlags; - long dwCaps; - short wPriority; - short wLanguage; - long dwScale; - long dwRate; /* dwRate / dwScale == samples/second */ - long dwStart; - long dwLength; /* In units above... */ - long dwInitialFrames; - long dwSuggestedBufferSize; - long dwQuality; - long dwSampleSize; - RECT rcFrame; - long dwEditCount; - long dwFormatChangeCount; - short szName[64]; -} AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW; -DECL_WINELIB_TYPE_AW(AVISTREAMINFO) -DECL_WINELIB_TYPE_AW(LPAVISTREAMINFO) -DECL_WINELIB_TYPE_AW(PAVISTREAMINFO) - -#define AVISTREAMINFO_DISABLED 0x00000001 -#define AVISTREAMINFO_FORMATCHANGES 0x00010000 - -/* AVIFILEINFO.dwFlags */ -#define AVIFILEINFO_HASINDEX 0x00000010 -#define AVIFILEINFO_MUSTUSEINDEX 0x00000020 -#define AVIFILEINFO_ISINTERLEAVED 0x00000100 -#define AVIFILEINFO_WASCAPTUREFILE 0x00010000 -#define AVIFILEINFO_COPYRIGHTED 0x00020000 - -/* AVIFILEINFO.dwCaps */ -#define AVIFILECAPS_CANREAD 0x00000001 -#define AVIFILECAPS_CANWRITE 0x00000002 -#define AVIFILECAPS_ALLKEYFRAMES 0x00000010 -#define AVIFILECAPS_NOCOMPRESSION 0x00000020 - -typedef struct _AVIFILEINFOW { - long dwMaxBytesPerSec; - long dwFlags; - long dwCaps; - long dwStreams; - long dwSuggestedBufferSize; - long dwWidth; - long dwHeight; - long dwScale; - long dwRate; - long dwLength; - long dwEditCount; - short szFileType[64]; -} AVIFILEINFOW, * LPAVIFILEINFOW, *PAVIFILEINFOW; - -typedef struct _AVIFILEINFOA { - long dwMaxBytesPerSec; - long dwFlags; - long dwCaps; - long dwStreams; - long dwSuggestedBufferSize; - long dwWidth; - long dwHeight; - long dwScale; - long dwRate; - long dwLength; - long dwEditCount; - char szFileType[64]; -} AVIFILEINFOA, * LPAVIFILEINFOA, *PAVIFILEINFOA; - -DECL_WINELIB_TYPE_AW(AVIFILEINFO) -DECL_WINELIB_TYPE_AW(PAVIFILEINFO) -DECL_WINELIB_TYPE_AW(LPAVIFILEINFO) - -/* AVICOMPRESSOPTIONS.dwFlags. determines presence of fields in below struct */ -#define AVICOMPRESSF_INTERLEAVE 0x00000001 -#define AVICOMPRESSF_DATARATE 0x00000002 -#define AVICOMPRESSF_KEYFRAMES 0x00000004 -#define AVICOMPRESSF_VALID 0x00000008 - -typedef struct { - long fccType; /* stream type, for consistency */ - long fccHandler; /* compressor */ - long dwKeyFrameEvery; /* keyframe rate */ - long dwQuality; /* compress quality 0-10,000 */ - long dwBytesPerSecond; /* unsigned chars per second */ - long dwFlags; /* flags... see below */ - void* lpFormat; /* save format */ - long cbFormat; - void* lpParms; /* compressor options */ - long cbParms; - long dwInterleaveEvery; /* for non-video streams only */ -} AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS; - - - -typedef struct { - long cbSize; // set to sizeof(COMPVARS) before - // calling ICCompressorChoose - long dwFlags; // see below... - HIC hic; // HIC of chosen compressor - long fccType; // basically ICTYPE_VIDEO - long fccHandler; // handler of chosen compressor or - // "" or "DIB " - LPBITMAPINFO lpbiIn; // input format - LPBITMAPINFO lpbiOut; // output format - will compress to this - void* lpBitsOut; - void* lpBitsPrev; - long lFrame; - long lKey; // key frames how often? - long lDataRate; // desired data rate KB/Sec - long lQ; // desired quality - long lKeyCount; - void* lpState; // state of compressor - long cbState; // size of the state -} COMPVARS, *PCOMPVARS; - -// FLAGS for dwFlags element of COMPVARS structure: - - -#define AVIERR_OK 0 -#define MAKE_AVIERR(error) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+error) - -#define AVIERR_UNSUPPORTED MAKE_AVIERR(101) -#define AVIERR_BADFORMAT MAKE_AVIERR(102) -#define AVIERR_MEMORY MAKE_AVIERR(103) -#define AVIERR_INTERNAL MAKE_AVIERR(104) -#define AVIERR_BADFLAGS MAKE_AVIERR(105) -#define AVIERR_BADPARAM MAKE_AVIERR(106) -#define AVIERR_BADSIZE MAKE_AVIERR(107) -#define AVIERR_BADHANDLE MAKE_AVIERR(108) -#define AVIERR_FILEREAD MAKE_AVIERR(109) -#define AVIERR_FILEWRITE MAKE_AVIERR(110) -#define AVIERR_FILEOPEN MAKE_AVIERR(111) -#define AVIERR_COMPRESSOR MAKE_AVIERR(112) -#define AVIERR_NOCOMPRESSOR MAKE_AVIERR(113) -#define AVIERR_READONLY MAKE_AVIERR(114) -#define AVIERR_NODATA MAKE_AVIERR(115) -#define AVIERR_BUFFERTOOSMALL MAKE_AVIERR(116) -#define AVIERR_CANTCOMPRESS MAKE_AVIERR(117) -#define AVIERR_USERABORT MAKE_AVIERR(198) -#define AVIERR_ERROR MAKE_AVIERR(199) - -#ifdef __cplusplus -} -#endif -#endif /* __WINE_VFW_H */ diff --git a/include/wine/winbase.h b/include/wine/winbase.h deleted file mode 100644 index ee12af3632..0000000000 --- a/include/wine/winbase.h +++ /dev/null @@ -1,1791 +0,0 @@ -#ifndef __WINE_WINBASE_H -#define __WINE_WINBASE_H - -#include "basetsd.h" -#include "winnt.h" -#include "winestring.h" -#include "pshpack1.h" - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct tagCOORD { - INT16 x; - INT16 y; -} COORD, *LPCOORD; - - - /* Windows Exit Procedure flag values */ -#define WEP_FREE_DLL 0 -#define WEP_SYSTEM_EXIT 1 - -typedef DWORD CALLBACK (*LPTHREAD_START_ROUTINE)(LPVOID); - -#define EXCEPTION_DEBUG_EVENT 1 -#define CREATE_THREAD_DEBUG_EVENT 2 -#define CREATE_PROCESS_DEBUG_EVENT 3 -#define EXIT_THREAD_DEBUG_EVENT 4 -#define EXIT_PROCESS_DEBUG_EVENT 5 -#define LOAD_DLL_DEBUG_EVENT 6 -#define UNLOAD_DLL_DEBUG_EVENT 7 -#define OUTPUT_DEBUG_STRING_EVENT 8 -#define RIP_EVENT 9 - -typedef struct _EXCEPTION_DEBUG_INFO { - EXCEPTION_RECORD ExceptionRecord; - DWORD dwFirstChance; -} EXCEPTION_DEBUG_INFO; - -typedef struct _CREATE_THREAD_DEBUG_INFO { - HANDLE hThread; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; -} CREATE_THREAD_DEBUG_INFO; - -typedef struct _CREATE_PROCESS_DEBUG_INFO { - HANDLE hFile; - HANDLE hProcess; - HANDLE hThread; - LPVOID lpBaseOfImage; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; - LPVOID lpImageName; - WORD fUnicode; -} CREATE_PROCESS_DEBUG_INFO; - -typedef struct _EXIT_THREAD_DEBUG_INFO { - DWORD dwExitCode; -} EXIT_THREAD_DEBUG_INFO; - -typedef struct _EXIT_PROCESS_DEBUG_INFO { - DWORD dwExitCode; -} EXIT_PROCESS_DEBUG_INFO; - -typedef struct _LOAD_DLL_DEBUG_INFO { - HANDLE hFile; - LPVOID lpBaseOfDll; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpImageName; - WORD fUnicode; -} LOAD_DLL_DEBUG_INFO; - -typedef struct _UNLOAD_DLL_DEBUG_INFO { - LPVOID lpBaseOfDll; -} UNLOAD_DLL_DEBUG_INFO; - -typedef struct _OUTPUT_DEBUG_STRING_INFO { - LPSTR lpDebugStringData; - WORD fUnicode; - WORD nDebugStringLength; -} OUTPUT_DEBUG_STRING_INFO; - -typedef struct _RIP_INFO { - DWORD dwError; - DWORD dwType; -} RIP_INFO; - -typedef struct _DEBUG_EVENT { - DWORD dwDebugEventCode; - DWORD dwProcessId; - DWORD dwThreadId; - union { - EXCEPTION_DEBUG_INFO Exception; - CREATE_THREAD_DEBUG_INFO CreateThread; - CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; - EXIT_THREAD_DEBUG_INFO ExitThread; - EXIT_PROCESS_DEBUG_INFO ExitProcess; - LOAD_DLL_DEBUG_INFO LoadDll; - UNLOAD_DLL_DEBUG_INFO UnloadDll; - OUTPUT_DEBUG_STRING_INFO DebugString; - RIP_INFO RipInfo; - } u; -} DEBUG_EVENT, *LPDEBUG_EVENT; - -#define OFS_MAXPATHNAME 128 -typedef struct -{ - BYTE cBytes; - BYTE fFixedDisk; - WORD nErrCode; - BYTE reserved[4]; - BYTE szPathName[OFS_MAXPATHNAME]; -} OFSTRUCT, *LPOFSTRUCT; - -#define OF_READ 0x0000 -#define OF_WRITE 0x0001 -#define OF_READWRITE 0x0002 -#define OF_SHARE_COMPAT 0x0000 -#define OF_SHARE_EXCLUSIVE 0x0010 -#define OF_SHARE_DENY_WRITE 0x0020 -#define OF_SHARE_DENY_READ 0x0030 -#define OF_SHARE_DENY_NONE 0x0040 -#define OF_PARSE 0x0100 -#define OF_DELETE 0x0200 -#define OF_VERIFY 0x0400 /* Used with OF_REOPEN */ -#define OF_SEARCH 0x0400 /* Used without OF_REOPEN */ -#define OF_CANCEL 0x0800 -#define OF_CREATE 0x1000 -#define OF_PROMPT 0x2000 -#define OF_EXIST 0x4000 -#define OF_REOPEN 0x8000 - -/* SetErrorMode values */ -#define SEM_FAILCRITICALERRORS 0x0001 -#define SEM_NOGPFAULTERRORBOX 0x0002 -#define SEM_NOALIGNMENTFAULTEXCEPT 0x0004 -#define SEM_NOOPENFILEERRORBOX 0x8000 - -/* CopyFileEx flags */ -#define COPY_FILE_FAIL_IF_EXISTS 0x00000001 -#define COPY_FILE_RESTARTABLE 0x00000002 -#define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004 - -/* GetTempFileName() Flags */ -#define TF_FORCEDRIVE 0x80 - -#define DRIVE_CANNOTDETERMINE 0 -#define DRIVE_DOESNOTEXIST 1 -#define DRIVE_REMOVABLE 2 -#define DRIVE_FIXED 3 -#define DRIVE_REMOTE 4 -/* Win32 additions */ -#define DRIVE_CDROM 5 -#define DRIVE_RAMDISK 6 - -/* The security attributes structure */ -typedef struct _SECURITY_ATTRIBUTES -{ - DWORD nLength; - LPVOID lpSecurityDescriptor; - WIN_BOOL bInheritHandle; -} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; - -#ifndef _FILETIME_ -#define _FILETIME_ -/* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */ -typedef struct -{ - DWORD dwLowDateTime; - DWORD dwHighDateTime; -} FILETIME, *LPFILETIME; -#endif /* _FILETIME_ */ - -/* Find* structures */ -typedef struct -{ - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - CHAR cFileName[260]; - CHAR cAlternateFileName[14]; -} WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; - -typedef struct -{ - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - WCHAR cFileName[260]; - WCHAR cAlternateFileName[14]; -} WIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; - -DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA) -DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA) - -typedef struct -{ - LPVOID lpData; - DWORD cbData; - BYTE cbOverhead; - BYTE iRegionIndex; - WORD wFlags; - union { - struct { - HANDLE hMem; - DWORD dwReserved[3]; - } Block; - struct { - DWORD dwCommittedSize; - DWORD dwUnCommittedSize; - LPVOID lpFirstBlock; - LPVOID lpLastBlock; - } Region; - } Foo; -} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY; - -#define PROCESS_HEAP_REGION 0x0001 -#define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002 -#define PROCESS_HEAP_ENTRY_BUSY 0x0004 -#define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010 -#define PROCESS_HEAP_ENTRY_DDESHARE 0x0020 - -#define INVALID_HANDLE_VALUE16 ((HANDLE16) -1) -#define INVALID_HANDLE_VALUE ((HANDLE) -1) - -#define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF) - -/* comm */ - -#define CBR_110 0xFF10 -#define CBR_300 0xFF11 -#define CBR_600 0xFF12 -#define CBR_1200 0xFF13 -#define CBR_2400 0xFF14 -#define CBR_4800 0xFF15 -#define CBR_9600 0xFF16 -#define CBR_14400 0xFF17 -#define CBR_19200 0xFF18 -#define CBR_38400 0xFF1B -#define CBR_56000 0xFF1F -#define CBR_128000 0xFF23 -#define CBR_256000 0xFF27 - -#define NOPARITY 0 -#define ODDPARITY 1 -#define EVENPARITY 2 -#define MARKPARITY 3 -#define SPACEPARITY 4 -#define ONESTOPBIT 0 -#define ONE5STOPBITS 1 -#define TWOSTOPBITS 2 - -#define IGNORE 0 -#define INFINITE16 0xFFFF -#define INFINITE 0xFFFFFFFF - -#define CE_RXOVER 0x0001 -#define CE_OVERRUN 0x0002 -#define CE_RXPARITY 0x0004 -#define CE_FRAME 0x0008 -#define CE_BREAK 0x0010 -#define CE_CTSTO 0x0020 -#define CE_DSRTO 0x0040 -#define CE_RLSDTO 0x0080 -#define CE_TXFULL 0x0100 -#define CE_PTO 0x0200 -#define CE_IOE 0x0400 -#define CE_DNS 0x0800 -#define CE_OOP 0x1000 -#define CE_MODE 0x8000 - -#define IE_BADID -1 -#define IE_OPEN -2 -#define IE_NOPEN -3 -#define IE_MEMORY -4 -#define IE_DEFAULT -5 -#define IE_HARDWARE -10 -#define IE_BYTESIZE -11 -#define IE_BAUDRATE -12 - -#define EV_RXCHAR 0x0001 -#define EV_RXFLAG 0x0002 -#define EV_TXEMPTY 0x0004 -#define EV_CTS 0x0008 -#define EV_DSR 0x0010 -#define EV_RLSD 0x0020 -#define EV_BREAK 0x0040 -#define EV_ERR 0x0080 -#define EV_RING 0x0100 -#define EV_PERR 0x0200 -#define EV_CTSS 0x0400 -#define EV_DSRS 0x0800 -#define EV_RLSDS 0x1000 -#define EV_RINGTE 0x2000 -#define EV_RingTe EV_RINGTE - -#define SETXOFF 1 -#define SETXON 2 -#define SETRTS 3 -#define CLRRTS 4 -#define SETDTR 5 -#define CLRDTR 6 -#define RESETDEV 7 -#define SETBREAK 8 -#define CLRBREAK 9 - -#define GETBASEIRQ 10 - -/* Purge functions for Comm Port */ -#define PURGE_TXABORT 0x0001 /* Kill the pending/current writes to the - comm port */ -#define PURGE_RXABORT 0x0002 /*Kill the pending/current reads to - the comm port */ -#define PURGE_TXCLEAR 0x0004 /* Kill the transmit queue if there*/ -#define PURGE_RXCLEAR 0x0008 /* Kill the typeahead buffer if there*/ - - -/* Modem Status Flags */ -#define MS_CTS_ON ((DWORD)0x0010) -#define MS_DSR_ON ((DWORD)0x0020) -#define MS_RING_ON ((DWORD)0x0040) -#define MS_RLSD_ON ((DWORD)0x0080) - -#define RTS_CONTROL_DISABLE 0 -#define RTS_CONTROL_ENABLE 1 -#define RTS_CONTROL_HANDSHAKE 2 -#define RTS_CONTROL_TOGGLE 3 - -#define DTR_CONTROL_DISABLE 0 -#define DTR_CONTROL_ENABLE 1 -#define DTR_CONTROL_HANDSHAKE 2 - -#define CSTF_CTSHOLD 0x01 -#define CSTF_DSRHOLD 0x02 -#define CSTF_RLSDHOLD 0x04 -#define CSTF_XOFFHOLD 0x08 -#define CSTF_XOFFSENT 0x10 -#define CSTF_EOF 0x20 -#define CSTF_TXIM 0x40 - -#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i))) -#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i))) -#define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE) - -/* Predefined resource types */ -#define RT_CURSORA MAKEINTRESOURCEA(1) -#define RT_CURSORW MAKEINTRESOURCEW(1) -#define RT_CURSOR WINELIB_NAME_AW(RT_CURSOR) -#define RT_BITMAPA MAKEINTRESOURCEA(2) -#define RT_BITMAPW MAKEINTRESOURCEW(2) -#define RT_BITMAP WINELIB_NAME_AW(RT_BITMAP) -#define RT_ICONA MAKEINTRESOURCEA(3) -#define RT_ICONW MAKEINTRESOURCEW(3) -#define RT_ICON WINELIB_NAME_AW(RT_ICON) -#define RT_MENUA MAKEINTRESOURCEA(4) -#define RT_MENUW MAKEINTRESOURCEW(4) -#define RT_MENU WINELIB_NAME_AW(RT_MENU) -#define RT_DIALOGA MAKEINTRESOURCEA(5) -#define RT_DIALOGW MAKEINTRESOURCEW(5) -#define RT_DIALOG WINELIB_NAME_AW(RT_DIALOG) -#define RT_STRINGA MAKEINTRESOURCEA(6) -#define RT_STRINGW MAKEINTRESOURCEW(6) -#define RT_STRING WINELIB_NAME_AW(RT_STRING) -#define RT_FONTDIRA MAKEINTRESOURCEA(7) -#define RT_FONTDIRW MAKEINTRESOURCEW(7) -#define RT_FONTDIR WINELIB_NAME_AW(RT_FONTDIR) -#define RT_FONTA MAKEINTRESOURCEA(8) -#define RT_FONTW MAKEINTRESOURCEW(8) -#define RT_FONT WINELIB_NAME_AW(RT_FONT) -#define RT_ACCELERATORA MAKEINTRESOURCEA(9) -#define RT_ACCELERATORW MAKEINTRESOURCEW(9) -#define RT_ACCELERATOR WINELIB_NAME_AW(RT_ACCELERATOR) -#define RT_RCDATAA MAKEINTRESOURCEA(10) -#define RT_RCDATAW MAKEINTRESOURCEW(10) -#define RT_RCDATA WINELIB_NAME_AW(RT_RCDATA) -#define RT_MESSAGELISTA MAKEINTRESOURCEA(11) -#define RT_MESSAGELISTW MAKEINTRESOURCEW(11) -#define RT_MESSAGELIST WINELIB_NAME_AW(RT_MESSAGELIST) -#define RT_GROUP_CURSORA MAKEINTRESOURCEA(12) -#define RT_GROUP_CURSORW MAKEINTRESOURCEW(12) -#define RT_GROUP_CURSOR WINELIB_NAME_AW(RT_GROUP_CURSOR) -#define RT_GROUP_ICONA MAKEINTRESOURCEA(14) -#define RT_GROUP_ICONW MAKEINTRESOURCEW(14) -#define RT_GROUP_ICON WINELIB_NAME_AW(RT_GROUP_ICON) - - -#define LMEM_FIXED 0 -#define LMEM_MOVEABLE 0x0002 -#define LMEM_NOCOMPACT 0x0010 -#define LMEM_NODISCARD 0x0020 -#define LMEM_ZEROINIT 0x0040 -#define LMEM_MODIFY 0x0080 -#define LMEM_DISCARDABLE 0x0F00 -#define LMEM_DISCARDED 0x4000 -#define LMEM_LOCKCOUNT 0x00FF - -#define LPTR (LMEM_FIXED | LMEM_ZEROINIT) - -#define GMEM_FIXED 0x0000 -#define GMEM_MOVEABLE 0x0002 -#define GMEM_NOCOMPACT 0x0010 -#define GMEM_NODISCARD 0x0020 -#define GMEM_ZEROINIT 0x0040 -#define GMEM_MODIFY 0x0080 -#define GMEM_DISCARDABLE 0x0100 -#define GMEM_NOT_BANKED 0x1000 -#define GMEM_SHARE 0x2000 -#define GMEM_DDESHARE 0x2000 -#define GMEM_NOTIFY 0x4000 -#define GMEM_LOWER GMEM_NOT_BANKED -#define GMEM_DISCARDED 0x4000 -#define GMEM_LOCKCOUNT 0x00ff -#define GMEM_INVALID_HANDLE 0x8000 - -#define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT) -#define GPTR (GMEM_FIXED | GMEM_ZEROINIT) - - -typedef struct tagMEMORYSTATUS -{ - DWORD dwLength; - DWORD dwMemoryLoad; - DWORD dwTotalPhys; - DWORD dwAvailPhys; - DWORD dwTotalPageFile; - DWORD dwAvailPageFile; - DWORD dwTotalVirtual; - DWORD dwAvailVirtual; -} MEMORYSTATUS, *LPMEMORYSTATUS; - - -#ifndef NOLOGERROR - -/* LogParamError and LogError values */ - -/* Error modifier bits */ -#define ERR_WARNING 0x8000 -#define ERR_PARAM 0x4000 - -#define ERR_SIZE_MASK 0x3000 -#define ERR_BYTE 0x1000 -#define ERR_WORD 0x2000 -#define ERR_DWORD 0x3000 - -/* LogParamError() values */ - -/* Generic parameter values */ -#define ERR_BAD_VALUE 0x6001 -#define ERR_BAD_FLAGS 0x6002 -#define ERR_BAD_INDEX 0x6003 -#define ERR_BAD_DVALUE 0x7004 -#define ERR_BAD_DFLAGS 0x7005 -#define ERR_BAD_DINDEX 0x7006 -#define ERR_BAD_PTR 0x7007 -#define ERR_BAD_FUNC_PTR 0x7008 -#define ERR_BAD_SELECTOR 0x6009 -#define ERR_BAD_STRING_PTR 0x700a -#define ERR_BAD_HANDLE 0x600b - -/* KERNEL parameter errors */ -#define ERR_BAD_HINSTANCE 0x6020 -#define ERR_BAD_HMODULE 0x6021 -#define ERR_BAD_GLOBAL_HANDLE 0x6022 -#define ERR_BAD_LOCAL_HANDLE 0x6023 -#define ERR_BAD_ATOM 0x6024 -#define ERR_BAD_HFILE 0x6025 - -/* USER parameter errors */ -#define ERR_BAD_HWND 0x6040 -#define ERR_BAD_HMENU 0x6041 -#define ERR_BAD_HCURSOR 0x6042 -#define ERR_BAD_HICON 0x6043 -#define ERR_BAD_HDWP 0x6044 -#define ERR_BAD_CID 0x6045 -#define ERR_BAD_HDRVR 0x6046 - -/* GDI parameter errors */ -#define ERR_BAD_COORDS 0x7060 -#define ERR_BAD_GDI_OBJECT 0x6061 -#define ERR_BAD_HDC 0x6062 -#define ERR_BAD_HPEN 0x6063 -#define ERR_BAD_HFONT 0x6064 -#define ERR_BAD_HBRUSH 0x6065 -#define ERR_BAD_HBITMAP 0x6066 -#define ERR_BAD_HRGN 0x6067 -#define ERR_BAD_HPALETTE 0x6068 -#define ERR_BAD_HMETAFILE 0x6069 - - -/* LogError() values */ - -/* KERNEL errors */ -#define ERR_GALLOC 0x0001 -#define ERR_GREALLOC 0x0002 -#define ERR_GLOCK 0x0003 -#define ERR_LALLOC 0x0004 -#define ERR_LREALLOC 0x0005 -#define ERR_LLOCK 0x0006 -#define ERR_ALLOCRES 0x0007 -#define ERR_LOCKRES 0x0008 -#define ERR_LOADMODULE 0x0009 - -/* USER errors */ -#define ERR_CREATEDLG 0x0040 -#define ERR_CREATEDLG2 0x0041 -#define ERR_REGISTERCLASS 0x0042 -#define ERR_DCBUSY 0x0043 -#define ERR_CREATEWND 0x0044 -#define ERR_STRUCEXTRA 0x0045 -#define ERR_LOADSTR 0x0046 -#define ERR_LOADMENU 0x0047 -#define ERR_NESTEDBEGINPAINT 0x0048 -#define ERR_BADINDEX 0x0049 -#define ERR_CREATEMENU 0x004a - -/* GDI errors */ -#define ERR_CREATEDC 0x0080 -#define ERR_CREATEMETA 0x0081 -#define ERR_DELOBJSELECTED 0x0082 -#define ERR_SELBITMAP 0x0083 - - - -/* Debugging support (DEBUG SYSTEM ONLY) */ -typedef struct -{ - UINT16 flags; - DWORD dwOptions WINE_PACKED; - DWORD dwFilter WINE_PACKED; - CHAR achAllocModule[8] WINE_PACKED; - DWORD dwAllocBreak WINE_PACKED; - DWORD dwAllocCount WINE_PACKED; -} WINDEBUGINFO, *LPWINDEBUGINFO; - -/* WINDEBUGINFO flags values */ -#define WDI_OPTIONS 0x0001 -#define WDI_FILTER 0x0002 -#define WDI_ALLOCBREAK 0x0004 - -/* dwOptions values */ -#define DBO_CHECKHEAP 0x0001 -#define DBO_BUFFERFILL 0x0004 -#define DBO_DISABLEGPTRAPPING 0x0010 -#define DBO_CHECKFREE 0x0020 - -#define DBO_SILENT 0x8000 - -#define DBO_TRACEBREAK 0x2000 -#define DBO_WARNINGBREAK 0x1000 -#define DBO_NOERRORBREAK 0x0800 -#define DBO_NOFATALBREAK 0x0400 -#define DBO_INT3BREAK 0x0100 - -/* DebugOutput flags values */ -#define DBF_TRACE 0x0000 -#define DBF_WARNING 0x4000 -#define DBF_ERROR 0x8000 -#define DBF_FATAL 0xc000 - -/* dwFilter values */ -#define DBF_KERNEL 0x1000 -#define DBF_KRN_MEMMAN 0x0001 -#define DBF_KRN_LOADMODULE 0x0002 -#define DBF_KRN_SEGMENTLOAD 0x0004 -#define DBF_USER 0x0800 -#define DBF_GDI 0x0400 -#define DBF_MMSYSTEM 0x0040 -#define DBF_PENWIN 0x0020 -#define DBF_APPLICATION 0x0008 -#define DBF_DRIVER 0x0010 - -#endif /* NOLOGERROR */ - -typedef struct { - WORD wYear; - WORD wMonth; - WORD wDayOfWeek; - WORD wDay; - WORD wHour; - WORD wMinute; - WORD wSecond; - WORD wMilliseconds; -} SYSTEMTIME, *LPSYSTEMTIME; - -/* The 'overlapped' data structure used by async I/O functions. - */ -typedef struct { - DWORD Internal; - DWORD InternalHigh; - DWORD Offset; - DWORD OffsetHigh; - HANDLE hEvent; -} OVERLAPPED, *LPOVERLAPPED; - -/* Process startup information. - */ - -/* STARTUPINFO.dwFlags */ -#define STARTF_USESHOWWINDOW 0x00000001 -#define STARTF_USESIZE 0x00000002 -#define STARTF_USEPOSITION 0x00000004 -#define STARTF_USECOUNTCHARS 0x00000008 -#define STARTF_USEFILLATTRIBUTE 0x00000010 -#define STARTF_RUNFULLSCREEN 0x00000020 -#define STARTF_FORCEONFEEDBACK 0x00000040 -#define STARTF_FORCEOFFFEEDBACK 0x00000080 -#define STARTF_USESTDHANDLES 0x00000100 -#define STARTF_USEHOTKEY 0x00000200 - -typedef struct { - DWORD cb; /* 00: size of struct */ - LPSTR lpReserved; /* 04: */ - LPSTR lpDesktop; /* 08: */ - LPSTR lpTitle; /* 0c: */ - DWORD dwX; /* 10: */ - DWORD dwY; /* 14: */ - DWORD dwXSize; /* 18: */ - DWORD dwYSize; /* 1c: */ - DWORD dwXCountChars; /* 20: */ - DWORD dwYCountChars; /* 24: */ - DWORD dwFillAttribute; /* 28: */ - DWORD dwFlags; /* 2c: */ - WORD wShowWindow; /* 30: */ - WORD cbReserved2; /* 32: */ - BYTE *lpReserved2; /* 34: */ - HANDLE hStdInput; /* 38: */ - HANDLE hStdOutput; /* 3c: */ - HANDLE hStdError; /* 40: */ -} STARTUPINFOA, *LPSTARTUPINFOA; - -typedef struct { - DWORD cb; - LPWSTR lpReserved; - LPWSTR lpDesktop; - LPWSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - BYTE *lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -} STARTUPINFOW, *LPSTARTUPINFOW; - -DECL_WINELIB_TYPE_AW(STARTUPINFO) -DECL_WINELIB_TYPE_AW(LPSTARTUPINFO) - -typedef struct { - HANDLE hProcess; - HANDLE hThread; - DWORD dwProcessId; - DWORD dwThreadId; -} PROCESS_INFORMATION,*LPPROCESS_INFORMATION; - -typedef struct { - LONG Bias; - WCHAR StandardName[32]; - SYSTEMTIME StandardDate; - LONG StandardBias; - WCHAR DaylightName[32]; - SYSTEMTIME DaylightDate; - LONG DaylightBias; -} TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION; - -#define TIME_ZONE_ID_UNKNOWN 0 -#define TIME_ZONE_ID_STANDARD 1 -#define TIME_ZONE_ID_DAYLIGHT 2 - -/* CreateProcess: dwCreationFlag values - */ -#define DEBUG_PROCESS 0x00000001 -#define DEBUG_ONLY_THIS_PROCESS 0x00000002 -#define CREATE_SUSPENDED 0x00000004 -#define DETACHED_PROCESS 0x00000008 -#define CREATE_NEW_CONSOLE 0x00000010 -#define NORMAL_PRIORITY_CLASS 0x00000020 -#define IDLE_PRIORITY_CLASS 0x00000040 -#define HIGH_PRIORITY_CLASS 0x00000080 -#define REALTIME_PRIORITY_CLASS 0x00000100 -#define CREATE_NEW_PROCESS_GROUP 0x00000200 -#define CREATE_UNICODE_ENVIRONMENT 0x00000400 -#define CREATE_SEPARATE_WOW_VDM 0x00000800 -#define CREATE_SHARED_WOW_VDM 0x00001000 -#define CREATE_DEFAULT_ERROR_MODE 0x04000000 -#define CREATE_NO_WINDOW 0x08000000 -#define PROFILE_USER 0x10000000 -#define PROFILE_KERNEL 0x20000000 -#define PROFILE_SERVER 0x40000000 - - -/* File object type definitions - */ -#define FILE_TYPE_UNKNOWN 0 -#define FILE_TYPE_DISK 1 -#define FILE_TYPE_CHAR 2 -#define FILE_TYPE_PIPE 3 -#define FILE_TYPE_REMOTE 32768 - -/* File creation flags - */ -#define FILE_FLAG_WRITE_THROUGH 0x80000000UL -#define FILE_FLAG_OVERLAPPED 0x40000000L -#define FILE_FLAG_NO_BUFFERING 0x20000000L -#define FILE_FLAG_RANDOM_ACCESS 0x10000000L -#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000L -#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000L -#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L -#define FILE_FLAG_POSIX_SEMANTICS 0x01000000L -#define CREATE_NEW 1 -#define CREATE_ALWAYS 2 -#define OPEN_EXISTING 3 -#define OPEN_ALWAYS 4 -#define TRUNCATE_EXISTING 5 - -/* Standard handle identifiers - */ -#define STD_INPUT_HANDLE ((DWORD) -10) -#define STD_OUTPUT_HANDLE ((DWORD) -11) -#define STD_ERROR_HANDLE ((DWORD) -12) - -typedef struct -{ - int dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - int dwVolumeSerialNumber; - int nFileSizeHigh; - int nFileSizeLow; - int nNumberOfLinks; - int nFileIndexHigh; - int nFileIndexLow; -} BY_HANDLE_FILE_INFORMATION ; - - -typedef struct _SYSTEM_POWER_STATUS -{ - WIN_BOOL16 ACLineStatus; - BYTE BatteryFlag; - BYTE BatteryLifePercent; - BYTE reserved; - DWORD BatteryLifeTime; - DWORD BatteryFullLifeTime; -} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS; - -typedef struct _MEMORY_BASIC_INFORMATION -{ - LPVOID BaseAddress; - LPVOID AllocationBase; - DWORD AllocationProtect; - DWORD RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} MEMORY_BASIC_INFORMATION,*LPMEMORY_BASIC_INFORMATION; - - -typedef WIN_BOOL CALLBACK (*CODEPAGE_ENUMPROCA)(LPSTR); -typedef WIN_BOOL CALLBACK (*CODEPAGE_ENUMPROCW)(LPWSTR); -DECL_WINELIB_TYPE_AW(CODEPAGE_ENUMPROC) -typedef WIN_BOOL CALLBACK (*LOCALE_ENUMPROCA)(LPSTR); -typedef WIN_BOOL CALLBACK (*LOCALE_ENUMPROCW)(LPWSTR); -DECL_WINELIB_TYPE_AW(LOCALE_ENUMPROC) - -typedef struct tagSYSTEM_INFO -{ - union { - DWORD dwOemId; /* Obsolete field - do not use */ - struct { - WORD wProcessorArchitecture; - WORD wReserved; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - DWORD dwPageSize; - LPVOID lpMinimumApplicationAddress; - LPVOID lpMaximumApplicationAddress; - DWORD dwActiveProcessorMask; - DWORD dwNumberOfProcessors; - DWORD dwProcessorType; - DWORD dwAllocationGranularity; - WORD wProcessorLevel; - WORD wProcessorRevision; -} SYSTEM_INFO, *LPSYSTEM_INFO; - -/* {G,S}etPriorityClass */ -#define NORMAL_PRIORITY_CLASS 0x00000020 -#define IDLE_PRIORITY_CLASS 0x00000040 -#define HIGH_PRIORITY_CLASS 0x00000080 -#define REALTIME_PRIORITY_CLASS 0x00000100 - -typedef WIN_BOOL CALLBACK (*ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG); -typedef WIN_BOOL CALLBACK (*ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG); -typedef WIN_BOOL CALLBACK (*ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG); -typedef WIN_BOOL CALLBACK (*ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG); -typedef WIN_BOOL CALLBACK (*ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG); -typedef WIN_BOOL CALLBACK (*ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG); - -DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC) -DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC) -DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC) - -/* flags that can be passed to LoadLibraryEx */ -#define DONT_RESOLVE_DLL_REFERENCES 0x00000001 -#define LOAD_LIBRARY_AS_DATAFILE 0x00000002 -#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008 - -/* ifdef _x86_ ... */ -typedef struct _LDT_ENTRY { - WORD LimitLow; - WORD BaseLow; - union { - struct { - BYTE BaseMid; - BYTE Flags1;/*Declare as bytes to avoid alignment problems */ - BYTE Flags2; - BYTE BaseHi; - } Bytes; - struct { - unsigned BaseMid : 8; - unsigned Type : 5; - unsigned Dpl : 2; - unsigned Pres : 1; - unsigned LimitHi : 4; - unsigned Sys : 1; - unsigned Reserved_0 : 1; - unsigned Default_Big : 1; - unsigned Granularity : 1; - unsigned BaseHi : 8; - } Bits; - } HighWord; -} LDT_ENTRY, *LPLDT_ENTRY; - - -typedef enum _GET_FILEEX_INFO_LEVELS { - GetFileExInfoStandard -} GET_FILEEX_INFO_LEVELS; - -typedef struct _WIN32_FILE_ATTRIBUTES_DATA { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; -} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA; - -typedef struct _DllVersionInfo { - DWORD cbSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformID; -} DLLVERSIONINFO; - -/* - * This one seems to be a Win32 only definition. It also is defined with - * WINAPI instead of CALLBACK in the windows headers. - */ -typedef DWORD WINAPI (*LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, - LARGE_INTEGER, DWORD, DWORD, HANDLE, - HANDLE, LPVOID); - - -#define WAIT_FAILED 0xffffffff -#define WAIT_OBJECT_0 0 -#define WAIT_ABANDONED STATUS_ABANDONED_WAIT_0 -#define WAIT_ABANDONED_0 STATUS_ABANDONED_WAIT_0 -#define WAIT_IO_COMPLETION STATUS_USER_APC -#define WAIT_TIMEOUT STATUS_TIMEOUT -#define STILL_ACTIVE STATUS_PENDING - -#define PAGE_NOACCESS 0x01 -#define PAGE_READONLY 0x02 -#define PAGE_READWRITE 0x04 -#define PAGE_WRITECOPY 0x08 -#define PAGE_EXECUTE 0x10 -#define PAGE_EXECUTE_READ 0x20 -#define PAGE_EXECUTE_READWRITE 0x40 -#define PAGE_EXECUTE_WRITECOPY 0x80 -#define PAGE_GUARD 0x100 -#define PAGE_NOCACHE 0x200 - -#define MEM_COMMIT 0x00001000 -#define MEM_RESERVE 0x00002000 -#define MEM_DECOMMIT 0x00004000 -#define MEM_RELEASE 0x00008000 -#define MEM_FREE 0x00010000 -#define MEM_PRIVATE 0x00020000 -#define MEM_MAPPED 0x00040000 -#define MEM_TOP_DOWN 0x00100000 -#ifdef __WINE__ -#define MEM_SYSTEM 0x80000000 -#endif - -#define SEC_FILE 0x00800000 -#define SEC_IMAGE 0x01000000 -#define SEC_RESERVE 0x04000000 -#define SEC_COMMIT 0x08000000 -#define SEC_NOCACHE 0x10000000 - -#define FILE_BEGIN 0 -#define FILE_CURRENT 1 -#define FILE_END 2 - -#define FILE_CASE_SENSITIVE_SEARCH 0x00000001 -#define FILE_CASE_PRESERVED_NAMES 0x00000002 -#define FILE_UNICODE_ON_DISK 0x00000004 -#define FILE_PERSISTENT_ACLS 0x00000008 - -#define FILE_MAP_COPY 0x00000001 -#define FILE_MAP_WRITE 0x00000002 -#define FILE_MAP_READ 0x00000004 -#define FILE_MAP_ALL_ACCESS 0x000f001f - -#define MOVEFILE_REPLACE_EXISTING 0x00000001 -#define MOVEFILE_COPY_ALLOWED 0x00000002 -#define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004 - -#define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH -#define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES -#define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK - -#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION -#define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT -#define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT -#define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP -#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED -#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND -#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO -#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT -#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION -#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW -#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK -#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW -#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO -#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW -#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION -#define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR -#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION -#define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION -#define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW -#define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION -#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION -#define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE -#define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT - -/* Wine extension; Windows doesn't have a name for this code */ -#define EXCEPTION_CRITICAL_SECTION_WAIT 0xc0000194 - -#define DUPLICATE_CLOSE_SOURCE 0x00000001 -#define DUPLICATE_SAME_ACCESS 0x00000002 - -#define HANDLE_FLAG_INHERIT 0x00000001 -#define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002 - -#define HINSTANCE_ERROR 32 - -#define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN -#define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1) -#define THREAD_PRIORITY_NORMAL 0 -#define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX -#define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1) -#define THREAD_PRIORITY_ERROR_RETURN (0x7fffffff) -#define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT -#define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE - -/* Could this type be considered opaque? */ -typedef struct { - LPVOID DebugInfo; - LONG LockCount; - LONG RecursionCount; - HANDLE OwningThread; - HANDLE LockSemaphore; - DWORD Reserved; -}CRITICAL_SECTION; - -#ifdef __WINE__ -#define CRITICAL_SECTION_INIT { 0, -1, 0, 0, 0, 0 } -#endif - -typedef struct { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[128]; -} OSVERSIONINFO16; - -typedef struct { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[128]; -} OSVERSIONINFOA; - -typedef struct { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[128]; -} OSVERSIONINFOW; - -DECL_WINELIB_TYPE_AW(OSVERSIONINFO) - -#define VER_PLATFORM_WIN32s 0 -#define VER_PLATFORM_WIN32_WINDOWS 1 -#define VER_PLATFORM_WIN32_NT 2 - -typedef struct tagCOMSTAT -{ - DWORD status; - DWORD cbInQue; - DWORD cbOutQue; -} COMSTAT,*LPCOMSTAT; - -typedef struct tagDCB -{ - DWORD DCBlength; - DWORD BaudRate; - unsigned fBinary :1; - unsigned fParity :1; - unsigned fOutxCtsFlow :1; - unsigned fOutxDsrFlow :1; - unsigned fDtrControl :2; - unsigned fDsrSensitivity :1; - unsigned fTXContinueOnXoff :1; - unsigned fOutX :1; - unsigned fInX :1; - unsigned fErrorChar :1; - unsigned fNull :1; - unsigned fRtsControl :2; - unsigned fAbortOnError :1; - unsigned fDummy2 :17; - WORD wReserved; - WORD XonLim; - WORD XoffLim; - BYTE ByteSize; - BYTE Parity; - BYTE StopBits; - char XonChar; - char XoffChar; - char ErrorChar; - char EofChar; - char EvtChar; -} DCB, *LPDCB; - - - -typedef struct tagCOMMTIMEOUTS { - DWORD ReadIntervalTimeout; - DWORD ReadTotalTimeoutMultiplier; - DWORD ReadTotalTimeoutConstant; - DWORD WriteTotalTimeoutMultiplier; - DWORD WriteTotalTimeoutConstant; -} COMMTIMEOUTS,*LPCOMMTIMEOUTS; - -#include "poppack.h" - -typedef void CALLBACK (*PAPCFUNC)(ULONG_PTR); -typedef void CALLBACK (*PTIMERAPCROUTINE)(LPVOID,DWORD,DWORD); - -WIN_BOOL WINAPI ClearCommError(INT,LPDWORD,LPCOMSTAT); -WIN_BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB); -WIN_BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB); -#define BuildCommDCB WINELIB_NAME_AW(BuildCommDCB) -WIN_BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS); -WIN_BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS); -#define BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts) -WIN_BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS); -WIN_BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS); -WIN_BOOL WINAPI GetCommState(INT,LPDCB); -WIN_BOOL WINAPI SetCommState(INT,LPDCB); -WIN_BOOL WINAPI TransmitCommChar(INT,CHAR); -WIN_BOOL WINAPI SetupComm(HANDLE, DWORD, DWORD); -WIN_BOOL WINAPI GetCommProperties(HANDLE, LPDCB *); - -/*DWORD WINAPI GetVersion( void );*/ -WIN_BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16*); -WIN_BOOL WINAPI GetVersionExA(OSVERSIONINFOA*); -WIN_BOOL WINAPI GetVersionExW(OSVERSIONINFOW*); -#define GetVersionEx WINELIB_NAME_AW(GetVersionEx) - -/*int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);*/ - -void WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit); -void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit); -WIN_BOOL WINAPI TryEnterCriticalSection(CRITICAL_SECTION *lpCrit); -void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit); -void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit); -void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit); -WIN_BOOL WINAPI GetProcessWorkingSetSize(HANDLE,LPDWORD,LPDWORD); -DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR); -void WINAPI RaiseException(DWORD,DWORD,DWORD,const LPDWORD); -WIN_BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD); -WIN_BOOL WINAPI TerminateProcess(HANDLE,DWORD); -WIN_BOOL WINAPI TerminateThread(HANDLE,DWORD); -WIN_BOOL WINAPI GetExitCodeThread(HANDLE,LPDWORD); - -/* GetBinaryType return values. - */ - -#define SCS_32BIT_BINARY 0 -#define SCS_DOS_BINARY 1 -#define SCS_WOW_BINARY 2 -#define SCS_PIF_BINARY 3 -#define SCS_POSIX_BINARY 4 -#define SCS_OS216_BINARY 5 - -WIN_BOOL WINAPI GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType ); -WIN_BOOL WINAPI GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType ); -#define GetBinaryType WINELIB_NAME_AW(GetBinaryType) - -WIN_BOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO,UINT16); -WIN_BOOL16 WINAPI SetWinDebugInfo16(LPWINDEBUGINFO); -/* Declarations for functions that exist only in Win32 */ - - -WIN_BOOL WINAPI AttachThreadInput(DWORD,DWORD,WIN_BOOL); -WIN_BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPWIN_BOOL); -WIN_BOOL WINAPI AdjustTokenPrivileges(HANDLE,WIN_BOOL,LPVOID,DWORD,LPVOID,LPDWORD); -WIN_BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *); -WIN_BOOL WINAPI AllocateLocallyUniqueId(PLUID); -WIN_BOOL WINAPI AllocConsole(void); -WIN_BOOL WINAPI AreFileApisANSI(void); -WIN_BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR); -WIN_BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR); -#define BackupEventLog WINELIB_NAME_AW(BackupEventLog) -WIN_BOOL WINAPI Beep(DWORD,DWORD); -WIN_BOOL WINAPI CancelWaitableTimer(HANDLE); -WIN_BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR); -WIN_BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR); -#define ClearEventLog WINELIB_NAME_AW(ClearEventLog) -WIN_BOOL WINAPI CloseEventLog(HANDLE); -WIN_BOOL WINAPI CloseHandle(HANDLE); -WIN_BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD); -HANDLE WINAPI ConvertToGlobalHandle(HANDLE hSrc); -WIN_BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,WIN_BOOL); -WIN_BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,WIN_BOOL); -#define CopyFile WINELIB_NAME_AW(CopyFile) -WIN_BOOL WINAPI CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPWIN_BOOL, DWORD); -WIN_BOOL WINAPI CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPWIN_BOOL, DWORD); -#define CopyFileEx WINELIB_NAME_AW(CopyFileEx) -WIN_BOOL WINAPI CopySid(DWORD,PSID,PSID); -INT WINAPI CompareFileTime(LPFILETIME,LPFILETIME); -HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,WIN_BOOL,WIN_BOOL,LPCSTR); -HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,WIN_BOOL,WIN_BOOL,LPCWSTR); -#define CreateEvent WINELIB_NAME_AW(CreateEvent) -HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES, - DWORD,DWORD,HANDLE); -HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES, - DWORD,DWORD,HANDLE); -#define CreateFile WINELIB_NAME_AW(CreateFile) -HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD, - DWORD,DWORD,LPCSTR); -HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD, - DWORD,DWORD,LPCWSTR); -#define CreateFileMapping WINELIB_NAME_AW(CreateFileMapping) -HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCSTR); -HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCWSTR); -#define CreateMutex WINELIB_NAME_AW(CreateMutex) -WIN_BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD); -WIN_BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES, - LPSECURITY_ATTRIBUTES,WIN_BOOL,DWORD,LPVOID,LPCSTR, - LPSTARTUPINFOA,LPPROCESS_INFORMATION); -WIN_BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES, - LPSECURITY_ATTRIBUTES,WIN_BOOL,DWORD,LPVOID,LPCWSTR, - LPSTARTUPINFOW,LPPROCESS_INFORMATION); -#define CreateProcess WINELIB_NAME_AW(CreateProcess) -HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR); -HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR); -#define CreateSemaphore WINELIB_NAME_AW(CreateSemaphore) -HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD); -HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCSTR); -HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCWSTR); -#define CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer) -WIN_BOOL WINAPI DebugActiveProcess(DWORD); -void WINAPI DebugBreak(void); -WIN_BOOL WINAPI DeregisterEventSource(HANDLE); -WIN_BOOL WINAPI DisableThreadLibraryCalls(HMODULE); -WIN_BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME); -WIN_BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD,WIN_BOOL,DWORD); -WIN_BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA lpDateFmtEnumProc, LCID Locale, DWORD dwFlags); -WIN_BOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW lpDateFmtEnumProc, LCID Locale, DWORD dwFlags); -#define EnumDateFormats WINELIB_NAME_AW(EnumDateFormats) -WIN_BOOL WINAPI EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR, - ENUMRESLANGPROCA,LONG); -WIN_BOOL WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR, - ENUMRESLANGPROCW,LONG); -#define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages) -WIN_BOOL WINAPI EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA, - LONG); -WIN_BOOL WINAPI EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW, - LONG); -#define EnumResourceNames WINELIB_NAME_AW(EnumResourceNames) -WIN_BOOL WINAPI EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG); -WIN_BOOL WINAPI EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG); -#define EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes) -WIN_BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD); -WIN_BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD); -#define EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages) -WIN_BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD); -WIN_BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD); -#define EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales) -WIN_BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags); -WIN_BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags); -#define EnumTimeFormats WINELIB_NAME_AW(EnumTimeFormats) -WIN_BOOL WINAPI EqualSid(PSID, PSID); -WIN_BOOL WINAPI EqualPrefixSid(PSID,PSID); -VOID WINAPI ExitProcess(DWORD) WINE_NORETURN; -VOID WINAPI ExitThread(DWORD) WINE_NORETURN; -DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD); -#define ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings) -WIN_BOOL WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD); -WIN_BOOL WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME); -WIN_BOOL WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME); -HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,WIN_BOOL,DWORD); -HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,WIN_BOOL,DWORD); -#define FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification) -WIN_BOOL WINAPI FindNextChangeNotification(HANDLE); -WIN_BOOL WINAPI FindCloseChangeNotification(HANDLE); -HRSRC WINAPI FindResourceExA(HMODULE,LPCSTR,LPCSTR,WORD); -HRSRC WINAPI FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD); -#define FindResourceEx WINELIB_NAME_AW(FindResourceEx) -WIN_BOOL WINAPI FlushConsoleInputBuffer(HANDLE); -WIN_BOOL WINAPI FlushFileBuffers(HANDLE); -WIN_BOOL WINAPI FlushViewOfFile(LPCVOID, DWORD); -DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR, - DWORD,LPDWORD); -DWORD WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR, - DWORD,LPDWORD); -#define FormatMessage WINELIB_NAME_AW(FormatMessage) -WIN_BOOL WINAPI FreeConsole(void); -WIN_BOOL WINAPI FreeEnvironmentStringsA(LPSTR); -WIN_BOOL WINAPI FreeEnvironmentStringsW(LPWSTR); -#define FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings) -PVOID WINAPI FreeSid(PSID); -UINT WINAPI GetACP(void); -LPCSTR WINAPI GetCommandLineA(void); -LPCWSTR WINAPI GetCommandLineW(void); -#define GetCommandLine WINELIB_NAME_AW(GetCommandLine) -WIN_BOOL WINAPI GetComputerNameA(LPSTR,LPDWORD); -WIN_BOOL WINAPI GetComputerNameW(LPWSTR,LPDWORD); -#define GetComputerName WINELIB_NAME_AW(GetComputerName) -UINT WINAPI GetConsoleCP(void); -WIN_BOOL WINAPI GetConsoleMode(HANDLE,LPDWORD); -UINT WINAPI GetConsoleOutputCP(void); -DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD); -DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD); -#define GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle) -WIN_BOOL WINAPI GetCommMask(HANDLE, LPDWORD); -WIN_BOOL WINAPI GetCommModemStatus(HANDLE, LPDWORD); -HANDLE WINAPI GetCurrentProcess(void); -HANDLE WINAPI GetCurrentThread(void); -INT WINAPI GetDateFormatA(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT); -INT WINAPI GetDateFormatW(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT); -#define GetDateFormat WINELIB_NAME_AW(GetDateFormat) -LPSTR WINAPI GetEnvironmentStringsA(void); -LPWSTR WINAPI GetEnvironmentStringsW(void); -#define GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings) -DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD); -#define GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable) -WIN_BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID); -WIN_BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID); -#define GetFileattributesEx WINELIB_NAME_AW(GetFileAttributesEx) -DWORD WINAPI GetFileInformationByHandle(HANDLE,BY_HANDLE_FILE_INFORMATION*); -WIN_BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); -WIN_BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); -#define GetFileSecurity WINELIB_NAME_AW(GetFileSecurity) -DWORD WINAPI GetFileSize(HANDLE,LPDWORD); -WIN_BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME); -DWORD WINAPI GetFileType(HANDLE); -DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*); -DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*); -#define GetFullPathName WINELIB_NAME_AW(GetFullPathName) -WIN_BOOL WINAPI GetHandleInformation(HANDLE,LPDWORD); -COORD WINAPI GetLargestConsoleWindowSize(HANDLE); -DWORD WINAPI GetLengthSid(PSID); -VOID WINAPI GetLocalTime(LPSYSTEMTIME); -DWORD WINAPI GetLogicalDrives(void); -DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD); -#define GetLongPathName WINELIB_NAME_AW(GetLongPathName) -WIN_BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,LPDWORD); -WIN_BOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD); -WIN_BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD); -UINT WINAPI GetOEMCP(void); -WIN_BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD); -DWORD WINAPI GetPriorityClass(HANDLE); -DWORD WINAPI GetProcessVersion(DWORD); -WIN_BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD); -WIN_BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPWIN_BOOL,PACL *,LPWIN_BOOL); -WIN_BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID *,LPWIN_BOOL); -DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); -WIN_BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID *,LPWIN_BOOL); -WIN_BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPWIN_BOOL,PACL *,LPWIN_BOOL); -PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID); -DWORD WINAPI GetSidLengthRequired(BYTE); -PDWORD WINAPI GetSidSubAuthority(PSID,DWORD); -PUCHAR WINAPI GetSidSubAuthorityCount(PSID); -DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD); -#define GetShortPathName WINELIB_NAME_AW(GetShortPathName) -HFILE WINAPI GetStdHandle(DWORD); -WIN_BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,INT,LPWORD); -WIN_BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,INT,LPWORD); -#define GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx) -VOID WINAPI GetSystemInfo(LPSYSTEM_INFO); -WIN_BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); -VOID WINAPI GetSystemTime(LPSYSTEMTIME); -VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME); -INT WINAPI GetTimeFormatA(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT); -INT WINAPI GetTimeFormatW(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT); -#define GetTimeFormat WINELIB_NAME_AW(GetTimeFormat) -WIN_BOOL WINAPI GetThreadContext(HANDLE,CONTEXT *); -LCID WINAPI GetThreadLocale(void); -INT WINAPI GetThreadPriority(HANDLE); -WIN_BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY); -WIN_BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME); -WIN_BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,LPDWORD); -WIN_BOOL WINAPI GetUserNameA(LPSTR,LPDWORD); -WIN_BOOL WINAPI GetUserNameW(LPWSTR,LPDWORD); -#define GetUserName WINELIB_NAME_AW(GetUserName) -VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS); -LPVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD); -DWORD WINAPI HeapCompact(HANDLE,DWORD); -HANDLE WINAPI HeapCreate(DWORD,DWORD,DWORD); -WIN_BOOL WINAPI HeapDestroy(HANDLE); -WIN_BOOL WINAPI HeapFree(HANDLE,DWORD,LPVOID); -WIN_BOOL WINAPI HeapLock(HANDLE); -LPVOID WINAPI HeapReAlloc(HANDLE,DWORD,LPVOID,DWORD); -DWORD WINAPI HeapSize(HANDLE,DWORD,LPVOID); -WIN_BOOL WINAPI HeapUnlock(HANDLE); -WIN_BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID); -WIN_BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY); -WIN_BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); -WIN_BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); -WIN_BOOL WINAPI IsValidSid(PSID); -WIN_BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); -WIN_BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE); -WIN_BOOL WINAPI IsProcessorFeaturePresent(DWORD); -WIN_BOOL WINAPI IsValidLocale(DWORD,DWORD); -WIN_BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE); -WIN_BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE); -#define LookupAccountSid WINELIB_NAME_AW(LookupAccountSidW) -WIN_BOOL WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME); -WIN_BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD); -WIN_BOOL WINAPI LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED); -WIN_BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,LPVOID); -WIN_BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,LPVOID); -#define LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue) -WIN_BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD); -HMODULE WINAPI MapHModuleSL(HMODULE16); -HMODULE16 WINAPI MapHModuleLS(HMODULE); -SEGPTR WINAPI MapLS(LPVOID); -LPVOID WINAPI MapSL(SEGPTR); -LPVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD); -LPVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPVOID); -WIN_BOOL WINAPI MoveFileA(LPCSTR,LPCSTR); -WIN_BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR); -#define MoveFile WINELIB_NAME_AW(MoveFile) -WIN_BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD); -WIN_BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD); -#define MoveFileEx WINELIB_NAME_AW(MoveFileEx) -INT WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,INT,LPWSTR,INT); -WIN_BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE); -INT WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,INT,LPSTR,INT,LPCSTR,WIN_BOOL*); -HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR); -HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR); -#define OpenBackupEventLog WINELIB_NAME_AW(OpenBackupEventLog) -HANDLE WINAPI OpenEventA(DWORD,WIN_BOOL,LPCSTR); -HANDLE WINAPI OpenEventW(DWORD,WIN_BOOL,LPCWSTR); -#define OpenEvent WINELIB_NAME_AW(OpenEvent) -HANDLE WINAPI OpenEventLogA(LPCSTR,LPCSTR); -HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR); -#define OpenEventLog WINELIB_NAME_AW(OpenEventLog) -HANDLE WINAPI OpenFileMappingA(DWORD,WIN_BOOL,LPCSTR); -HANDLE WINAPI OpenFileMappingW(DWORD,WIN_BOOL,LPCWSTR); -#define OpenFileMapping WINELIB_NAME_AW(OpenFileMapping) -HANDLE WINAPI OpenMutexA(DWORD,WIN_BOOL,LPCSTR); -HANDLE WINAPI OpenMutexW(DWORD,WIN_BOOL,LPCWSTR); -#define OpenMutex WINELIB_NAME_AW(OpenMutex) -HANDLE WINAPI OpenProcess(DWORD,WIN_BOOL,DWORD); -WIN_BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE); -HANDLE WINAPI OpenSemaphoreA(DWORD,WIN_BOOL,LPCSTR); -HANDLE WINAPI OpenSemaphoreW(DWORD,WIN_BOOL,LPCWSTR); -#define OpenSemaphore WINELIB_NAME_AW(OpenSemaphore) -WIN_BOOL WINAPI OpenThreadToken(HANDLE,DWORD,WIN_BOOL,PHANDLE); -HANDLE WINAPI OpenWaitableTimerA(DWORD,WIN_BOOL,LPCSTR); -HANDLE WINAPI OpenWaitableTimerW(DWORD,WIN_BOOL,LPCWSTR); -#define OpenWaitableTimer WINELIB_NAME_AW(OpenWaitableTimer) -WIN_BOOL WINAPI PulseEvent(HANDLE); -WIN_BOOL WINAPI PurgeComm(HANDLE,DWORD); -DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD); -#define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice) -WIN_BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER); -WIN_BOOL WINAPI ReadConsoleA(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID); -WIN_BOOL WINAPI ReadConsoleW(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID); -#define ReadConsole WINELIB_NAME_AW(ReadConsole) -WIN_BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD, - COORD,LPDWORD); -#define ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter) -WIN_BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *); -WIN_BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *); -#define ReadEventLog WINELIB_NAME_AW(ReadEventLog) -WIN_BOOL WINAPI ReadFile(HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED); -HANDLE WINAPI RegisterEventSourceA(LPCSTR,LPCSTR); -HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR); -#define RegisterEventSource WINELIB_NAME_AW(RegisterEventSource) -WIN_BOOL WINAPI ReleaseMutex(HANDLE); -WIN_BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG); -WIN_BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR *,LPVOID); -WIN_BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *,LPVOID); -#define ReportEvent WINELIB_NAME_AW(ReportEvent) -WIN_BOOL WINAPI ResetEvent(HANDLE); -DWORD WINAPI ResumeThread(HANDLE); -WIN_BOOL WINAPI RevertToSelf(void); -DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*); -DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*); -#define SearchPath WINELIB_NAME_AW(SearchPath) -WIN_BOOL WINAPI SetCommMask(INT,DWORD); -WIN_BOOL WINAPI SetComputerNameA(LPCSTR); -WIN_BOOL WINAPI SetComputerNameW(LPCWSTR); -#define SetComputerName WINELIB_NAME_AW(SetComputerName) -WIN_BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD); -WIN_BOOL WINAPI SetConsoleMode(HANDLE,DWORD); -WIN_BOOL WINAPI SetConsoleTitleA(LPCSTR); -WIN_BOOL WINAPI SetConsoleTitleW(LPCWSTR); -#define SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle) -WIN_BOOL WINAPI SetEndOfFile(HANDLE); -WIN_BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR); -WIN_BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR); -#define SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable) -WIN_BOOL WINAPI SetEvent(HANDLE); -VOID WINAPI SetFileApisToANSI(void); -VOID WINAPI SetFileApisToOEM(void); -DWORD WINAPI SetFilePointer(HANDLE,LONG,LPLONG,DWORD); -WIN_BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -WIN_BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -#define SetFileSecurity WINELIB_NAME_AW(SetFileSecurity) -WIN_BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*); -WIN_BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD); -WIN_BOOL WINAPI SetPriorityClass(HANDLE,DWORD); -WIN_BOOL WINAPI SetLocalTime(const SYSTEMTIME*); -WIN_BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,WIN_BOOL,PACL,WIN_BOOL); -WIN_BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,WIN_BOOL); -WIN_BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,WIN_BOOL); -WIN_BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,WIN_BOOL,PACL,WIN_BOOL); -WIN_BOOL WINAPI SetStdHandle(DWORD,HANDLE); -WIN_BOOL WINAPI SetSystemPowerState(WIN_BOOL,WIN_BOOL); -WIN_BOOL WINAPI SetSystemTime(const SYSTEMTIME*); -DWORD WINAPI SetThreadAffinityMask(HANDLE,DWORD); -WIN_BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT *); -WIN_BOOL WINAPI SetThreadLocale(LCID); -WIN_BOOL WINAPI SetThreadPriority(HANDLE,INT); -WIN_BOOL WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION); -WIN_BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,WIN_BOOL); -VOID WINAPI Sleep(DWORD); -DWORD WINAPI SleepEx(DWORD,WIN_BOOL); -DWORD WINAPI SuspendThread(HANDLE); -WIN_BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME); -DWORD WINAPI TlsAlloc(void); -WIN_BOOL WINAPI TlsFree(DWORD); -LPVOID WINAPI TlsGetValue(DWORD); -WIN_BOOL WINAPI TlsSetValue(DWORD,LPVOID); -VOID WINAPI UnMapLS(SEGPTR); -WIN_BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD); -WIN_BOOL WINAPI UnmapViewOfFile(LPVOID); -LPVOID WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD); -WIN_BOOL WINAPI VirtualFree(LPVOID,DWORD,DWORD); -WIN_BOOL WINAPI VirtualLock(LPVOID,DWORD); -WIN_BOOL WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD); -WIN_BOOL WINAPI VirtualProtectEx(HANDLE,LPVOID,DWORD,DWORD,LPDWORD); -DWORD WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); -DWORD WINAPI VirtualQueryEx(HANDLE,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); -WIN_BOOL WINAPI VirtualUnlock(LPVOID,DWORD); -WIN_BOOL WINAPI WaitCommEvent(HANDLE,LPDWORD,LPOVERLAPPED); -WIN_BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD); -DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,WIN_BOOL,DWORD); -DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,WIN_BOOL,DWORD,WIN_BOOL); -DWORD WINAPI WaitForSingleObject(HANDLE,DWORD); -DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,WIN_BOOL); -WIN_BOOL WINAPI WriteConsoleA(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID); -WIN_BOOL WINAPI WriteConsoleW(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID); -#define WriteConsole WINELIB_NAME_AW(WriteConsole) -WIN_BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED); -LANGID WINAPI GetSystemDefaultLangID(void); -LCID WINAPI GetSystemDefaultLCID(void); -LANGID WINAPI GetUserDefaultLangID(void); -LCID WINAPI GetUserDefaultLCID(void); -ATOM WINAPI AddAtomA(LPCSTR); -ATOM WINAPI AddAtomW(LPCWSTR); -#define AddAtom WINELIB_NAME_AW(AddAtom) -UINT WINAPI CompareStringA(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD); -UINT WINAPI CompareStringW(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD); -#define CompareString WINELIB_NAME_AW(CompareString) -WIN_BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES); -WIN_BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES); -#define CreateDirectory WINELIB_NAME_AW(CreateDirectory) -WIN_BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); -WIN_BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); -#define CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx) -WIN_BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR); -#define DefineHandleTable(w) ((w),TRUE) -ATOM WINAPI DeleteAtom(ATOM); -WIN_BOOL WINAPI DeleteFileA(LPCSTR); -WIN_BOOL WINAPI DeleteFileW(LPCWSTR); -#define DeleteFile WINELIB_NAME_AW(DeleteFile) -void WINAPI FatalAppExitA(UINT,LPCSTR); -void WINAPI FatalAppExitW(UINT,LPCWSTR); -#define FatalAppExit WINELIB_NAME_AW(FatalAppExit) -ATOM WINAPI FindAtomA(LPCSTR); -ATOM WINAPI FindAtomW(LPCWSTR); -#define FindAtom WINELIB_NAME_AW(FindAtom) -WIN_BOOL WINAPI FindClose(HANDLE); -HANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA); -HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA); -HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW); -#define FindFirstFile WINELIB_NAME_AW(FindFirstFile) -WIN_BOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA); -WIN_BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA); -WIN_BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW); -#define FindNextFile WINELIB_NAME_AW(FindNextFile) -HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR); -HRSRC WINAPI FindResourceW(HMODULE,LPCWSTR,LPCWSTR); -#define FindResource WINELIB_NAME_AW(FindResource) -VOID WINAPI FreeLibrary16(HINSTANCE16); -WIN_BOOL WINAPI FreeLibrary(HMODULE); -#define FreeModule(handle) FreeLibrary(handle) -#define FreeProcInstance(proc) /*nothing*/ -WIN_BOOL WINAPI FreeResource(HGLOBAL); -UINT WINAPI GetAtomNameA(ATOM,LPSTR,INT); -UINT WINAPI GetAtomNameW(ATOM,LPWSTR,INT); -#define GetAtomName WINELIB_NAME_AW(GetAtomName) -UINT WINAPI GetCurrentDirectoryA(UINT,LPSTR); -UINT WINAPI GetCurrentDirectoryW(UINT,LPWSTR); -#define GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory) -WIN_BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); -WIN_BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); -#define GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace) -WIN_BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); -WIN_BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); -#define GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx) -UINT WINAPI GetDriveTypeA(LPCSTR); -UINT WINAPI GetDriveTypeW(LPCWSTR); -#define GetDriveType WINELIB_NAME_AW(GetDriveType) -DWORD WINAPI GetFileAttributesA(LPCSTR); -DWORD WINAPI GetFileAttributesW(LPCWSTR); -#define GetFileAttributes WINELIB_NAME_AW(GetFileAttributes) -#define GetFreeSpace(w) (0x100000L) -UINT WINAPI GetLogicalDriveStringsA(UINT,LPSTR); -UINT WINAPI GetLogicalDriveStringsW(UINT,LPWSTR); -#define GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings) -INT WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,INT); -INT WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,INT); -#define GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo) -DWORD WINAPI GetModuleFileNameA(HMODULE,LPSTR,DWORD); -DWORD WINAPI GetModuleFileNameW(HMODULE,LPWSTR,DWORD); -#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName) -HMODULE WINAPI GetModuleHandleA(LPCSTR); -HMODULE WINAPI GetModuleHandleW(LPCWSTR); -#define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle) -WIN_BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,WIN_BOOL); -UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR); -UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR); -#define GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt) -INT WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR); -INT WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR); -#define GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection) -DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR); -DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR); -#define GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames) -INT WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT,LPCSTR); -INT WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT,LPCWSTR); -#define GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString) -WIN_BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR); -WIN_BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR); -#define GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct) -FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR); -UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT); -UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT); -#define GetProfileInt WINELIB_NAME_AW(GetProfileInt) -INT WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD); -INT WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD); -#define GetProfileSection WINELIB_NAME_AW(GetProfileSection) -INT WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT); -INT WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT); -#define GetProfileString WINELIB_NAME_AW(GetProfileString) -VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA); -VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW); -#define GetStartupInfo WINELIB_NAME_AW(GetStartupInfo) -WIN_BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,INT,LPWORD); -WIN_BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,INT,LPWORD); -#define GetStringType WINELIB_NAME_AW(GetStringType) -UINT WINAPI GetSystemDirectoryA(LPSTR,UINT); -UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT); -#define GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory) -UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR); -UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR); -#define GetTempFileName WINELIB_NAME_AW(GetTempFileName) -UINT WINAPI GetTempPathA(UINT,LPSTR); -UINT WINAPI GetTempPathW(UINT,LPWSTR); -#define GetTempPath WINELIB_NAME_AW(GetTempPath) -LONG WINAPI GetVersion(void); -WIN_BOOL WINAPI GetExitCodeProcess(HANDLE,LPDWORD); -WIN_BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD); -WIN_BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD); -#define GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation) -UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT); -UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT); -#define GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory) -HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD); -HGLOBAL WINAPI GlobalAlloc(UINT,DWORD); -DWORD WINAPI GlobalCompact(DWORD); -UINT WINAPI GlobalFlags(HGLOBAL); -HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16); -HGLOBAL WINAPI GlobalFree(HGLOBAL); -HGLOBAL WINAPI GlobalHandle(LPCVOID); -WORD WINAPI GlobalFix16(HGLOBAL16); -VOID WINAPI GlobalFix(HGLOBAL); -LPVOID WINAPI GlobalLock16(HGLOBAL16); -LPVOID WINAPI GlobalLock(HGLOBAL); -HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,DWORD,UINT); -DWORD WINAPI GlobalSize16(HGLOBAL16); -DWORD WINAPI GlobalSize(HGLOBAL); -VOID WINAPI GlobalUnfix16(HGLOBAL16); -VOID WINAPI GlobalUnfix(HGLOBAL); -WIN_BOOL16 WINAPI GlobalUnlock16(HGLOBAL16); -WIN_BOOL WINAPI GlobalUnlock(HGLOBAL); -WIN_BOOL16 WINAPI GlobalUnWire16(HGLOBAL16); -WIN_BOOL WINAPI GlobalUnWire(HGLOBAL); -SEGPTR WINAPI GlobalWire16(HGLOBAL16); -LPVOID WINAPI GlobalWire(HGLOBAL); -WIN_BOOL WINAPI InitAtomTable(DWORD); -WIN_BOOL WINAPI IsBadCodePtr(FARPROC); -WIN_BOOL WINAPI IsBadHugeReadPtr(LPCVOID,UINT); -WIN_BOOL WINAPI IsBadHugeWritePtr(LPVOID,UINT); -WIN_BOOL WINAPI IsBadReadPtr(LPCVOID,UINT); -WIN_BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT); -WIN_BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT); -#define IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr) -WIN_BOOL WINAPI IsBadWritePtr(LPVOID,UINT); -WIN_BOOL WINAPI IsDBCSLeadByte(BYTE); -WIN_BOOL WINAPI IsDebuggerPresent(void); -HINSTANCE16 WINAPI LoadLibrary16(LPCSTR); -HMODULE WINAPI LoadLibraryA(LPCSTR); -HMODULE WINAPI LoadLibraryW(LPCWSTR); -#define LoadLibrary WINELIB_NAME_AW(LoadLibrary) -HMODULE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD); -HMODULE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD); -#define LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx) -HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID); -HINSTANCE WINAPI LoadModule(LPCSTR,LPVOID); -HGLOBAL WINAPI LoadResource(HMODULE,HRSRC); -HLOCAL WINAPI LocalAlloc(UINT,DWORD); -UINT WINAPI LocalCompact(UINT); -UINT WINAPI LocalFlags(HLOCAL); -HLOCAL WINAPI LocalFree(HLOCAL); -HLOCAL WINAPI LocalHandle(LPCVOID); -LPVOID WINAPI LocalLock(HLOCAL); -HLOCAL WINAPI LocalReAlloc(HLOCAL,DWORD,UINT); -UINT WINAPI LocalShrink(HGLOBAL,UINT); -UINT WINAPI LocalSize(HLOCAL); -WIN_BOOL WINAPI LocalUnlock(HLOCAL); -LPVOID WINAPI LockResource(HGLOBAL); -#define LockSegment(handle) GlobalFix((HANDLE)(handle)) -#define MakeProcInstance(proc,inst) (proc) -HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16); -HFILE WINAPI OpenFile(LPCSTR,OFSTRUCT*,UINT); -VOID WINAPI OutputDebugStringA(LPCSTR); -VOID WINAPI OutputDebugStringW(LPCWSTR); -#define OutputDebugString WINELIB_NAME_AW(OutputDebugString) -WIN_BOOL WINAPI ReadProcessMemory(HANDLE, LPCVOID, LPVOID, DWORD, LPDWORD); -WIN_BOOL WINAPI RemoveDirectoryA(LPCSTR); -WIN_BOOL WINAPI RemoveDirectoryW(LPCWSTR); -#define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory) -WIN_BOOL WINAPI SetCurrentDirectoryA(LPCSTR); -WIN_BOOL WINAPI SetCurrentDirectoryW(LPCWSTR); -#define SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory) -UINT WINAPI SetErrorMode(UINT); -WIN_BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD); -WIN_BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD); -#define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes) -UINT WINAPI SetHandleCount(UINT); -#define SetSwapAreaSize(w) (w) -WIN_BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR); -WIN_BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR); -#define SetVolumeLabel WINELIB_NAME_AW(SetVolumeLabel) -DWORD WINAPI SizeofResource(HMODULE,HRSRC); -#define UnlockSegment(handle) GlobalUnfix((HANDLE)(handle)) -WIN_BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR); -WIN_BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR); -#define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection) -WIN_BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR); -WIN_BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); -#define WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString) -WIN_BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR); -WIN_BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR); -#define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection) -WIN_BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR); -WIN_BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR); -#define WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct) -WIN_BOOL WINAPI WriteProcessMemory(HANDLE, LPVOID, LPVOID, DWORD, LPDWORD); -WIN_BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR); -WIN_BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR); -#define WriteProfileString WINELIB_NAME_AW(WriteProfileString) -#define Yield32() -LPSTR WINAPI lstrcatA(LPSTR,LPCSTR); -LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR); -#define lstrcat WINELIB_NAME_AW(lstrcat) -LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR); -LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR); -#define lstrcpy WINELIB_NAME_AW(lstrcpy) -LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,INT); -LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,INT); -#define lstrcpyn WINELIB_NAME_AW(lstrcpyn) -INT WINAPI lstrlenA(LPCSTR); -INT WINAPI lstrlenW(LPCWSTR); -#define lstrlen WINELIB_NAME_AW(lstrlen) -HINSTANCE WINAPI WinExec(LPCSTR,UINT); -LONG WINAPI _hread(HFILE,LPVOID,LONG); -LONG WINAPI _hwrite(HFILE,LPCSTR,LONG); -HFILE WINAPI _lcreat(LPCSTR,INT); -HFILE WINAPI _lclose(HFILE); -LONG WINAPI _llseek(HFILE,LONG,INT); -HFILE WINAPI _lopen(LPCSTR,INT); -UINT WINAPI _lread(HFILE,LPVOID,UINT); -UINT WINAPI _lwrite(HFILE,LPCSTR,UINT); -SEGPTR WINAPI WIN16_GlobalLock16(HGLOBAL16); -INT WINAPI lstrcmpA(LPCSTR,LPCSTR); -INT WINAPI lstrcmpW(LPCWSTR,LPCWSTR); -#define lstrcmp WINELIB_NAME_AW(lstrcmp) -INT WINAPI lstrcmpiA(LPCSTR,LPCSTR); -INT WINAPI lstrcmpiW(LPCWSTR,LPCWSTR); -#define lstrcmpi WINELIB_NAME_AW(lstrcmpi) - -/* compatibility macros */ -#define FillMemory RtlFillMemory -#define MoveMemory RtlMoveMemory -#define ZeroMemory RtlZeroMemory -#define CopyMemory RtlCopyMemory - -DWORD WINAPI GetCurrentProcessId(void); -DWORD WINAPI GetCurrentThreadId(void); -DWORD WINAPI GetLastError(void); -HANDLE WINAPI GetProcessHeap(void); -PVOID WINAPI InterlockedCompareExchange(PVOID*,PVOID,PVOID); -LONG WINAPI InterlockedDecrement(PLONG); -LONG WINAPI InterlockedExchange(PLONG,LONG); -LONG WINAPI InterlockedExchangeAdd(PLONG,LONG); -LONG WINAPI InterlockedIncrement(PLONG); -VOID WINAPI SetLastError(DWORD); - -#ifdef __WINE__ -#define GetCurrentProcess() ((HANDLE)0xffffffff) -#define GetCurrentThread() ((HANDLE)0xfffffffe) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __WINE_WINBASE_H */ diff --git a/include/wine/windef.h b/include/wine/windef.h deleted file mode 100644 index 61830134c2..0000000000 --- a/include/wine/windef.h +++ /dev/null @@ -1,656 +0,0 @@ -/* - * Basic types definitions - * - * Copyright 1996 Alexandre Julliard - */ - -#ifndef __WINE_WINDEF_H -#define __WINE_WINDEF_H - -#ifdef __WINE__ -# include "config.h" -# undef UNICODE -#endif - -#ifdef _EGCS_ -#define __stdcall -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Misc. constants. */ - -#ifdef FALSE -#undef FALSE -#endif -#define FALSE 0 - -#ifdef TRUE -#undef TRUE -#endif -#define TRUE 1 - -#ifdef NULL -#undef NULL -#endif -#define NULL 0 - -/* Macros to map Winelib names to the correct implementation name */ -/* depending on __WINE__ and UNICODE macros. */ -/* Note that Winelib is purely Win32. */ - -#ifdef __WINE__ -# define WINELIB_NAME_AW(func) \ - func##_must_be_suffixed_with_W_or_A_in_this_context \ - func##_must_be_suffixed_with_W_or_A_in_this_context -#else /* __WINE__ */ -# ifdef UNICODE -# define WINELIB_NAME_AW(func) func##W -# else -# define WINELIB_NAME_AW(func) func##A -# endif /* UNICODE */ -#endif /* __WINE__ */ - -#ifdef __WINE__ -# define DECL_WINELIB_TYPE_AW(type) /* nothing */ -#else /* __WINE__ */ -# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; -#endif /* __WINE__ */ - -#ifndef NONAMELESSSTRUCT -# if defined(__WINE__) || !defined(_FORCENAMELESSSTRUCT) -# define NONAMELESSSTRUCT -# endif -#endif /* !defined(NONAMELESSSTRUCT) */ - -#ifndef NONAMELESSUNION -# if defined(__WINE__) || !defined(_FORCENAMELESSUNION) || !defined(__cplusplus) -# define NONAMELESSUNION -# endif -#endif /* !defined(NONAMELESSUNION) */ - -#ifndef NONAMELESSSTRUCT -#define DUMMYSTRUCTNAME -#define DUMMYSTRUCTNAME1 -#define DUMMYSTRUCTNAME2 -#define DUMMYSTRUCTNAME3 -#define DUMMYSTRUCTNAME4 -#define DUMMYSTRUCTNAME5 -#else /* !defined(NONAMELESSSTRUCT) */ -#define DUMMYSTRUCTNAME s -#define DUMMYSTRUCTNAME1 s1 -#define DUMMYSTRUCTNAME2 s2 -#define DUMMYSTRUCTNAME3 s3 -#define DUMMYSTRUCTNAME4 s4 -#define DUMMYSTRUCTNAME5 s5 -#endif /* !defined(NONAMELESSSTRUCT) */ - -#ifndef NONAMELESSUNION -#define DUMMYUNIONNAME -#define DUMMYUNIONNAME1 -#define DUMMYUNIONNAME2 -#define DUMMYUNIONNAME3 -#define DUMMYUNIONNAME4 -#define DUMMYUNIONNAME5 -#else /* !defined(NONAMELESSUNION) */ -#define DUMMYUNIONNAME u -#define DUMMYUNIONNAME1 u1 -#define DUMMYUNIONNAME2 u2 -#define DUMMYUNIONNAME3 u3 -#define DUMMYUNIONNAME4 u4 -#define DUMMYUNIONNAME5 u5 -#endif /* !defined(NONAMELESSUNION) */ - -/* Calling conventions definitions */ - -#ifdef __i386__ -# if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))) -# ifndef _EGCS_ -#define __stdcall __attribute__((__stdcall__)) -#define __cdecl __attribute__((__cdecl__)) -# define __RESTORE_ES __asm__ __volatile__("pushl %ds\n\tpopl %es") -# endif -# else -# error You need gcc >= 2.7 to build Wine on a 386 -# endif -#else -# define __stdcall -# define __cdecl -# define __RESTORE_ES -#endif - -#define CALLBACK __stdcall -#define WINAPI __stdcall -#define APIPRIVATE __stdcall -#define PASCAL __stdcall -#define pascal __stdcall -#define _pascal __stdcall -#define _stdcall __stdcall -#define _fastcall __stdcall -#define __fastcall __stdcall -#define __export __stdcall -#define CDECL __cdecl -#define _CDECL __cdecl -#define cdecl __cdecl -#define _cdecl __cdecl -#define WINAPIV __cdecl -#define APIENTRY WINAPI - -#define __declspec(x) -#define dllimport -#define dllexport - -#define CONST const - -/* Standard data types. These are the same for emulator and library. */ - -typedef void VOID; -typedef int INT; -typedef unsigned int UINT; -typedef unsigned short WORD; -typedef unsigned long DWORD; -typedef unsigned long ULONG; -typedef unsigned char BYTE; -typedef long LONG; -typedef short SHORT; -typedef unsigned short USHORT; -typedef char CHAR; -typedef unsigned char UCHAR; - -typedef LONG SCODE; - -/* Some systems might have wchar_t, but we really need 16 bit characters */ -typedef unsigned short WCHAR; -typedef int WIN_BOOL; -typedef double DATE; -typedef double DOUBLE; -typedef double LONGLONG; -typedef double ULONGLONG; - -/* FIXME: Wine does not compile with strict on, therefore strict - * handles are presently only usable on machines where sizeof(UINT) == - * sizeof(void*). HANDLEs are supposed to be void* but a large amount - * of WINE code operates on HANDLES as if they are UINTs. So to WINE - * they exist as UINTs but to the Winelib user who turns on strict, - * they exist as void*. If there is a size difference between UINT and - * void* then things get ugly. */ -#ifdef STRICT -typedef VOID* HANDLE; -#else -typedef UINT HANDLE; -#endif - - -typedef HANDLE *LPHANDLE; - -/* Integer types. These are the same for emulator and library. */ -typedef UINT WPARAM; -typedef LONG LPARAM; -typedef LONG HRESULT; -typedef LONG LRESULT; -typedef WORD ATOM; -typedef WORD CATCHBUF[9]; -typedef WORD *LPCATCHBUF; -typedef HANDLE HHOOK; -typedef HANDLE HMONITOR; -typedef DWORD LCID; -typedef WORD LANGID; -typedef DWORD LCTYPE; -typedef float FLOAT; - -/* Pointers types. These are the same for emulator and library. */ -/* winnt types */ -typedef VOID *PVOID; -typedef const void *PCVOID; -typedef CHAR *PCHAR; -typedef UCHAR *PUCHAR; -typedef BYTE *PBYTE; -typedef WORD *PWORD; -typedef USHORT *PUSHORT; -typedef SHORT *PSHORT; -typedef ULONG *PULONG; -typedef LONG *PLONG; -typedef DWORD *PDWORD; -/* common win32 types */ -typedef CHAR *LPSTR; -typedef CHAR *PSTR; -typedef const CHAR *LPCSTR; -typedef const CHAR *PCSTR; -typedef WCHAR *LPWSTR; -typedef WCHAR *PWSTR; -typedef const WCHAR *LPCWSTR; -typedef const WCHAR *PCWSTR; -typedef BYTE *LPBYTE; -typedef WORD *LPWORD; -typedef DWORD *LPDWORD; -typedef LONG *LPLONG; -typedef VOID *LPVOID; -typedef const VOID *LPCVOID; -typedef INT *PINT; -typedef INT *LPINT; -typedef UINT *PUINT; -typedef UINT *LPUINT; -typedef FLOAT *PFLOAT; -typedef FLOAT *LPFLOAT; -typedef WIN_BOOL *PWIN_BOOL; -typedef WIN_BOOL *LPWIN_BOOL; - -/* Special case: a segmented pointer is just a pointer in the user's code. */ - -#ifdef __WINE__ -typedef DWORD SEGPTR; -#else -typedef void* SEGPTR; -#endif /* __WINE__ */ - -/* Handle types that exist both in Win16 and Win32. */ - -#ifdef STRICT -#define DECLARE_HANDLE(a) \ - typedef struct a##__ { int unused; } *a; \ - typedef a *P##a; \ - typedef a *LP##a -#else /*STRICT*/ -#define DECLARE_HANDLE(a) \ - typedef HANDLE a; \ - typedef a *P##a; \ - typedef a *LP##a -#endif /*STRICT*/ - -DECLARE_HANDLE(HACMDRIVERID); -DECLARE_HANDLE(HACMDRIVER); -DECLARE_HANDLE(HACMOBJ); -DECLARE_HANDLE(HACMSTREAM); -DECLARE_HANDLE(HMETAFILEPICT); - -DECLARE_HANDLE(HACCEL); -DECLARE_HANDLE(HBITMAP); -DECLARE_HANDLE(HBRUSH); -DECLARE_HANDLE(HCOLORSPACE); -DECLARE_HANDLE(HCURSOR); -DECLARE_HANDLE(HDC); -DECLARE_HANDLE(HDROP); -DECLARE_HANDLE(HDRVR); -DECLARE_HANDLE(HDWP); -DECLARE_HANDLE(HENHMETAFILE); -DECLARE_HANDLE(HFILE); -DECLARE_HANDLE(HFONT); -DECLARE_HANDLE(HICON); -DECLARE_HANDLE(HINSTANCE); -DECLARE_HANDLE(HKEY); -DECLARE_HANDLE(HMENU); -DECLARE_HANDLE(HMETAFILE); -DECLARE_HANDLE(HMIDI); -DECLARE_HANDLE(HMIDIIN); -DECLARE_HANDLE(HMIDIOUT); -DECLARE_HANDLE(HMIDISTRM); -DECLARE_HANDLE(HMIXER); -DECLARE_HANDLE(HMIXEROBJ); -DECLARE_HANDLE(HMMIO); -DECLARE_HANDLE(HPALETTE); -DECLARE_HANDLE(HPEN); -DECLARE_HANDLE(HQUEUE); -DECLARE_HANDLE(HRGN); -DECLARE_HANDLE(HRSRC); -DECLARE_HANDLE(HTASK); -DECLARE_HANDLE(HWAVE); -DECLARE_HANDLE(HWAVEIN); -DECLARE_HANDLE(HWAVEOUT); -DECLARE_HANDLE(HWINSTA); -DECLARE_HANDLE(HDESK); -DECLARE_HANDLE(HWND); -DECLARE_HANDLE(HKL); -DECLARE_HANDLE(HIC); -DECLARE_HANDLE(HRASCONN); - -/* Handle types that must remain interchangeable even with strict on */ - -typedef HINSTANCE HMODULE; -typedef HANDLE HGDIOBJ; -typedef HANDLE HGLOBAL; -typedef HANDLE HLOCAL; -typedef HANDLE GLOBALHANDLE; -typedef HANDLE LOCALHANDLE; - -/* Callback function pointers types */ -//WIN_BOOL CALLBACK DATEFMT_ENUMPROCA(LPSTR); - -typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCA)(LPSTR); -typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCW)(LPWSTR); -DECL_WINELIB_TYPE_AW(DATEFMT_ENUMPROC) -typedef WIN_BOOL CALLBACK (*DLGPROC)(HWND,UINT,WPARAM,LPARAM); -typedef LRESULT CALLBACK (*DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM); -typedef INT CALLBACK (*EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT); -typedef INT CALLBACK (*EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT); -DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC) -typedef LRESULT CALLBACK (*FARPROC)(); -typedef INT CALLBACK (*PROC)(); -typedef WIN_BOOL CALLBACK (*GRAYSTRINGPROC)(HDC,LPARAM,INT); -typedef LRESULT CALLBACK (*HOOKPROC)(INT,WPARAM,LPARAM); -typedef WIN_BOOL CALLBACK (*PROPENUMPROCA)(HWND,LPCSTR,HANDLE); -typedef WIN_BOOL CALLBACK (*PROPENUMPROCW)(HWND,LPCWSTR,HANDLE); -DECL_WINELIB_TYPE_AW(PROPENUMPROC) -typedef WIN_BOOL CALLBACK (*PROPENUMPROCEXA)(HWND,LPCSTR,HANDLE,LPARAM); -typedef WIN_BOOL CALLBACK (*PROPENUMPROCEXW)(HWND,LPCWSTR,HANDLE,LPARAM); -DECL_WINELIB_TYPE_AW(PROPENUMPROCEX) -typedef WIN_BOOL CALLBACK (* TIMEFMT_ENUMPROCA)(LPSTR); -typedef WIN_BOOL CALLBACK (* TIMEFMT_ENUMPROCW)(LPWSTR); -DECL_WINELIB_TYPE_AW(TIMEFMT_ENUMPROC) -typedef VOID CALLBACK (*TIMERPROC)(HWND,UINT,UINT,DWORD); -typedef WIN_BOOL CALLBACK (*WNDENUMPROC)(HWND,LPARAM); -typedef LRESULT CALLBACK (*WNDPROC)(HWND,UINT,WPARAM,LPARAM); - -/*---------------------------------------------------------------------------- -** FIXME: Better isolate Wine's reliance on the xxx16 type definitions. -** For now, we just isolate them to make the situation clear. -**--------------------------------------------------------------------------*/ -/* - * Basic type definitions for 16 bit variations on Windows types. - * These types are provided mostly to insure compatibility with - * 16 bit windows code. - */ - -#ifndef __WINE_WINDEF16_H -#define __WINE_WINDEF16_H - -#include "windef.h" - -/* Standard data types */ - -typedef short INT16; -typedef unsigned short UINT16; -typedef unsigned short WIN_BOOL16; - -typedef UINT16 HANDLE16; -typedef HANDLE16 *LPHANDLE16; - -typedef UINT16 WPARAM16; -typedef INT16 *LPINT16; -typedef UINT16 *LPUINT16; - -#define DECLARE_HANDLE16(a) \ - typedef HANDLE16 a##16; \ - typedef a##16 *P##a##16; \ - typedef a##16 *NP##a##16; \ - typedef a##16 *LP##a##16 - -DECLARE_HANDLE16(HACMDRIVERID); -DECLARE_HANDLE16(HACMDRIVER); -DECLARE_HANDLE16(HACMOBJ); -DECLARE_HANDLE16(HACMSTREAM); -DECLARE_HANDLE16(HMETAFILEPICT); - -DECLARE_HANDLE16(HACCEL); -DECLARE_HANDLE16(HBITMAP); -DECLARE_HANDLE16(HBRUSH); -DECLARE_HANDLE16(HCOLORSPACE); -DECLARE_HANDLE16(HCURSOR); -DECLARE_HANDLE16(HDC); -DECLARE_HANDLE16(HDROP); -DECLARE_HANDLE16(HDRVR); -DECLARE_HANDLE16(HDWP); -DECLARE_HANDLE16(HENHMETAFILE); -DECLARE_HANDLE16(HFILE); -DECLARE_HANDLE16(HFONT); -DECLARE_HANDLE16(HICON); -DECLARE_HANDLE16(HINSTANCE); -DECLARE_HANDLE16(HKEY); -DECLARE_HANDLE16(HMENU); -DECLARE_HANDLE16(HMETAFILE); -DECLARE_HANDLE16(HMIDI); -DECLARE_HANDLE16(HMIDIIN); -DECLARE_HANDLE16(HMIDIOUT); -DECLARE_HANDLE16(HMIDISTRM); -DECLARE_HANDLE16(HMIXER); -DECLARE_HANDLE16(HMIXEROBJ); -DECLARE_HANDLE16(HMMIO); -DECLARE_HANDLE16(HPALETTE); -DECLARE_HANDLE16(HPEN); -DECLARE_HANDLE16(HQUEUE); -DECLARE_HANDLE16(HRGN); -DECLARE_HANDLE16(HRSRC); -DECLARE_HANDLE16(HTASK); -DECLARE_HANDLE16(HWAVE); -DECLARE_HANDLE16(HWAVEIN); -DECLARE_HANDLE16(HWAVEOUT); -DECLARE_HANDLE16(HWINSTA); -DECLARE_HANDLE16(HDESK); -DECLARE_HANDLE16(HWND); -DECLARE_HANDLE16(HKL); -DECLARE_HANDLE16(HIC); -DECLARE_HANDLE16(HRASCONN); -#undef DECLARE_HANDLE16 - -typedef HINSTANCE16 HMODULE16; -typedef HANDLE16 HGDIOBJ16; -typedef HANDLE16 HGLOBAL16; -typedef HANDLE16 HLOCAL16; - -/* The SIZE structure */ -typedef struct -{ - INT16 cx; - INT16 cy; -} SIZE16, *PSIZE16, *LPSIZE16; - -/* The POINT structure */ - -typedef struct -{ - INT16 x; - INT16 y; -} POINT16, *PPOINT16, *LPPOINT16; - -/* The RECT structure */ - -typedef struct -{ - INT16 left; - INT16 top; - INT16 right; - INT16 bottom; -} RECT16, *LPRECT16; - -/* Callback function pointers types */ - -typedef LRESULT CALLBACK (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM); -typedef WIN_BOOL16 CALLBACK (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM); -typedef INT16 CALLBACK (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16); -typedef LRESULT CALLBACK (*FARPROC16)(); -typedef INT16 CALLBACK (*PROC16)(); -typedef WIN_BOOL16 CALLBACK (*GRAYSTRINGPROC16)(HDC16,LPARAM,INT16); -typedef LRESULT CALLBACK (*HOOKPROC16)(INT16,WPARAM16,LPARAM); -typedef WIN_BOOL16 CALLBACK (*PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16); -typedef VOID CALLBACK (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD); -typedef LRESULT CALLBACK (*WNDENUMPROC16)(HWND16,LPARAM); -typedef LRESULT CALLBACK (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM); - -#endif /* __WINE_WINDEF16_H */ - -/* Define some empty macros for compatibility with Windows code. */ - -#ifndef __WINE__ -#define NEAR -#define FAR -#define near -#define far -#define _near -#define _far -#define IN -#define OUT -#define OPTIONAL -#endif /* __WINE__ */ - -/* Macro for structure packing. */ - -#ifdef __GNUC__ -#ifndef _EGCS_ -#define WINE_PACKED __attribute__((packed)) -#define WINE_UNUSED __attribute__((unused)) -#define WINE_NORETURN __attribute__((noreturn)) -#endif -#else -#define WINE_PACKED /* nothing */ -#define WINE_UNUSED /* nothing */ -#define WINE_NORETURN /* nothing */ -#endif - -/* Macros to split words and longs. */ - -#define LOBYTE(w) ((BYTE)(WORD)(w)) -#define HIBYTE(w) ((BYTE)((WORD)(w) >> 8)) - -#define LOWORD(l) ((WORD)(DWORD)(l)) -#define HIWORD(l) ((WORD)((DWORD)(l) >> 16)) - -#define SLOWORD(l) ((INT16)(LONG)(l)) -#define SHIWORD(l) ((INT16)((LONG)(l) >> 16)) - -#define MAKEWORD(low,high) ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8)) -#define MAKELONG(low,high) ((LONG)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16))) -#define MAKELPARAM(low,high) ((LPARAM)MAKELONG(low,high)) -#define MAKEWPARAM(low,high) ((WPARAM)MAKELONG(low,high)) -#define MAKELRESULT(low,high) ((LRESULT)MAKELONG(low,high)) -#define MAKEINTATOM(atom) ((LPCSTR)MAKELONG((atom),0)) - -#define SELECTOROF(ptr) (HIWORD(ptr)) -#define OFFSETOF(ptr) (LOWORD(ptr)) - -#ifdef __WINE__ -/* macros to set parts of a DWORD (not in the Windows API) */ -#define SET_LOWORD(dw,val) ((dw) = ((dw) & 0xffff0000) | LOWORD(val)) -#define SET_LOBYTE(dw,val) ((dw) = ((dw) & 0xffffff00) | LOBYTE(val)) -#define SET_HIBYTE(dw,val) ((dw) = ((dw) & 0xffff00ff) | (LOWORD(val) & 0xff00)) -#define ADD_LOWORD(dw,val) ((dw) = ((dw) & 0xffff0000) | LOWORD((DWORD)(dw)+(val))) -#endif - -/* Macros to access unaligned or wrong-endian WORDs and DWORDs. */ -/* Note: These macros are semantically broken, at least for wrc. wrc - spits out data in the platform's current binary format, *not* in - little-endian format. These macros are used throughout the resource - code to load and store data to the resources. Since it is unlikely - that we'll ever be dealing with little-endian resource data, the - byte-swapping nature of these macros has been disabled. Rather than - remove the use of these macros from the resource loading code, the - macros have simply been disabled. In the future, someone may want - to reactivate these macros for other purposes. In that case, the - resource code will have to be modified to use different macros. */ - -#if 1 -#define PUT_WORD(ptr,w) (*(WORD *)(ptr) = (w)) -#define GET_WORD(ptr) (*(WORD *)(ptr)) -#define PUT_DWORD(ptr,dw) (*(DWORD *)(ptr) = (dw)) -#define GET_DWORD(ptr) (*(DWORD *)(ptr)) -#else -#define PUT_WORD(ptr,w) (*(BYTE *)(ptr) = LOBYTE(w), \ - *((BYTE *)(ptr) + 1) = HIBYTE(w)) -#define GET_WORD(ptr) ((WORD)(*(BYTE *)(ptr) | \ - (WORD)(*((BYTE *)(ptr)+1) << 8))) -#define PUT_DWORD(ptr,dw) (PUT_WORD((ptr),LOWORD(dw)), \ - PUT_WORD((WORD *)(ptr)+1,HIWORD(dw))) -#define GET_DWORD(ptr) ((DWORD)(GET_WORD(ptr) | \ - ((DWORD)GET_WORD((WORD *)(ptr)+1) << 16))) -#endif /* 1 */ - -/* min and max macros */ -#define __max(a,b) (((a) > (b)) ? (a) : (b)) -#define __min(a,b) (((a) < (b)) ? (a) : (b)) -#ifndef max -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif -#ifndef min -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -#define _MAX_PATH 260 -#define MAX_PATH 260 -#define _MAX_DRIVE 3 -#define _MAX_DIR 256 -#define _MAX_FNAME 255 -#define _MAX_EXT 256 - -#define HFILE_ERROR16 ((HFILE16)-1) -#define HFILE_ERROR ((HFILE)-1) - -/* The SIZE structure */ -typedef struct tagSIZE -{ - INT cx; - INT cy; -} SIZE, *PSIZE, *LPSIZE; - - -typedef SIZE SIZEL, *PSIZEL, *LPSIZEL; - -#define CONV_SIZE16TO32(s16,s32) \ - ((s32)->cx = (INT)(s16)->cx, (s32)->cy = (INT)(s16)->cy) -#define CONV_SIZE32TO16(s32,s16) \ - ((s16)->cx = (INT16)(s32)->cx, (s16)->cy = (INT16)(s32)->cy) - -/* The POINT structure */ -typedef struct tagPOINT -{ - LONG x; - LONG y; -} POINT, *PPOINT, *LPPOINT; - -typedef struct _POINTL -{ - LONG x; - LONG y; -} POINTL; - -#define CONV_POINT16TO32(p16,p32) \ - ((p32)->x = (INT)(p16)->x, (p32)->y = (INT)(p16)->y) -#define CONV_POINT32TO16(p32,p16) \ - ((p16)->x = (INT16)(p32)->x, (p16)->y = (INT16)(p32)->y) - -#define MAKEPOINT16(l) (*((POINT16 *)&(l))) - -/* The POINTS structure */ - -typedef struct tagPOINTS -{ - SHORT x; - SHORT y; -} POINTS, *PPOINTS, *LPPOINTS; - - -#define MAKEPOINTS(l) (*((POINTS *)&(l))) - - -/* The RECT structure */ -typedef struct tagRECT -{ - short left; - short top; - short right; - short bottom; -} RECT, *PRECT, *LPRECT; -typedef const RECT *LPCRECT; - - -typedef struct tagRECTL -{ - LONG left; - LONG top; - LONG right; - LONG bottom; -} RECTL, *PRECTL, *LPRECTL; - -typedef const RECTL *LPCRECTL; - -#define CONV_RECT16TO32(r16,r32) \ - ((r32)->left = (INT)(r16)->left, (r32)->top = (INT)(r16)->top, \ - (r32)->right = (INT)(r16)->right, (r32)->bottom = (INT)(r16)->bottom) -#define CONV_RECT32TO16(r32,r16) \ - ((r16)->left = (INT16)(r32)->left, (r16)->top = (INT16)(r32)->top, \ - (r16)->right = (INT16)(r32)->right, (r16)->bottom = (INT16)(r32)->bottom) - -#ifdef __cplusplus -} -#endif - -#endif /* __WINE_WINDEF_H */ diff --git a/include/wine/windows.h b/include/wine/windows.h deleted file mode 100644 index cd62a03272..0000000000 --- a/include/wine/windows.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __WINE_WINDOWS_H -#define __WINE_WINDOWS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "windef.h" -#include "winbase.h" -#include "winuser.h" -#include "shell.h" -#include "winreg.h" -#include "winnetwk.h" -#include "winver.h" -#include "lzexpand.h" -#include "shellapi.h" -#include "ole2.h" -#include "winnls.h" -#include "objbase.h" -#include "winspool.h" - -#if 0 - Where does this belong? Nobody uses this stuff anyway. -typedef struct { - BYTE i; /* much more .... */ -} KANJISTRUCT; -typedef KANJISTRUCT *LPKANJISTRUCT; -typedef KANJISTRUCT *NPKANJISTRUCT; -typedef KANJISTRUCT *PKANJISTRUCT; - - -#endif /* 0 */ - -#ifdef __cplusplus -} -#endif - -#endif /* __WINE_WINDOWS_H */ diff --git a/include/wine/winerror.h b/include/wine/winerror.h deleted file mode 100644 index 0c78792b9c..0000000000 --- a/include/wine/winerror.h +++ /dev/null @@ -1,1658 +0,0 @@ -#ifndef __WINE_WINERROR_H -#define __WINE_WINERROR_H - - -extern int WIN32_LastError; - -#define FACILITY_NULL 0 -#define FACILITY_RPC 1 -#define FACILITY_DISPATCH 2 -#define FACILITY_STORAGE 3 -#define FACILITY_ITF 4 -#define FACILITY_WIN32 7 -#define FACILITY_WINDOWS 8 -#define FACILITY_SSPI 9 -#define FACILITY_CONTROL 10 -#define FACILITY_CERT 11 -#define FACILITY_INTERNET 12 - -#define SEVERITY_ERROR 1 - - -#define MAKE_HRESULT(sev,fac,code) \ - ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) -#define MAKE_SCODE(sev,fac,code) \ - ((SCODE) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) -#define SUCCEEDED(stat) ((HRESULT)(stat)>=0) -#define FAILED(stat) ((HRESULT)(stat)<0) - -#define HRESULT_CODE(hr) ((hr) & 0xFFFF) -#define SCODE_CODE(sc) ((sc) & 0xFFFF) - -#define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1FFF) -#define SCODE_FACILITY(sc) (((sc) >> 16) & 0x1FFF) - -/* ERROR_UNKNOWN is a placeholder for error conditions which haven't - * been tested yet so we're not exactly sure what will be returned. - * All instances of ERROR_UNKNOWN should be tested under Win95/NT - * and replaced. - */ -#define ERROR_UNKNOWN 99999 - -#define SEVERITY_SUCCESS 0 -#define SEVERITY_ERROR 1 - -#define NO_ERROR 0 -#define ERROR_SUCCESS 0 -#define ERROR_INVALID_FUNCTION 1 -#define ERROR_FILE_NOT_FOUND 2 -#define ERROR_PATH_NOT_FOUND 3 -#define ERROR_TOO_MANY_OPEN_FILES 4 -#define ERROR_ACCESS_DENIED 5 -#define ERROR_INVALID_HANDLE 6 -#define ERROR_ARENA_TRASHED 7 -#define ERROR_NOT_ENOUGH_MEMORY 8 -#define ERROR_INVALID_BLOCK 9 -#define ERROR_BAD_ENVIRONMENT 10 -#define ERROR_BAD_FORMAT 11 -#define ERROR_INVALID_ACCESS 12 -#define ERROR_INVALID_DATA 13 -#define ERROR_OUTOFMEMORY 14 -#define ERROR_INVALID_DRIVE 15 -#define ERROR_CURRENT_DIRECTORY 16 -#define ERROR_NOT_SAME_DEVICE 17 -#define ERROR_NO_MORE_FILES 18 -#define ERROR_WRITE_PROTECT 19 -#define ERROR_BAD_UNIT 20 -#define ERROR_NOT_READY 21 -#define ERROR_BAD_COMMAND 22 -#define ERROR_CRC 23 -#define ERROR_BAD_LENGTH 24 -#define ERROR_SEEK 25 -#define ERROR_NOT_DOS_DISK 26 -#define ERROR_SECTOR_NOT_FOUND 27 -#define ERROR_OUT_OF_PAPER 28 -#define ERROR_WRITE_FAULT 29 -#define ERROR_READ_FAULT 30 -#define ERROR_GEN_FAILURE 31 -#define ERROR_SHARING_VIOLATION 32 -#define ERROR_LOCK_VIOLATION 33 -#define ERROR_WRONG_DISK 34 -#define ERROR_SHARING_BUFFER_EXCEEDED 36 -#define ERROR_HANDLE_EOF 38 -#define ERROR_HANDLE_DISK_FULL 39 -#define ERROR_NOT_SUPPORTED 50 -#define ERROR_REM_NOT_LIST 51 -#define ERROR_DUP_NAME 52 -#define ERROR_BAD_NETPATH 53 -#define ERROR_NETWORK_BUSY 54 -#define ERROR_DEV_NOT_EXIST 55 -#define ERROR_TOO_MANY_CMDS 56 -#define ERROR_ADAP_HDW_ERR 57 -#define ERROR_BAD_NET_RESP 58 -#define ERROR_UNEXP_NET_ERR 59 -#define ERROR_BAD_REM_ADAP 60 -#define ERROR_PRINTQ_FULL 61 -#define ERROR_NO_SPOOL_SPACE 62 -#define ERROR_PRINT_CANCELLED 63 -#define ERROR_NETNAME_DELETED 64 -#define ERROR_NETWORK_ACCESS_DENIED 65 -#define ERROR_BAD_DEV_TYPE 66 -#define ERROR_BAD_NET_NAME 67 -#define ERROR_TOO_MANY_NAMES 68 -#define ERROR_TOO_MANY_SESS 69 -#define ERROR_SHARING_PAUSED 70 -#define ERROR_REQ_NOT_ACCEP 71 -#define ERROR_REDIR_PAUSED 72 -#define ERROR_FILE_EXISTS 80 -#define ERROR_CANNOT_MAKE 82 -#define ERROR_FAIL_I24 83 -#define ERROR_OUT_OF_STRUCTURES 84 -#define ERROR_ALREADY_ASSIGNED 85 -#define ERROR_INVALID_PASSWORD 86 -#define ERROR_INVALID_PARAMETER 87 -#define ERROR_NET_WRITE_FAULT 88 -#define ERROR_NO_PROC_SLOTS 89 -#define ERROR_TOO_MANY_SEMAPHORES 100 -#define ERROR_EXCL_SEM_ALREADY_OWNED 101 -#define ERROR_SEM_IS_SET 102 -#define ERROR_TOO_MANY_SEM_REQUESTS 103 -#define ERROR_INVALID_AT_INTERRUPT_TIME 104 -#define ERROR_SEM_OWNER_DIED 105 -#define ERROR_SEM_USER_LIMIT 106 -#define ERROR_DISK_CHANGE 107 -#define ERROR_DRIVE_LOCKED 108 -#define ERROR_BROKEN_PIPE 109 -#define ERROR_OPEN_FAILED 110 -#define ERROR_BUFFER_OVERFLOW 111 -#define ERROR_DISK_FULL 112 -#define ERROR_NO_MORE_SEARCH_HANDLES 113 -#define ERROR_INVALID_TARGET_HANDLE 114 -#define ERROR_INVALID_CATEGORY 117 -#define ERROR_INVALID_VERIFY_SWITCH 118 -#define ERROR_BAD_DRIVER_LEVEL 119 -#define ERROR_CALL_NOT_IMPLEMENTED 120 -#define ERROR_SEM_TIMEOUT 121 -#define ERROR_INSUFFICIENT_BUFFER 122 -#define ERROR_INVALID_NAME 123 -#define ERROR_INVALID_LEVEL 124 -#define ERROR_NO_VOLUME_LABEL 125 -#define ERROR_MOD_NOT_FOUND 126 -#define ERROR_PROC_NOT_FOUND 127 -#define ERROR_WAIT_NO_CHILDREN 128 -#define ERROR_CHILD_NOT_COMPLETE 129 -#define ERROR_DIRECT_ACCESS_HANDLE 130 -#define ERROR_NEGATIVE_SEEK 131 -#define ERROR_SEEK_ON_DEVICE 132 -#define ERROR_IS_JOIN_TARGET 133 -#define ERROR_IS_JOINED 134 -#define ERROR_IS_SUBSTED 135 -#define ERROR_NOT_JOINED 136 -#define ERROR_NOT_SUBSTED 137 -#define ERROR_JOIN_TO_JOIN 138 -#define ERROR_SUBST_TO_SUBST 139 -#define ERROR_JOIN_TO_SUBST 140 -#define ERROR_SUBST_TO_JOIN 141 -#define ERROR_BUSY_DRIVE 142 -#define ERROR_SAME_DRIVE 143 -#define ERROR_DIR_NOT_ROOT 144 -#define ERROR_DIR_NOT_EMPTY 145 -#define ERROR_IS_SUBST_PATH 146 -#define ERROR_IS_JOIN_PATH 147 -#define ERROR_PATH_BUSY 148 -#define ERROR_IS_SUBST_TARGET 149 -#define ERROR_SYSTEM_TRACE 150 -#define ERROR_INVALID_EVENT_COUNT 151 -#define ERROR_TOO_MANY_MUXWAITERS 152 -#define ERROR_INVALID_LIST_FORMAT 153 -#define ERROR_LABEL_TOO_LONG 154 -#define ERROR_TOO_MANY_TCBS 155 -#define ERROR_SIGNAL_REFUSED 156 -#define ERROR_DISCARDED 157 -#define ERROR_NOT_LOCKED 158 -#define ERROR_BAD_THREADID_ADDR 159 -#define ERROR_BAD_ARGUMENTS 160 -#define ERROR_BAD_PATHNAME 161 -#define ERROR_SIGNAL_PENDING 162 -#define ERROR_MAX_THRDS_REACHED 164 -#define ERROR_LOCK_FAILED 167 -#define ERROR_BUSY 170 -#define ERROR_CANCEL_VIOLATION 173 -#define ERROR_ATOMIC_LOCKS_NOT_SUPPORTED 174 -#define ERROR_INVALID_SEGMENT_NUMBER 180 -#define ERROR_INVALID_ORDINAL 182 -#define ERROR_ALREADY_EXISTS 183 -#define ERROR_INVALID_FLAG_NUMBER 186 -#define ERROR_SEM_NOT_FOUND 187 -#define ERROR_INVALID_STARTING_CODESEG 188 -#define ERROR_INVALID_STACKSEG 189 -#define ERROR_INVALID_MODULETYPE 190 -#define ERROR_INVALID_EXE_SIGNATURE 191 -#define ERROR_EXE_MARKED_INVALID 192 -#define ERROR_BAD_EXE_FORMAT 193 -#define ERROR_ITERATED_DATA_EXCEEDS_64k 194 -#define ERROR_INVALID_MINALLOCSIZE 195 -#define ERROR_DYNLINK_FROM_INVALID_RING 196 -#define ERROR_IOPL_NOT_ENABLED 197 -#define ERROR_INVALID_SEGDPL 198 -#define ERROR_AUTODATASEG_EXCEEDS_64k 199 -#define ERROR_RING2SEG_MUST_BE_MOVABLE 200 -#define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201 -#define ERROR_INFLOOP_IN_RELOC_CHAIN 202 -#define ERROR_ENVVAR_NOT_FOUND 203 -#define ERROR_NO_SIGNAL_SENT 205 -#define ERROR_FILENAME_EXCED_RANGE 206 -#define ERROR_RING2_STACK_IN_USE 207 -#define ERROR_META_EXPANSION_TOO_LONG 208 -#define ERROR_INVALID_SIGNAL_NUMBER 209 -#define ERROR_THREAD_1_INACTIVE 210 -#define ERROR_LOCKED 212 -#define ERROR_TOO_MANY_MODULES 214 -#define ERROR_NESTING_NOT_ALLOWED 215 -#define ERROR_EXE_MACHINE_TYPE_MISMATCH 216 -#define ERROR_BAD_PIPE 230 -#define ERROR_PIPE_BUSY 231 -#define ERROR_NO_DATA 232 -#define ERROR_PIPE_NOT_CONNECTED 233 -#define ERROR_MORE_DATA 234 -#define ERROR_VC_DISCONNECTED 240 -#define ERROR_INVALID_EA_NAME 254 -#define ERROR_EA_LIST_INCONSISTENT 255 -#define ERROR_NO_MORE_ITEMS 259 -#define ERROR_CANNOT_COPY 266 -#define ERROR_DIRECTORY 267 -#define ERROR_EAS_DIDNT_FIT 275 -#define ERROR_EA_FILE_CORRUPT 276 -#define ERROR_EA_TABLE_FULL 277 -#define ERROR_INVALID_EA_HANDLE 278 -#define ERROR_EAS_NOT_SUPPORTED 282 -#define ERROR_NOT_OWNER 288 -#define ERROR_TOO_MANY_POSTS 298 -#define ERROR_PARTIAL_COPY 299 -#define ERROR_OPLOCK_NOT_GRANTED 300 -#define ERROR_INVALID_OPLOCK_PROTOCOL 301 -#define ERROR_MR_MID_NOT_FOUND 317 -#define ERROR_INVALID_ADDRESS 487 -#define ERROR_ARITHMETIC_OVERFLOW 534 -#define ERROR_PIPE_CONNECTED 535 -#define ERROR_PIPE_LISTENING 536 -#define ERROR_EA_ACCESS_DENIED 994 -#define ERROR_OPERATION_ABORTED 995 -#define ERROR_IO_INCOMPLETE 996 -#define ERROR_IO_PENDING 997 -#define ERROR_NOACCESS 998 -#define ERROR_SWAPERROR 999 -#define ERROR_STACK_OVERFLOW 1001 -#define ERROR_INVALID_MESSAGE 1002 -#define ERROR_CAN_NOT_COMPLETE 1003 -#define ERROR_INVALID_FLAGS 1004 -#define ERROR_UNRECOGNIZED_VOLUME 1005 -#define ERROR_FILE_INVALID 1006 -#define ERROR_FULLSCREEN_MODE 1007 -#define ERROR_NO_TOKEN 1008 -#define ERROR_BADDB 1009 -#define ERROR_BADKEY 1010 -#define ERROR_CANTOPEN 1011 -#define ERROR_CANTREAD 1012 -#define ERROR_CANTWRITE 1013 -#define ERROR_REGISTRY_RECOVERED 1014 -#define ERROR_REGISTRY_CORRUPT 1015 -#define ERROR_REGISTRY_IO_FAILED 1016 -#define ERROR_NOT_REGISTRY_FILE 1017 -#define ERROR_KEY_DELETED 1018 -#define ERROR_NO_LOG_SPACE 1019 -#define ERROR_KEY_HAS_CHILDREN 1020 -#define ERROR_CHILD_MUST_BE_VOLATILE 1021 -#define ERROR_NOTIFY_ENUM_DIR 1022 -#define ERROR_DEPENDENT_SERVICES_RUNNING 1051 -#define ERROR_INVALID_SERVICE_CONTROL 1052 -#define ERROR_SERVICE_REQUEST_TIMEOUT 1053 -#define ERROR_SERVICE_NO_THREAD 1054 -#define ERROR_SERVICE_DATABASE_LOCKED 1055 -#define ERROR_SERVICE_ALREADY_RUNNING 1056 -#define ERROR_INVALID_SERVICE_ACCOUNT 1057 -#define ERROR_SERVICE_DISABLED 1058 -#define ERROR_CIRCULAR_DEPENDENCY 1059 -#define ERROR_SERVICE_DOES_NOT_EXIST 1060 -#define ERROR_SERVICE_CANNOT_ACCEPT_CTRL 1061 -#define ERROR_SERVICE_NOT_ACTIVE 1062 -#define ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 1063 -#define ERROR_EXCEPTION_IN_SERVICE 1064 -#define ERROR_DATABASE_DOES_NOT_EXIST 1065 -#define ERROR_SERVICE_SPECIFIC_ERROR 1066 -#define ERROR_PROCESS_ABORTED 1067 -#define ERROR_SERVICE_DEPENDENCY_FAIL 1068 -#define ERROR_SERVICE_LOGON_FAILED 1069 -#define ERROR_SERVICE_START_HANG 1070 -#define ERROR_INVALID_SERVICE_LOCK 1071 -#define ERROR_SERVICE_MARKED_FOR_DELETE 1072 -#define ERROR_SERVICE_EXISTS 1073 -#define ERROR_ALREADY_RUNNING_LKG 1074 -#define ERROR_SERVICE_DEPENDENCY_DELETED 1075 -#define ERROR_BOOT_ALREADY_ACCEPTED 1076 -#define ERROR_SERVICE_NEVER_STARTED 1077 -#define ERROR_DUPLICATE_SERVICE_NAME 1078 -#define ERROR_DIFFERENT_SERVICE_ACCOUNT 1079 -#define ERROR_CANNOT_DETECT_DRIVER_FAILURE 1080 -#define ERROR_CANNOT_DETECT_PROCESS_ABORT 1081 -#define ERROR_NO_RECOVERY_PROGRAM 1082 -#define ERROR_SERVICE_NOT_IN_EXE 1083 -#define ERROR_END_OF_MEDIA 1100 -#define ERROR_FILEMARK_DETECTED 1101 -#define ERROR_BEGINNING_OF_MEDIA 1102 -#define ERROR_SETMARK_DETECTED 1103 -#define ERROR_NO_DATA_DETECTED 1104 -#define ERROR_PARTITION_FAILURE 1105 -#define ERROR_INVALID_BLOCK_LENGTH 1106 -#define ERROR_DEVICE_NOT_PARTITIONED 1107 -#define ERROR_UNABLE_TO_LOCK_MEDIA 1108 -#define ERROR_UNABLE_TO_UNLOAD_MEDIA 1109 -#define ERROR_MEDIA_CHANGED 1110 -#define ERROR_BUS_RESET 1111 -#define ERROR_NO_MEDIA_IN_DRIVE 1112 -#define ERROR_NO_UNICODE_TRANSLATION 1113 -#define ERROR_DLL_INIT_FAILED 1114 -#define ERROR_SHUTDOWN_IN_PROGRESS 1115 -#define ERROR_NO_SHUTDOWN_IN_PROGRESS 1116 -#define ERROR_IO_DEVICE 1117 -#define ERROR_SERIAL_NO_DEVICE 1118 -#define ERROR_IRQ_BUSY 1119 -#define ERROR_MORE_WRITES 1120 -#define ERROR_COUNTER_TIMEOUT 1121 -#define ERROR_FLOPPY_ID_MARK_NOT_FOUND 1122 -#define ERROR_FLOPPY_WRONG_CYLINDER 1123 -#define ERROR_FLOPPY_UNKNOWN_ERROR 1124 -#define ERROR_FLOPPY_BAD_REGISTERS 1125 -#define ERROR_DISK_RECALIBRATE_FAILED 1126 -#define ERROR_DISK_OPERATION_FAILED 1127 -#define ERROR_DISK_RESET_FAILED 1128 -#define ERROR_EOM_OVERFLOW 1129 -#define ERROR_NOT_ENOUGH_SERVER_MEMORY 1130 -#define ERROR_POSSIBLE_DEADLOCK 1131 -#define ERROR_MAPPED_ALIGNMENT 1132 -#define ERROR_SET_POWER_STATE_VETOED 1140 -#define ERROR_SET_POWER_STATE_FAILED 1141 -#define ERROR_TOO_MANY_LINKS 1142 -#define ERROR_OLD_WIN_VERSION 1150 -#define ERROR_APP_WRONG_OS 1151 -#define ERROR_SINGLE_INSTANCE_APP 1152 -#define ERROR_RMODE_APP 1153 -#define ERROR_INVALID_DLL 1154 -#define ERROR_NO_ASSOCIATION 1155 -#define ERROR_DDE_FAIL 1156 -#define ERROR_DLL_NOT_FOUND 1157 -#define ERROR_NO_MORE_USER_HANDLES 1158 -#define ERROR_MESSAGE_SYNC_ONLY 1159 -#define ERROR_SOURCE_ELEMENT_EMPTY 1160 -#define ERROR_DESTINATION_ELEMENT_FULL 1161 -#define ERROR_ILLEGAL_ELEMENT_ADDRESS 1162 -#define ERROR_MAGAZINE_NOT_PRESENT 1163 -#define ERROR_DEVICE_REINITIALIZATION_NEEDED 1164 -#define ERROR_DEVICE_REQUIRES_CLEANING 1165 -#define ERROR_DEVICE_DOOR_OPEN 1166 -#define ERROR_DEVICE_NOT_CONNECTED 1167 -#define ERROR_NOT_FOUND 1168 -#define ERROR_NO_MATCH 1169 -#define ERROR_SET_NOT_FOUND 1170 -#define ERROR_POINT_NOT_FOUND 1171 -#define ERROR_NO_TRACKING_SERVICE 1172 -#define ERROR_NO_VOLUME_ID 1173 -#define ERROR_UNABLE_TO_REMOVE_REPLACED 1175 -#define ERROR_UNABLE_TO_MOVE_REPLACEMENT 1176 -#define ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 1177 -#define ERROR_JOURNAL_DELETE_IN_PROGRESS 1178 -#define ERROR_JOURNAL_NOT_ACTIVE 1179 -#define ERROR_POTENTIAL_FILE_FOUND 1180 -#define ERROR_JOURNAL_ENTRY_DELETED 1181 -#define ERROR_BAD_DEVICE 1200 -#define ERROR_CONNECTION_UNAVAIL 1201 -#define ERROR_DEVICE_ALREADY_REMEMBERED 1202 -#define ERROR_NO_NET_OR_BAD_PATH 1203 -#define ERROR_BAD_PROVIDER 1204 -#define ERROR_CANNOT_OPEN_PROFILE 1205 -#define ERROR_BAD_PROFILE 1206 -#define ERROR_NOT_CONTAINER 1207 -#define ERROR_EXTENDED_ERROR 1208 -#define ERROR_INVALID_GROUPNAME 1209 -#define ERROR_INVALID_COMPUTERNAME 1210 -#define ERROR_INVALID_EVENTNAME 1211 -#define ERROR_INVALID_DOMAINNAME 1212 -#define ERROR_INVALID_SERVICENAME 1213 -#define ERROR_INVALID_NETNAME 1214 -#define ERROR_INVALID_SHARENAME 1215 -#define ERROR_INVALID_PASSWORDNAME 1216 -#define ERROR_INVALID_MESSAGENAME 1217 -#define ERROR_INVALID_MESSAGEDEST 1218 -#define ERROR_SESSION_CREDENTIAL_CONFLICT 1219 -#define ERROR_REMOTE_SESSION_LIMIT_EXCEEDED 1220 -#define ERROR_DUP_DOMAINNAME 1221 -#define ERROR_NO_NETWORK 1222 -#define ERROR_CANCELLED 1223 -#define ERROR_USER_MAPPED_FILE 1224 -#define ERROR_CONNECTION_REFUSED 1225 -#define ERROR_GRACEFUL_DISCONNECT 1226 -#define ERROR_ADDRESS_ALREADY_ASSOCIATED 1227 -#define ERROR_ADDRESS_NOT_ASSOCIATED 1228 -#define ERROR_CONNECTION_INVALID 1229 -#define ERROR_CONNECTION_ACTIVE 1230 -#define ERROR_NETWORK_UNREACHABLE 1231 -#define ERROR_HOST_UNREACHABLE 1232 -#define ERROR_PROTOCOL_UNREACHABLE 1233 -#define ERROR_PORT_UNREACHABLE 1234 -#define ERROR_REQUEST_ABORTED 1235 -#define ERROR_CONNECTION_ABORTED 1236 -#define ERROR_RETRY 1237 -#define ERROR_CONNECTION_COUNT_LIMIT 1238 -#define ERROR_LOGIN_TIME_RESTRICTION 1239 -#define ERROR_LOGIN_WKSTA_RESTRICTION 1240 -#define ERROR_INCORRECT_ADDRESS 1241 -#define ERROR_ALREADY_REGISTERED 1242 -#define ERROR_SERVICE_NOT_FOUND 1243 -#define ERROR_NOT_AUTHENTICATED 1244 -#define ERROR_NOT_LOGGED_ON 1245 -#define ERROR_CONTINUE 1246 -#define ERROR_ALREADY_INITIALIZED 1247 -#define ERROR_NO_MORE_DEVICES 1248 -#define ERROR_NO_SUCH_SITE 1249 -#define ERROR_DOMAIN_CONTROLLER_EXISTS 1250 -#define ERROR_ONLY_IF_CONNECTED 1251 -#define ERROR_OVERRIDE_NOCHANGES 1252 -#define ERROR_BAD_USER_PROFILE 1253 -#define ERROR_NOT_SUPPORTED_ON_SBS 1254 -#define ERROR_NOT_ALL_ASSIGNED 1300 -#define ERROR_SOME_NOT_MAPPED 1301 -#define ERROR_NO_QUOTAS_FOR_ACCOUNT 1302 -#define ERROR_LOCAL_USER_SESSION_KEY 1303 -#define ERROR_NULL_LM_PASSWORD 1304 -#define ERROR_UNKNOWN_REVISION 1305 -#define ERROR_REVISION_MISMATCH 1306 -#define ERROR_INVALID_OWNER 1307 -#define ERROR_INVALID_PRIMARY_GROUP 1308 -#define ERROR_NO_IMPERSONATION_TOKEN 1309 -#define ERROR_CANT_DISABLE_MANDATORY 1310 -#define ERROR_NO_LOGON_SERVERS 1311 -#define ERROR_NO_SUCH_LOGON_SESSION 1312 -#define ERROR_NO_SUCH_PRIVILEGE 1313 -#define ERROR_PRIVILEGE_NOT_HELD 1314 -#define ERROR_INVALID_ACCOUNT_NAME 1315 -#define ERROR_USER_EXISTS 1316 -#define ERROR_NO_SUCH_USER 1317 -#define ERROR_GROUP_EXISTS 1318 -#define ERROR_NO_SUCH_GROUP 1319 -#define ERROR_MEMBER_IN_GROUP 1320 -#define ERROR_MEMBER_NOT_IN_GROUP 1321 -#define ERROR_LAST_ADMIN 1322 -#define ERROR_WRONG_PASSWORD 1323 -#define ERROR_ILL_FORMED_PASSWORD 1324 -#define ERROR_PASSWORD_RESTRICTION 1325 -#define ERROR_LOGON_FAILURE 1326 -#define ERROR_ACCOUNT_RESTRICTION 1327 -#define ERROR_INVALID_LOGON_HOURS 1328 -#define ERROR_INVALID_WORKSTATION 1329 -#define ERROR_PASSWORD_EXPIRED 1330 -#define ERROR_ACCOUNT_DISABLED 1331 -#define ERROR_NONE_MAPPED 1332 -#define ERROR_TOO_MANY_LUIDS_REQUESTED 1333 -#define ERROR_LUIDS_EXHAUSTED 1334 -#define ERROR_INVALID_SUB_AUTHORITY 1335 -#define ERROR_INVALID_ACL 1336 -#define ERROR_INVALID_SID 1337 -#define ERROR_INVALID_SECURITY_DESCR 1338 -#define ERROR_BAD_INHERITANCE_ACL 1340 -#define ERROR_SERVER_DISABLED 1341 -#define ERROR_SERVER_NOT_DISABLED 1342 -#define ERROR_INVALID_ID_AUTHORITY 1343 -#define ERROR_ALLOTTED_SPACE_EXCEEDED 1344 -#define ERROR_INVALID_GROUP_ATTRIBUTES 1345 -#define ERROR_BAD_IMPERSONATION_LEVEL 1346 -#define ERROR_CANT_OPEN_ANONYMOUS 1347 -#define ERROR_BAD_VALIDATION_CLASS 1348 -#define ERROR_BAD_TOKEN_TYPE 1349 -#define ERROR_NO_SECURITY_ON_OBJECT 1350 -#define ERROR_CANT_ACCESS_DOMAIN_INFO 1351 -#define ERROR_INVALID_SERVER_STATE 1352 -#define ERROR_INVALID_DOMAIN_STATE 1353 -#define ERROR_INVALID_DOMAIN_ROLE 1354 -#define ERROR_NO_SUCH_DOMAIN 1355 -#define ERROR_DOMAIN_EXISTS 1356 -#define ERROR_DOMAIN_LIMIT_EXCEEDED 1357 -#define ERROR_INTERNAL_DB_CORRUPTION 1358 -#define ERROR_INTERNAL_ERROR 1359 -#define ERROR_GENERIC_NOT_MAPPED 1360 -#define ERROR_BAD_DESCRIPTOR_FORMAT 1361 -#define ERROR_NOT_LOGON_PROCESS 1362 -#define ERROR_LOGON_SESSION_EXISTS 1363 -#define ERROR_NO_SUCH_PACKAGE 1364 -#define ERROR_BAD_LOGON_SESSION_STATE 1365 -#define ERROR_LOGON_SESSION_COLLISION 1366 -#define ERROR_INVALID_LOGON_TYPE 1367 -#define ERROR_CANNOT_IMPERSONATE 1368 -#define ERROR_RXACT_INVALID_STATE 1369 -#define ERROR_RXACT_COMMIT_FAILURE 1370 -#define ERROR_SPECIAL_ACCOUNT 1371 -#define ERROR_SPECIAL_GROUP 1372 -#define ERROR_SPECIAL_USER 1373 -#define ERROR_MEMBERS_PRIMARY_GROUP 1374 -#define ERROR_TOKEN_ALREADY_IN_USE 1375 -#define ERROR_NO_SUCH_ALIAS 1376 -#define ERROR_MEMBER_NOT_IN_ALIAS 1377 -#define ERROR_MEMBER_IN_ALIAS 1378 -#define ERROR_ALIAS_EXISTS 1379 -#define ERROR_LOGON_NOT_GRANTED 1380 -#define ERROR_TOO_MANY_SECRETS 1381 -#define ERROR_SECRET_TOO_LONG 1382 -#define ERROR_INTERNAL_DB_ERROR 1383 -#define ERROR_TOO_MANY_CONTEXT_IDS 1384 -#define ERROR_LOGON_TYPE_NOT_GRANTED 1385 -#define ERROR_NT_CROSS_ENCRYPTION_REQUIRED 1386 -#define ERROR_NO_SUCH_MEMBER 1387 -#define ERROR_INVALID_MEMBER 1388 -#define ERROR_TOO_MANY_SIDS 1389 -#define ERROR_LM_CROSS_ENCRYPTION_REQUIRED 1390 -#define ERROR_NO_INHERITANCE 1391 -#define ERROR_FILE_CORRUPT 1392 -#define ERROR_DISK_CORRUPT 1393 -#define ERROR_NO_USER_SESSION_KEY 1394 -#define ERROR_LICENSE_QUOTA_EXCEEDED 1395 -#define ERROR_WRONG_TARGET_NAME 1396 -#define ERROR_MUTUAL_AUTH_FAILED 1397 -#define ERROR_TIME_SKEW 1398 -#define ERROR_INVALID_WINDOW_HANDLE 1400 -#define ERROR_INVALID_MENU_HANDLE 1401 -#define ERROR_INVALID_CURSOR_HANDLE 1402 -#define ERROR_INVALID_ACCEL_HANDLE 1403 -#define ERROR_INVALID_HOOK_HANDLE 1404 -#define ERROR_INVALID_DWP_HANDLE 1405 -#define ERROR_TLW_WITH_WSCHILD 1406 -#define ERROR_CANNOT_FIND_WND_CLASS 1407 -#define ERROR_WINDOW_OF_OTHER_THREAD 1408 -#define ERROR_HOTKEY_ALREADY_REGISTERED 1409 -#define ERROR_CLASS_ALREADY_EXISTS 1410 -#define ERROR_CLASS_DOES_NOT_EXIST 1411 -#define ERROR_CLASS_HAS_WINDOWS 1412 -#define ERROR_INVALID_INDEX 1413 -#define ERROR_INVALID_ICON_HANDLE 1414 -#define ERROR_PRIVATE_DIALOG_INDEX 1415 -#define ERROR_LISTBOX_ID_NOT_FOUND 1416 -#define ERROR_NO_WILDCARD_CHARACTERS 1417 -#define ERROR_CLIPBOARD_NOT_OPEN 1418 -#define ERROR_HOTKEY_NOT_REGISTERED 1419 -#define ERROR_WINDOW_NOT_DIALOG 1420 -#define ERROR_CONTROL_ID_NOT_FOUND 1421 -#define ERROR_INVALID_COMBOBOX_MESSAGE 1422 -#define ERROR_WINDOW_NOT_COMBOBOX 1423 -#define ERROR_INVALID_EDIT_HEIGHT 1424 -#define ERROR_DC_NOT_FOUND 1425 -#define ERROR_INVALID_HOOK_FILTER 1426 -#define ERROR_INVALID_FILTER_PROC 1427 -#define ERROR_HOOK_NEEDS_HMOD 1428 -#define ERROR_GLOBAL_ONLY_HOOK 1429 -#define ERROR_JOURNAL_HOOK_SET 1430 -#define ERROR_HOOK_NOT_INSTALLED 1431 -#define ERROR_INVALID_LB_MESSAGE 1432 -#define ERROR_SETCOUNT_ON_BAD_LB 1433 -#define ERROR_LB_WITHOUT_TABSTOPS 1434 -#define ERROR_DESTROY_OBJECT_OF_OTHER_THREAD 1435 -#define ERROR_CHILD_WINDOW_MENU 1436 -#define ERROR_NO_SYSTEM_MENU 1437 -#define ERROR_INVALID_MSGBOX_STYLE 1438 -#define ERROR_INVALID_SPI_VALUE 1439 -#define ERROR_SCREEN_ALREADY_LOCKED 1440 -#define ERROR_HWNDS_HAVE_DIFF_PARENT 1441 -#define ERROR_NOT_CHILD_WINDOW 1442 -#define ERROR_INVALID_GW_COMMAND 1443 -#define ERROR_INVALID_THREAD_ID 1444 -#define ERROR_NON_MDICHILD_WINDOW 1445 -#define ERROR_POPUP_ALREADY_ACTIVE 1446 -#define ERROR_NO_SCROLLBARS 1447 -#define ERROR_INVALID_SCROLLBAR_RANGE 1448 -#define ERROR_INVALID_SHOWWIN_COMMAND 1449 -#define ERROR_NO_SYSTEM_RESOURCES 1450 -#define ERROR_NONPAGED_SYSTEM_RESOURCES 1451 -#define ERROR_PAGED_SYSTEM_RESOURCES 1452 -#define ERROR_WORKING_SET_QUOTA 1453 -#define ERROR_PAGEFILE_QUOTA 1454 -#define ERROR_COMMITMENT_LIMIT 1455 -#define ERROR_MENU_ITEM_NOT_FOUND 1456 -#define ERROR_INVALID_KEYBOARD_HANDLE 1457 -#define ERROR_HOOK_TYPE_NOT_ALLOWED 1458 -#define ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION 1459 -#define ERROR_TIMEOUT 1460 -#define ERROR_INVALID_MONITOR_HANDLE 1461 -#define ERROR_EVENTLOG_FILE_CORRUPT 1500 -#define ERROR_EVENTLOG_CANT_START 1501 -#define ERROR_LOG_FILE_FULL 1502 -#define ERROR_EVENTLOG_FILE_CHANGED 1503 -#define ERROR_INSTALL_SERVICE_FAILURE 1601 -#define ERROR_INSTALL_USEREXIT 1602 -#define ERROR_INSTALL_FAILURE 1603 -#define ERROR_INSTALL_SUSPEND 1604 -#define ERROR_UNKNOWN_PRODUCT 1605 -#define ERROR_UNKNOWN_FEATURE 1606 -#define ERROR_UNKNOWN_COMPONENT 1607 -#define ERROR_UNKNOWN_PROPERTY 1608 -#define ERROR_INVALID_HANDLE_STATE 1609 -#define ERROR_BAD_CONFIGURATION 1610 -#define ERROR_INDEX_ABSENT 1611 -#define ERROR_INSTALL_SOURCE_ABSENT 1612 -#define ERROR_INSTALL_PACKAGE_VERSION 1613 -#define ERROR_PRODUCT_UNINSTALLED 1614 -#define ERROR_BAD_QUERY_SYNTAX 1615 -#define ERROR_INVALID_FIELD 1616 -#define ERROR_DEVICE_REMOVED 1617 -#define ERROR_INSTALL_ALREADY_RUNNING 1618 -#define ERROR_INSTALL_PACKAGE_OPEN_FAILED 1619 -#define ERROR_INSTALL_PACKAGE_INVALID 1620 -#define ERROR_INSTALL_UI_FAILURE 1621 -#define ERROR_INSTALL_LOG_FAILURE 1622 -#define ERROR_INSTALL_LANGUAGE_UNSUPPORTED 1623 -#define ERROR_INSTALL_TRANSFORM_FAILURE 1624 -#define ERROR_INSTALL_PACKAGE_REJECTED 1625 -#define ERROR_FUNCTION_NOT_CALLED 1626 -#define ERROR_FUNCTION_FAILED 1627 -#define ERROR_INVALID_TABLE 1628 -#define ERROR_DATATYPE_MISMATCH 1629 -#define ERROR_UNSUPPORTED_TYPE 1630 -#define ERROR_CREATE_FAILED 1631 -#define ERROR_INSTALL_TEMP_UNWRITABLE 1632 -#define ERROR_INSTALL_PLATFORM_UNSUPPORTED 1633 -#define ERROR_INSTALL_NOTUSED 1634 -#define ERROR_PATCH_PACKAGE_OPEN_FAILED 1635 -#define ERROR_PATCH_PACKAGE_INVALID 1636 -#define ERROR_PATCH_PACKAGE_UNSUPPORTED 1637 -#define ERROR_PRODUCT_VERSION 1638 -#define ERROR_INVALID_COMMAND_LINE 1639 -#define ERROR_INSTALL_REMOTE_DISALLOWED 1640 -#define ERROR_SUCCESS_REBOOT_INITIATED 1641 -#define RPC_S_INVALID_STRING_BINDING 1700 -#define RPC_S_WRONG_KIND_OF_BINDING 1701 -#define RPC_S_INVALID_BINDING 1702 -#define RPC_S_PROTSEQ_NOT_SUPPORTED 1703 -#define RPC_S_INVALID_RPC_PROTSEQ 1704 -#define RPC_S_INVALID_STRING_UUID 1705 -#define RPC_S_INVALID_ENDPOINT_FORMAT 1706 -#define RPC_S_INVALID_NET_ADDR 1707 -#define RPC_S_NO_ENDPOINT_FOUND 1708 -#define RPC_S_INVALID_TIMEOUT 1709 -#define RPC_S_OBJECT_NOT_FOUND 1710 -#define RPC_S_ALREADY_REGISTERED 1711 -#define RPC_S_TYPE_ALREADY_REGISTERED 1712 -#define RPC_S_ALREADY_LISTENING 1713 -#define RPC_S_NO_PROTSEQS_REGISTERED 1714 -#define RPC_S_NOT_LISTENING 1715 -#define RPC_S_UNKNOWN_MGR_TYPE 1716 -#define RPC_S_UNKNOWN_IF 1717 -#define RPC_S_NO_BINDINGS 1718 -#define RPC_S_NO_PROTSEQS 1719 -#define RPC_S_CANT_CREATE_ENDPOINT 1720 -#define RPC_S_OUT_OF_RESOURCES 1721 -#define RPC_S_SERVER_UNAVAILABLE 1722 -#define RPC_S_SERVER_TOO_BUSY 1723 -#define RPC_S_INVALID_NETWORK_OPTIONS 1724 -#define RPC_S_NO_CALL_ACTIVE 1725 -#define RPC_S_CALL_FAILED 1726 -#define RPC_S_CALL_FAILED_DNE 1727 -#define RPC_S_PROTOCOL_ERROR 1728 -#define RPC_S_UNSUPPORTED_TRANS_SYN 1730 -#define RPC_S_UNSUPPORTED_TYPE 1732 -#define RPC_S_INVALID_TAG 1733 -#define RPC_S_INVALID_BOUND 1734 -#define RPC_S_NO_ENTRY_NAME 1735 -#define RPC_S_INVALID_NAME_SYNTAX 1736 -#define RPC_S_UNSUPPORTED_NAME_SYNTAX 1737 -#define RPC_S_UUID_NO_ADDRESS 1739 -#define RPC_S_DUPLICATE_ENDPOINT 1740 -#define RPC_S_UNKNOWN_AUTHN_TYPE 1741 -#define RPC_S_MAX_CALLS_TOO_SMALL 1742 -#define RPC_S_STRING_TOO_LONG 1743 -#define RPC_S_PROTSEQ_NOT_FOUND 1744 -#define RPC_S_PROCNUM_OUT_OF_RANGE 1745 -#define RPC_S_BINDING_HAS_NO_AUTH 1746 -#define RPC_S_UNKNOWN_AUTHN_SERVICE 1747 -#define RPC_S_UNKNOWN_AUTHN_LEVEL 1748 -#define RPC_S_INVALID_AUTH_IDENTITY 1749 -#define RPC_S_UNKNOWN_AUTHZ_SERVICE 1750 -#define EPT_S_INVALID_ENTRY 1751 -#define EPT_S_CANT_PERFORM_OP 1752 -#define EPT_S_NOT_REGISTERED 1753 -#define RPC_S_NOTHING_TO_EXPORT 1754 -#define RPC_S_INCOMPLETE_NAME 1755 -#define RPC_S_INVALID_VERS_OPTION 1756 -#define RPC_S_NO_MORE_MEMBERS 1757 -#define RPC_S_NOT_ALL_OBJS_UNEXPORTED 1758 -#define RPC_S_INTERFACE_NOT_FOUND 1759 -#define RPC_S_ENTRY_ALREADY_EXISTS 1760 -#define RPC_S_ENTRY_NOT_FOUND 1761 -#define RPC_S_NAME_SERVICE_UNAVAILABLE 1762 -#define RPC_S_INVALID_NAF_ID 1763 -#define RPC_S_CANNOT_SUPPORT 1764 -#define RPC_S_NO_CONTEXT_AVAILABLE 1765 -#define RPC_S_INTERNAL_ERROR 1766 -#define RPC_S_ZERO_DIVIDE 1767 -#define RPC_S_ADDRESS_ERROR 1768 -#define RPC_S_FP_DIV_ZERO 1769 -#define RPC_S_FP_UNDERFLOW 1770 -#define RPC_S_FP_OVERFLOW 1771 -#define RPC_X_NO_MORE_ENTRIES 1772 -#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL 1773 -#define RPC_X_SS_CHAR_TRANS_SHORT_FILE 1774 -#define RPC_X_SS_IN_NULL_CONTEXT 1775 -#define RPC_X_SS_CONTEXT_DAMAGED 1777 -#define RPC_X_SS_HANDLES_MISMATCH 1778 -#define RPC_X_SS_CANNOT_GET_CALL_HANDLE 1779 -#define RPC_X_NULL_REF_POINTER 1780 -#define RPC_X_ENUM_VALUE_OUT_OF_RANGE 1781 -#define RPC_X_BYTE_COUNT_TOO_SMALL 1782 -#define RPC_X_BAD_STUB_DATA 1783 -#define ERROR_INVALID_USER_BUFFER 1784 -#define ERROR_UNRECOGNIZED_MEDIA 1785 -#define ERROR_NO_TRUST_LSA_SECRET 1786 -#define ERROR_NO_TRUST_SAM_ACCOUNT 1787 -#define ERROR_TRUSTED_DOMAIN_FAILURE 1788 -#define ERROR_TRUSTED_RELATIONSHIP_FAILURE 1789 -#define ERROR_TRUST_FAILURE 1790 -#define RPC_S_CALL_IN_PROGRESS 1791 -#define ERROR_NETLOGON_NOT_STARTED 1792 -#define ERROR_ACCOUNT_EXPIRED 1793 -#define ERROR_REDIRECTOR_HAS_OPEN_HANDLES 1794 -#define ERROR_PRINTER_DRIVER_ALREADY_INSTALLED 1795 -#define ERROR_UNKNOWN_PORT 1796 -#define ERROR_UNKNOWN_PRINTER_DRIVER 1797 -#define ERROR_UNKNOWN_PRINTPROCESSOR 1798 -#define ERROR_INVALID_SEPARATOR_FILE 1799 -#define ERROR_INVALID_PRIORITY 1800 -#define ERROR_INVALID_PRINTER_NAME 1801 -#define ERROR_PRINTER_ALREADY_EXISTS 1802 -#define ERROR_INVALID_PRINTER_COMMAND 1803 -#define ERROR_INVALID_DATATYPE 1804 -#define ERROR_INVALID_ENVIRONMENT 1805 -#define RPC_S_NO_MORE_BINDINGS 1806 -#define ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 1807 -#define ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT 1808 -#define ERROR_NOLOGON_SERVER_TRUST_ACCOUNT 1809 -#define ERROR_DOMAIN_TRUST_INCONSISTENT 1810 -#define ERROR_SERVER_HAS_OPEN_HANDLES 1811 -#define ERROR_RESOURCE_DATA_NOT_FOUND 1812 -#define ERROR_RESOURCE_TYPE_NOT_FOUND 1813 -#define ERROR_RESOURCE_NAME_NOT_FOUND 1814 -#define ERROR_RESOURCE_LANG_NOT_FOUND 1815 -#define ERROR_NOT_ENOUGH_QUOTA 1816 -#define RPC_S_NO_INTERFACES 1817 -#define RPC_S_CALL_CANCELLED 1818 -#define RPC_S_BINDING_INCOMPLETE 1819 -#define RPC_S_COMM_FAILURE 1820 -#define RPC_S_UNSUPPORTED_AUTHN_LEVEL 1821 -#define RPC_S_NO_PRINC_NAME 1822 -#define RPC_S_NOT_RPC_ERROR 1823 -#define RPC_S_UUID_LOCAL_ONLY 1824 -#define RPC_S_SEC_PKG_ERROR 1825 -#define RPC_S_NOT_CANCELLED 1826 -#define RPC_X_INVALID_ES_ACTION 1827 -#define RPC_X_WRONG_ES_VERSION 1828 -#define RPC_X_WRONG_STUB_VERSION 1829 -#define RPC_X_INVALID_PIPE_OBJECT 1830 -#define RPC_X_WRONG_PIPE_ORDER 1831 -#define RPC_X_WRONG_PIPE_VERSION 1832 -#define RPC_S_GROUP_MEMBER_NOT_FOUND 1898 -#define EPT_S_CANT_CREATE 1899 -#define RPC_S_INVALID_OBJECT 1900 -#define ERROR_INVALID_TIME 1901 -#define ERROR_INVALID_FORM_NAME 1902 -#define ERROR_INVALID_FORM_SIZE 1903 -#define ERROR_ALREADY_WAITING 1904 -#define ERROR_PRINTER_DELETED 1905 -#define ERROR_INVALID_PRINTER_STATE 1906 -#define ERROR_PASSWORD_MUST_CHANGE 1907 -#define ERROR_DOMAIN_CONTROLLER_NOT_FOUND 1908 -#define ERROR_ACCOUNT_LOCKED_OUT 1909 -#define OR_INVALID_OXID 1910 -#define OR_INVALID_OID 1911 -#define OR_INVALID_SET 1912 -#define RPC_S_SEND_INCOMPLETE 1913 -#define RPC_S_INVALID_ASYNC_HANDLE 1914 -#define RPC_S_INVALID_ASYNC_CALL 1915 -#define RPC_X_PIPE_CLOSED 1916 -#define RPC_X_PIPE_DISCIPLINE_ERROR 1917 -#define RPC_X_PIPE_EMPTY 1918 -#define ERROR_NO_SITENAME 1919 -#define ERROR_CANT_ACCESS_FILE 1920 -#define ERROR_CANT_RESOLVE_FILENAME 1921 -#define RPC_S_ENTRY_TYPE_MISMATCH 1922 -#define RPC_S_NOT_ALL_OBJS_EXPORTED 1923 -#define RPC_S_INTERFACE_NOT_EXPORTED 1924 -#define RPC_S_PROFILE_NOT_ADDED 1925 -#define RPC_S_PRF_ELT_NOT_ADDED 1926 -#define RPC_S_PRF_ELT_NOT_REMOVED 1927 -#define RPC_S_GRP_ELT_NOT_ADDED 1928 -#define RPC_S_GRP_ELT_NOT_REMOVED 1929 -#define ERROR_INVALID_PIXEL_FORMAT 2000 -#define ERROR_BAD_DRIVER 2001 -#define ERROR_INVALID_WINDOW_STYLE 2002 -#define ERROR_METAFILE_NOT_SUPPORTED 2003 -#define ERROR_TRANSFORM_NOT_SUPPORTED 2004 -#define ERROR_CLIPPING_NOT_SUPPORTED 2005 -#define ERROR_INVALID_CMM 2010 -#define ERROR_INVALID_PROFILE 2011 -#define ERROR_TAG_NOT_FOUND 2012 -#define ERROR_TAG_NOT_PRESENT 2013 -#define ERROR_DUPLICATE_TAG 2014 -#define ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE 2015 -#define ERROR_PROFILE_NOT_FOUND 2016 -#define ERROR_INVALID_COLORSPACE 2017 -#define ERROR_ICM_NOT_ENABLED 2018 -#define ERROR_DELETING_ICM_XFORM 2019 -#define ERROR_INVALID_TRANSFORM 2020 -#define ERROR_COLORSPACE_MISMATCH 2021 -#define ERROR_INVALID_COLORINDEX 2022 -#define ERROR_CONNECTED_OTHER_PASSWORD 2108 -#define ERROR_BAD_USERNAME 2202 -#define ERROR_NOT_CONNECTED 2250 -#define ERROR_OPEN_FILES 2401 -#define ERROR_ACTIVE_CONNECTIONS 2402 -#define ERROR_DEVICE_IN_USE 2404 -#define ERROR_UNKNOWN_PRINT_MONITOR 3000 -#define ERROR_PRINTER_DRIVER_IN_USE 3001 -#define ERROR_SPOOL_FILE_NOT_FOUND 3002 -#define ERROR_SPL_NO_STARTDOC 3003 -#define ERROR_SPL_NO_ADDJOB 3004 -#define ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED 3005 -#define ERROR_PRINT_MONITOR_ALREADY_INSTALLED 3006 -#define ERROR_INVALID_PRINT_MONITOR 3007 -#define ERROR_PRINT_MONITOR_IN_USE 3008 -#define ERROR_PRINTER_HAS_JOBS_QUEUED 3009 -#define ERROR_SUCCESS_REBOOT_REQUIRED 3010 -#define ERROR_SUCCESS_RESTART_REQUIRED 3011 -#define ERROR_PRINTER_NOT_FOUND 3012 -#define ERROR_WINS_INTERNAL 4000 -#define ERROR_CAN_NOT_DEL_LOCAL_WINS 4001 -#define ERROR_STATIC_INIT 4002 -#define ERROR_INC_BACKUP 4003 -#define ERROR_FULL_BACKUP 4004 -#define ERROR_REC_NON_EXISTENT 4005 -#define ERROR_RPL_NOT_ALLOWED 4006 -#define ERROR_DHCP_ADDRESS_CONFLICT 4100 -#define ERROR_WMI_GUID_NOT_FOUND 4200 -#define ERROR_WMI_INSTANCE_NOT_FOUND 4201 -#define ERROR_WMI_ITEMID_NOT_FOUND 4202 -#define ERROR_WMI_TRY_AGAIN 4203 -#define ERROR_WMI_DP_NOT_FOUND 4204 -#define ERROR_WMI_UNRESOLVED_INSTANCE_REF 4205 -#define ERROR_WMI_ALREADY_ENABLED 4206 -#define ERROR_WMI_GUID_DISCONNECTED 4207 -#define ERROR_WMI_SERVER_UNAVAILABLE 4208 -#define ERROR_WMI_DP_FAILED 4209 -#define ERROR_WMI_INVALID_MOF 4210 -#define ERROR_WMI_INVALID_REGINFO 4211 -#define ERROR_WMI_ALREADY_DISABLED 4212 -#define ERROR_WMI_READ_ONLY 4213 -#define ERROR_WMI_SET_FAILURE 4214 -#define ERROR_INVALID_MEDIA 4300 -#define ERROR_INVALID_LIBRARY 4301 -#define ERROR_INVALID_MEDIA_POOL 4302 -#define ERROR_DRIVE_MEDIA_MISMATCH 4303 -#define ERROR_MEDIA_OFFLINE 4304 -#define ERROR_LIBRARY_OFFLINE 4305 -#define ERROR_EMPTY 4306 -#define ERROR_NOT_EMPTY 4307 -#define ERROR_MEDIA_UNAVAILABLE 4308 -#define ERROR_RESOURCE_DISABLED 4309 -#define ERROR_INVALID_CLEANER 4310 -#define ERROR_UNABLE_TO_CLEAN 4311 -#define ERROR_OBJECT_NOT_FOUND 4312 -#define ERROR_DATABASE_FAILURE 4313 -#define ERROR_DATABASE_FULL 4314 -#define ERROR_MEDIA_INCOMPATIBLE 4315 -#define ERROR_RESOURCE_NOT_PRESENT 4316 -#define ERROR_INVALID_OPERATION 4317 -#define ERROR_MEDIA_NOT_AVAILABLE 4318 -#define ERROR_DEVICE_NOT_AVAILABLE 4319 -#define ERROR_REQUEST_REFUSED 4320 -#define ERROR_INVALID_DRIVE_OBJECT 4321 -#define ERROR_LIBRARY_FULL 4322 -#define ERROR_MEDIUM_NOT_ACCESSIBLE 4323 -#define ERROR_UNABLE_TO_LOAD_MEDIUM 4324 -#define ERROR_UNABLE_TO_INVENTORY_DRIVE 4325 -#define ERROR_UNABLE_TO_INVENTORY_SLOT 4326 -#define ERROR_UNABLE_TO_INVENTORY_TRANSPORT 4327 -#define ERROR_TRANSPORT_FULL 4328 -#define ERROR_CONTROLLING_IEPORT 4329 -#define ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA 4330 -#define ERROR_CLEANER_SLOT_SET 4331 -#define ERROR_CLEANER_SLOT_NOT_SET 4332 -#define ERROR_CLEANER_CARTRIDGE_SPENT 4333 -#define ERROR_UNEXPECTED_OMID 4334 -#define ERROR_CANT_DELETE_LAST_ITEM 4335 -#define ERROR_MESSAGE_EXCEEDS_MAX_SIZE 4336 -#define ERROR_VOLUME_CONTAINS_SYS_FILES 4337 -#define ERROR_INDIGENOUS_TYPE 4338 -#define ERROR_NO_SUPPORTING_DRIVES 4339 -#define ERROR_FILE_OFFLINE 4350 -#define ERROR_REMOTE_STORAGE_NOT_ACTIVE 4351 -#define ERROR_REMOTE_STORAGE_MEDIA_ERROR 4352 -#define ERROR_NOT_A_REPARSE_POINT 4390 -#define ERROR_REPARSE_ATTRIBUTE_CONFLICT 4391 -#define ERROR_INVALID_REPARSE_DATA 4392 -#define ERROR_REPARSE_TAG_INVALID 4393 -#define ERROR_REPARSE_TAG_MISMATCH 4394 -#define ERROR_VOLUME_NOT_SIS_ENABLED 4500 -#define ERROR_DEPENDENT_RESOURCE_EXISTS 5001 -#define ERROR_DEPENDENCY_NOT_FOUND 5002 -#define ERROR_DEPENDENCY_ALREADY_EXISTS 5003 -#define ERROR_RESOURCE_NOT_ONLINE 5004 -#define ERROR_HOST_NODE_NOT_AVAILABLE 5005 -#define ERROR_RESOURCE_NOT_AVAILABLE 5006 -#define ERROR_RESOURCE_NOT_FOUND 5007 -#define ERROR_SHUTDOWN_CLUSTER 5008 -#define ERROR_CANT_EVICT_ACTIVE_NODE 5009 -#define ERROR_OBJECT_ALREADY_EXISTS 5010 -#define ERROR_OBJECT_IN_LIST 5011 -#define ERROR_GROUP_NOT_AVAILABLE 5012 -#define ERROR_GROUP_NOT_FOUND 5013 -#define ERROR_GROUP_NOT_ONLINE 5014 -#define ERROR_HOST_NODE_NOT_RESOURCE_OWNER 5015 -#define ERROR_HOST_NODE_NOT_GROUP_OWNER 5016 -#define ERROR_RESMON_CREATE_FAILED 5017 -#define ERROR_RESMON_ONLINE_FAILED 5018 -#define ERROR_RESOURCE_ONLINE 5019 -#define ERROR_QUORUM_RESOURCE 5020 -#define ERROR_NOT_QUORUM_CAPABLE 5021 -#define ERROR_CLUSTER_SHUTTING_DOWN 5022 -#define ERROR_INVALID_STATE 5023 -#define ERROR_RESOURCE_PROPERTIES_STORED 5024 -#define ERROR_NOT_QUORUM_CLASS 5025 -#define ERROR_CORE_RESOURCE 5026 -#define ERROR_QUORUM_RESOURCE_ONLINE_FAILED 5027 -#define ERROR_QUORUMLOG_OPEN_FAILED 5028 -#define ERROR_CLUSTERLOG_CORRUPT 5029 -#define ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE 5030 -#define ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE 5031 -#define ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND 5032 -#define ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE 5033 -#define ERROR_QUORUM_OWNER_ALIVE 5034 -#define ERROR_NETWORK_NOT_AVAILABLE 5035 -#define ERROR_NODE_NOT_AVAILABLE 5036 -#define ERROR_ALL_NODES_NOT_AVAILABLE 5037 -#define ERROR_RESOURCE_FAILED 5038 -#define ERROR_CLUSTER_INVALID_NODE 5039 -#define ERROR_CLUSTER_NODE_EXISTS 5040 -#define ERROR_CLUSTER_JOIN_IN_PROGRESS 5041 -#define ERROR_CLUSTER_NODE_NOT_FOUND 5042 -#define ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND 5043 -#define ERROR_CLUSTER_NETWORK_EXISTS 5044 -#define ERROR_CLUSTER_NETWORK_NOT_FOUND 5045 -#define ERROR_CLUSTER_NETINTERFACE_EXISTS 5046 -#define ERROR_CLUSTER_NETINTERFACE_NOT_FOUND 5047 -#define ERROR_CLUSTER_INVALID_REQUEST 5048 -#define ERROR_CLUSTER_INVALID_NETWORK_PROVIDER 5049 -#define ERROR_CLUSTER_NODE_DOWN 5050 -#define ERROR_CLUSTER_NODE_UNREACHABLE 5051 -#define ERROR_CLUSTER_NODE_NOT_MEMBER 5052 -#define ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS 5053 -#define ERROR_CLUSTER_INVALID_NETWORK 5054 -#define ERROR_CLUSTER_NODE_UP 5056 -#define ERROR_CLUSTER_IPADDR_IN_USE 5057 -#define ERROR_CLUSTER_NODE_NOT_PAUSED 5058 -#define ERROR_CLUSTER_NO_SECURITY_CONTEXT 5059 -#define ERROR_CLUSTER_NETWORK_NOT_INTERNAL 5060 -#define ERROR_CLUSTER_NODE_ALREADY_UP 5061 -#define ERROR_CLUSTER_NODE_ALREADY_DOWN 5062 -#define ERROR_CLUSTER_NETWORK_ALREADY_ONLINE 5063 -#define ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE 5064 -#define ERROR_CLUSTER_NODE_ALREADY_MEMBER 5065 -#define ERROR_CLUSTER_LAST_INTERNAL_NETWORK 5066 -#define ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS 5067 -#define ERROR_INVALID_OPERATION_ON_QUORUM 5068 -#define ERROR_DEPENDENCY_NOT_ALLOWED 5069 -#define ERROR_CLUSTER_NODE_PAUSED 5070 -#define ERROR_NODE_CANT_HOST_RESOURCE 5071 -#define ERROR_CLUSTER_NODE_NOT_READY 5072 -#define ERROR_CLUSTER_NODE_SHUTTING_DOWN 5073 -#define ERROR_CLUSTER_JOIN_ABORTED 5074 -#define ERROR_CLUSTER_INCOMPATIBLE_VERSIONS 5075 -#define ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED 5076 -#define ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED 5077 -#define ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND 5078 -#define ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED 5079 -#define ERROR_CLUSTER_RESNAME_NOT_FOUND 5080 -#define ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED 5081 -#define ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST 5082 -#define ERROR_CLUSTER_DATABASE_SEQMISMATCH 5083 -#define ERROR_RESMON_INVALID_STATE 5084 -#define ERROR_CLUSTER_GUM_NOT_LOCKER 5085 -#define ERROR_QUORUM_DISK_NOT_FOUND 5086 -#define ERROR_DATABASE_BACKUP_CORRUPT 5087 -#define ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT 5088 -#define ERROR_RESOURCE_PROPERTY_UNCHANGEABLE 5089 -#define ERROR_ENCRYPTION_FAILED 6000 -#define ERROR_DECRYPTION_FAILED 6001 -#define ERROR_FILE_ENCRYPTED 6002 -#define ERROR_NO_RECOVERY_POLICY 6003 -#define ERROR_NO_EFS 6004 -#define ERROR_WRONG_EFS 6005 -#define ERROR_NO_USER_KEYS 6006 -#define ERROR_FILE_NOT_ENCRYPTED 6007 -#define ERROR_NOT_EXPORT_FORMAT 6008 -#define ERROR_FILE_READ_ONLY 6009 -#define ERROR_DIR_EFS_DISALLOWED 6010 -#define ERROR_EFS_SERVER_NOT_TRUSTED 6011 -#define ERROR_NO_BROWSER_SERVERS_FOUND 6118 -#define SCHED_E_SERVICE_NOT_LOCALSYSTEM 6200 -#define ERROR_CTX_WINSTATION_NAME_INVALID 7001 -#define ERROR_CTX_INVALID_PD 7002 -#define ERROR_CTX_PD_NOT_FOUND 7003 -#define ERROR_CTX_WD_NOT_FOUND 7004 -#define ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY 7005 -#define ERROR_CTX_SERVICE_NAME_COLLISION 7006 -#define ERROR_CTX_CLOSE_PENDING 7007 -#define ERROR_CTX_NO_OUTBUF 7008 -#define ERROR_CTX_MODEM_INF_NOT_FOUND 7009 -#define ERROR_CTX_INVALID_MODEMNAME 7010 -#define ERROR_CTX_MODEM_RESPONSE_ERROR 7011 -#define ERROR_CTX_MODEM_RESPONSE_TIMEOUT 7012 -#define ERROR_CTX_MODEM_RESPONSE_NO_CARRIER 7013 -#define ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE 7014 -#define ERROR_CTX_MODEM_RESPONSE_BUSY 7015 -#define ERROR_CTX_MODEM_RESPONSE_VOICE 7016 -#define ERROR_CTX_TD_ERROR 7017 -#define ERROR_CTX_WINSTATION_NOT_FOUND 7022 -#define ERROR_CTX_WINSTATION_ALREADY_EXISTS 7023 -#define ERROR_CTX_WINSTATION_BUSY 7024 -#define ERROR_CTX_BAD_VIDEO_MODE 7025 -#define ERROR_CTX_GRAPHICS_INVALID 7035 -#define ERROR_CTX_LOGON_DISABLED 7037 -#define ERROR_CTX_NOT_CONSOLE 7038 -#define ERROR_CTX_CLIENT_QUERY_TIMEOUT 7040 -#define ERROR_CTX_CONSOLE_DISCONNECT 7041 -#define ERROR_CTX_CONSOLE_CONNECT 7042 -#define ERROR_CTX_SHADOW_DENIED 7044 -#define ERROR_CTX_WINSTATION_ACCESS_DENIED 7045 -#define ERROR_CTX_INVALID_WD 7049 -#define ERROR_CTX_SHADOW_INVALID 7050 -#define ERROR_CTX_SHADOW_DISABLED 7051 -#define ERROR_CTX_CLIENT_LICENSE_IN_USE 7052 -#define ERROR_CTX_CLIENT_LICENSE_NOT_SET 7053 -#define ERROR_CTX_LICENSE_NOT_AVAILABLE 7054 -#define ERROR_CTX_LICENSE_CLIENT_INVALID 7055 -#define ERROR_CTX_LICENSE_EXPIRED 7056 -#define FRS_ERR_INVALID_API_SEQUENCE 8001 -#define FRS_ERR_STARTING_SERVICE 8002 -#define FRS_ERR_STOPPING_SERVICE 8003 -#define FRS_ERR_INTERNAL_API 8004 -#define FRS_ERR_INTERNAL 8005 -#define FRS_ERR_SERVICE_COMM 8006 -#define FRS_ERR_INSUFFICIENT_PRIV 8007 -#define FRS_ERR_AUTHENTICATION 8008 -#define FRS_ERR_PARENT_INSUFFICIENT_PRIV 8009 -#define FRS_ERR_PARENT_AUTHENTICATION 8010 -#define FRS_ERR_CHILD_TO_PARENT_COMM 8011 -#define FRS_ERR_PARENT_TO_CHILD_COMM 8012 -#define FRS_ERR_SYSVOL_POPULATE 8013 -#define FRS_ERR_SYSVOL_POPULATE_TIMEOUT 8014 -#define FRS_ERR_SYSVOL_IS_BUSY 8015 -#define FRS_ERR_SYSVOL_DEMOTE 8016 -#define FRS_ERR_INVALID_SERVICE_PARAMETER 8017 -#define ERROR_DS_NOT_INSTALLED 8200 -#define ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY 8201 -#define ERROR_DS_NO_ATTRIBUTE_OR_VALUE 8202 -#define ERROR_DS_INVALID_ATTRIBUTE_SYNTAX 8203 -#define ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED 8204 -#define ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS 8205 -#define ERROR_DS_BUSY 8206 -#define ERROR_DS_UNAVAILABLE 8207 -#define ERROR_DS_NO_RIDS_ALLOCATED 8208 -#define ERROR_DS_NO_MORE_RIDS 8209 -#define ERROR_DS_INCORRECT_ROLE_OWNER 8210 -#define ERROR_DS_RIDMGR_INIT_ERROR 8211 -#define ERROR_DS_OBJ_CLASS_VIOLATION 8212 -#define ERROR_DS_CANT_ON_NON_LEAF 8213 -#define ERROR_DS_CANT_ON_RDN 8214 -#define ERROR_DS_CANT_MOD_OBJ_CLASS 8215 -#define ERROR_DS_CROSS_DOM_MOVE_ERROR 8216 -#define ERROR_DS_GC_NOT_AVAILABLE 8217 -#define ERROR_SHARED_POLICY 8218 -#define ERROR_POLICY_OBJECT_NOT_FOUND 8219 -#define ERROR_POLICY_ONLY_IN_DS 8220 -#define ERROR_PROMOTION_ACTIVE 8221 -#define ERROR_NO_PROMOTION_ACTIVE 8222 -#define ERROR_DS_OPERATIONS_ERROR 8224 -#define ERROR_DS_PROTOCOL_ERROR 8225 -#define ERROR_DS_TIMELIMIT_EXCEEDED 8226 -#define ERROR_DS_SIZELIMIT_EXCEEDED 8227 -#define ERROR_DS_ADMIN_LIMIT_EXCEEDED 8228 -#define ERROR_DS_COMPARE_FALSE 8229 -#define ERROR_DS_COMPARE_TRUE 8230 -#define ERROR_DS_AUTH_METHOD_NOT_SUPPORTED 8231 -#define ERROR_DS_STRONG_AUTH_REQUIRED 8232 -#define ERROR_DS_INAPPROPRIATE_AUTH 8233 -#define ERROR_DS_AUTH_UNKNOWN 8234 -#define ERROR_DS_REFERRAL 8235 -#define ERROR_DS_UNAVAILABLE_CRIT_EXTENSION 8236 -#define ERROR_DS_CONFIDENTIALITY_REQUIRED 8237 -#define ERROR_DS_INAPPROPRIATE_MATCHING 8238 -#define ERROR_DS_CONSTRAINT_VIOLATION 8239 -#define ERROR_DS_NO_SUCH_OBJECT 8240 -#define ERROR_DS_ALIAS_PROBLEM 8241 -#define ERROR_DS_INVALID_DN_SYNTAX 8242 -#define ERROR_DS_IS_LEAF 8243 -#define ERROR_DS_ALIAS_DEREF_PROBLEM 8244 -#define ERROR_DS_UNWILLING_TO_PERFORM 8245 -#define ERROR_DS_LOOP_DETECT 8246 -#define ERROR_DS_NAMING_VIOLATION 8247 -#define ERROR_DS_OBJECT_RESULTS_TOO_LARGE 8248 -#define ERROR_DS_AFFECTS_MULTIPLE_DSAS 8249 -#define ERROR_DS_SERVER_DOWN 8250 -#define ERROR_DS_LOCAL_ERROR 8251 -#define ERROR_DS_ENCODING_ERROR 8252 -#define ERROR_DS_DECODING_ERROR 8253 -#define ERROR_DS_FILTER_UNKNOWN 8254 -#define ERROR_DS_PARAM_ERROR 8255 -#define ERROR_DS_NOT_SUPPORTED 8256 -#define ERROR_DS_NO_RESULTS_RETURNED 8257 -#define ERROR_DS_CONTROL_NOT_FOUND 8258 -#define ERROR_DS_CLIENT_LOOP 8259 -#define ERROR_DS_REFERRAL_LIMIT_EXCEEDED 8260 -#define ERROR_DS_ROOT_MUST_BE_NC 8301 -#define ERROR_DS_ADD_REPLICA_INHIBITED 8302 -#define ERROR_DS_ATT_NOT_DEF_IN_SCHEMA 8303 -#define ERROR_DS_MAX_OBJ_SIZE_EXCEEDED 8304 -#define ERROR_DS_OBJ_STRING_NAME_EXISTS 8305 -#define ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA 8306 -#define ERROR_DS_RDN_DOESNT_MATCH_SCHEMA 8307 -#define ERROR_DS_NO_REQUESTED_ATTS_FOUND 8308 -#define ERROR_DS_USER_BUFFER_TO_SMALL 8309 -#define ERROR_DS_ATT_IS_NOT_ON_OBJ 8310 -#define ERROR_DS_ILLEGAL_MOD_OPERATION 8311 -#define ERROR_DS_OBJ_TOO_LARGE 8312 -#define ERROR_DS_BAD_INSTANCE_TYPE 8313 -#define ERROR_DS_MASTERDSA_REQUIRED 8314 -#define ERROR_DS_OBJECT_CLASS_REQUIRED 8315 -#define ERROR_DS_MISSING_REQUIRED_ATT 8316 -#define ERROR_DS_ATT_NOT_DEF_FOR_CLASS 8317 -#define ERROR_DS_ATT_ALREADY_EXISTS 8318 -#define ERROR_DS_CANT_ADD_ATT_VALUES 8320 -#define ERROR_DS_SINGLE_VALUE_CONSTRAINT 8321 -#define ERROR_DS_RANGE_CONSTRAINT 8322 -#define ERROR_DS_ATT_VAL_ALREADY_EXISTS 8323 -#define ERROR_DS_CANT_REM_MISSING_ATT 8324 -#define ERROR_DS_CANT_REM_MISSING_ATT_VAL 8325 -#define ERROR_DS_ROOT_CANT_BE_SUBREF 8326 -#define ERROR_DS_NO_CHAINING 8327 -#define ERROR_DS_NO_CHAINED_EVAL 8328 -#define ERROR_DS_NO_PARENT_OBJECT 8329 -#define ERROR_DS_PARENT_IS_AN_ALIAS 8330 -#define ERROR_DS_CANT_MIX_MASTER_AND_REPS 8331 -#define ERROR_DS_CHILDREN_EXIST 8332 -#define ERROR_DS_OBJ_NOT_FOUND 8333 -#define ERROR_DS_ALIASED_OBJ_MISSING 8334 -#define ERROR_DS_BAD_NAME_SYNTAX 8335 -#define ERROR_DS_ALIAS_POINTS_TO_ALIAS 8336 -#define ERROR_DS_CANT_DEREF_ALIAS 8337 -#define ERROR_DS_OUT_OF_SCOPE 8338 -#define ERROR_DS_CANT_DELETE_DSA_OBJ 8340 -#define ERROR_DS_GENERIC_ERROR 8341 -#define ERROR_DS_DSA_MUST_BE_INT_MASTER 8342 -#define ERROR_DS_CLASS_NOT_DSA 8343 -#define ERROR_DS_INSUFF_ACCESS_RIGHTS 8344 -#define ERROR_DS_ILLEGAL_SUPERIOR 8345 -#define ERROR_DS_ATTRIBUTE_OWNED_BY_SAM 8346 -#define ERROR_DS_NAME_TOO_MANY_PARTS 8347 -#define ERROR_DS_NAME_TOO_LONG 8348 -#define ERROR_DS_NAME_VALUE_TOO_LONG 8349 -#define ERROR_DS_NAME_UNPARSEABLE 8350 -#define ERROR_DS_NAME_TYPE_UNKNOWN 8351 -#define ERROR_DS_NOT_AN_OBJECT 8352 -#define ERROR_DS_SEC_DESC_TOO_SHORT 8353 -#define ERROR_DS_SEC_DESC_INVALID 8354 -#define ERROR_DS_NO_DELETED_NAME 8355 -#define ERROR_DS_SUBREF_MUST_HAVE_PARENT 8356 -#define ERROR_DS_NCNAME_MUST_BE_NC 8357 -#define ERROR_DS_CANT_ADD_SYSTEM_ONLY 8358 -#define ERROR_DS_CLASS_MUST_BE_CONCRETE 8359 -#define ERROR_DS_INVALID_DMD 8360 -#define ERROR_DS_OBJ_GUID_EXISTS 8361 -#define ERROR_DS_NOT_ON_BACKLINK 8362 -#define ERROR_DS_NO_CROSSREF_FOR_NC 8363 -#define ERROR_DS_SHUTTING_DOWN 8364 -#define ERROR_DS_UNKNOWN_OPERATION 8365 -#define ERROR_DS_INVALID_ROLE_OWNER 8366 -#define ERROR_DS_COULDNT_CONTACT_FSMO 8367 -#define ERROR_DS_CROSS_NC_DN_RENAME 8368 -#define ERROR_DS_CANT_MOD_SYSTEM_ONLY 8369 -#define ERROR_DS_REPLICATOR_ONLY 8370 -#define ERROR_DS_OBJ_CLASS_NOT_DEFINED 8371 -#define ERROR_DS_OBJ_CLASS_NOT_SUBCLASS 8372 -#define ERROR_DS_NAME_REFERENCE_INVALID 8373 -#define ERROR_DS_CROSS_REF_EXISTS 8374 -#define ERROR_DS_CANT_DEL_MASTER_CROSSREF 8375 -#define ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD 8376 -#define ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX 8377 -#define ERROR_DS_DUP_RDN 8378 -#define ERROR_DS_DUP_OID 8379 -#define ERROR_DS_DUP_MAPI_ID 8380 -#define ERROR_DS_DUP_SCHEMA_ID_GUID 8381 -#define ERROR_DS_DUP_LDAP_DISPLAY_NAME 8382 -#define ERROR_DS_SEMANTIC_ATT_TEST 8383 -#define ERROR_DS_SYNTAX_MISMATCH 8384 -#define ERROR_DS_EXISTS_IN_MUST_HAVE 8385 -#define ERROR_DS_EXISTS_IN_MAY_HAVE 8386 -#define ERROR_DS_NONEXISTENT_MAY_HAVE 8387 -#define ERROR_DS_NONEXISTENT_MUST_HAVE 8388 -#define ERROR_DS_AUX_CLS_TEST_FAIL 8389 -#define ERROR_DS_NONEXISTENT_POSS_SUP 8390 -#define ERROR_DS_SUB_CLS_TEST_FAIL 8391 -#define ERROR_DS_BAD_RDN_ATT_ID_SYNTAX 8392 -#define ERROR_DS_EXISTS_IN_AUX_CLS 8393 -#define ERROR_DS_EXISTS_IN_SUB_CLS 8394 -#define ERROR_DS_EXISTS_IN_POSS_SUP 8395 -#define ERROR_DS_RECALCSCHEMA_FAILED 8396 -#define ERROR_DS_TREE_DELETE_NOT_FINISHED 8397 -#define ERROR_DS_CANT_DELETE 8398 -#define ERROR_DS_ATT_SCHEMA_REQ_ID 8399 -#define ERROR_DS_BAD_ATT_SCHEMA_SYNTAX 8400 -#define ERROR_DS_CANT_CACHE_ATT 8401 -#define ERROR_DS_CANT_CACHE_CLASS 8402 -#define ERROR_DS_CANT_REMOVE_ATT_CACHE 8403 -#define ERROR_DS_CANT_REMOVE_CLASS_CACHE 8404 -#define ERROR_DS_CANT_RETRIEVE_DN 8405 -#define ERROR_DS_MISSING_SUPREF 8406 -#define ERROR_DS_CANT_RETRIEVE_INSTANCE 8407 -#define ERROR_DS_CODE_INCONSISTENCY 8408 -#define ERROR_DS_DATABASE_ERROR 8409 -#define ERROR_DS_GOVERNSID_MISSING 8410 -#define ERROR_DS_MISSING_EXPECTED_ATT 8411 -#define ERROR_DS_NCNAME_MISSING_CR_REF 8412 -#define ERROR_DS_SECURITY_CHECKING_ERROR 8413 -#define ERROR_DS_SCHEMA_NOT_LOADED 8414 -#define ERROR_DS_SCHEMA_ALLOC_FAILED 8415 -#define ERROR_DS_ATT_SCHEMA_REQ_SYNTAX 8416 -#define ERROR_DS_GCVERIFY_ERROR 8417 -#define ERROR_DS_DRA_SCHEMA_MISMATCH 8418 -#define ERROR_DS_CANT_FIND_DSA_OBJ 8419 -#define ERROR_DS_CANT_FIND_EXPECTED_NC 8420 -#define ERROR_DS_CANT_FIND_NC_IN_CACHE 8421 -#define ERROR_DS_CANT_RETRIEVE_CHILD 8422 -#define ERROR_DS_SECURITY_ILLEGAL_MODIFY 8423 -#define ERROR_DS_CANT_REPLACE_HIDDEN_REC 8424 -#define ERROR_DS_BAD_HIERARCHY_FILE 8425 -#define ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED 8426 -#define ERROR_DS_CONFIG_PARAM_MISSING 8427 -#define ERROR_DS_COUNTING_AB_INDICES_FAILED 8428 -#define ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED 8429 -#define ERROR_DS_INTERNAL_FAILURE 8430 -#define ERROR_DS_UNKNOWN_ERROR 8431 -#define ERROR_DS_ROOT_REQUIRES_CLASS_TOP 8432 -#define ERROR_DS_REFUSING_FSMO_ROLES 8433 -#define ERROR_DS_MISSING_FSMO_SETTINGS 8434 -#define ERROR_DS_UNABLE_TO_SURRENDER_ROLES 8435 -#define ERROR_DS_DRA_GENERIC 8436 -#define ERROR_DS_DRA_INVALID_PARAMETER 8437 -#define ERROR_DS_DRA_BUSY 8438 -#define ERROR_DS_DRA_BAD_DN 8439 -#define ERROR_DS_DRA_BAD_NC 8440 -#define ERROR_DS_DRA_DN_EXISTS 8441 -#define ERROR_DS_DRA_INTERNAL_ERROR 8442 -#define ERROR_DS_DRA_INCONSISTENT_DIT 8443 -#define ERROR_DS_DRA_CONNECTION_FAILED 8444 -#define ERROR_DS_DRA_BAD_INSTANCE_TYPE 8445 -#define ERROR_DS_DRA_OUT_OF_MEM 8446 -#define ERROR_DS_DRA_MAIL_PROBLEM 8447 -#define ERROR_DS_DRA_REF_ALREADY_EXISTS 8448 -#define ERROR_DS_DRA_REF_NOT_FOUND 8449 -#define ERROR_DS_DRA_OBJ_IS_REP_SOURCE 8450 -#define ERROR_DS_DRA_DB_ERROR 8451 -#define ERROR_DS_DRA_NO_REPLICA 8452 -#define ERROR_DS_DRA_ACCESS_DENIED 8453 -#define ERROR_DS_DRA_NOT_SUPPORTED 8454 -#define ERROR_DS_DRA_RPC_CANCELLED 8455 -#define ERROR_DS_DRA_SOURCE_DISABLED 8456 -#define ERROR_DS_DRA_SINK_DISABLED 8457 -#define ERROR_DS_DRA_NAME_COLLISION 8458 -#define ERROR_DS_DRA_SOURCE_REINSTALLED 8459 -#define ERROR_DS_DRA_MISSING_PARENT 8460 -#define ERROR_DS_DRA_PREEMPTED 8461 -#define ERROR_DS_DRA_ABANDON_SYNC 8462 -#define ERROR_DS_DRA_SHUTDOWN 8463 -#define ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET 8464 -#define ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA 8465 -#define ERROR_DS_DRA_EXTN_CONNECTION_FAILED 8466 -#define ERROR_DS_INSTALL_SCHEMA_MISMATCH 8467 -#define ERROR_DS_DUP_LINK_ID 8468 -#define ERROR_DS_NAME_ERROR_RESOLVING 8469 -#define ERROR_DS_NAME_ERROR_NOT_FOUND 8470 -#define ERROR_DS_NAME_ERROR_NOT_UNIQUE 8471 -#define ERROR_DS_NAME_ERROR_NO_MAPPING 8472 -#define ERROR_DS_NAME_ERROR_DOMAIN_ONLY 8473 -#define ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING 8474 -#define ERROR_DS_CONSTRUCTED_ATT_MOD 8475 -#define ERROR_DS_WRONG_OM_OBJ_CLASS 8476 -#define ERROR_DS_DRA_REPL_PENDING 8477 -#define ERROR_DS_DS_REQUIRED 8478 -#define ERROR_DS_INVALID_LDAP_DISPLAY_NAME 8479 -#define ERROR_DS_NON_BASE_SEARCH 8480 -#define ERROR_DS_CANT_RETRIEVE_ATTS 8481 -#define ERROR_DS_BACKLINK_WITHOUT_LINK 8482 -#define ERROR_DS_EPOCH_MISMATCH 8483 -#define ERROR_DS_SRC_NAME_MISMATCH 8484 -#define ERROR_DS_SRC_AND_DST_NC_IDENTICAL 8485 -#define ERROR_DS_DST_NC_MISMATCH 8486 -#define ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC 8487 -#define ERROR_DS_SRC_GUID_MISMATCH 8488 -#define ERROR_DS_CANT_MOVE_DELETED_OBJECT 8489 -#define ERROR_DS_PDC_OPERATION_IN_PROGRESS 8490 -#define ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD 8491 -#define ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION 8492 -#define ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS 8493 -#define ERROR_DS_NC_MUST_HAVE_NC_PARENT 8494 -#define ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE 8495 -#define ERROR_DS_DST_DOMAIN_NOT_NATIVE 8496 -#define ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER 8497 -#define ERROR_DS_CANT_MOVE_ACCOUNT_GROUP 8498 -#define ERROR_DS_CANT_MOVE_RESOURCE_GROUP 8499 -#define ERROR_DS_INVALID_SEARCH_FLAG 8500 -#define ERROR_DS_NO_TREE_DELETE_ABOVE_NC 8501 -#define ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE 8502 -#define ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE 8503 -#define ERROR_DS_SAM_INIT_FAILURE 8504 -#define ERROR_DS_SENSITIVE_GROUP_VIOLATION 8505 -#define ERROR_DS_CANT_MOD_PRIMARYGROUPID 8506 -#define ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD 8507 -#define ERROR_DS_NONSAFE_SCHEMA_CHANGE 8508 -#define ERROR_DS_SCHEMA_UPDATE_DISALLOWED 8509 -#define ERROR_DS_CANT_CREATE_UNDER_SCHEMA 8510 -#define ERROR_DS_INSTALL_NO_SRC_SCH_VERSION 8511 -#define ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE 8512 -#define ERROR_DS_INVALID_GROUP_TYPE 8513 -#define ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN 8514 -#define ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN 8515 -#define ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER 8516 -#define ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER 8517 -#define ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER 8518 -#define ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER 8519 -#define ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER 8520 -#define ERROR_DS_HAVE_PRIMARY_MEMBERS 8521 -#define ERROR_DS_STRING_SD_CONVERSION_FAILED 8522 -#define ERROR_DS_NAMING_MASTER_GC 8523 -#define ERROR_DS_LOOKUP_FAILURE 8524 -#define ERROR_DS_COULDNT_UPDATE_SPNS 8525 -#define ERROR_DS_CANT_RETRIEVE_SD 8526 -#define ERROR_DS_KEY_NOT_UNIQUE 8527 -#define ERROR_DS_WRONG_LINKED_ATT_SYNTAX 8528 -#define ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD 8529 -#define ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY 8530 -#define ERROR_DS_CANT_START 8531 -#define ERROR_DS_INIT_FAILURE 8532 -#define ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION 8533 -#define ERROR_DS_SOURCE_DOMAIN_IN_FOREST 8534 -#define ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST 8535 -#define ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED 8536 -#define ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN 8537 -#define ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER 8538 -#define ERROR_DS_SRC_SID_EXISTS_IN_FOREST 8539 -#define ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH 8540 -#define ERROR_SAM_INIT_FAILURE 8541 -#define ERROR_DS_DRA_SCHEMA_INFO_SHIP 8542 -#define ERROR_DS_DRA_SCHEMA_CONFLICT 8543 -#define ERROR_DS_DRA_EARLIER_SCHEMA_CONLICT 8544 -#define ERROR_DS_DRA_OBJ_NC_MISMATCH 8545 -#define ERROR_DS_NC_STILL_HAS_DSAS 8546 -#define ERROR_DS_GC_REQUIRED 8547 -#define ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY 8548 -#define ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS 8549 -#define ERROR_DS_CANT_ADD_TO_GC 8550 -#define ERROR_DS_NO_CHECKPOINT_WITH_PDC 8551 -#define ERROR_DS_SOURCE_AUDITING_NOT_ENABLED 8552 -#define ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC 8553 -#define ERROR_DS_INVALID_NAME_FOR_SPN 8554 -#define ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS 8555 -#define ERROR_DS_UNICODEPWD_NOT_IN_QUOTES 8556 -#define ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED 8557 -#define ERROR_DS_MUST_BE_RUN_ON_DST_DC 8558 -#define ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER 8559 -#define ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ 8560 -#define DNS_ERROR_RCODE_FORMAT_ERROR 9001 -#define DNS_ERROR_RCODE_SERVER_FAILURE 9002 -#define DNS_ERROR_RCODE_NAME_ERROR 9003 -#define DNS_ERROR_RCODE_NOT_IMPLEMENTED 9004 -#define DNS_ERROR_RCODE_REFUSED 9005 -#define DNS_ERROR_RCODE_YXDOMAIN 9006 -#define DNS_ERROR_RCODE_YXRRSET 9007 -#define DNS_ERROR_RCODE_NXRRSET 9008 -#define DNS_ERROR_RCODE_NOTAUTH 9009 -#define DNS_ERROR_RCODE_NOTZONE 9010 -#define DNS_ERROR_RCODE_BADSIG 9016 -#define DNS_ERROR_RCODE_BADKEY 9017 -#define DNS_ERROR_RCODE_BADTIME 9018 -#define DNS_INFO_NO_RECORDS 9501 -#define DNS_ERROR_BAD_PACKET 9502 -#define DNS_ERROR_NO_PACKET 9503 -#define DNS_ERROR_RCODE 9504 -#define DNS_ERROR_UNSECURE_PACKET 9505 -#define DNS_ERROR_INVALID_TYPE 9551 -#define DNS_ERROR_INVALID_IP_ADDRESS 9552 -#define DNS_ERROR_INVALID_PROPERTY 9553 -#define DNS_ERROR_TRY_AGAIN_LATER 9554 -#define DNS_ERROR_NOT_UNIQUE 9555 -#define DNS_ERROR_NON_RFC_NAME 9556 -#define DNS_STATUS_FQDN 9557 -#define DNS_STATUS_DOTTED_NAME 9558 -#define DNS_STATUS_SINGLE_PART_NAME 9559 -#define DNS_ERROR_INVALID_NAME_CHAR 9560 -#define DNS_ERROR_NUMERIC_NAME 9561 -#define DNS_ERROR_ZONE_DOES_NOT_EXIST 9601 -#define DNS_ERROR_NO_ZONE_INFO 9602 -#define DNS_ERROR_INVALID_ZONE_OPERATION 9603 -#define DNS_ERROR_ZONE_CONFIGURATION_ERROR 9604 -#define DNS_ERROR_ZONE_HAS_NO_SOA_RECORD 9605 -#define DNS_ERROR_ZONE_HAS_NO_NS_RECORDS 9606 -#define DNS_ERROR_ZONE_LOCKED 9607 -#define DNS_ERROR_ZONE_CREATION_FAILED 9608 -#define DNS_ERROR_ZONE_ALREADY_EXISTS 9609 -#define DNS_ERROR_AUTOZONE_ALREADY_EXISTS 9610 -#define DNS_ERROR_INVALID_ZONE_TYPE 9611 -#define DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP 9612 -#define DNS_ERROR_ZONE_NOT_SECONDARY 9613 -#define DNS_ERROR_NEED_SECONDARY_ADDRESSES 9614 -#define DNS_ERROR_WINS_INIT_FAILED 9615 -#define DNS_ERROR_NEED_WINS_SERVERS 9616 -#define DNS_ERROR_NBSTAT_INIT_FAILED 9617 -#define DNS_ERROR_SOA_DELETE_INVALID 9618 -#define DNS_ERROR_PRIMARY_REQUIRES_DATAFILE 9651 -#define DNS_ERROR_INVALID_DATAFILE_NAME 9652 -#define DNS_ERROR_DATAFILE_OPEN_FAILURE 9653 -#define DNS_ERROR_FILE_WRITEBACK_FAILED 9654 -#define DNS_ERROR_DATAFILE_PARSING 9655 -#define DNS_ERROR_RECORD_DOES_NOT_EXIST 9701 -#define DNS_ERROR_RECORD_FORMAT 9702 -#define DNS_ERROR_NODE_CREATION_FAILED 9703 -#define DNS_ERROR_UNKNOWN_RECORD_TYPE 9704 -#define DNS_ERROR_RECORD_TIMED_OUT 9705 -#define DNS_ERROR_NAME_NOT_IN_ZONE 9706 -#define DNS_ERROR_CNAME_LOOP 9707 -#define DNS_ERROR_NODE_IS_CNAME 9708 -#define DNS_ERROR_CNAME_COLLISION 9709 -#define DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT 9710 -#define DNS_ERROR_RECORD_ALREADY_EXISTS 9711 -#define DNS_ERROR_SECONDARY_DATA 9712 -#define DNS_ERROR_NO_CREATE_CACHE_DATA 9713 -#define DNS_ERROR_NAME_DOES_NOT_EXIST 9714 -#define DNS_WARNING_PTR_CREATE_FAILED 9715 -#define DNS_WARNING_DOMAIN_UNDELETED 9716 -#define DNS_ERROR_DS_UNAVAILABLE 9717 -#define DNS_ERROR_DS_ZONE_ALREADY_EXISTS 9718 -#define DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE 9719 -#define DNS_INFO_AXFR_COMPLETE 9751 -#define DNS_ERROR_AXFR 9752 -#define DNS_INFO_ADDED_LOCAL_WINS 9753 -#define DNS_STATUS_CONTINUE_NEEDED 9801 -#define DNS_ERROR_NO_TCPIP 9851 -#define DNS_ERROR_NO_DNS_SERVERS 9852 - -/* HRESULT values for OLE, SHELL and other Interface stuff */ -/* the codes 4000-40ff are reserved for OLE */ -#define NOERROR 0L -#define S_OK ((HRESULT)0L) -#define S_FALSE ((HRESULT)1L) - -#define DISP_E_UNKNOWNINTERFACE 0x80020001L -#define DISP_E_MEMBERNOTFOUND 0x80020003L -#define DISP_E_PARAMNOTFOUND 0x80020004L -#define DISP_E_TYPEMISMATCH 0x80020005L -#define DISP_E_UNKNOWNNAME 0x80020006L -#define DISP_E_NONAMEDARGS 0x80020007L -#define DISP_E_BADVARTYPE 0x80020008L -#define DISP_E_EXCEPTION 0x80020009L -#define DISP_E_OVERFLOW 0x8002000AL -#define DISP_E_BADINDEX 0x8002000BL -#define DISP_E_UNKNOWNLCID 0x8002000CL -#define DISP_E_ARRAYISLOCKED 0x8002000DL -#define DISP_E_BADPARAMCOUNT 0x8002000EL -#define DISP_E_PARAMNOTOPTIONAL 0x8002000FL - -#define TYPE_E_ELEMENTNOTFOUND 0x8002802BL -#define TYPE_E_CANTLOADLIBRARY 0x80029C4AL - -/* OLE Clipboard */ -#define CLIPBRD_E_FIRST 0x800401D0L -#define CLIPBRD_E_LAST 0x800401DFL -#define CLIPBRD_S_FIRST 0x000401D0L -#define CLIPBRD_S_LAST 0x000401DFL -#define CLIPBRD_E_CANT_OPEN 0x800401D0L -#define CLIPBRD_E_CANT_EMPTY 0x800401D1L -#define CLIPBRD_E_CANT_SET 0x800401D2L -#define CLIPBRD_E_BAD_DATA 0x800401D3L -#define CLIPBRD_E_CANT_CLOSE 0x800401D4L - -/* Drag and Drop */ -#define DRAGDROP_S_DROP 0x00040100L -#define DRAGDROP_S_CANCEL 0x00040101L -#define DRAGDROP_E_NOTREGISTERED 0x80040100L -#define DRAGDROP_E_ALREADYREGISTERED 0x80040101L -#define DRAGDROP_S_USEDEFAULTCURSORS 0x00040102L - -#define E_UNEXPECTED 0x8000FFFF - -#define E_NOTIMPL 0x80004001 -#define E_NOINTERFACE 0x80004002 -#define E_POINTER 0x80004003 -#define E_ABORT 0x80004004 -#define E_FAIL 0x80004005 -#define E_UNSPEC E_FAIL /* must to be defined (used by FileMoniker, IOleLink and DoDragDrop as a return value) */ - -/*#define CO_E_INIT_TLS 0x80004006 -#define CO_E_INIT_SHARED_ALLOCATOR 0x80004007 -#define CO_E_INIT_MEMORY_ALLOCATOR 0x80004008 -#define CO_E_INIT_CLASS_CACHE 0x80004009 -#define CO_E_INIT_RPC_CHANNEL 0x8000400A -#define CO_E_INIT_TLS_SET_CHANNEL_CONTROL 0x8000400B -#define CO_E_INIT_TLS_CHANNEL_CONTROL 0x8000400C -#define CO_E_INIT_UNACCEPTED_USER_ALLOCATOR 0x8000400D -#define CO_E_INIT_SCM_MUTEX_EXISTS 0x8000400E -#define CO_E_INIT_SCM_FILE_MAPPING_EXISTS 0x8000400F -#define CO_E_INIT_SCM_MAP_VIEW_OF_FILE 0x80004010 -#define CO_E_INIT_SCM_EXEC_FAILURE 0x80004011 -#define CO_E_INIT_ONLY_SINGLE_THREADED 0x80004012 */ - -#define CO_S_NOTALLINTERFACES 0x00080012 -#define CO_E_NOTINITIALIZED 0x800401F0 -#define CO_E_ERRORINDLL 0x800401F9 -#define CO_E_OBJISREG 0x800401FB - -#define OLE_E_FIRST 0x80040000L -#define OLE_E_LAST 0x800400FFL -#define OLE_S_FIRST 0x00040000L -#define OLE_S_LAST 0x000400FFL - -#define OLE_E_ENUM_NOMORE 0x80040002 -#define OLE_E_ADVISENOTSUPPORTED 0x80040003 -#define OLE_E_NOCONNECTION 0x80040004 -#define OLE_E_NOTRUNNING 0x80040005 -#define OLE_E_NOCACHE 0x80040006 -#define OLE_E_BLANK 0x80040007 -#define OLE_E_NOT_INPLACEACTIVE 0x80040010 -#define OLE_E_STATIC 0x8004000B -#define OLE_E_PROMPTSAVECANCELLED 0x8004000C -#define OLE_S_USEREG 0x00040000 -#define OLE_S_STATIC 0x00040001 - -#define DV_E_FORMATETC 0x80040064 -#define DV_E_DVASPECT 0x8004006B -#define DV_E_LINDEX 0x80040068 -#define DV_E_TYMED 0x80040069 - -#define CLASS_E_NOAGGREGATION 0x80040110 -#define CLASS_E_CLASSNOTAVAILABLE 0x80040111 - -#define DATA_S_SAMEFORMATETC 0x80040130 - -#define E_ACCESSDENIED 0x80070005 -#define E_HANDLE 0x80070006 -#define E_OUTOFMEMORY 0x8007000E -#define E_INVALIDARG 0x80070057 - -/*#define OLE_E_FIRST 0x80040000L */ -/*#define OLE_E_LAST 0x800400FFL */ -/*#define OLE_S_FIRST 0x00040000L */ -/*#define OLE_S_LAST 0x000400FFL */ - -#define MK_S_REDUCED_TO_SELF 0x000401E2 -#define MK_S_ME 0x000401E4 -#define MK_S_HIM 0x000401E5 -#define MK_S_US 0x000401E6 -#define MK_S_MONIKERALREADYREGISTERED 0x000401E7 - -#define MK_E_EXCEEDEDDEADLINE 0x800401E1 -#define MK_E_NEEDGENERIC 0x800401E2 -#define MK_E_UNAVAILABLE 0x800401E3 -#define MK_E_SYNTAX 0x800401E4 -#define MK_E_NOOBJECT 0x800401E5 -#define MK_E_INVALIDEXTENSION 0x800401E6 -#define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED 0x800401E7 -#define MK_E_NOTBINDABLE 0x800401E8 -#define MK_E_NOTBOUND 0x800401E9 -#define MK_E_CANTOPENFILE 0x800401EA -#define MK_E_MIUSTBOTHERUSER 0x800401EB -#define MK_E_NOINVERSE 0x800401EC -#define MK_E_NOSTORAGE 0x800401ED -#define MK_E_NOPREFIX 0x800401EE - -#define STG_E_INVALIDFUNCTION 0x80030001 -#define STG_E_FILENOTFOUND 0x80030002 -#define STG_E_PATHNOTFOUND 0x80030003 -#define STG_E_TOOMANYOPENFILES 0x80030004 -#define STG_E_ACCESSDENIED 0x80030005 -#define STG_E_INVALIDHANDLE 0x80030006 -#define STG_E_INSUFFICIENTMEMORY 0x80030008 -#define STG_E_INVALIDPOINTER 0x80030009 -#define STG_E_NOMOREFILES 0x80030012 -#define STG_E_DISKISWRITEPROTECTED 0x80030013 -#define STG_E_SEEKERROR 0x80030019 -#define STG_E_WRITEFAULT 0x8003001D -#define STG_E_READFAULT 0x8003001E -#define STG_E_SHAREVIOLATION 0x80030020 -#define STG_E_LOCKVIOLATION 0x80030021 -#define STG_E_FILEALREADYEXISTS 0x80030050 -#define STG_E_INVALIDPARAMETER 0x80030057 -#define STG_E_MEDIUMFULL 0x80030070 -#define STG_E_ABNORMALAPIEXIT 0x800300FA -#define STG_E_INVALIDHEADER 0x800300FB -#define STG_E_INVALIDNAME 0x800300FC -#define STG_E_UNKNOWN 0x800300FD -#define STG_E_UNIMPLEMENTEDFUNCTION 0x800300FE -#define STG_E_INVALIDFLAG 0x800300FF -#define STG_E_INUSE 0x80030100 -#define STG_E_NOTCURRENT 0x80030101 -#define STG_E_REVERTED 0x80030102 -#define STG_E_CANTSAVE 0x80030103 -#define STG_E_OLDFORMAT 0x80030104 -#define STG_E_OLDDLL 0x80030105 -#define STG_E_SHAREREQUIRED 0x80030106 -#define STG_E_NOTFILEBASEDSTORAGE 0x80030107 -#define STG_E_EXTANTMARSHALLINGS 0x80030108 - -#define CONVERT10_E_OLESTREAM_GET 0x800401C0 -#define CONVERT10_E_OLESTREAM_PUT 0x800401C1 -#define CONVERT10_E_OLESTREAM_FMT 0x800401C2 -#define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB 0x800401C3 -#define CONVERT10_E_STG_FMT 0x800401C4 -#define CONVERT10_E_STG_NO_STD_STREAM 0x800401C5 -#define CONVERT10_E_STG_DIB_TO_BITMAP 0x800401C6 - -/* alten versionen -#define E_NOTIMPL 0x80000001 -#define E_OUTOFMEMORY 0x80000002 -#define E_INVALIDARG 0x80000003 -#define E_NOINTERFACE 0x80000004 -#define E_POINTER 0x80000005 -#define E_HANDLE 0x80000006 -#define E_ABORT 0x80000007 -#define E_FAIL 0x80000008 -#define E_ACCESSDENIED 0x80000009 */ - -/* Obtained from lcc-win32 include files */ -#define GDI_ERROR 0xffffffff - - -/* registry errors */ -#define REGDB_E_READREGDB 0x80040150 -#define REGDB_E_CLASSNOTREG 0x80040154 - -#define INPLACE_E_NOTUNDOABLE 0x800401A0 -#define INPLACE_E_NOTOOLSPACE 0x800401A1 - -#define DATA_E_FORMATETC DV_E_FORMATETC - -#define CLASSFACTORY_E_FIRST 0x80040110L -#define CLASSFACTORY_E_LAST 0x8004011FL -#define CLASSFACTORY_S_FIRST 0x80040110L -#define CLASSFACTORY_S_LAST 0x8004011FL - -#define CLASS_E_NOTLICENSED (CLASSFACTORY_E_FIRST+2) -#define CLASS_E_NOAGGREGATION 0x80040110 -#define CLASS_E_CLASSNOTAVAILABLE 0x80040111 - - -#define OLEOBJ_E_NOVERBS 0x00040180L -#define OLEOBJ_E_INVALIDVERB 0x00040181L -#define OLEOBJ_S_INVALIDVERB 0x00040180L - -#endif /* __WINE_WINERROR_H */ diff --git a/include/wine/winestring.h b/include/wine/winestring.h deleted file mode 100644 index 5b66dc803c..0000000000 --- a/include/wine/winestring.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __WINE_WINE_WINESTRING_H -#define __WINE_WINE_WINESTRING_H - -#include "windef.h" - -LPWSTR WINAPI lstrcpyAtoW(LPWSTR,LPCSTR); -LPSTR WINAPI lstrcpyWtoA(LPSTR,LPCWSTR); -LPWSTR WINAPI lstrcpynAtoW(LPWSTR,LPCSTR,INT); -LPSTR WINAPI lstrcpynWtoA(LPSTR,LPCWSTR,INT); - -#define lstrncmpiA strncasecmp - -#endif /* __WINE_WINE_WINESTRING_H */ diff --git a/include/wine/winnt.h b/include/wine/winnt.h deleted file mode 100644 index 107172ef8d..0000000000 --- a/include/wine/winnt.h +++ /dev/null @@ -1,2665 +0,0 @@ -/* - * Win32 definitions for Windows NT - * - * Copyright 1996 Alexandre Julliard - */ - -#ifndef __WINE_WINNT_H -#define __WINE_WINNT_H - -#include "windef.h" - -#ifndef RC_INVOKED -#include -#endif - -#include "pshpack1.h" -/* Defines */ - -/* Argument 1 passed to the DllEntryProc. */ -#define DLL_PROCESS_DETACH 0 /* detach process (unload library) */ -#define DLL_PROCESS_ATTACH 1 /* attach process (load library) */ -#define DLL_THREAD_ATTACH 2 /* attach new thread */ -#define DLL_THREAD_DETACH 3 /* detach thread */ - - -/* u.x.wProcessorArchitecture (NT) */ -#define PROCESSOR_ARCHITECTURE_INTEL 0 -#define PROCESSOR_ARCHITECTURE_MIPS 1 -#define PROCESSOR_ARCHITECTURE_ALPHA 2 -#define PROCESSOR_ARCHITECTURE_PPC 3 -#define PROCESSOR_ARCHITECTURE_SHX 4 -#define PROCESSOR_ARCHITECTURE_ARM 5 -#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF - -/* dwProcessorType */ -#define PROCESSOR_INTEL_386 386 -#define PROCESSOR_INTEL_486 486 -#define PROCESSOR_INTEL_PENTIUM 586 -#define PROCESSOR_INTEL_860 860 -#define PROCESSOR_MIPS_R2000 2000 -#define PROCESSOR_MIPS_R3000 3000 -#define PROCESSOR_MIPS_R4000 4000 -#define PROCESSOR_ALPHA_21064 21064 -#define PROCESSOR_PPC_601 601 -#define PROCESSOR_PPC_603 603 -#define PROCESSOR_PPC_604 604 -#define PROCESSOR_PPC_620 620 -#define PROCESSOR_HITACHI_SH3 10003 -#define PROCESSOR_HITACHI_SH3E 10004 -#define PROCESSOR_HITACHI_SH4 10005 -#define PROCESSOR_MOTOROLA_821 821 -#define PROCESSOR_SHx_SH3 103 -#define PROCESSOR_SHx_SH4 104 -#define PROCESSOR_STRONGARM 2577 -#define PROCESSOR_ARM720 1824 /* 0x720 */ -#define PROCESSOR_ARM820 2080 /* 0x820 */ -#define PROCESSOR_ARM920 2336 /* 0x920 */ -#define PROCESSOR_ARM_7TDMI 70001 - -#define ANYSIZE_ARRAY 1 - -#define MINCHAR 0x80 -#define MAXCHAR 0x7f -#define MINSHORT 0x8000 -#define MAXSHORT 0x7fff -#define MINLONG 0x80000000 -#define MAXLONG 0x7fffffff -#define MAXBYTE 0xff -#define MAXWORD 0xffff -#define MAXDWORD 0xffffffff - -#define FIELD_OFFSET(type, field) \ - ((LONG)(INT)&(((type *)0)->field)) - -#define CONTAINING_RECORD(address, type, field) \ - ((type *)((PCHAR)(address) - (PCHAR)(&((type *)0)->field))) - -/* Types */ - -/* TCHAR data types definitions for Winelib. */ -/* These types are _not_ defined for the emulator, because they */ -/* depend on the UNICODE macro that only exists in user's code. */ - -#ifndef __WINE__ -# ifdef UNICODE -typedef WCHAR TCHAR, *PTCHAR; -typedef LPWSTR PTSTR, LPTSTR; -typedef LPCWSTR PCTSTR, LPCTSTR; -#define __TEXT(string) L##string /*probably wrong */ -# else /* UNICODE */ -typedef char TCHAR, *PTCHAR; -typedef LPSTR PTSTR, LPTSTR; -typedef LPCSTR PCTSTR, LPCTSTR; -#define __TEXT(string) string -# endif /* UNICODE */ -#endif /* __WINE__ */ -#define TEXT(quote) __TEXT(quote) - -typedef BYTE BOOLEAN; -typedef BOOLEAN *PBOOLEAN; - -typedef struct _LIST_ENTRY { - struct _LIST_ENTRY *Flink; - struct _LIST_ENTRY *Blink; -} LIST_ENTRY, *PLIST_ENTRY; - -typedef struct _SINGLE_LIST_ENTRY { - struct _SINGLE_LIST_ENTRY *Next; -} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; - -/* Heap flags */ - -#define HEAP_NO_SERIALIZE 0x00000001 -#define HEAP_GROWABLE 0x00000002 -#define HEAP_GENERATE_EXCEPTIONS 0x00000004 -#define HEAP_ZERO_MEMORY 0x00000008 -#define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010 -#define HEAP_TAIL_CHECKING_ENABLED 0x00000020 -#define HEAP_FREE_CHECKING_ENABLED 0x00000040 -#define HEAP_DISABLE_COALESCE_ON_FREE 0x00000080 -#define HEAP_CREATE_ALIGN_16 0x00010000 -#define HEAP_CREATE_ENABLE_TRACING 0x00020000 -#define HEAP_WINE_SEGPTR 0x01000000 /* Not a Win32 flag */ -#define HEAP_WINE_CODESEG 0x02000000 /* Not a Win32 flag */ -#define HEAP_WINE_CODE16SEG 0x04000000 /* Not a Win32 flag */ -#define HEAP_WINE_SHARED 0x08000000 /* Not a Win32 flag */ - -/* Processor feature flags. */ -#define PF_FLOATING_POINT_PRECISION_ERRATA 0 -#define PF_FLOATING_POINT_EMULATED 1 -#define PF_COMPARE_EXCHANGE_DOUBLE 2 -#define PF_MMX_INSTRUCTIONS_AVAILABLE 3 -#define PF_PPC_MOVEMEM_64BIT_OK 4 -#define PF_ALPHA_BYTE_INSTRUCTIONS 5 - - -/* The Win32 register context */ - -/* CONTEXT is the CPU-dependent context; it should be used */ -/* wherever a platform-specific context is needed (e.g. exception */ -/* handling, Win32 register functions). */ - -/* CONTEXT86 is the i386-specific context; it should be used */ -/* wherever only a 386 context makes sense (e.g. DOS interrupts, */ -/* Win16 register functions), so that this code can be compiled */ -/* on all platforms. */ - -#define SIZE_OF_80387_REGISTERS 80 - -typedef struct _FLOATING_SAVE_AREA -{ - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; - DWORD Cr0NpxState; -} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA; - -typedef struct _CONTEXT86 -{ - DWORD ContextFlags; - - /* These are selected by CONTEXT_DEBUG_REGISTERS */ - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - - /* These are selected by CONTEXT_FLOATING_POINT */ - FLOATING_SAVE_AREA FloatSave; - - /* These are selected by CONTEXT_SEGMENTS */ - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - - /* These are selected by CONTEXT_INTEGER */ - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - - /* These are selected by CONTEXT_CONTROL */ - DWORD Ebp; - DWORD Eip; - DWORD SegCs; - DWORD EFlags; - DWORD Esp; - DWORD SegSs; -} CONTEXT86; - -#define CONTEXT_X86 0x00010000 -#define CONTEXT_i386 CONTEXT_X86 -#define CONTEXT_i486 CONTEXT_X86 - -#define CONTEXT86_CONTROL (CONTEXT_i386 | 0x0001) /* SS:SP, CS:IP, FLAGS, BP */ -#define CONTEXT86_INTEGER (CONTEXT_i386 | 0x0002) /* AX, BX, CX, DX, SI, DI */ -#define CONTEXT86_SEGMENTS (CONTEXT_i386 | 0x0004) /* DS, ES, FS, GS */ -#define CONTEXT86_FLOATING_POINT (CONTEXT_i386 | 0x0008L) /* 387 state */ -#define CONTEXT86_DEBUG_REGISTERS (CONTEXT_i386 | 0x0010L) /* DB 0-3,6,7 */ -#define CONTEXT86_FULL (CONTEXT86_CONTROL | CONTEXT86_INTEGER | CONTEXT86_SEGMENTS) - -/* i386 context definitions */ -#ifdef __i386__ - -#define CONTEXT_CONTROL CONTEXT86_CONTROL -#define CONTEXT_INTEGER CONTEXT86_INTEGER -#define CONTEXT_SEGMENTS CONTEXT86_SEGMENTS -#define CONTEXT_FLOATING_POINT CONTEXT86_FLOATING_POINT -#define CONTEXT_DEBUG_REGISTERS CONTEXT86_DEBUG_REGISTERS -#define CONTEXT_FULL CONTEXT86_FULL - -typedef CONTEXT86 CONTEXT; - -#endif /* __i386__ */ - -/* Alpha context definitions */ -#ifdef _ALPHA_ - -#define CONTEXT_ALPHA 0x00020000 - -#define CONTEXT_CONTROL (CONTEXT_ALPHA | 0x00000001L) -#define CONTEXT_FLOATING_POINT (CONTEXT_ALPHA | 0x00000002L) -#define CONTEXT_INTEGER (CONTEXT_ALPHA | 0x00000004L) -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) - -typedef struct _CONTEXT -{ - /* selected by CONTEXT_FLOATING_POINT */ - ULONGLONG FltF0; - ULONGLONG FltF1; - ULONGLONG FltF2; - ULONGLONG FltF3; - ULONGLONG FltF4; - ULONGLONG FltF5; - ULONGLONG FltF6; - ULONGLONG FltF7; - ULONGLONG FltF8; - ULONGLONG FltF9; - ULONGLONG FltF10; - ULONGLONG FltF11; - ULONGLONG FltF12; - ULONGLONG FltF13; - ULONGLONG FltF14; - ULONGLONG FltF15; - ULONGLONG FltF16; - ULONGLONG FltF17; - ULONGLONG FltF18; - ULONGLONG FltF19; - ULONGLONG FltF20; - ULONGLONG FltF21; - ULONGLONG FltF22; - ULONGLONG FltF23; - ULONGLONG FltF24; - ULONGLONG FltF25; - ULONGLONG FltF26; - ULONGLONG FltF27; - ULONGLONG FltF28; - ULONGLONG FltF29; - ULONGLONG FltF30; - ULONGLONG FltF31; - - /* selected by CONTEXT_INTEGER */ - ULONGLONG IntV0; - ULONGLONG IntT0; - ULONGLONG IntT1; - ULONGLONG IntT2; - ULONGLONG IntT3; - ULONGLONG IntT4; - ULONGLONG IntT5; - ULONGLONG IntT6; - ULONGLONG IntT7; - ULONGLONG IntS0; - ULONGLONG IntS1; - ULONGLONG IntS2; - ULONGLONG IntS3; - ULONGLONG IntS4; - ULONGLONG IntS5; - ULONGLONG IntFp; - ULONGLONG IntA0; - ULONGLONG IntA1; - ULONGLONG IntA2; - ULONGLONG IntA3; - ULONGLONG IntA4; - ULONGLONG IntA5; - ULONGLONG IntT8; - ULONGLONG IntT9; - ULONGLONG IntT10; - ULONGLONG IntT11; - ULONGLONG IntRa; - ULONGLONG IntT12; - ULONGLONG IntAt; - ULONGLONG IntGp; - ULONGLONG IntSp; - ULONGLONG IntZero; - - /* selected by CONTEXT_FLOATING_POINT */ - ULONGLONG Fpcr; - ULONGLONG SoftFpcr; - - /* selected by CONTEXT_CONTROL */ - ULONGLONG Fir; - DWORD Psr; - DWORD ContextFlags; - DWORD Fill[4]; -} CONTEXT; - -#define _QUAD_PSR_OFFSET HighSoftFpcr -#define _QUAD_FLAGS_OFFSET HighFir - -#endif /* _ALPHA_ */ - -/* Mips context definitions */ -#ifdef _MIPS_ - -#define CONTEXT_R4000 0x00010000 - -#define CONTEXT_CONTROL (CONTEXT_R4000 | 0x00000001) -#define CONTEXT_FLOATING_POINT (CONTEXT_R4000 | 0x00000002) -#define CONTEXT_INTEGER (CONTEXT_R4000 | 0x00000004) - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) - -typedef struct _CONTEXT -{ - DWORD Argument[4]; - /* These are selected by CONTEXT_FLOATING_POINT */ - DWORD FltF0; - DWORD FltF1; - DWORD FltF2; - DWORD FltF3; - DWORD FltF4; - DWORD FltF5; - DWORD FltF6; - DWORD FltF7; - DWORD FltF8; - DWORD FltF9; - DWORD FltF10; - DWORD FltF11; - DWORD FltF12; - DWORD FltF13; - DWORD FltF14; - DWORD FltF15; - DWORD FltF16; - DWORD FltF17; - DWORD FltF18; - DWORD FltF19; - DWORD FltF20; - DWORD FltF21; - DWORD FltF22; - DWORD FltF23; - DWORD FltF24; - DWORD FltF25; - DWORD FltF26; - DWORD FltF27; - DWORD FltF28; - DWORD FltF29; - DWORD FltF30; - DWORD FltF31; - - /* These are selected by CONTEXT_INTEGER */ - DWORD IntZero; - DWORD IntAt; - DWORD IntV0; - DWORD IntV1; - DWORD IntA0; - DWORD IntA1; - DWORD IntA2; - DWORD IntA3; - DWORD IntT0; - DWORD IntT1; - DWORD IntT2; - DWORD IntT3; - DWORD IntT4; - DWORD IntT5; - DWORD IntT6; - DWORD IntT7; - DWORD IntS0; - DWORD IntS1; - DWORD IntS2; - DWORD IntS3; - DWORD IntS4; - DWORD IntS5; - DWORD IntS6; - DWORD IntS7; - DWORD IntT8; - DWORD IntT9; - DWORD IntK0; - DWORD IntK1; - DWORD IntGp; - DWORD IntSp; - DWORD IntS8; - DWORD IntRa; - DWORD IntLo; - DWORD IntHi; - - /* These are selected by CONTEXT_FLOATING_POINT */ - DWORD Fsr; - - /* These are selected by CONTEXT_CONTROL */ - DWORD Fir; - DWORD Psr; - - DWORD ContextFlags; - DWORD Fill[2]; -} CONTEXT; - -#endif /* _MIPS_ */ - -/* PowerPC context definitions */ -#ifdef __PPC__ - -#define CONTEXT_CONTROL 0x0001 -#define CONTEXT_FLOATING_POINT 0x0002 -#define CONTEXT_INTEGER 0x0004 -#define CONTEXT_DEBUG_REGISTERS 0x0008 -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) - -typedef struct -{ - /* These are selected by CONTEXT_FLOATING_POINT */ - double Fpr0; - double Fpr1; - double Fpr2; - double Fpr3; - double Fpr4; - double Fpr5; - double Fpr6; - double Fpr7; - double Fpr8; - double Fpr9; - double Fpr10; - double Fpr11; - double Fpr12; - double Fpr13; - double Fpr14; - double Fpr15; - double Fpr16; - double Fpr17; - double Fpr18; - double Fpr19; - double Fpr20; - double Fpr21; - double Fpr22; - double Fpr23; - double Fpr24; - double Fpr25; - double Fpr26; - double Fpr27; - double Fpr28; - double Fpr29; - double Fpr30; - double Fpr31; - double Fpscr; - - /* These are selected by CONTEXT_INTEGER */ - DWORD Gpr0; - DWORD Gpr1; - DWORD Gpr2; - DWORD Gpr3; - DWORD Gpr4; - DWORD Gpr5; - DWORD Gpr6; - DWORD Gpr7; - DWORD Gpr8; - DWORD Gpr9; - DWORD Gpr10; - DWORD Gpr11; - DWORD Gpr12; - DWORD Gpr13; - DWORD Gpr14; - DWORD Gpr15; - DWORD Gpr16; - DWORD Gpr17; - DWORD Gpr18; - DWORD Gpr19; - DWORD Gpr20; - DWORD Gpr21; - DWORD Gpr22; - DWORD Gpr23; - DWORD Gpr24; - DWORD Gpr25; - DWORD Gpr26; - DWORD Gpr27; - DWORD Gpr28; - DWORD Gpr29; - DWORD Gpr30; - DWORD Gpr31; - - DWORD Cr; - DWORD Xer; - - /* These are selected by CONTEXT_CONTROL */ - DWORD Msr; - DWORD Iar; - DWORD Lr; - DWORD Ctr; - - DWORD ContextFlags; - DWORD Fill[3]; - - /* These are selected by CONTEXT_DEBUG_REGISTERS */ - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr4; - DWORD Dr5; - DWORD Dr6; - DWORD Dr7; -} CONTEXT; - -typedef struct _STACK_FRAME_HEADER -{ - DWORD BackChain; - DWORD GlueSaved1; - DWORD GlueSaved2; - DWORD Reserved1; - DWORD Spare1; - DWORD Spare2; - - DWORD Parameter0; - DWORD Parameter1; - DWORD Parameter2; - DWORD Parameter3; - DWORD Parameter4; - DWORD Parameter5; - DWORD Parameter6; - DWORD Parameter7; -} STACK_FRAME_HEADER,*PSTACK_FRAME_HEADER; - -#endif /* __PPC__ */ - -#ifdef __sparc__ - -/* - * FIXME: - * - * There is no official CONTEXT structure defined for the SPARC - * architecture, so I just made one up. - * - * This structure is valid only for 32-bit SPARC architectures, - * not for 64-bit SPARC. - * - * Note that this structure contains only the 'top-level' registers; - * the rest of the register window chain is not visible. - * - * The layout follows the Solaris 'prgregset_t' structure. - * - */ - -#define CONTEXT_SPARC 0x10000000 - -#define CONTEXT_CONTROL (CONTEXT_SPARC | 0x00000001) -#define CONTEXT_FLOATING_POINT (CONTEXT_SPARC | 0x00000002) -#define CONTEXT_INTEGER (CONTEXT_SPARC | 0x00000004) - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) - -typedef struct _CONTEXT -{ - DWORD ContextFlags; - - /* These are selected by CONTEXT_INTEGER */ - DWORD g0; - DWORD g1; - DWORD g2; - DWORD g3; - DWORD g4; - DWORD g5; - DWORD g6; - DWORD g7; - DWORD o0; - DWORD o1; - DWORD o2; - DWORD o3; - DWORD o4; - DWORD o5; - DWORD o6; - DWORD o7; - DWORD l0; - DWORD l1; - DWORD l2; - DWORD l3; - DWORD l4; - DWORD l5; - DWORD l6; - DWORD l7; - DWORD i0; - DWORD i1; - DWORD i2; - DWORD i3; - DWORD i4; - DWORD i5; - DWORD i6; - DWORD i7; - - /* These are selected by CONTEXT_CONTROL */ - DWORD psr; - DWORD pc; - DWORD npc; - DWORD y; - DWORD wim; - DWORD tbr; - - /* FIXME: floating point registers missing */ - -} CONTEXT; - -#endif /* __sparc__ */ - -#if !defined(CONTEXT_FULL) && !defined(RC_INVOKED) -#error You need to define a CONTEXT for your CPU -#endif - -typedef CONTEXT *PCONTEXT; -typedef HANDLE *PHANDLE; - -#ifdef __WINE__ - -/* Macros for easier access to i386 context registers */ - -#define EAX_reg(context) ((context)->Eax) -#define EBX_reg(context) ((context)->Ebx) -#define ECX_reg(context) ((context)->Ecx) -#define EDX_reg(context) ((context)->Edx) -#define ESI_reg(context) ((context)->Esi) -#define EDI_reg(context) ((context)->Edi) -#define EBP_reg(context) ((context)->Ebp) - -#define CS_reg(context) ((context)->SegCs) -#define DS_reg(context) ((context)->SegDs) -#define ES_reg(context) ((context)->SegEs) -#define FS_reg(context) ((context)->SegFs) -#define GS_reg(context) ((context)->SegGs) -#define SS_reg(context) ((context)->SegSs) - -#define EFL_reg(context) ((context)->EFlags) -#define EIP_reg(context) ((context)->Eip) -#define ESP_reg(context) ((context)->Esp) - -#define AX_reg(context) (*(WORD*)&EAX_reg(context)) -#define BX_reg(context) (*(WORD*)&EBX_reg(context)) -#define CX_reg(context) (*(WORD*)&ECX_reg(context)) -#define DX_reg(context) (*(WORD*)&EDX_reg(context)) -#define SI_reg(context) (*(WORD*)&ESI_reg(context)) -#define DI_reg(context) (*(WORD*)&EDI_reg(context)) -#define BP_reg(context) (*(WORD*)&EBP_reg(context)) - -#define AL_reg(context) (*(BYTE*)&EAX_reg(context)) -#define AH_reg(context) (*((BYTE*)&EAX_reg(context)+1)) -#define BL_reg(context) (*(BYTE*)&EBX_reg(context)) -#define BH_reg(context) (*((BYTE*)&EBX_reg(context)+1)) -#define CL_reg(context) (*(BYTE*)&ECX_reg(context)) -#define CH_reg(context) (*((BYTE*)&ECX_reg(context)+1)) -#define DL_reg(context) (*(BYTE*)&EDX_reg(context)) -#define DH_reg(context) (*((BYTE*)&EDX_reg(context)+1)) - -#define SET_CFLAG(context) (EFL_reg(context) |= 0x0001) -#define RESET_CFLAG(context) (EFL_reg(context) &= ~0x0001) -#define SET_ZFLAG(context) (EFL_reg(context) |= 0x0040) -#define RESET_ZFLAG(context) (EFL_reg(context) &= ~0x0040) - -#define ISV86(context) (EFL_reg(context) & 0x00020000) -#define V86BASE(context) ((context)->Dr7) /* ugly */ - - -/* Macros to retrieve the current context */ - -#ifdef __i386__ - -#ifdef NEED_UNDERSCORE_PREFIX -# define __ASM_NAME(name) "_" name -#else -# define __ASM_NAME(name) name -#endif - -#ifdef __GNUC__ -# define __ASM_GLOBAL_FUNC(name,code) \ - __asm__( ".align 4\n\t" \ - ".globl " __ASM_NAME(#name) "\n\t" \ - ".type " __ASM_NAME(#name) ",@function\n" \ - __ASM_NAME(#name) ":\n\t" \ - code ); -#else /* __GNUC__ */ -# define __ASM_GLOBAL_FUNC(name,code) \ - void __asm_dummy_##name(void) { \ - asm( ".align 4\n\t" \ - ".globl " __ASM_NAME(#name) "\n\t" \ - ".type " __ASM_NAME(#name) ",@function\n" \ - __ASM_NAME(#name) ":\n\t" \ - code ); \ - } -#endif /* __GNUC__ */ - -#define _DEFINE_REGS_ENTRYPOINT( name, fn, args ) \ - __ASM_GLOBAL_FUNC( name, \ - "call " __ASM_NAME("CALL32_Regs") "\n\t" \ - ".long " __ASM_NAME(#fn) "\n\t" \ - ".byte " #args ", " #args ) -#define DEFINE_REGS_ENTRYPOINT_0( name, fn ) \ - _DEFINE_REGS_ENTRYPOINT( name, fn, 0 ) -#define DEFINE_REGS_ENTRYPOINT_1( name, fn, t1 ) \ - _DEFINE_REGS_ENTRYPOINT( name, fn, 4 ) -#define DEFINE_REGS_ENTRYPOINT_2( name, fn, t1, t2 ) \ - _DEFINE_REGS_ENTRYPOINT( name, fn, 8 ) -#define DEFINE_REGS_ENTRYPOINT_3( name, fn, t1, t2, t3 ) \ - _DEFINE_REGS_ENTRYPOINT( name, fn, 12 ) -#define DEFINE_REGS_ENTRYPOINT_4( name, fn, t1, t2, t3, t4 ) \ - _DEFINE_REGS_ENTRYPOINT( name, fn, 16 ) - -#endif /* __i386__ */ - -#ifdef __sparc__ -/* FIXME: use getcontext() to retrieve full context */ -#define _GET_CONTEXT \ - CONTEXT context; \ - do { memset(&context, 0, sizeof(CONTEXT)); \ - context.ContextFlags = CONTEXT_CONTROL; \ - context.pc = (DWORD)__builtin_return_address(0); \ - } while (0) - -#define DEFINE_REGS_ENTRYPOINT_0( name, fn ) \ - void WINAPI name ( void ) \ - { _GET_CONTEXT; fn( &context ); } -#define DEFINE_REGS_ENTRYPOINT_1( name, fn, t1 ) \ - void WINAPI name ( t1 a1 ) \ - { _GET_CONTEXT; fn( a1, &context ); } -#define DEFINE_REGS_ENTRYPOINT_2( name, fn, t1, t2 ) \ - void WINAPI name ( t1 a1, t2 a2 ) \ - { _GET_CONTEXT; fn( a1, a2, &context ); } -#define DEFINE_REGS_ENTRYPOINT_3( name, fn, t1, t2, t3 ) \ - void WINAPI name ( t1 a1, t2 a2, t3 a3 ) \ - { _GET_CONTEXT; fn( a1, a2, a3, &context ); } -#define DEFINE_REGS_ENTRYPOINT_4( name, fn, t1, t2, t3, t4 ) \ - void WINAPI name ( t1 a1, t2 a2, t3 a3, t4 a4 ) \ - { _GET_CONTEXT; fn( a1, a2, a3, a4, &context ); } - -#endif /* __sparc__ */ - -#ifndef DEFINE_REGS_ENTRYPOINT_0 -#error You need to define DEFINE_REGS_ENTRYPOINT macros for your CPU -#endif - -#ifdef __i386__ -# define GET_IP(context) ((LPVOID)(context)->Eip) -#endif -#ifdef __sparc__ -# define GET_IP(context) ((LPVOID)(context)->pc) -#endif - -#if !defined(GET_IP) && !defined(RC_INVOKED) -# error You must define GET_IP for this CPU -#endif - -#endif /* __WINE__ */ - -/* - * Exception codes - */ - -#define STATUS_SUCCESS 0x00000000 -#define STATUS_WAIT_0 0x00000000 -#define STATUS_ABANDONED_WAIT_0 0x00000080 -#define STATUS_USER_APC 0x000000C0 -#define STATUS_TIMEOUT 0x00000102 -#define STATUS_PENDING 0x00000103 - -#define STATUS_GUARD_PAGE_VIOLATION 0x80000001 -#define STATUS_DATATYPE_MISALIGNMENT 0x80000002 -#define STATUS_BREAKPOINT 0x80000003 -#define STATUS_SINGLE_STEP 0x80000004 -#define STATUS_BUFFER_OVERFLOW 0x80000005 -#define STATUS_NO_MORE_FILES 0x80000006 -#define STATUS_WAKE_SYSTEM_DEBUGGER 0x80000007 - -#define STATUS_HANDLES_CLOSED 0x8000000A -#define STATUS_NO_INHERITANCE 0x8000000B -#define STATUS_GUID_SUBSTITUTION_MADE 0x8000000C -#define STATUS_PARTIAL_COPY 0x8000000D -#define STATUS_DEVICE_PAPER_EMPTY 0x8000000E -#define STATUS_DEVICE_POWERED_OFF 0x8000000F -#define STATUS_DEVICE_OFF_LINE 0x80000010 -#define STATUS_DEVICE_BUSY 0x80000011 -#define STATUS_NO_MORE_EAS 0x80000012 -#define STATUS_INVALID_EA_NAME 0x80000013 -#define STATUS_EA_LIST_INCONSISTENT 0x80000014 -#define STATUS_INVALID_EA_FLAG 0x80000015 -#define STATUS_VERIFY_REQUIRED 0x80000016 -#define STATUS_EXTRANEOUS_INFORMATION 0x80000017 -#define STATUS_RXACT_COMMIT_NECESSARY 0x80000018 -#define STATUS_NO_MORE_ENTRIES 0x8000001A -#define STATUS_FILEMARK_DETECTED 0x8000001B -#define STATUS_MEDIA_CHANGED 0x8000001C -#define STATUS_BUS_RESET 0x8000001D -#define STATUS_END_OF_MEDIA 0x8000001E -#define STATUS_BEGINNING_OF_MEDIA 0x8000001F -#define STATUS_MEDIA_CHECK 0x80000020 -#define STATUS_SETMARK_DETECTED 0x80000021 -#define STATUS_NO_DATA_DETECTED 0x80000022 -#define STATUS_REDIRECTOR_HAS_OPEN_HANDLES 0x80000023 -#define STATUS_SERVER_HAS_OPEN_HANDLES 0x80000024 -#define STATUS_ALREADY_DISCONNECTED 0x80000025 -#define STATUS_LONGJUMP 0x80000026 - -#define STATUS_UNSUCCESSFUL 0xC0000001 -#define STATUS_NOT_IMPLEMENTED 0xC0000002 -#define STATUS_INVALID_INFO_CLASS 0xC0000003 -#define STATUS_INFO_LENGTH_MISMATCH 0xC0000004 -#define STATUS_ACCESS_VIOLATION 0xC0000005 -#define STATUS_IN_PAGE_ERROR 0xC0000006 -#define STATUS_PAGEFILE_QUOTA 0xC0000007 -#define STATUS_INVALID_HANDLE 0xC0000008 -#define STATUS_BAD_INITIAL_STACK 0xC0000009 -#define STATUS_BAD_INITIAL_PC 0xC000000A -#define STATUS_INVALID_CID 0xC000000B -#define STATUS_TIMER_NOT_CANCELED 0xC000000C -#define STATUS_INVALID_PARAMETER 0xC000000D -#define STATUS_NO_SUCH_DEVICE 0xC000000E -#define STATUS_NO_SUCH_FILE 0xC000000F -#define STATUS_INVALID_DEVICE_REQUEST 0xC0000010 -#define STATUS_END_OF_FILE 0xC0000011 -#define STATUS_WRONG_VOLUME 0xC0000012 -#define STATUS_NO_MEDIA_IN_DEVICE 0xC0000013 -#define STATUS_UNRECOGNIZED_MEDIA 0xC0000014 -#define STATUS_NONEXISTENT_SECTOR 0xC0000015 -#define STATUS_MORE_PROCESSING_REQUIRED 0xC0000016 -#define STATUS_NO_MEMORY 0xC0000017 -#define STATUS_CONFLICTING_ADDRESSES 0xC0000018 -#define STATUS_NOT_MAPPED_VIEW 0xC0000019 -#define STATUS_UNABLE_TO_FREE_VM 0xC000001A -#define STATUS_UNABLE_TO_DELETE_SECTION 0xC000001B -#define STATUS_INVALID_SYSTEM_SERVICE 0xC000001C -#define STATUS_ILLEGAL_INSTRUCTION 0xC000001D -#define STATUS_INVALID_LOCK_SEQUENCE 0xC000001E -#define STATUS_INVALID_VIEW_SIZE 0xC000001F -#define STATUS_INVALID_FILE_FOR_SECTION 0xC0000020 -#define STATUS_ALREADY_COMMITTED 0xC0000021 -#define STATUS_ACCESS_DENIED 0xC0000022 -#define STATUS_BUFFER_TOO_SMALL 0xC0000023 -#define STATUS_OBJECT_TYPE_MISMATCH 0xC0000024 -#define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025 -#define STATUS_INVALID_DISPOSITION 0xC0000026 -#define STATUS_UNWIND 0xC0000027 -#define STATUS_BAD_STACK 0xC0000028 -#define STATUS_INVALID_UNWIND_TARGET 0xC0000029 -#define STATUS_NOT_LOCKED 0xC000002A -#define STATUS_PARITY_ERROR 0xC000002B -#define STATUS_UNABLE_TO_DECOMMIT_VM 0xC000002C -#define STATUS_NOT_COMMITTED 0xC000002D -#define STATUS_INVALID_PORT_ATTRIBUTES 0xC000002E -#define STATUS_PORT_MESSAGE_TOO_LONG 0xC000002F -#define STATUS_INVALID_PARAMETER_MIX 0xC0000030 -#define STATUS_INVALID_QUOTA_LOWER 0xC0000031 -#define STATUS_DISK_CORRUPT_ERROR 0xC0000032 -#define STATUS_OBJECT_NAME_INVALID 0xC0000033 -#define STATUS_OBJECT_NAME_NOT_FOUND 0xC0000034 -#define STATUS_OBJECT_NAME_COLLISION 0xC0000035 -#define STATUS_PORT_DISCONNECTED 0xC0000037 -#define STATUS_DEVICE_ALREADY_ATTACHED 0xC0000038 -#define STATUS_OBJECT_PATH_INVALID 0xC0000039 -#define STATUS_OBJECT_PATH_NOT_FOUND 0xC000003A -#define STATUS_PATH_SYNTAX_BAD 0xC000003B -#define STATUS_DATA_OVERRUN 0xC000003C -#define STATUS_DATA_LATE_ERROR 0xC000003D -#define STATUS_DATA_ERROR 0xC000003E -#define STATUS_CRC_ERROR 0xC000003F -#define STATUS_SECTION_TOO_BIG 0xC0000040 -#define STATUS_PORT_CONNECTION_REFUSED 0xC0000041 -#define STATUS_INVALID_PORT_HANDLE 0xC0000042 -#define STATUS_SHARING_VIOLATION 0xC0000043 -#define STATUS_QUOTA_EXCEEDED 0xC0000044 -#define STATUS_INVALID_PAGE_PROTECTION 0xC0000045 -#define STATUS_MUTANT_NOT_OWNED 0xC0000046 -#define STATUS_SEMAPHORE_LIMIT_EXCEEDED 0xC0000047 -#define STATUS_PORT_ALREADY_SET 0xC0000048 -#define STATUS_SUSPEND_COUNT_EXCEEDED 0xC000004A -#define STATUS_LOCK_NOT_GRANTED 0xC0000054 /* FIXME: not sure */ -#define STATUS_FILE_LOCK_CONFLICT 0xC0000055 /* FIXME: not sure */ -#define STATUS_UNKNOWN_REVISION 0xC0000058 -#define STATUS_INVALID_SECURITY_DESCR 0xC0000079 -#define STATUS_DISK_FULL 0xC000007F -#define STATUS_SECTION_NOT_EXTENDED 0xC0000087 -#define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C -#define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D -#define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E -#define STATUS_FLOAT_INEXACT_RESULT 0xC000008F -#define STATUS_FLOAT_INVALID_OPERATION 0xC0000090 -#define STATUS_FLOAT_OVERFLOW 0xC0000091 -#define STATUS_FLOAT_STACK_CHECK 0xC0000092 -#define STATUS_FLOAT_UNDERFLOW 0xC0000093 -#define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094 -#define STATUS_INTEGER_OVERFLOW 0xC0000095 -#define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096 -#define STATUS_MEDIA_WRITE_PROTECTED 0XC00000A2 -#define STATUS_INVALID_PARAMETER_2 0xC00000F0 -#define STATUS_STACK_OVERFLOW 0xC00000FD -#define STATUS_DIRECTORY_NOT_EMPTY 0xC0000101 -#define STATUS_TOO_MANY_OPENED_FILES 0xC000011F -#define STATUS_CONTROL_C_EXIT 0xC000013A -#define STATUS_PIPE_BROKEN 0xC000014B -#define STATUS_NOT_REGISTRY_FILE 0xC000015C -#define STATUS_PARTITION_FAILURE 0xC0000172 -#define STATUS_INVALID_BLOCK_LENGTH 0xC0000173 -#define STATUS_DEVICE_NOT_PARTITIONED 0xC0000174 -#define STATUS_UNABLE_TO_LOCK_MEDIA 0xC0000175 -#define STATUS_UNABLE_TO_UNLOAD_MEDIA 0xC0000176 -#define STATUS_EOM_OVERFLOW 0xC0000177 -#define STATUS_NO_MEDIA 0xC0000178 -#define STATUS_NO_SUCH_MEMBER 0xC000017A -#define STATUS_INVALID_MEMBER 0xC000017B -#define STATUS_KEY_DELETED 0xC000017C -#define STATUS_NO_LOG_SPACE 0xC000017D -#define STATUS_TOO_MANY_SIDS 0xC000017E -#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED 0xC000017F -#define STATUS_KEY_HAS_CHILDREN 0xC0000180 -#define STATUS_CHILD_MUST_BE_VOLATILE 0xC0000181 -#define STATUS_DEVICE_CONFIGURATION_ERROR0xC0000182 -#define STATUS_DRIVER_INTERNAL_ERROR 0xC0000183 -#define STATUS_INVALID_DEVICE_STATE 0xC0000184 -#define STATUS_IO_DEVICE_ERROR 0xC0000185 -#define STATUS_DEVICE_PROTOCOL_ERROR 0xC0000186 -#define STATUS_BACKUP_CONTROLLER 0xC0000187 -#define STATUS_LOG_FILE_FULL 0xC0000188 -#define STATUS_TOO_LATE 0xC0000189 -#define STATUS_NO_TRUST_LSA_SECRET 0xC000018A -#define STATUS_NO_TRUST_SAM_ACCOUNT 0xC000018B -#define STATUS_TRUSTED_DOMAIN_FAILURE 0xC000018C -#define STATUS_TRUSTED_RELATIONSHIP_FAILURE 0xC000018D -#define STATUS_EVENTLOG_FILE_CORRUPT 0xC000018E -#define STATUS_EVENTLOG_CANT_START 0xC000018F -#define STATUS_TRUST_FAILURE 0xC0000190 -#define STATUS_MUTANT_LIMIT_EXCEEDED 0xC0000191 -#define STATUS_NETLOGON_NOT_STARTED 0xC0000192 -#define STATUS_ACCOUNT_EXPIRED 0xC0000193 -#define STATUS_POSSIBLE_DEADLOCK 0xC0000194 -#define STATUS_NETWORK_CREDENTIAL_CONFLICT 0xC0000195 -#define STATUS_REMOTE_SESSION_LIMIT 0xC0000196 -#define STATUS_EVENTLOG_FILE_CHANGED 0xC0000197 -#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 0xC0000198 -#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT 0xC0000199 -#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT 0xC000019A -#define STATUS_DOMAIN_TRUST_INCONSISTENT 0xC000019B -#define STATUS_FS_DRIVER_REQUIRED 0xC000019C - -#define STATUS_RESOURCE_LANG_NOT_FOUND 0xC0000204 - -#define MAXIMUM_WAIT_OBJECTS 64 -#define MAXIMUM_SUSPEND_COUNT 127 - - -/* - * Return values from the actual exception handlers - */ - -#define ExceptionContinueExecution 0 -#define ExceptionContinueSearch 1 -#define ExceptionNestedException 2 -#define ExceptionCollidedUnwind 3 - -/* - * Return values from filters in except() and from UnhandledExceptionFilter - */ - -#define EXCEPTION_EXECUTE_HANDLER 1 -#define EXCEPTION_CONTINUE_SEARCH 0 -#define EXCEPTION_CONTINUE_EXECUTION -1 - -/* - * From OS/2 2.0 exception handling - * Win32 seems to use the same flags as ExceptionFlags in an EXCEPTION_RECORD - */ - -#define EH_NONCONTINUABLE 0x01 -#define EH_UNWINDING 0x02 -#define EH_EXIT_UNWIND 0x04 -#define EH_STACK_INVALID 0x08 -#define EH_NESTED_CALL 0x10 - -#define EXCEPTION_CONTINUABLE 0 -#define EXCEPTION_NONCONTINUABLE EH_NONCONTINUABLE - -/* - * The exception record used by Win32 to give additional information - * about exception to exception handlers. - */ - -#define EXCEPTION_MAXIMUM_PARAMETERS 15 - -typedef struct __EXCEPTION_RECORD -{ - DWORD ExceptionCode; - DWORD ExceptionFlags; - struct __EXCEPTION_RECORD *ExceptionRecord; - - LPVOID ExceptionAddress; - DWORD NumberParameters; - DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} EXCEPTION_RECORD, *PEXCEPTION_RECORD; - -/* - * The exception pointers structure passed to exception filters - * in except() and the UnhandledExceptionFilter(). - */ - -typedef struct _EXCEPTION_POINTERS -{ - PEXCEPTION_RECORD ExceptionRecord; - PCONTEXT ContextRecord; -} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; - - -/* - * The exception frame, used for registering exception handlers - * Win32 cares only about this, but compilers generally emit - * larger exception frames for their own use. - */ - -struct __EXCEPTION_FRAME; - -typedef DWORD (*PEXCEPTION_HANDLER)(PEXCEPTION_RECORD,struct __EXCEPTION_FRAME*, - PCONTEXT,struct __EXCEPTION_FRAME **); - -typedef struct __EXCEPTION_FRAME -{ - struct __EXCEPTION_FRAME *Prev; - PEXCEPTION_HANDLER Handler; -} EXCEPTION_FRAME, *PEXCEPTION_FRAME; - -#include "poppack.h" - -/* - * function pointer to a exception filter - */ - -typedef LONG CALLBACK (*PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS ExceptionInfo); -typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; - -DWORD WINAPI UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers ); -LPTOP_LEVEL_EXCEPTION_FILTER -WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter ); - -/* status values for ContinueDebugEvent */ -#define DBG_CONTINUE 0x00010002 -#define DBG_TERMINATE_THREAD 0x40010003 -#define DBG_TERMINATE_PROCESS 0x40010004 -#define DBG_CONTROL_C 0x40010005 -#define DBG_CONTROL_BREAK 0x40010008 -#define DBG_EXCEPTION_NOT_HANDLED 0x80010001 - -typedef struct _NT_TIB -{ - struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; - PVOID StackBase; - PVOID StackLimit; - PVOID SubSystemTib; - union { - PVOID FiberData; - DWORD Version; - } DUMMYUNIONNAME; - PVOID ArbitraryUserPointer; - struct _NT_TIB *Self; -} NT_TIB, *PNT_TIB; - -struct _TEB; -/* -#if defined(__i386__) && defined(__GNUC__) -extern inline struct _TEB * WINAPI NtCurrentTeb(void); -extern inline struct _TEB * WINAPI NtCurrentTeb(void) -{ - struct _TEB *teb; - __asm__(".byte 0x64\n\tmovl (0x18),%0" : "=r" (teb)); - return teb; -} -#else -extern struct _TEB * WINAPI NtCurrentTeb(void); -#endif -*/ - -/* - * File formats definitions - */ - -typedef struct _IMAGE_DOS_HEADER { - WORD e_magic; /* 00: MZ Header signature */ - WORD e_cblp; /* 02: Bytes on last page of file */ - WORD e_cp; /* 04: Pages in file */ - WORD e_crlc; /* 06: Relocations */ - WORD e_cparhdr; /* 08: Size of header in paragraphs */ - WORD e_minalloc; /* 0a: Minimum extra paragraphs needed */ - WORD e_maxalloc; /* 0c: Maximum extra paragraphs needed */ - WORD e_ss; /* 0e: Initial (relative) SS value */ - WORD e_sp; /* 10: Initial SP value */ - WORD e_csum; /* 12: Checksum */ - WORD e_ip; /* 14: Initial IP value */ - WORD e_cs; /* 16: Initial (relative) CS value */ - WORD e_lfarlc; /* 18: File address of relocation table */ - WORD e_ovno; /* 1a: Overlay number */ - WORD e_res[4]; /* 1c: Reserved words */ - WORD e_oemid; /* 24: OEM identifier (for e_oeminfo) */ - WORD e_oeminfo; /* 26: OEM information; e_oemid specific */ - WORD e_res2[10]; /* 28: Reserved words */ - DWORD e_lfanew; /* 3c: Offset to extended header */ -} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; - -#define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */ -#define IMAGE_OS2_SIGNATURE 0x454E /* NE */ -#define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */ -#define IMAGE_OS2_SIGNATURE_LX 0x584C /* LX */ -#define IMAGE_VXD_SIGNATURE 0x454C /* LE */ -#define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */ - -/* - * This is the Windows executable (NE) header. - * the name IMAGE_OS2_HEADER is misleading, but in the SDK this way. - */ -typedef struct -{ - WORD ne_magic; /* 00 NE signature 'NE' */ - BYTE ne_ver; /* 02 Linker version number */ - BYTE ne_rev; /* 03 Linker revision number */ - WORD ne_enttab; /* 04 Offset to entry table relative to NE */ - WORD ne_cbenttab; /* 06 Length of entry table in bytes */ - LONG ne_crc; /* 08 Checksum */ - WORD ne_flags; /* 0c Flags about segments in this file */ - WORD ne_autodata; /* 0e Automatic data segment number */ - WORD ne_heap; /* 10 Initial size of local heap */ - WORD ne_stack; /* 12 Initial size of stack */ - DWORD ne_csip; /* 14 Initial CS:IP */ - DWORD ne_sssp; /* 18 Initial SS:SP */ - WORD ne_cseg; /* 1c # of entries in segment table */ - WORD ne_cmod; /* 1e # of entries in module reference tab. */ - WORD ne_cbnrestab; /* 20 Length of nonresident-name table */ - WORD ne_segtab; /* 22 Offset to segment table */ - WORD ne_rsrctab; /* 24 Offset to resource table */ - WORD ne_restab; /* 26 Offset to resident-name table */ - WORD ne_modtab; /* 28 Offset to module reference table */ - WORD ne_imptab; /* 2a Offset to imported name table */ - DWORD ne_nrestab; /* 2c Offset to nonresident-name table */ - WORD ne_cmovent; /* 30 # of movable entry points */ - WORD ne_align; /* 32 Logical sector alignment shift count */ - WORD ne_cres; /* 34 # of resource segments */ - BYTE ne_exetyp; /* 36 Flags indicating target OS */ - BYTE ne_flagsothers; /* 37 Additional information flags */ - WORD fastload_offset; /* 38 Offset to fast load area (should be ne_pretthunks)*/ - WORD fastload_length; /* 3a Length of fast load area (should be ne_psegrefbytes) */ - WORD ne_swaparea; /* 3c Reserved by Microsoft */ - WORD ne_expver; /* 3e Expected Windows version number */ -} IMAGE_OS2_HEADER,*PIMAGE_OS2_HEADER; - -typedef struct _IMAGE_VXD_HEADER { - WORD e32_magic; - BYTE e32_border; - BYTE e32_worder; - DWORD e32_level; - WORD e32_cpu; - WORD e32_os; - DWORD e32_ver; - DWORD e32_mflags; - DWORD e32_mpages; - DWORD e32_startobj; - DWORD e32_eip; - DWORD e32_stackobj; - DWORD e32_esp; - DWORD e32_pagesize; - DWORD e32_lastpagesize; - DWORD e32_fixupsize; - DWORD e32_fixupsum; - DWORD e32_ldrsize; - DWORD e32_ldrsum; - DWORD e32_objtab; - DWORD e32_objcnt; - DWORD e32_objmap; - DWORD e32_itermap; - DWORD e32_rsrctab; - DWORD e32_rsrccnt; - DWORD e32_restab; - DWORD e32_enttab; - DWORD e32_dirtab; - DWORD e32_dircnt; - DWORD e32_fpagetab; - DWORD e32_frectab; - DWORD e32_impmod; - DWORD e32_impmodcnt; - DWORD e32_impproc; - DWORD e32_pagesum; - DWORD e32_datapage; - DWORD e32_preload; - DWORD e32_nrestab; - DWORD e32_cbnrestab; - DWORD e32_nressum; - DWORD e32_autodata; - DWORD e32_debuginfo; - DWORD e32_debuglen; - DWORD e32_instpreload; - DWORD e32_instdemand; - DWORD e32_heapsize; - BYTE e32_res3[12]; - DWORD e32_winresoff; - DWORD e32_winreslen; - WORD e32_devid; - WORD e32_ddkver; -} IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; - - -/* These defines describe the meanings of the bits in the Characteristics - field */ - -#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 /* No relocation info */ -#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 -#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 -#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 -#define IMAGE_FILE_16BIT_MACHINE 0x0040 -#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 -#define IMAGE_FILE_32BIT_MACHINE 0x0100 -#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 -#define IMAGE_FILE_SYSTEM 0x1000 -#define IMAGE_FILE_DLL 0x2000 -#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 - -/* These are the settings of the Machine field. */ -#define IMAGE_FILE_MACHINE_UNKNOWN 0 -#define IMAGE_FILE_MACHINE_I860 0x14d -#define IMAGE_FILE_MACHINE_I386 0x14c -#define IMAGE_FILE_MACHINE_R3000 0x162 -#define IMAGE_FILE_MACHINE_R4000 0x166 -#define IMAGE_FILE_MACHINE_R10000 0x168 -#define IMAGE_FILE_MACHINE_ALPHA 0x184 -#define IMAGE_FILE_MACHINE_POWERPC 0x1F0 - -#define IMAGE_SIZEOF_FILE_HEADER 20 - -/* Possible Magic values */ -#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b -#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 - -/* These are indexes into the DataDirectory array */ -#define IMAGE_FILE_EXPORT_DIRECTORY 0 -#define IMAGE_FILE_IMPORT_DIRECTORY 1 -#define IMAGE_FILE_RESOURCE_DIRECTORY 2 -#define IMAGE_FILE_EXCEPTION_DIRECTORY 3 -#define IMAGE_FILE_SECURITY_DIRECTORY 4 -#define IMAGE_FILE_BASE_RELOCATION_TABLE 5 -#define IMAGE_FILE_DEBUG_DIRECTORY 6 -#define IMAGE_FILE_DESCRIPTION_STRING 7 -#define IMAGE_FILE_MACHINE_VALUE 8 /* Mips */ -#define IMAGE_FILE_THREAD_LOCAL_STORAGE 9 -#define IMAGE_FILE_CALLBACK_DIRECTORY 10 - -/* Directory Entries, indices into the DataDirectory array */ - -#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 -#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 -#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 -#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 -#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 -#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 -#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 -#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 -#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 /* (MIPS GP) */ -#define IMAGE_DIRECTORY_ENTRY_TLS 9 -#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 -#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 -#define IMAGE_DIRECTORY_ENTRY_IAT 12 /* Import Address Table */ -#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 -#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 - -/* Subsystem Values */ - -#define IMAGE_SUBSYSTEM_UNKNOWN 0 -#define IMAGE_SUBSYSTEM_NATIVE 1 -#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 /* Windows GUI subsystem */ -#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 /* Windows character subsystem*/ -#define IMAGE_SUBSYSTEM_OS2_CUI 5 -#define IMAGE_SUBSYSTEM_POSIX_CUI 7 - -typedef struct _IMAGE_FILE_HEADER { - WORD Machine; - WORD NumberOfSections; - DWORD TimeDateStamp; - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; - WORD SizeOfOptionalHeader; - WORD Characteristics; -} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; - -typedef struct _IMAGE_DATA_DIRECTORY { - DWORD VirtualAddress; - DWORD Size; -} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; - -#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 - -typedef struct _IMAGE_OPTIONAL_HEADER { - - /* Standard fields */ - - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - - /* NT additional fields */ - - DWORD ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - DWORD SizeOfStackReserve; - DWORD SizeOfStackCommit; - DWORD SizeOfHeapReserve; - DWORD SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER; - -typedef struct _IMAGE_NT_HEADERS { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER OptionalHeader; -} IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS; - -#define IMAGE_SIZEOF_SHORT_NAME 8 - -typedef struct _IMAGE_SECTION_HEADER { - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; - union { - DWORD PhysicalAddress; - DWORD VirtualSize; - } Misc; - DWORD VirtualAddress; - DWORD SizeOfRawData; - DWORD PointerToRawData; - DWORD PointerToRelocations; - DWORD PointerToLinenumbers; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD Characteristics; -} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; - -#define IMAGE_SIZEOF_SECTION_HEADER 40 - -#define IMAGE_FIRST_SECTION(ntheader) \ - ((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(ntheader))->OptionalHeader + \ - ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader)) - -/* These defines are for the Characteristics bitfield. */ -/* #define IMAGE_SCN_TYPE_REG 0x00000000 - Reserved */ -/* #define IMAGE_SCN_TYPE_DSECT 0x00000001 - Reserved */ -/* #define IMAGE_SCN_TYPE_NOLOAD 0x00000002 - Reserved */ -/* #define IMAGE_SCN_TYPE_GROUP 0x00000004 - Reserved */ -/* #define IMAGE_SCN_TYPE_NO_PAD 0x00000008 - Reserved */ -/* #define IMAGE_SCN_TYPE_COPY 0x00000010 - Reserved */ - -#define IMAGE_SCN_CNT_CODE 0x00000020 -#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 -#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 - -#define IMAGE_SCN_LNK_OTHER 0x00000100 -#define IMAGE_SCN_LNK_INFO 0x00000200 -/* #define IMAGE_SCN_TYPE_OVER 0x00000400 - Reserved */ -#define IMAGE_SCN_LNK_REMOVE 0x00000800 -#define IMAGE_SCN_LNK_COMDAT 0x00001000 - -/* 0x00002000 - Reserved */ -/* #define IMAGE_SCN_MEM_PROTECTED 0x00004000 - Obsolete */ -#define IMAGE_SCN_MEM_FARDATA 0x00008000 - -/* #define IMAGE_SCN_MEM_SYSHEAP 0x00010000 - Obsolete */ -#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 -#define IMAGE_SCN_MEM_16BIT 0x00020000 -#define IMAGE_SCN_MEM_LOCKED 0x00040000 -#define IMAGE_SCN_MEM_PRELOAD 0x00080000 - -#define IMAGE_SCN_ALIGN_1BYTES 0x00100000 -#define IMAGE_SCN_ALIGN_2BYTES 0x00200000 -#define IMAGE_SCN_ALIGN_4BYTES 0x00300000 -#define IMAGE_SCN_ALIGN_8BYTES 0x00400000 -#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 /* Default */ -#define IMAGE_SCN_ALIGN_32BYTES 0x00600000 -#define IMAGE_SCN_ALIGN_64BYTES 0x00700000 -/* 0x00800000 - Unused */ - -#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 - - -#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 -#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 -#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 -#define IMAGE_SCN_MEM_SHARED 0x10000000 -#define IMAGE_SCN_MEM_EXECUTE 0x20000000 -#define IMAGE_SCN_MEM_READ 0x40000000 -#define IMAGE_SCN_MEM_WRITE 0x80000000 - -#include "pshpack2.h" - -typedef struct _IMAGE_SYMBOL { - union { - BYTE ShortName[8]; - struct { - DWORD Short; - DWORD Long; - } Name; - DWORD LongName[2]; - } N; - DWORD Value; - SHORT SectionNumber; - WORD Type; - BYTE StorageClass; - BYTE NumberOfAuxSymbols; -} IMAGE_SYMBOL; -typedef IMAGE_SYMBOL *PIMAGE_SYMBOL; - -#define IMAGE_SIZEOF_SYMBOL 18 - -typedef struct _IMAGE_LINENUMBER { - union { - DWORD SymbolTableIndex; - DWORD VirtualAddress; - } Type; - WORD Linenumber; -} IMAGE_LINENUMBER; -typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER; - -#define IMAGE_SIZEOF_LINENUMBER 6 - -typedef union _IMAGE_AUX_SYMBOL { - struct { - DWORD TagIndex; - union { - struct { - WORD Linenumber; - WORD Size; - } LnSz; - DWORD TotalSize; - } Misc; - union { - struct { - DWORD PointerToLinenumber; - DWORD PointerToNextFunction; - } Function; - struct { - WORD Dimension[4]; - } Array; - } FcnAry; - WORD TvIndex; - } Sym; - struct { - BYTE Name[IMAGE_SIZEOF_SYMBOL]; - } File; - struct { - DWORD Length; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD CheckSum; - SHORT Number; - BYTE Selection; - } Section; -} IMAGE_AUX_SYMBOL; -typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL; - -#define IMAGE_SIZEOF_AUX_SYMBOL 18 - -#include "poppack.h" - -#define IMAGE_SYM_UNDEFINED (SHORT)0 -#define IMAGE_SYM_ABSOLUTE (SHORT)-1 -#define IMAGE_SYM_DEBUG (SHORT)-2 - -#define IMAGE_SYM_TYPE_NULL 0x0000 -#define IMAGE_SYM_TYPE_VOID 0x0001 -#define IMAGE_SYM_TYPE_CHAR 0x0002 -#define IMAGE_SYM_TYPE_SHORT 0x0003 -#define IMAGE_SYM_TYPE_INT 0x0004 -#define IMAGE_SYM_TYPE_LONG 0x0005 -#define IMAGE_SYM_TYPE_FLOAT 0x0006 -#define IMAGE_SYM_TYPE_DOUBLE 0x0007 -#define IMAGE_SYM_TYPE_STRUCT 0x0008 -#define IMAGE_SYM_TYPE_UNION 0x0009 -#define IMAGE_SYM_TYPE_ENUM 0x000A -#define IMAGE_SYM_TYPE_MOE 0x000B -#define IMAGE_SYM_TYPE_BYTE 0x000C -#define IMAGE_SYM_TYPE_WORD 0x000D -#define IMAGE_SYM_TYPE_UINT 0x000E -#define IMAGE_SYM_TYPE_DWORD 0x000F -#define IMAGE_SYM_TYPE_PCODE 0x8000 - -#define IMAGE_SYM_DTYPE_NULL 0 -#define IMAGE_SYM_DTYPE_POINTER 1 -#define IMAGE_SYM_DTYPE_FUNCTION 2 -#define IMAGE_SYM_DTYPE_ARRAY 3 - -#define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1 -#define IMAGE_SYM_CLASS_NULL 0x0000 -#define IMAGE_SYM_CLASS_AUTOMATIC 0x0001 -#define IMAGE_SYM_CLASS_EXTERNAL 0x0002 -#define IMAGE_SYM_CLASS_STATIC 0x0003 -#define IMAGE_SYM_CLASS_REGISTER 0x0004 -#define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005 -#define IMAGE_SYM_CLASS_LABEL 0x0006 -#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007 -#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008 -#define IMAGE_SYM_CLASS_ARGUMENT 0x0009 -#define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A -#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B -#define IMAGE_SYM_CLASS_UNION_TAG 0x000C -#define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D -#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E -#define IMAGE_SYM_CLASS_ENUM_TAG 0x000F -#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010 -#define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011 -#define IMAGE_SYM_CLASS_BIT_FIELD 0x0012 - -#define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044 -#define IMAGE_SYM_CLASS_BLOCK 0x0064 -#define IMAGE_SYM_CLASS_FUNCTION 0x0065 -#define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066 -#define IMAGE_SYM_CLASS_FILE 0x0067 -#define IMAGE_SYM_CLASS_SECTION 0x0068 -#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069 - -#define N_BTMASK 0x000F -#define N_TMASK 0x0030 -#define N_TMASK1 0x00C0 -#define N_TMASK2 0x00F0 -#define N_BTSHFT 4 -#define N_TSHIFT 2 - -#define BTYPE(x) ((x) & N_BTMASK) - -#ifndef ISPTR -#define ISPTR(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT)) -#endif - -#ifndef ISFCN -#define ISFCN(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT)) -#endif - -#ifndef ISARY -#define ISARY(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)) -#endif - -#ifndef ISTAG -#define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG || (x)==IMAGE_SYM_CLASS_UNION_TAG || (x)==IMAGE_SYM_CLASS_ENUM_TAG) -#endif - -#ifndef INCREF -#define INCREF(x) ((((x)&~N_BTMASK)<>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) -#endif - -#define IMAGE_COMDAT_SELECT_NODUPLICATES 1 -#define IMAGE_COMDAT_SELECT_ANY 2 -#define IMAGE_COMDAT_SELECT_SAME_SIZE 3 -#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 -#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 -#define IMAGE_COMDAT_SELECT_LARGEST 6 -#define IMAGE_COMDAT_SELECT_NEWEST 7 - -#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 -#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 -#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 - -/* Export module directory */ - -typedef struct _IMAGE_EXPORT_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Name; - DWORD Base; - DWORD NumberOfFunctions; - DWORD NumberOfNames; - LPDWORD *AddressOfFunctions; - LPDWORD *AddressOfNames; - LPWORD *AddressOfNameOrdinals; -} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY; - -/* Import name entry */ -typedef struct _IMAGE_IMPORT_BY_NAME { - WORD Hint; - BYTE Name[1]; -} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME; - -/* Import thunk */ -typedef struct _IMAGE_THUNK_DATA { - union { - LPBYTE ForwarderString; - FARPROC Function; - DWORD Ordinal; - PIMAGE_IMPORT_BY_NAME AddressOfData; - } u1; -} IMAGE_THUNK_DATA,*PIMAGE_THUNK_DATA; - -/* Import module directory */ - -typedef struct _IMAGE_IMPORT_DESCRIPTOR { - union { - DWORD Characteristics; /* 0 for terminating null import descriptor */ - PIMAGE_THUNK_DATA OriginalFirstThunk; /* RVA to original unbound IAT */ - } u; - DWORD TimeDateStamp; /* 0 if not bound, - * -1 if bound, and real date\time stamp - * in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT - * (new BIND) - * otherwise date/time stamp of DLL bound to - * (Old BIND) - */ - DWORD ForwarderChain; /* -1 if no forwarders */ - DWORD Name; - /* RVA to IAT (if bound this IAT has actual addresses) */ - PIMAGE_THUNK_DATA FirstThunk; -} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR; - -#define IMAGE_ORDINAL_FLAG 0x80000000 -#define IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG) != 0) -#define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff) - -typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR -{ - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD NumberOfModuleForwarderRefs; -/* Array of zero or more IMAGE_BOUND_FORWARDER_REF follows */ -} IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR; - -typedef struct _IMAGE_BOUND_FORWARDER_REF -{ - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD Reserved; -} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF; - -typedef struct _IMAGE_BASE_RELOCATION -{ - DWORD VirtualAddress; - DWORD SizeOfBlock; - WORD TypeOffset[1]; -} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION; - -typedef struct _IMAGE_RELOCATION -{ - union { - DWORD VirtualAddress; - DWORD RelocCount; - } u; - DWORD SymbolTableIndex; - WORD Type; -} IMAGE_RELOCATION; -typedef IMAGE_RELOCATION *PIMAGE_RELOCATION; - -#define IMAGE_SIZEOF_RELOCATION 10 - -/* generic relocation types */ -#define IMAGE_REL_BASED_ABSOLUTE 0 -#define IMAGE_REL_BASED_HIGH 1 -#define IMAGE_REL_BASED_LOW 2 -#define IMAGE_REL_BASED_HIGHLOW 3 -#define IMAGE_REL_BASED_HIGHADJ 4 -#define IMAGE_REL_BASED_MIPS_JMPADDR 5 -#define IMAGE_REL_BASED_SECTION 6 -#define IMAGE_REL_BASED_REL 7 -#define IMAGE_REL_BASED_MIPS_JMPADDR16 9 -#define IMAGE_REL_BASED_IA64_IMM64 9 /* yes, 9 too */ -#define IMAGE_REL_BASED_DIR64 10 -#define IMAGE_REL_BASED_HIGH3ADJ 11 - -/* I386 relocation types */ -#define IMAGE_REL_I386_ABSOLUTE 0 -#define IMAGE_REL_I386_DIR16 1 -#define IMAGE_REL_I386_REL16 2 -#define IMAGE_REL_I386_DIR32 6 -#define IMAGE_REL_I386_DIR32NB 7 -#define IMAGE_REL_I386_SEG12 9 -#define IMAGE_REL_I386_SECTION 10 -#define IMAGE_REL_I386_SECREL 11 -#define IMAGE_REL_I386_REL32 20 - -/* MIPS relocation types */ -#define IMAGE_REL_MIPS_ABSOLUTE 0x0000 -#define IMAGE_REL_MIPS_REFHALF 0x0001 -#define IMAGE_REL_MIPS_REFWORD 0x0002 -#define IMAGE_REL_MIPS_JMPADDR 0x0003 -#define IMAGE_REL_MIPS_REFHI 0x0004 -#define IMAGE_REL_MIPS_REFLO 0x0005 -#define IMAGE_REL_MIPS_GPREL 0x0006 -#define IMAGE_REL_MIPS_LITERAL 0x0007 -#define IMAGE_REL_MIPS_SECTION 0x000A -#define IMAGE_REL_MIPS_SECREL 0x000B -#define IMAGE_REL_MIPS_SECRELLO 0x000C -#define IMAGE_REL_MIPS_SECRELHI 0x000D -#define IMAGE_REL_MIPS_JMPADDR16 0x0010 -#define IMAGE_REL_MIPS_REFWORDNB 0x0022 -#define IMAGE_REL_MIPS_PAIR 0x0025 - -/* ALPHA relocation types */ -#define IMAGE_REL_ALPHA_ABSOLUTE 0x0000 -#define IMAGE_REL_ALPHA_REFLONG 0x0001 -#define IMAGE_REL_ALPHA_REFQUAD 0x0002 -#define IMAGE_REL_ALPHA_GPREL 0x0003 -#define IMAGE_REL_ALPHA_LITERAL 0x0004 -#define IMAGE_REL_ALPHA_LITUSE 0x0005 -#define IMAGE_REL_ALPHA_GPDISP 0x0006 -#define IMAGE_REL_ALPHA_BRADDR 0x0007 -#define IMAGE_REL_ALPHA_HINT 0x0008 -#define IMAGE_REL_ALPHA_INLINE_REFLONG 0x0009 -#define IMAGE_REL_ALPHA_REFHI 0x000A -#define IMAGE_REL_ALPHA_REFLO 0x000B -#define IMAGE_REL_ALPHA_PAIR 0x000C -#define IMAGE_REL_ALPHA_MATCH 0x000D -#define IMAGE_REL_ALPHA_SECTION 0x000E -#define IMAGE_REL_ALPHA_SECREL 0x000F -#define IMAGE_REL_ALPHA_REFLONGNB 0x0010 -#define IMAGE_REL_ALPHA_SECRELLO 0x0011 -#define IMAGE_REL_ALPHA_SECRELHI 0x0012 -#define IMAGE_REL_ALPHA_REFQ3 0x0013 -#define IMAGE_REL_ALPHA_REFQ2 0x0014 -#define IMAGE_REL_ALPHA_REFQ1 0x0015 -#define IMAGE_REL_ALPHA_GPRELLO 0x0016 -#define IMAGE_REL_ALPHA_GPRELHI 0x0017 - -/* PowerPC relocation types */ -#define IMAGE_REL_PPC_ABSOLUTE 0x0000 -#define IMAGE_REL_PPC_ADDR64 0x0001 -#define IMAGE_REL_PPC_ADDR 0x0002 -#define IMAGE_REL_PPC_ADDR24 0x0003 -#define IMAGE_REL_PPC_ADDR16 0x0004 -#define IMAGE_REL_PPC_ADDR14 0x0005 -#define IMAGE_REL_PPC_REL24 0x0006 -#define IMAGE_REL_PPC_REL14 0x0007 -#define IMAGE_REL_PPC_TOCREL16 0x0008 -#define IMAGE_REL_PPC_TOCREL14 0x0009 -#define IMAGE_REL_PPC_ADDR32NB 0x000A -#define IMAGE_REL_PPC_SECREL 0x000B -#define IMAGE_REL_PPC_SECTION 0x000C -#define IMAGE_REL_PPC_IFGLUE 0x000D -#define IMAGE_REL_PPC_IMGLUE 0x000E -#define IMAGE_REL_PPC_SECREL16 0x000F -#define IMAGE_REL_PPC_REFHI 0x0010 -#define IMAGE_REL_PPC_REFLO 0x0011 -#define IMAGE_REL_PPC_PAIR 0x0012 -#define IMAGE_REL_PPC_SECRELLO 0x0013 -#define IMAGE_REL_PPC_SECRELHI 0x0014 -#define IMAGE_REL_PPC_GPREL 0x0015 -#define IMAGE_REL_PPC_TYPEMASK 0x00FF -/* modifier bits */ -#define IMAGE_REL_PPC_NEG 0x0100 -#define IMAGE_REL_PPC_BRTAKEN 0x0200 -#define IMAGE_REL_PPC_BRNTAKEN 0x0400 -#define IMAGE_REL_PPC_TOCDEFN 0x0800 - -/* SH3 ? relocation type */ -#define IMAGE_REL_SH3_ABSOLUTE 0x0000 -#define IMAGE_REL_SH3_DIRECT16 0x0001 -#define IMAGE_REL_SH3_DIRECT 0x0002 -#define IMAGE_REL_SH3_DIRECT8 0x0003 -#define IMAGE_REL_SH3_DIRECT8_WORD 0x0004 -#define IMAGE_REL_SH3_DIRECT8_LONG 0x0005 -#define IMAGE_REL_SH3_DIRECT4 0x0006 -#define IMAGE_REL_SH3_DIRECT4_WORD 0x0007 -#define IMAGE_REL_SH3_DIRECT4_LONG 0x0008 -#define IMAGE_REL_SH3_PCREL8_WORD 0x0009 -#define IMAGE_REL_SH3_PCREL8_LONG 0x000A -#define IMAGE_REL_SH3_PCREL12_WORD 0x000B -#define IMAGE_REL_SH3_STARTOF_SECTION 0x000C -#define IMAGE_REL_SH3_SIZEOF_SECTION 0x000D -#define IMAGE_REL_SH3_SECTION 0x000E -#define IMAGE_REL_SH3_SECREL 0x000F -#define IMAGE_REL_SH3_DIRECT32_NB 0x0010 - -/* ARM (Archimedes?) relocation types */ -#define IMAGE_REL_ARM_ABSOLUTE 0x0000 -#define IMAGE_REL_ARM_ADDR 0x0001 -#define IMAGE_REL_ARM_ADDR32NB 0x0002 -#define IMAGE_REL_ARM_BRANCH24 0x0003 -#define IMAGE_REL_ARM_BRANCH11 0x0004 -#define IMAGE_REL_ARM_SECTION 0x000E -#define IMAGE_REL_ARM_SECREL 0x000F - -/* IA64 relocation types */ -#define IMAGE_REL_IA64_ABSOLUTE 0x0000 -#define IMAGE_REL_IA64_IMM14 0x0001 -#define IMAGE_REL_IA64_IMM22 0x0002 -#define IMAGE_REL_IA64_IMM64 0x0003 -#define IMAGE_REL_IA64_DIR 0x0004 -#define IMAGE_REL_IA64_DIR64 0x0005 -#define IMAGE_REL_IA64_PCREL21B 0x0006 -#define IMAGE_REL_IA64_PCREL21M 0x0007 -#define IMAGE_REL_IA64_PCREL21F 0x0008 -#define IMAGE_REL_IA64_GPREL22 0x0009 -#define IMAGE_REL_IA64_LTOFF22 0x000A -#define IMAGE_REL_IA64_SECTION 0x000B -#define IMAGE_REL_IA64_SECREL22 0x000C -#define IMAGE_REL_IA64_SECREL64I 0x000D -#define IMAGE_REL_IA64_SECREL 0x000E -#define IMAGE_REL_IA64_LTOFF64 0x000F -#define IMAGE_REL_IA64_DIR32NB 0x0010 -#define IMAGE_REL_IA64_RESERVED_11 0x0011 -#define IMAGE_REL_IA64_RESERVED_12 0x0012 -#define IMAGE_REL_IA64_RESERVED_13 0x0013 -#define IMAGE_REL_IA64_RESERVED_14 0x0014 -#define IMAGE_REL_IA64_RESERVED_15 0x0015 -#define IMAGE_REL_IA64_RESERVED_16 0x0016 -#define IMAGE_REL_IA64_ADDEND 0x001F - -/* archive format */ - -#define IMAGE_ARCHIVE_START_SIZE 8 -#define IMAGE_ARCHIVE_START "!\n" -#define IMAGE_ARCHIVE_END "`\n" -#define IMAGE_ARCHIVE_PAD "\n" -#define IMAGE_ARCHIVE_LINKER_MEMBER "/ " -#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " - -typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER -{ - BYTE Name[16]; - BYTE Date[12]; - BYTE UserID[6]; - BYTE GroupID[6]; - BYTE Mode[8]; - BYTE Size[10]; - BYTE EndHeader[2]; -} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; - -#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 - -/* - * Resource directory stuff - */ -typedef struct _IMAGE_RESOURCE_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - WORD NumberOfNamedEntries; - WORD NumberOfIdEntries; - /* IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; */ -} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY; - -#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 -#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 - -typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { - union { - struct { - unsigned NameOffset:31; - unsigned NameIsString:1; - } s; - DWORD Name; - WORD Id; - } u1; - union { - DWORD OffsetToData; - struct { - unsigned OffsetToDirectory:31; - unsigned DataIsDirectory:1; - } s; - } u2; -} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY; - - -typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { - WORD Length; - CHAR NameString[ 1 ]; -} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING; - -typedef struct _IMAGE_RESOURCE_DIR_STRING_U { - WORD Length; - WCHAR NameString[ 1 ]; -} IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U; - -typedef struct _IMAGE_RESOURCE_DATA_ENTRY { - DWORD OffsetToData; - DWORD Size; - DWORD CodePage; - DWORD ResourceHandle; -} IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY; - - -typedef VOID CALLBACK (*PIMAGE_TLS_CALLBACK)( - LPVOID DllHandle,DWORD Reason,LPVOID Reserved -); - -typedef struct _IMAGE_TLS_DIRECTORY { - DWORD StartAddressOfRawData; - DWORD EndAddressOfRawData; - LPDWORD AddressOfIndex; - PIMAGE_TLS_CALLBACK *AddressOfCallBacks; - DWORD SizeOfZeroFill; - DWORD Characteristics; -} IMAGE_TLS_DIRECTORY,*PIMAGE_TLS_DIRECTORY; - -typedef struct _IMAGE_DEBUG_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Type; - DWORD SizeOfData; - DWORD AddressOfRawData; - DWORD PointerToRawData; -} IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; - -#define IMAGE_DEBUG_TYPE_UNKNOWN 0 -#define IMAGE_DEBUG_TYPE_COFF 1 -#define IMAGE_DEBUG_TYPE_CODEVIEW 2 -#define IMAGE_DEBUG_TYPE_FPO 3 -#define IMAGE_DEBUG_TYPE_MISC 4 -#define IMAGE_DEBUG_TYPE_EXCEPTION 5 -#define IMAGE_DEBUG_TYPE_FIXUP 6 -#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 -#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 -#define IMAGE_DEBUG_TYPE_BORLAND 9 -#define IMAGE_DEBUG_TYPE_RESERVED10 10 - -typedef struct _IMAGE_COFF_SYMBOLS_HEADER { - DWORD NumberOfSymbols; - DWORD LvaToFirstSymbol; - DWORD NumberOfLinenumbers; - DWORD LvaToFirstLinenumber; - DWORD RvaToFirstByteOfCode; - DWORD RvaToLastByteOfCode; - DWORD RvaToFirstByteOfData; - DWORD RvaToLastByteOfData; -} IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER; - -#define FRAME_FPO 0 -#define FRAME_TRAP 1 -#define FRAME_TSS 2 -#define FRAME_NONFPO 3 - -typedef struct _FPO_DATA { - DWORD ulOffStart; - DWORD cbProcSize; - DWORD cdwLocals; - WORD cdwParams; - unsigned cbProlog : 8; - unsigned cbRegs : 3; - unsigned fHasSEH : 1; - unsigned fUseBP : 1; - unsigned reserved : 1; - unsigned cbFrame : 2; -} FPO_DATA, *PFPO_DATA; - -typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - DWORD DeCommitFreeBlockThreshold; - DWORD DeCommitTotalFreeThreshold; - PVOID LockPrefixTable; - DWORD MaximumAllocationSize; - DWORD VirtualMemoryThreshold; - DWORD ProcessHeapFlags; - DWORD ProcessAffinityMask; - WORD CSDVersion; - WORD Reserved1; - PVOID EditList; - DWORD Reserved[1]; -} IMAGE_LOAD_CONFIG_DIRECTORY, *PIMAGE_LOAD_CONFIG_DIRECTORY; - -typedef struct _IMAGE_FUNCTION_ENTRY { - DWORD StartingAddress; - DWORD EndingAddress; - DWORD EndOfPrologue; -} IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY; - -/* This is the structure that appears at the very start of a .DBG file. */ - -typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { - WORD Signature; - WORD Flags; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD ImageBase; - DWORD SizeOfImage; - DWORD NumberOfSections; - DWORD ExportedNamesSize; - DWORD DebugDirectorySize; - DWORD SectionAlignment; - DWORD Reserved[ 2 ]; -} IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER; - -#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944 - - -typedef struct tagMESSAGE_RESOURCE_ENTRY { - WORD Length; - WORD Flags; - BYTE Text[1]; -} MESSAGE_RESOURCE_ENTRY,*PMESSAGE_RESOURCE_ENTRY; -#define MESSAGE_RESOURCE_UNICODE 0x0001 - -typedef struct tagMESSAGE_RESOURCE_BLOCK { - DWORD LowId; - DWORD HighId; - DWORD OffsetToEntries; -} MESSAGE_RESOURCE_BLOCK,*PMESSAGE_RESOURCE_BLOCK; - -typedef struct tagMESSAGE_RESOURCE_DATA { - DWORD NumberOfBlocks; - MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; -} MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA; - -/* - * Here follows typedefs for security and tokens. - */ - -/* - * First a constant for the following typdefs. - */ - -#define ANYSIZE_ARRAY 1 - -/* FIXME: Orphan. What does it point to? */ -typedef PVOID PACCESS_TOKEN; - -/* - * TOKEN_INFORMATION_CLASS - */ - -typedef enum _TOKEN_INFORMATION_CLASS { - TokenUser = 1, - TokenGroups, - TokenPrivileges, - TokenOwner, - TokenPrimaryGroup, - TokenDefaultDacl, - TokenSource, - TokenType, - TokenImpersonationLevel, - TokenStatistics -} TOKEN_INFORMATION_CLASS; - -#ifndef _SECURITY_DEFINED -#define _SECURITY_DEFINED - -#include "pshpack1.h" - -typedef DWORD ACCESS_MASK, *PACCESS_MASK; - -typedef struct _GENERIC_MAPPING { - ACCESS_MASK GenericRead; - ACCESS_MASK GenericWrite; - ACCESS_MASK GenericExecute; - ACCESS_MASK GenericAll; -} GENERIC_MAPPING, *PGENERIC_MAPPING; - -#ifndef SID_IDENTIFIER_AUTHORITY_DEFINED -#define SID_IDENTIFIER_AUTHORITY_DEFINED -typedef struct { - BYTE Value[6]; -} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; -#endif /* !defined(SID_IDENTIFIER_AUTHORITY_DEFINED) */ - -#ifndef SID_DEFINED -#define SID_DEFINED -typedef struct _SID { - BYTE Revision; - BYTE SubAuthorityCount; - SID_IDENTIFIER_AUTHORITY IdentifierAuthority; - DWORD SubAuthority[1]; -} SID,*PSID; -#endif /* !defined(SID_DEFINED) */ - -#define SID_REVISION (1) /* Current revision */ -#define SID_MAX_SUB_AUTHORITIES (15) /* current max subauths */ -#define SID_RECOMMENDED_SUB_AUTHORITIES (1) /* recommended subauths */ - - -/* - * ACL - */ - -#define ACL_REVISION1 1 -#define ACL_REVISION2 2 -#define ACL_REVISION3 3 -#define ACL_REVISION4 4 - -#define MIN_ACL_REVISION ACL_REVISION2 -#define MAX_ACL_REVISION ACL_REVISION4 - -typedef struct _ACL { - BYTE AclRevision; - BYTE Sbz1; - WORD AclSize; - WORD AceCount; - WORD Sbz2; -} ACL, *PACL; - -/* SECURITY_DESCRIPTOR */ -#define SECURITY_DESCRIPTOR_REVISION 1 -#define SECURITY_DESCRIPTOR_REVISION1 1 - - -#define SE_OWNER_DEFAULTED 0x0001 -#define SE_GROUP_DEFAULTED 0x0002 -#define SE_DACL_PRESENT 0x0004 -#define SE_DACL_DEFAULTED 0x0008 -#define SE_SACL_PRESENT 0x0010 -#define SE_SACL_DEFAULTED 0x0020 -#define SE_SELF_RELATIVE 0x8000 - -typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; -typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; - -/* The security descriptor structure */ -typedef struct { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - DWORD Owner; - DWORD Group; - DWORD Sacl; - DWORD Dacl; -} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE; - -typedef struct { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - PSID Owner; - PSID Group; - PACL Sacl; - PACL Dacl; -} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; - -#define SECURITY_DESCRIPTOR_MIN_LENGTH (sizeof(SECURITY_DESCRIPTOR)) - -#include "poppack.h" - -#endif /* _SECURITY_DEFINED */ - -#include "pshpack1.h" - -/* - * SID_AND_ATTRIBUTES - */ - -typedef struct _SID_AND_ATTRIBUTES { - PSID Sid; - DWORD Attributes; -} SID_AND_ATTRIBUTES ; - -/* security entities */ -#define SECURITY_NULL_RID (0x00000000L) -#define SECURITY_WORLD_RID (0x00000000L) -#define SECURITY_LOCAL_RID (0X00000000L) - -#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} - -/* S-1-1 */ -#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} - -/* S-1-2 */ -#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} - -/* S-1-3 */ -#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} -#define SECURITY_CREATOR_OWNER_RID (0x00000000L) -#define SECURITY_CREATOR_GROUP_RID (0x00000001L) -#define SECURITY_CREATOR_OWNER_SERVER_RID (0x00000002L) -#define SECURITY_CREATOR_GROUP_SERVER_RID (0x00000003L) - -/* S-1-4 */ -#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} - -/* S-1-5 */ -#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} -#define SECURITY_DIALUP_RID 0x00000001L -#define SECURITY_NETWORK_RID 0x00000002L -#define SECURITY_BATCH_RID 0x00000003L -#define SECURITY_INTERACTIVE_RID 0x00000004L -#define SECURITY_LOGON_IDS_RID 0x00000005L -#define SECURITY_SERVICE_RID 0x00000006L -#define SECURITY_ANONYMOUS_LOGON_RID 0x00000007L -#define SECURITY_PROXY_RID 0x00000008L -#define SECURITY_ENTERPRISE_CONTROLLERS_RID 0x00000009L -#define SECURITY_PRINCIPAL_SELF_RID 0x0000000AL -#define SECURITY_AUTHENTICATED_USER_RID 0x0000000BL -#define SECURITY_RESTRICTED_CODE_RID 0x0000000CL -#define SECURITY_TERMINAL_SERVER_RID 0x0000000DL -#define SECURITY_LOCAL_SYSTEM_RID 0x00000012L -#define SECURITY_NT_NON_UNIQUE 0x00000015L -#define SECURITY_BUILTIN_DOMAIN_RID 0x00000020L - -#define DOMAIN_GROUP_RID_ADMINS 0x00000200L -#define DOMAIN_GROUP_RID_USERS 0x00000201L -#define DOMAIN_GROUP_RID_GUESTS 0x00000202L - -#define DOMAIN_ALIAS_RID_ADMINS 0x00000220L -#define DOMAIN_ALIAS_RID_USERS 0x00000221L -#define DOMAIN_ALIAS_RID_GUESTS 0x00000222L - -#define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID - -#define SECURITY_LOGON_IDS_RID_COUNT (3L) - -/* - * TOKEN_USER - */ - -typedef struct _TOKEN_USER { - SID_AND_ATTRIBUTES User; -} TOKEN_USER; - -/* - * TOKEN_GROUPS - */ - -typedef struct _TOKEN_GROUPS { - DWORD GroupCount; - SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; -} TOKEN_GROUPS; - -/* - * LUID_AND_ATTRIBUTES - */ - -typedef union _LARGE_INTEGER { - struct { - DWORD LowPart; - LONG HighPart; - } DUMMYSTRUCTNAME; - LONGLONG QuadPart; -} LARGE_INTEGER, *LPLARGE_INTEGER, *PLARGE_INTEGER; - -typedef union _ULARGE_INTEGER { - struct { - DWORD LowPart; - LONG HighPart; - } DUMMYSTRUCTNAME; - LONGLONG QuadPart; -} ULARGE_INTEGER, *LPULARGE_INTEGER, *PULARGE_INTEGER; - -/* - * Locally Unique Identifier - */ - -typedef LARGE_INTEGER LUID,*PLUID; - -typedef struct _LUID_AND_ATTRIBUTES { - LUID Luid; - DWORD Attributes; -} LUID_AND_ATTRIBUTES; - -/* - * PRIVILEGE_SET - */ - -typedef struct _PRIVILEGE_SET { - DWORD PrivilegeCount; - DWORD Control; - LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; -} PRIVILEGE_SET, *PPRIVILEGE_SET; - -/* - * TOKEN_PRIVILEGES - */ - -typedef struct _TOKEN_PRIVILEGES { - DWORD PrivilegeCount; - LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; -} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; - -/* - * TOKEN_OWNER - */ - -typedef struct _TOKEN_OWNER { - PSID Owner; -} TOKEN_OWNER; - -/* - * TOKEN_PRIMARY_GROUP - */ - -typedef struct _TOKEN_PRIMARY_GROUP { - PSID PrimaryGroup; -} TOKEN_PRIMARY_GROUP; - - -/* - * TOKEN_DEFAULT_DACL - */ - -typedef struct _TOKEN_DEFAULT_DACL { - PACL DefaultDacl; -} TOKEN_DEFAULT_DACL; - -/* - * TOKEN_SOURCEL - */ - -typedef struct _TOKEN_SOURCE { - char Sourcename[8]; - LUID SourceIdentifier; -} TOKEN_SOURCE; - -/* - * TOKEN_TYPE - */ - -typedef enum tagTOKEN_TYPE { - TokenPrimary = 1, - TokenImpersonation -} TOKEN_TYPE; - -/* - * SECURITY_IMPERSONATION_LEVEL - */ - -typedef enum _SECURITY_IMPERSONATION_LEVEL { - SecurityAnonymous, - SecurityIdentification, - SecurityImpersonation, - SecurityDelegation -} SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL; - - -typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, - * PSECURITY_CONTEXT_TRACKING_MODE; -/* - * Quality of Service - */ - -typedef struct _SECURITY_QUALITY_OF_SERVICE { - DWORD Length; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; - WIN_BOOL EffectiveOnly; -} SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE; - -/* - * TOKEN_STATISTICS - */ - -typedef struct _TOKEN_STATISTICS { - LUID TokenId; - LUID AuthenticationId; - LARGE_INTEGER ExpirationTime; - TOKEN_TYPE TokenType; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - DWORD DynamicCharged; - DWORD DynamicAvailable; - DWORD GroupCount; - DWORD PrivilegeCount; - LUID ModifiedId; -} TOKEN_STATISTICS; - -/* - * ACLs of NT - */ - -#define ACL_REVISION 2 - -#define ACL_REVISION1 1 -#define ACL_REVISION2 2 - -/* ACEs, directly starting after an ACL */ -typedef struct _ACE_HEADER { - BYTE AceType; - BYTE AceFlags; - WORD AceSize; -} ACE_HEADER,*PACE_HEADER; - -/* AceType */ -#define ACCESS_ALLOWED_ACE_TYPE 0 -#define ACCESS_DENIED_ACE_TYPE 1 -#define SYSTEM_AUDIT_ACE_TYPE 2 -#define SYSTEM_ALARM_ACE_TYPE 3 - -/* inherit AceFlags */ -#define OBJECT_INHERIT_ACE 0x01 -#define CONTAINER_INHERIT_ACE 0x02 -#define NO_PROPAGATE_INHERIT_ACE 0x04 -#define INHERIT_ONLY_ACE 0x08 -#define VALID_INHERIT_FLAGS 0x0F - -/* AceFlags mask for what events we (should) audit */ -#define SUCCESSFUL_ACCESS_ACE_FLAG 0x40 -#define FAILED_ACCESS_ACE_FLAG 0x80 - -/* different ACEs depending on AceType - * SidStart marks the begin of a SID - * so the thing finally looks like this: - * 0: ACE_HEADER - * 4: ACCESS_MASK - * 8... : SID - */ -typedef struct _ACCESS_ALLOWED_ACE { - ACE_HEADER Header; - DWORD Mask; - DWORD SidStart; -} ACCESS_ALLOWED_ACE,*PACCESS_ALLOWED_ACE; - -typedef struct _ACCESS_DENIED_ACE { - ACE_HEADER Header; - DWORD Mask; - DWORD SidStart; -} ACCESS_DENIED_ACE,*PACCESS_DENIED_ACE; - -typedef struct _SYSTEM_AUDIT_ACE { - ACE_HEADER Header; - DWORD Mask; - DWORD SidStart; -} SYSTEM_AUDIT_ACE,*PSYSTEM_AUDIT_ACE; - -typedef struct _SYSTEM_ALARM_ACE { - ACE_HEADER Header; - DWORD Mask; - DWORD SidStart; -} SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE; - -typedef enum tagSID_NAME_USE { - SidTypeUser = 1, - SidTypeGroup, - SidTypeDomain, - SidTypeAlias, - SidTypeWellKnownGroup, - SidTypeDeletedAccount, - SidTypeInvalid, - SidTypeUnknown -} SID_NAME_USE,*PSID_NAME_USE; - -/* Access rights */ - -#define DELETE 0x00010000 -#define READ_CONTROL 0x00020000 -#define WRITE_DAC 0x00040000 -#define WRITE_OWNER 0x00080000 -#define SYNCHRONIZE 0x00100000 -#define STANDARD_RIGHTS_REQUIRED 0x000f0000 - -#define STANDARD_RIGHTS_READ READ_CONTROL -#define STANDARD_RIGHTS_WRITE READ_CONTROL -#define STANDARD_RIGHTS_EXECUTE READ_CONTROL - -#define STANDARD_RIGHTS_ALL 0x001f0000 - -#define SPECIFIC_RIGHTS_ALL 0x0000ffff - -#define GENERIC_READ 0x80000000 -#define GENERIC_WRITE 0x40000000 -#define GENERIC_EXECUTE 0x20000000 -#define GENERIC_ALL 0x10000000 - -#define MAXIMUM_ALLOWED 0x02000000 -#define ACCESS_SYSTEM_SECURITY 0x01000000 - -#define EVENT_MODIFY_STATE 0x0002 -#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) - -#define SEMAPHORE_MODIFY_STATE 0x0002 -#define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) - -#define MUTEX_MODIFY_STATE 0x0001 -#define MUTEX_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x1) - -#define PROCESS_TERMINATE 0x0001 -#define PROCESS_CREATE_THREAD 0x0002 -#define PROCESS_VM_OPERATION 0x0008 -#define PROCESS_VM_READ 0x0010 -#define PROCESS_VM_WRITE 0x0020 -#define PROCESS_DUP_HANDLE 0x0040 -#define PROCESS_CREATE_PROCESS 0x0080 -#define PROCESS_SET_QUOTA 0x0100 -#define PROCESS_SET_INFORMATION 0x0200 -#define PROCESS_QUERY_INFORMATION 0x0400 -#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff) - -#define THREAD_TERMINATE 0x0001 -#define THREAD_SUSPEND_RESUME 0x0002 -#define THREAD_GET_CONTEXT 0x0008 -#define THREAD_SET_CONTEXT 0x0010 -#define THREAD_SET_INFORMATION 0x0020 -#define THREAD_QUERY_INFORMATION 0x0040 -#define THREAD_SET_THREAD_TOKEN 0x0080 -#define THREAD_IMPERSONATE 0x0100 -#define THREAD_DIRECT_IMPERSONATION 0x0200 -#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3ff) - -#define THREAD_BASE_PRIORITY_LOWRT 15 -#define THREAD_BASE_PRIORITY_MAX 2 -#define THREAD_BASE_PRIORITY_MIN -2 -#define THREAD_BASE_PRIORITY_IDLE -15 - -#define FILE_READ_DATA 0x0001 /* file & pipe */ -#define FILE_LIST_DIRECTORY 0x0001 /* directory */ -#define FILE_WRITE_DATA 0x0002 /* file & pipe */ -#define FILE_ADD_FILE 0x0002 /* directory */ -#define FILE_APPEND_DATA 0x0004 /* file */ -#define FILE_ADD_SUBDIRECTORY 0x0004 /* directory */ -#define FILE_CREATE_PIPE_INSTANCE 0x0004 /* named pipe */ -#define FILE_READ_EA 0x0008 /* file & directory */ -#define FILE_READ_PROPERTIES FILE_READ_EA -#define FILE_WRITE_EA 0x0010 /* file & directory */ -#define FILE_WRITE_PROPERTIES FILE_WRITE_EA -#define FILE_EXECUTE 0x0020 /* file */ -#define FILE_TRAVERSE 0x0020 /* directory */ -#define FILE_DELETE_CHILD 0x0040 /* directory */ -#define FILE_READ_ATTRIBUTES 0x0080 /* all */ -#define FILE_WRITE_ATTRIBUTES 0x0100 /* all */ -#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x1ff) - -#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ | FILE_READ_DATA | \ - FILE_READ_ATTRIBUTES | FILE_READ_EA | \ - SYNCHRONIZE) -#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | \ - FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | \ - FILE_APPEND_DATA | SYNCHRONIZE) -#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE | FILE_EXECUTE | \ - FILE_READ_ATTRIBUTES | SYNCHRONIZE) - - -/* File attribute flags - */ -#define FILE_SHARE_READ 0x00000001L -#define FILE_SHARE_WRITE 0x00000002L -#define FILE_SHARE_DELETE 0x00000004L -#define FILE_ATTRIBUTE_READONLY 0x00000001L -#define FILE_ATTRIBUTE_HIDDEN 0x00000002L -#define FILE_ATTRIBUTE_SYSTEM 0x00000004L -#define FILE_ATTRIBUTE_LABEL 0x00000008L /* Not in Windows API */ -#define FILE_ATTRIBUTE_DIRECTORY 0x00000010L -#define FILE_ATTRIBUTE_ARCHIVE 0x00000020L -#define FILE_ATTRIBUTE_NORMAL 0x00000080L -#define FILE_ATTRIBUTE_TEMPORARY 0x00000100L -#define FILE_ATTRIBUTE_ATOMIC_WRITE 0x00000200L -#define FILE_ATTRIBUTE_XACTION_WRITE 0x00000400L -#define FILE_ATTRIBUTE_COMPRESSED 0x00000800L -#define FILE_ATTRIBUTE_OFFLINE 0x00001000L - -/* File alignments (NT) */ -#define FILE_BYTE_ALIGNMENT 0x00000000 -#define FILE_WORD_ALIGNMENT 0x00000001 -#define FILE_LONG_ALIGNMENT 0x00000003 -#define FILE_QUAD_ALIGNMENT 0x00000007 -#define FILE_OCTA_ALIGNMENT 0x0000000f -#define FILE_32_BYTE_ALIGNMENT 0x0000001f -#define FILE_64_BYTE_ALIGNMENT 0x0000003f -#define FILE_128_BYTE_ALIGNMENT 0x0000007f -#define FILE_256_BYTE_ALIGNMENT 0x000000ff -#define FILE_512_BYTE_ALIGNMENT 0x000001ff - -#define REG_NONE 0 /* no type */ -#define REG_SZ 1 /* string type (ASCII) */ -#define REG_EXPAND_SZ 2 /* string, includes %ENVVAR% (expanded by caller) (ASCII) */ -#define REG_BINARY 3 /* binary format, callerspecific */ -/* YES, REG_DWORD == REG_DWORD_LITTLE_ENDIAN */ -#define REG_DWORD 4 /* DWORD in little endian format */ -#define REG_DWORD_LITTLE_ENDIAN 4 /* DWORD in little endian format */ -#define REG_DWORD_BIG_ENDIAN 5 /* DWORD in big endian format */ -#define REG_LINK 6 /* symbolic link (UNICODE) */ -#define REG_MULTI_SZ 7 /* multiple strings, delimited by \0, terminated by \0\0 (ASCII) */ -#define REG_RESOURCE_LIST 8 /* resource list? huh? */ -#define REG_FULL_RESOURCE_DESCRIPTOR 9 /* full resource descriptor? huh? */ -#define REG_RESOURCE_REQUIREMENTS_LIST 10 - -/* ----------------------------- begin registry ----------------------------- */ - -/* Registry security values */ -#define OWNER_SECURITY_INFORMATION 0x00000001 -#define GROUP_SECURITY_INFORMATION 0x00000002 -#define DACL_SECURITY_INFORMATION 0x00000004 -#define SACL_SECURITY_INFORMATION 0x00000008 - -#define REG_OPTION_RESERVED 0x00000000 -#define REG_OPTION_NON_VOLATILE 0x00000000 -#define REG_OPTION_VOLATILE 0x00000001 -#define REG_OPTION_CREATE_LINK 0x00000002 -#define REG_OPTION_BACKUP_RESTORE 0x00000004 /* FIXME */ -#define REG_OPTION_OPEN_LINK 0x00000008 -#define REG_LEGAL_OPTION (REG_OPTION_RESERVED| \ - REG_OPTION_NON_VOLATILE| \ - REG_OPTION_VOLATILE| \ - REG_OPTION_CREATE_LINK| \ - REG_OPTION_BACKUP_RESTORE| \ - REG_OPTION_OPEN_LINK) - - -#define REG_CREATED_NEW_KEY 0x00000001 -#define REG_OPENED_EXISTING_KEY 0x00000002 - -/* For RegNotifyChangeKeyValue */ -#define REG_NOTIFY_CHANGE_NAME 0x1 - -#define KEY_QUERY_VALUE 0x00000001 -#define KEY_SET_VALUE 0x00000002 -#define KEY_CREATE_SUB_KEY 0x00000004 -#define KEY_ENUMERATE_SUB_KEYS 0x00000008 -#define KEY_NOTIFY 0x00000010 -#define KEY_CREATE_LINK 0x00000020 - -#define KEY_READ ((STANDARD_RIGHTS_READ| \ - KEY_QUERY_VALUE| \ - KEY_ENUMERATE_SUB_KEYS| \ - KEY_NOTIFY) \ - & (~SYNCHRONIZE) \ - ) -#define KEY_WRITE ((STANDARD_RIGHTS_WRITE| \ - KEY_SET_VALUE| \ - KEY_CREATE_SUB_KEY) \ - & (~SYNCHRONIZE) \ - ) -#define KEY_EXECUTE ((KEY_READ) \ - & (~SYNCHRONIZE)) \ - ) -#define KEY_ALL_ACCESS ((STANDARD_RIGHTS_ALL| \ - KEY_QUERY_VALUE| \ - KEY_SET_VALUE| \ - KEY_CREATE_SUB_KEY| \ - KEY_ENUMERATE_SUB_KEYS| \ - KEY_NOTIFY| \ - KEY_CREATE_LINK) \ - & (~SYNCHRONIZE) \ - ) -/* ------------------------------ end registry ------------------------------ */ - - -#define RtlEqualMemory(Destination, Source, Length) (!memcmp((Destination),(Source),(Length))) -#define RtlMoveMemory(Destination, Source, Length) memmove((Destination),(Source),(Length)) -#define RtlCopyMemory(Destination, Source, Length) memcpy((Destination),(Source),(Length)) -#define RtlFillMemory(Destination, Length, Fill) memset((Destination),(Fill),(Length)) -#define RtlZeroMemory(Destination, Length) memset((Destination),0,(Length)) - -#include "poppack.h" - -#endif /* __WINE_WINNT_H */ diff --git a/include/wine/winreg.h b/include/wine/winreg.h deleted file mode 100644 index 8c290b58f2..0000000000 --- a/include/wine/winreg.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Win32 registry defines (see also winnt.h) - */ -#ifndef __WINE_WINREG_H -#define __WINE_WINREG_H - -#include "winbase.h" -#include "winnt.h" - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -/* -#define SHELL_ERROR_SUCCESS 0L -#define SHELL_ERROR_BADDB 1L -#define SHELL_ERROR_BADKEY 2L -#define SHELL_ERROR_CANTOPEN 3L -#define SHELL_ERROR_CANTREAD 4L -#define SHELL_ERROR_CANTWRITE 5L -#define SHELL_ERROR_OUTOFMEMORY 6L -#define SHELL_ERROR_INVALID_PARAMETER 7L -#define SHELL_ERROR_ACCESS_DENIED 8L -*/ - -#define HKEY_CLASSES_ROOT ((HKEY) 0x80000000) -#define HKEY_CURRENT_USER ((HKEY) 0x80000001) -#define HKEY_LOCAL_MACHINE ((HKEY) 0x80000002) -#define HKEY_USERS ((HKEY) 0x80000003) -#define HKEY_PERFORMANCE_DATA ((HKEY) 0x80000004) -#define HKEY_CURRENT_CONFIG ((HKEY) 0x80000005) -#define HKEY_DYN_DATA ((HKEY) 0x80000006) - -/* - * registry provider structs - */ -typedef struct value_entA -{ LPSTR ve_valuename; - DWORD ve_valuelen; - DWORD_PTR ve_valueptr; - DWORD ve_type; -} VALENTA, *PVALENTA; - -typedef struct value_entW { - LPWSTR ve_valuename; - DWORD ve_valuelen; - DWORD_PTR ve_valueptr; - DWORD ve_type; -} VALENTW, *PVALENTW; - -typedef ACCESS_MASK REGSAM; - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINREG_H */ diff --git a/include/wine/winuser.h b/include/wine/winuser.h deleted file mode 100644 index d74864ef7d..0000000000 --- a/include/wine/winuser.h +++ /dev/null @@ -1,2929 +0,0 @@ -#ifndef _WINUSER_ -#define _WINUSER_ - -#ifndef RC_INVOKED -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include "pshpack1.h" - -/* flags for HIGHCONTRAST dwFlags field */ -#define HCF_HIGHCONTRASTON 0x00000001 -#define HCF_AVAILABLE 0x00000002 -#define HCF_HOTKEYACTIVE 0x00000004 -#define HCF_CONFIRMHOTKEY 0x00000008 -#define HCF_HOTKEYSOUND 0x00000010 -#define HCF_INDICATOR 0x00000020 -#define HCF_HOTKEYAVAILABLE 0x00000040 - -typedef struct tagHIGHCONTRASTA -{ - UINT cbSize; - DWORD dwFlags; - LPSTR lpszDefaultScheme; -} HIGHCONTRASTA, *LPHIGHCONTRASTA; - -typedef struct tagHIGHCONTRASTW -{ - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszDefaultScheme; -} HIGHCONTRASTW, *LPHIGHCONTRASTW; - -DECL_WINELIB_TYPE_AW(HIGHCONTRAST) -DECL_WINELIB_TYPE_AW(LPHIGHCONTRAST) - -typedef struct -{ - UINT message; - UINT paramL; - UINT paramH; - DWORD time; - HWND hwnd; -} EVENTMSG, *LPEVENTMSG; - - - /* Mouse hook structure */ - -typedef struct -{ - POINT pt; - HWND hwnd; - UINT wHitTestCode; - DWORD dwExtraInfo; -} MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT; - - - /* Hardware hook structure */ - -typedef struct -{ - HWND hWnd; - UINT wMessage; - WPARAM wParam; - LPARAM lParam; -} HARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT; - - - /* Debug hook structure */ - -typedef struct -{ - DWORD idThread; - DWORD idThreadInstaller; - LPARAM lParam; - WPARAM wParam; - INT code; -} DEBUGHOOKINFO, *LPDEBUGHOOKINFO; - -#define HKL_PREV 0 -#define HKL_NEXT 1 - -#define KLF_ACTIVATE 0x00000001 -#define KLF_SUBSTITUTE_OK 0x00000002 -#define KLF_UNLOADPREVIOUS 0x00000004 -#define KLF_REORDER 0x00000008 -#define KLF_REPLACELANG 0x00000010 -#define KLF_NOTELLSHELL 0x00000080 - -#define KL_NAMELENGTH 9 - - /***** Dialogs *****/ -#ifdef FSHIFT -/* Gcc on Solaris has a version of this that we don't care about. */ -#undef FSHIFT -#endif - -#define FVIRTKEY TRUE /* Assumed to be == TRUE */ -#define FNOINVERT 0x02 -#define FSHIFT 0x04 -#define FCONTROL 0x08 -#define FALT 0x10 - - -typedef struct tagANIMATIONINFO -{ - UINT cbSize; - INT iMinAnimate; -} ANIMATIONINFO, *LPANIMATIONINFO; - -typedef struct tagNMHDR -{ - HWND hwndFrom; - UINT idFrom; - UINT code; -} NMHDR, *LPNMHDR; - -typedef struct -{ - UINT cbSize; - INT iTabLength; - INT iLeftMargin; - INT iRightMargin; - UINT uiLengthDrawn; -} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS; - -#define WM_USER 0x0400 - -#define DT_EDITCONTROL 0x00002000 -#define DT_PATH_ELLIPSIS 0x00004000 -#define DT_END_ELLIPSIS 0x00008000 -#define DT_MODIFYSTRING 0x00010000 -#define DT_RTLREADING 0x00020000 -#define DT_WORD_ELLIPSIS 0x00040000 - -typedef struct -{ - LPARAM lParam; - WPARAM16 wParam; - UINT16 message; - HWND16 hwnd; -} CWPSTRUCT16, *LPCWPSTRUCT16; - -typedef struct -{ - LPARAM lParam; - WPARAM wParam; - UINT message; - HWND hwnd; -} CWPSTRUCT, *LPCWPSTRUCT; - - - -typedef struct -{ - LRESULT lResult; - LPARAM lParam; - WPARAM16 wParam; - DWORD message; - HWND16 hwnd; -} CWPRETSTRUCT16, *LPCWPRETSTRUCT16; - -typedef struct -{ - LRESULT lResult; - LPARAM lParam; - WPARAM wParam; - DWORD message; - HWND hwnd; -} CWPRETSTRUCT, *LPCWPRETSTRUCT; - -typedef struct -{ - UINT length; - UINT flags; - UINT showCmd; - POINT ptMinPosition WINE_PACKED; - POINT ptMaxPosition WINE_PACKED; - RECT rcNormalPosition WINE_PACKED; -} WINDOWPLACEMENT, *LPWINDOWPLACEMENT; - - - /* WINDOWPLACEMENT flags */ -#define WPF_SETMINPOSITION 0x0001 -#define WPF_RESTORETOMAXIMIZED 0x0002 - -/***** Dialogs *****/ - - /* cbWndExtra bytes for dialog class */ -#define DLGWINDOWEXTRA 30 - -/* Button control styles */ -#define BS_PUSHBUTTON 0x00000000L -#define BS_DEFPUSHBUTTON 0x00000001L -#define BS_CHECKBOX 0x00000002L -#define BS_AUTOCHECKBOX 0x00000003L -#define BS_RADIOBUTTON 0x00000004L -#define BS_3STATE 0x00000005L -#define BS_AUTO3STATE 0x00000006L -#define BS_GROUPBOX 0x00000007L -#define BS_USERBUTTON 0x00000008L -#define BS_AUTORADIOBUTTON 0x00000009L -#define BS_OWNERDRAW 0x0000000BL -#define BS_LEFTTEXT 0x00000020L - -#define BS_TEXT 0x00000000L -#define BS_ICON 0x00000040L -#define BS_BITMAP 0x00000080L -#define BS_LEFT 0x00000100L -#define BS_RIGHT 0x00000200L -#define BS_CENTER 0x00000300L -#define BS_TOP 0x00000400L -#define BS_BOTTOM 0x00000800L -#define BS_VCENTER 0x00000C00L -#define BS_PUSHLIKE 0x00001000L -#define BS_MULTILINE 0x00002000L -#define BS_NOTIFY 0x00004000L -#define BS_FLAT 0x00008000L - - /* Dialog styles */ -#define DS_ABSALIGN 0x0001 -#define DS_SYSMODAL 0x0002 -#define DS_3DLOOK 0x0004 /* win95 */ -#define DS_FIXEDSYS 0x0008 /* win95 */ -#define DS_NOFAILCREATE 0x0010 /* win95 */ -#define DS_LOCALEDIT 0x0020 -#define DS_SETFONT 0x0040 -#define DS_MODALFRAME 0x0080 -#define DS_NOIDLEMSG 0x0100 -#define DS_SETFOREGROUND 0x0200 /* win95 */ -#define DS_CONTROL 0x0400 /* win95 */ -#define DS_CENTER 0x0800 /* win95 */ -#define DS_CENTERMOUSE 0x1000 /* win95 */ -#define DS_CONTEXTHELP 0x2000 /* win95 */ - - - /* Dialog messages */ -#define DM_GETDEFID (WM_USER+0) -#define DM_SETDEFID (WM_USER+1) - -#define DC_HASDEFID 0x534b - -/* Owner draw control types */ -#define ODT_MENU 1 -#define ODT_LISTBOX 2 -#define ODT_COMBOBOX 3 -#define ODT_BUTTON 4 -#define ODT_STATIC 5 - -/* Owner draw actions */ -#define ODA_DRAWENTIRE 0x0001 -#define ODA_SELECT 0x0002 -#define ODA_FOCUS 0x0004 - -/* Owner draw state */ -#define ODS_SELECTED 0x0001 -#define ODS_GRAYED 0x0002 -#define ODS_DISABLED 0x0004 -#define ODS_CHECKED 0x0008 -#define ODS_FOCUS 0x0010 -#define ODS_COMBOBOXEDIT 0x1000 -#define ODS_HOTLIGHT 0x0040 -#define ODS_INACTIVE 0x0080 - -/* Edit control styles */ -#define ES_LEFT 0x00000000 -#define ES_CENTER 0x00000001 -#define ES_RIGHT 0x00000002 -#define ES_MULTILINE 0x00000004 -#define ES_UPPERCASE 0x00000008 -#define ES_LOWERCASE 0x00000010 -#define ES_PASSWORD 0x00000020 -#define ES_AUTOVSCROLL 0x00000040 -#define ES_AUTOHSCROLL 0x00000080 -#define ES_NOHIDESEL 0x00000100 -#define ES_OEMCONVERT 0x00000400 -#define ES_READONLY 0x00000800 -#define ES_WANTRETURN 0x00001000 -#define ES_NUMBER 0x00002000 - -/* OEM Resource Ordinal Numbers */ -#define OBM_CLOSED 32731 -#define OBM_RADIOCHECK 32732 -#define OBM_TRTYPE 32733 -#define OBM_LFARROWI 32734 -#define OBM_RGARROWI 32735 -#define OBM_DNARROWI 32736 -#define OBM_UPARROWI 32737 -#define OBM_COMBO 32738 -#define OBM_MNARROW 32739 -#define OBM_LFARROWD 32740 -#define OBM_RGARROWD 32741 -#define OBM_DNARROWD 32742 -#define OBM_UPARROWD 32743 -#define OBM_RESTORED 32744 -#define OBM_ZOOMD 32745 -#define OBM_REDUCED 32746 -#define OBM_RESTORE 32747 -#define OBM_ZOOM 32748 -#define OBM_REDUCE 32749 -#define OBM_LFARROW 32750 -#define OBM_RGARROW 32751 -#define OBM_DNARROW 32752 -#define OBM_UPARROW 32753 -#define OBM_CLOSE 32754 -#define OBM_OLD_RESTORE 32755 -#define OBM_OLD_ZOOM 32756 -#define OBM_OLD_REDUCE 32757 -#define OBM_BTNCORNERS 32758 -#define OBM_CHECKBOXES 32759 -#define OBM_CHECK 32760 -#define OBM_BTSIZE 32761 -#define OBM_OLD_LFARROW 32762 -#define OBM_OLD_RGARROW 32763 -#define OBM_OLD_DNARROW 32764 -#define OBM_OLD_UPARROW 32765 -#define OBM_SIZE 32766 -#define OBM_OLD_CLOSE 32767 - -#define OCR_BUMMER 100 -#define OCR_DRAGOBJECT 101 - -#define OCR_NORMAL 32512 -#define OCR_IBEAM 32513 -#define OCR_WAIT 32514 -#define OCR_CROSS 32515 -#define OCR_UP 32516 -#define OCR_SIZE 32640 -#define OCR_ICON 32641 -#define OCR_SIZENWSE 32642 -#define OCR_SIZENESW 32643 -#define OCR_SIZEWE 32644 -#define OCR_SIZENS 32645 -#define OCR_SIZEALL 32646 -#define OCR_ICOCUR 32647 -#define OCR_NO 32648 -#define OCR_APPSTARTING 32650 -#define OCR_HELP 32651 /* only defined in wine */ - -#define OIC_SAMPLE 32512 -#define OIC_HAND 32513 -#define OIC_QUES 32514 -#define OIC_BANG 32515 -#define OIC_NOTE 32516 -#define OIC_PORTRAIT 32517 -#define OIC_LANDSCAPE 32518 -#define OIC_WINEICON 32519 -#define OIC_FOLDER 32520 -#define OIC_FOLDER2 32521 -#define OIC_FLOPPY 32522 -#define OIC_CDROM 32523 -#define OIC_HDISK 32524 -#define OIC_NETWORK 32525 - -#define COLOR_SCROLLBAR 0 -#define COLOR_BACKGROUND 1 -#define COLOR_ACTIVECAPTION 2 -#define COLOR_INACTIVECAPTION 3 -#define COLOR_MENU 4 -#define COLOR_WINDOW 5 -#define COLOR_WINDOWFRAME 6 -#define COLOR_MENUTEXT 7 -#define COLOR_WINDOWTEXT 8 -#define COLOR_CAPTIONTEXT 9 -#define COLOR_ACTIVEBORDER 10 -#define COLOR_INACTIVEBORDER 11 -#define COLOR_APPWORKSPACE 12 -#define COLOR_HIGHLIGHT 13 -#define COLOR_HIGHLIGHTTEXT 14 -#define COLOR_BTNFACE 15 -#define COLOR_BTNSHADOW 16 -#define COLOR_GRAYTEXT 17 -#define COLOR_BTNTEXT 18 -#define COLOR_INACTIVECAPTIONTEXT 19 -#define COLOR_BTNHIGHLIGHT 20 -/* win95 colors */ -#define COLOR_3DDKSHADOW 21 -#define COLOR_3DLIGHT 22 -#define COLOR_INFOTEXT 23 -#define COLOR_INFOBK 24 -#define COLOR_DESKTOP COLOR_BACKGROUND -#define COLOR_3DFACE COLOR_BTNFACE -#define COLOR_3DSHADOW COLOR_BTNSHADOW -#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT -#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT -#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT -/* win98 colors */ -#define COLOR_ALTERNATEBTNFACE 25 /* undocumented, constant's name unknown */ -#define COLOR_HOTLIGHT 26 -#define COLOR_GRADIENTACTIVECAPTION 27 -#define COLOR_GRADIENTINACTIVECAPTION 28 - - /* WM_CTLCOLOR values */ -#define CTLCOLOR_MSGBOX 0 -#define CTLCOLOR_EDIT 1 -#define CTLCOLOR_LISTBOX 2 -#define CTLCOLOR_BTN 3 -#define CTLCOLOR_DLG 4 -#define CTLCOLOR_SCROLLBAR 5 -#define CTLCOLOR_STATIC 6 - -/* Edit control messages */ -#define EM_GETSEL 0x00b0 -#define EM_SETSEL 0x00b1 -#define EM_GETRECT 0x00b2 -#define EM_SETRECT 0x00b3 -#define EM_SETRECTNP 0x00b4 -#define EM_SCROLL 0x00b5 -#define EM_LINESCROLL 0x00b6 -#define EM_SCROLLCARET 0x00b7 -#define EM_GETMODIFY 0x00b8 -#define EM_SETMODIFY 0x00b9 -#define EM_GETLINECOUNT 0x00ba -#define EM_LINEINDEX 0x00bb -#define EM_SETHANDLE 0x00bc -#define EM_GETHANDLE 0x00bd -#define EM_GETTHUMB 0x00be -/* FIXME : missing from specs 0x00bf and 0x00c0 */ -#define EM_LINELENGTH 0x00c1 -#define EM_REPLACESEL 0x00c2 -/* FIXME : missing from specs 0x00c3 */ -#define EM_GETLINE 0x00c4 -#define EM_LIMITTEXT 0x00c5 -#define EM_CANUNDO 0x00c6 -#define EM_UNDO 0x00c7 -#define EM_FMTLINES 0x00c8 -#define EM_LINEFROMCHAR 0x00c9 -/* FIXME : missing from specs 0x00ca */ -#define EM_SETTABSTOPS 0x00cb -#define EM_SETPASSWORDCHAR 0x00cc -#define EM_EMPTYUNDOBUFFER 0x00cd -#define EM_GETFIRSTVISIBLELINE 0x00ce -#define EM_SETREADONLY 0x00cf -#define EM_SETWORDBREAKPROC 0x00d0 -#define EM_GETWORDBREAKPROC 0x00d1 -#define EM_GETPASSWORDCHAR 0x00d2 -#define EM_SETMARGINS 0x00d3 -#define EM_GETMARGINS 0x00d4 -#define EM_GETLIMITTEXT 0x00d5 -#define EM_POSFROMCHAR 0x00d6 -#define EM_CHARFROMPOS 0x00d7 -/* a name change since win95 */ -#define EM_SETLIMITTEXT EM_LIMITTEXT - -/* EDITWORDBREAKPROC code values */ -#define WB_LEFT 0 -#define WB_RIGHT 1 -#define WB_ISDELIMITER 2 - -/* Edit control notification codes */ -#define EN_SETFOCUS 0x0100 -#define EN_KILLFOCUS 0x0200 -#define EN_CHANGE 0x0300 -#define EN_UPDATE 0x0400 -#define EN_ERRSPACE 0x0500 -#define EN_MAXTEXT 0x0501 -#define EN_HSCROLL 0x0601 -#define EN_VSCROLL 0x0602 - -/* New since win95 : EM_SETMARGIN parameters */ -#define EC_LEFTMARGIN 0x0001 -#define EC_RIGHTMARGIN 0x0002 -#define EC_USEFONTINFO 0xffff - - -/* Messages */ - - /* WM_GETDLGCODE values */ - - -#define WM_NULL 0x0000 -#define WM_CREATE 0x0001 -#define WM_DESTROY 0x0002 -#define WM_MOVE 0x0003 -#define WM_SIZEWAIT 0x0004 -#define WM_SIZE 0x0005 -#define WM_ACTIVATE 0x0006 -#define WM_SETFOCUS 0x0007 -#define WM_KILLFOCUS 0x0008 -#define WM_SETVISIBLE 0x0009 -#define WM_ENABLE 0x000a -#define WM_SETREDRAW 0x000b -#define WM_SETTEXT 0x000c -#define WM_GETTEXT 0x000d -#define WM_GETTEXTLENGTH 0x000e -#define WM_PAINT 0x000f -#define WM_CLOSE 0x0010 -#define WM_QUERYENDSESSION 0x0011 -#define WM_QUIT 0x0012 -#define WM_QUERYOPEN 0x0013 -#define WM_ERASEBKGND 0x0014 -#define WM_SYSCOLORCHANGE 0x0015 -#define WM_ENDSESSION 0x0016 -#define WM_SYSTEMERROR 0x0017 -#define WM_SHOWWINDOW 0x0018 -#define WM_CTLCOLOR 0x0019 -#define WM_WININICHANGE 0x001a -#define WM_SETTINGCHANGE WM_WININICHANGE -#define WM_DEVMODECHANGE 0x001b -#define WM_ACTIVATEAPP 0x001c -#define WM_FONTCHANGE 0x001d -#define WM_TIMECHANGE 0x001e -#define WM_CANCELMODE 0x001f -#define WM_SETCURSOR 0x0020 -#define WM_MOUSEACTIVATE 0x0021 -#define WM_CHILDACTIVATE 0x0022 -#define WM_QUEUESYNC 0x0023 -#define WM_GETMINMAXINFO 0x0024 - -#define WM_PAINTICON 0x0026 -#define WM_ICONERASEBKGND 0x0027 -#define WM_NEXTDLGCTL 0x0028 -#define WM_ALTTABACTIVE 0x0029 -#define WM_SPOOLERSTATUS 0x002a -#define WM_DRAWITEM 0x002b -#define WM_MEASUREITEM 0x002c -#define WM_DELETEITEM 0x002d -#define WM_VKEYTOITEM 0x002e -#define WM_CHARTOITEM 0x002f -#define WM_SETFONT 0x0030 -#define WM_GETFONT 0x0031 -#define WM_SETHOTKEY 0x0032 -#define WM_GETHOTKEY 0x0033 -#define WM_FILESYSCHANGE 0x0034 -#define WM_ISACTIVEICON 0x0035 -#define WM_QUERYPARKICON 0x0036 -#define WM_QUERYDRAGICON 0x0037 -#define WM_QUERYSAVESTATE 0x0038 -#define WM_COMPAREITEM 0x0039 -#define WM_TESTING 0x003a - -#define WM_OTHERWINDOWCREATED 0x003c -#define WM_OTHERWINDOWDESTROYED 0x003d -#define WM_ACTIVATESHELLWINDOW 0x003e - -#define WM_COMPACTING 0x0041 - -#define WM_COMMNOTIFY 0x0044 -#define WM_WINDOWPOSCHANGING 0x0046 -#define WM_WINDOWPOSCHANGED 0x0047 -#define WM_POWER 0x0048 - - /* Win32 4.0 messages */ -#define WM_COPYDATA 0x004a -#define WM_CANCELJOURNAL 0x004b -#define WM_NOTIFY 0x004e -#define WM_HELP 0x0053 -#define WM_NOTIFYFORMAT 0x0055 - -#define WM_CONTEXTMENU 0x007b -#define WM_STYLECHANGING 0x007c -#define WM_STYLECHANGED 0x007d -#define WM_DISPLAYCHANGE 0x007e -#define WM_GETICON 0x007f -#define WM_SETICON 0x0080 - - /* Non-client system messages */ -#define WM_NCCREATE 0x0081 -#define WM_NCDESTROY 0x0082 -#define WM_NCCALCSIZE 0x0083 -#define WM_NCHITTEST 0x0084 -#define WM_NCPAINT 0x0085 -#define WM_NCACTIVATE 0x0086 - -#define WM_GETDLGCODE 0x0087 -#define WM_SYNCPAINT 0x0088 -#define WM_SYNCTASK 0x0089 - - /* Non-client mouse messages */ -#define WM_NCMOUSEMOVE 0x00a0 -#define WM_NCLBUTTONDOWN 0x00a1 -#define WM_NCLBUTTONUP 0x00a2 -#define WM_NCLBUTTONDBLCLK 0x00a3 -#define WM_NCRBUTTONDOWN 0x00a4 -#define WM_NCRBUTTONUP 0x00a5 -#define WM_NCRBUTTONDBLCLK 0x00a6 -#define WM_NCMBUTTONDOWN 0x00a7 -#define WM_NCMBUTTONUP 0x00a8 -#define WM_NCMBUTTONDBLCLK 0x00a9 - - /* Keyboard messages */ -#define WM_KEYDOWN 0x0100 -#define WM_KEYUP 0x0101 -#define WM_CHAR 0x0102 -#define WM_DEADCHAR 0x0103 -#define WM_SYSKEYDOWN 0x0104 -#define WM_SYSKEYUP 0x0105 -#define WM_SYSCHAR 0x0106 -#define WM_SYSDEADCHAR 0x0107 -#define WM_KEYFIRST WM_KEYDOWN -#define WM_KEYLAST 0x0108 - -/* Win32 4.0 messages for IME */ -#define WM_IME_STARTCOMPOSITION 0x010d -#define WM_IME_ENDCOMPOSITION 0x010e -#define WM_IME_COMPOSITION 0x010f -#define WM_IME_KEYLAST 0x010f - -#define WM_INITDIALOG 0x0110 -#define WM_COMMAND 0x0111 -#define WM_SYSCOMMAND 0x0112 -#define WM_TIMER 0x0113 -#define WM_SYSTIMER 0x0118 - - /* scroll messages */ -#define WM_HSCROLL 0x0114 -#define WM_VSCROLL 0x0115 - -/* Menu messages */ -#define WM_INITMENU 0x0116 -#define WM_INITMENUPOPUP 0x0117 - -#define WM_MENUSELECT 0x011F -#define WM_MENUCHAR 0x0120 -#define WM_ENTERIDLE 0x0121 - -#define WM_LBTRACKPOINT 0x0131 - - /* Win32 CTLCOLOR messages */ -#define WM_CTLCOLORMSGBOX 0x0132 -#define WM_CTLCOLOREDIT 0x0133 -#define WM_CTLCOLORLISTBOX 0x0134 -#define WM_CTLCOLORBTN 0x0135 -#define WM_CTLCOLORDLG 0x0136 -#define WM_CTLCOLORSCROLLBAR 0x0137 -#define WM_CTLCOLORSTATIC 0x0138 - - /* Mouse messages */ -#define WM_MOUSEMOVE 0x0200 -#define WM_LBUTTONDOWN 0x0201 -#define WM_LBUTTONUP 0x0202 -#define WM_LBUTTONDBLCLK 0x0203 -#define WM_RBUTTONDOWN 0x0204 -#define WM_RBUTTONUP 0x0205 -#define WM_RBUTTONDBLCLK 0x0206 -#define WM_MBUTTONDOWN 0x0207 -#define WM_MBUTTONUP 0x0208 -#define WM_MBUTTONDBLCLK 0x0209 -#define WM_MOUSEWHEEL 0x020A -#define WM_MOUSEFIRST WM_MOUSEMOVE - - -#define WM_MOUSELAST WM_MOUSEWHEEL - -#define WHEEL_DELTA 120 -#define WHEEL_PAGESCROLL (UINT_MAX) -#define WM_PARENTNOTIFY 0x0210 -#define WM_ENTERMENULOOP 0x0211 -#define WM_EXITMENULOOP 0x0212 -#define WM_NEXTMENU 0x0213 - - /* Win32 4.0 messages */ -#define WM_SIZING 0x0214 -#define WM_CAPTURECHANGED 0x0215 -#define WM_MOVING 0x0216 - - /* MDI messages */ -#define WM_MDICREATE 0x0220 -#define WM_MDIDESTROY 0x0221 -#define WM_MDIACTIVATE 0x0222 -#define WM_MDIRESTORE 0x0223 -#define WM_MDINEXT 0x0224 -#define WM_MDIMAXIMIZE 0x0225 -#define WM_MDITILE 0x0226 -#define WM_MDICASCADE 0x0227 -#define WM_MDIICONARRANGE 0x0228 -#define WM_MDIGETACTIVE 0x0229 -#define WM_MDIREFRESHMENU 0x0234 - - /* D&D messages */ -#define WM_DROPOBJECT 0x022A -#define WM_QUERYDROPOBJECT 0x022B -#define WM_BEGINDRAG 0x022C -#define WM_DRAGLOOP 0x022D -#define WM_DRAGSELECT 0x022E -#define WM_DRAGMOVE 0x022F -#define WM_MDISETMENU 0x0230 - -#define WM_ENTERSIZEMOVE 0x0231 -#define WM_EXITSIZEMOVE 0x0232 -#define WM_DROPFILES 0x0233 - - -/* Win32 4.0 messages for IME */ -#define WM_IME_SETCONTEXT 0x0281 -#define WM_IME_NOTIFY 0x0282 -#define WM_IME_CONTROL 0x0283 -#define WM_IME_COMPOSITIONFULL 0x0284 -#define WM_IME_SELECT 0x0285 -#define WM_IME_CHAR 0x0286 -/* Win32 5.0 messages for IME */ -#define WM_IME_REQUEST 0x0288 - -/* Win32 4.0 messages for IME */ -#define WM_IME_KEYDOWN 0x0290 -#define WM_IME_KEYUP 0x0291 - -/* Clipboard command messages */ -#define WM_CUT 0x0300 -#define WM_COPY 0x0301 -#define WM_PASTE 0x0302 -#define WM_CLEAR 0x0303 -#define WM_UNDO 0x0304 - -/* Clipboard owner messages */ -#define WM_RENDERFORMAT 0x0305 -#define WM_RENDERALLFORMATS 0x0306 -#define WM_DESTROYCLIPBOARD 0x0307 - -/* Clipboard viewer messages */ -#define WM_DRAWCLIPBOARD 0x0308 -#define WM_PAINTCLIPBOARD 0x0309 -#define WM_VSCROLLCLIPBOARD 0x030A -#define WM_SIZECLIPBOARD 0x030B -#define WM_ASKCBFORMATNAME 0x030C -#define WM_CHANGECBCHAIN 0x030D -#define WM_HSCROLLCLIPBOARD 0x030E - -#define WM_QUERYNEWPALETTE 0x030F -#define WM_PALETTEISCHANGING 0x0310 -#define WM_PALETTECHANGED 0x0311 -#define WM_HOTKEY 0x0312 - -#define WM_PRINT 0x0317 -#define WM_PRINTCLIENT 0x0318 - - /* FIXME: This does not belong to any libwine interface header */ - /* MFC messages [360-38f] */ - -#define WM_QUERYAFXWNDPROC 0x0360 -#define WM_SIZEPARENT 0x0361 -#define WM_SETMESSAGESTRING 0x0362 -#define WM_IDLEUPDATECMDUI 0x0363 -#define WM_INITIALUPDATE 0x0364 -#define WM_COMMANDHELP 0x0365 -#define WM_HELPHITTEST 0x0366 -#define WM_EXITHELPMODE 0x0367 -#define WM_RECALCPARENT 0x0368 -#define WM_SIZECHILD 0x0369 -#define WM_KICKIDLE 0x036A -#define WM_QUERYCENTERWND 0x036B -#define WM_DISABLEMODAL 0x036C -#define WM_FLOATSTATUS 0x036D -#define WM_ACTIVATETOPLEVEL 0x036E -#define WM_QUERY3DCONTROLS 0x036F -#define WM_SOCKET_NOTIFY 0x0373 -#define WM_SOCKET_DEAD 0x0374 -#define WM_POPMESSAGESTRING 0x0375 -#define WM_OCC_LOADFROMSTREAM 0x0376 -#define WM_OCC_LOADFROMSTORAGE 0x0377 -#define WM_OCC_INITNEW 0x0378 -#define WM_OCC_LOADFROMSTREAM_EX 0x037A -#define WM_OCC_LOADFROMSTORAGE_EX 0x037B -#define WM_QUEUE_SENTINEL 0x0379 - -#define WM_PENWINFIRST 0x0380 -#define WM_PENWINLAST 0x038F - -/* end of MFC messages */ - -/* FIXME: The following two lines do not belong to any libwine interface header */ -#define WM_COALESCE_FIRST 0x0390 -#define WM_COALESCE_LAST 0x039F - -#define WM_APP 0x8000 - - -#define DLGC_WANTARROWS 0x0001 -#define DLGC_WANTTAB 0x0002 -#define DLGC_WANTALLKEYS 0x0004 -#define DLGC_WANTMESSAGE 0x0004 -#define DLGC_HASSETSEL 0x0008 -#define DLGC_DEFPUSHBUTTON 0x0010 -#define DLGC_UNDEFPUSHBUTTON 0x0020 -#define DLGC_RADIOBUTTON 0x0040 -#define DLGC_WANTCHARS 0x0080 -#define DLGC_STATIC 0x0100 -#define DLGC_BUTTON 0x2000 - -/* Standard dialog button IDs */ -#define IDOK 1 -#define IDCANCEL 2 -#define IDABORT 3 -#define IDRETRY 4 -#define IDIGNORE 5 -#define IDYES 6 -#define IDNO 7 -#define IDCLOSE 8 -#define IDHELP 9 - -/****** Window classes ******/ - -typedef struct tagCREATESTRUCTA -{ - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - INT cy; - INT cx; - INT y; - INT x; - LONG style; - LPCSTR lpszName; - LPCSTR lpszClass; - DWORD dwExStyle; -} CREATESTRUCTA, *LPCREATESTRUCTA; - -typedef struct -{ - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - INT cy; - INT cx; - INT y; - INT x; - LONG style; - LPCWSTR lpszName; - LPCWSTR lpszClass; - DWORD dwExStyle; -} CREATESTRUCTW, *LPCREATESTRUCTW; - -DECL_WINELIB_TYPE_AW(CREATESTRUCT) -DECL_WINELIB_TYPE_AW(LPCREATESTRUCT) - -typedef struct -{ - HDC hdc; - WIN_BOOL fErase; - RECT rcPaint; - WIN_BOOL fRestore; - WIN_BOOL fIncUpdate; - BYTE rgbReserved[32]; -} PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT; - -typedef struct -{ - HMENU hWindowMenu; - UINT idFirstChild; -} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; - - -typedef struct -{ - LPCSTR szClass; - LPCSTR szTitle; - HINSTANCE hOwner; - INT x; - INT y; - INT cx; - INT cy; - DWORD style; - LPARAM lParam; -} MDICREATESTRUCTA, *LPMDICREATESTRUCTA; - -typedef struct -{ - LPCWSTR szClass; - LPCWSTR szTitle; - HINSTANCE hOwner; - INT x; - INT y; - INT cx; - INT cy; - DWORD style; - LPARAM lParam; -} MDICREATESTRUCTW, *LPMDICREATESTRUCTW; - -DECL_WINELIB_TYPE_AW(MDICREATESTRUCT) -DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT) - -#define MDITILE_VERTICAL 0x0000 -#define MDITILE_HORIZONTAL 0x0001 -#define MDITILE_SKIPDISABLED 0x0002 - -#define MDIS_ALLCHILDSTYLES 0x0001 - -typedef struct { - DWORD styleOld; - DWORD styleNew; -} STYLESTRUCT, *LPSTYLESTRUCT; - - /* Offsets for GetWindowLong() and GetWindowWord() */ -#define GWL_USERDATA (-21) -#define GWL_EXSTYLE (-20) -#define GWL_STYLE (-16) -#define GWW_ID (-12) -#define GWL_ID GWW_ID -#define GWW_HWNDPARENT (-8) -#define GWL_HWNDPARENT GWW_HWNDPARENT -#define GWW_HINSTANCE (-6) -#define GWL_HINSTANCE GWW_HINSTANCE -#define GWL_WNDPROC (-4) -#define DWL_MSGRESULT 0 -#define DWL_DLGPROC 4 -#define DWL_USER 8 - - /* GetWindow() constants */ -#define GW_HWNDFIRST 0 -#define GW_HWNDLAST 1 -#define GW_HWNDNEXT 2 -#define GW_HWNDPREV 3 -#define GW_OWNER 4 -#define GW_CHILD 5 - - /* WM_GETMINMAXINFO struct */ -typedef struct -{ - POINT ptReserved; - POINT ptMaxSize; - POINT ptMaxPosition; - POINT ptMinTrackSize; - POINT ptMaxTrackSize; -} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO; - - - /* RedrawWindow() flags */ -#define RDW_INVALIDATE 0x0001 -#define RDW_INTERNALPAINT 0x0002 -#define RDW_ERASE 0x0004 -#define RDW_VALIDATE 0x0008 -#define RDW_NOINTERNALPAINT 0x0010 -#define RDW_NOERASE 0x0020 -#define RDW_NOCHILDREN 0x0040 -#define RDW_ALLCHILDREN 0x0080 -#define RDW_UPDATENOW 0x0100 -#define RDW_ERASENOW 0x0200 -#define RDW_FRAME 0x0400 -#define RDW_NOFRAME 0x0800 - -/* debug flags */ -#define DBGFILL_ALLOC 0xfd -#define DBGFILL_FREE 0xfb -#define DBGFILL_BUFFER 0xf9 -#define DBGFILL_STACK 0xf7 - - /* WM_WINDOWPOSCHANGING/CHANGED struct */ -typedef struct tagWINDOWPOS -{ - HWND hwnd; - HWND hwndInsertAfter; - INT x; - INT y; - INT cx; - INT cy; - UINT flags; -} WINDOWPOS, *PWINDOWPOS, *LPWINDOWPOS; - - - /* WM_MOUSEACTIVATE return values */ -#define MA_ACTIVATE 1 -#define MA_ACTIVATEANDEAT 2 -#define MA_NOACTIVATE 3 -#define MA_NOACTIVATEANDEAT 4 - - /* WM_ACTIVATE wParam values */ -#define WA_INACTIVE 0 -#define WA_ACTIVE 1 -#define WA_CLICKACTIVE 2 - -/* WM_GETICON/WM_SETICON params values */ -#define ICON_SMALL 0 -#define ICON_BIG 1 - - /* WM_NCCALCSIZE parameter structure */ -typedef struct -{ - RECT rgrc[3]; - WINDOWPOS *lppos; -} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; - - - /* WM_NCCALCSIZE return flags */ -#define WVR_ALIGNTOP 0x0010 -#define WVR_ALIGNLEFT 0x0020 -#define WVR_ALIGNBOTTOM 0x0040 -#define WVR_ALIGNRIGHT 0x0080 -#define WVR_HREDRAW 0x0100 -#define WVR_VREDRAW 0x0200 -#define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW) -#define WVR_VALIDRECTS 0x0400 - - /* WM_NCHITTEST return codes */ -#define HTERROR (-2) -#define HTTRANSPARENT (-1) -#define HTNOWHERE 0 -#define HTCLIENT 1 -#define HTCAPTION 2 -#define HTSYSMENU 3 -#define HTSIZE 4 -#define HTMENU 5 -#define HTHSCROLL 6 -#define HTVSCROLL 7 -#define HTMINBUTTON 8 -#define HTMAXBUTTON 9 -#define HTLEFT 10 -#define HTRIGHT 11 -#define HTTOP 12 -#define HTTOPLEFT 13 -#define HTTOPRIGHT 14 -#define HTBOTTOM 15 -#define HTBOTTOMLEFT 16 -#define HTBOTTOMRIGHT 17 -#define HTBORDER 18 -#define HTGROWBOX HTSIZE -#define HTREDUCE HTMINBUTTON -#define HTZOOM HTMAXBUTTON -#define HTOBJECT 19 -#define HTCLOSE 20 -#define HTHELP 21 -#define HTSIZEFIRST HTLEFT -#define HTSIZELAST HTBOTTOMRIGHT - - /* WM_SYSCOMMAND parameters */ -#ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */ -#undef SC_SIZE -#endif -#define SC_SIZE 0xf000 -#define SC_MOVE 0xf010 -#define SC_MINIMIZE 0xf020 -#define SC_MAXIMIZE 0xf030 -#define SC_NEXTWINDOW 0xf040 -#define SC_PREVWINDOW 0xf050 -#define SC_CLOSE 0xf060 -#define SC_VSCROLL 0xf070 -#define SC_HSCROLL 0xf080 -#define SC_MOUSEMENU 0xf090 -#define SC_KEYMENU 0xf100 -#define SC_ARRANGE 0xf110 -#define SC_RESTORE 0xf120 -#define SC_TASKLIST 0xf130 -#define SC_SCREENSAVE 0xf140 -#define SC_HOTKEY 0xf150 - -#define CS_VREDRAW 0x0001 -#define CS_HREDRAW 0x0002 -#define CS_KEYCVTWINDOW 0x0004 -#define CS_DBLCLKS 0x0008 -#define CS_OWNDC 0x0020 -#define CS_CLASSDC 0x0040 -#define CS_PARENTDC 0x0080 -#define CS_NOKEYCVT 0x0100 -#define CS_NOCLOSE 0x0200 -#define CS_SAVEBITS 0x0800 -#define CS_BYTEALIGNCLIENT 0x1000 -#define CS_BYTEALIGNWINDOW 0x2000 -#define CS_GLOBALCLASS 0x4000 -#define CS_IME 0x00010000 - -#define PRF_CHECKVISIBLE 0x00000001L -#define PRF_NONCLIENT 0x00000002L -#define PRF_CLIENT 0x00000004L -#define PRF_ERASEBKGND 0x00000008L -#define PRF_CHILDREN 0x00000010L -#define PRF_OWNED 0x00000020L - - /* Offsets for GetClassLong() and GetClassWord() */ -#define GCL_MENUNAME (-8) -#define GCW_HBRBACKGROUND (-10) -#define GCL_HBRBACKGROUND GCW_HBRBACKGROUND -#define GCW_HCURSOR (-12) -#define GCL_HCURSOR GCW_HCURSOR -#define GCW_HICON (-14) -#define GCL_HICON GCW_HICON -#define GCW_HMODULE (-16) -#define GCL_HMODULE GCW_HMODULE -#define GCW_CBWNDEXTRA (-18) -#define GCL_CBWNDEXTRA GCW_CBWNDEXTRA -#define GCW_CBCLSEXTRA (-20) -#define GCL_CBCLSEXTRA GCW_CBCLSEXTRA -#define GCL_WNDPROC (-24) -#define GCW_STYLE (-26) -#define GCL_STYLE GCW_STYLE -#define GCW_ATOM (-32) -#define GCW_HICONSM (-34) -#define GCL_HICONSM GCW_HICONSM - - -/***** Window hooks *****/ - - /* Hook values */ -#define WH_MIN (-1) -#define WH_MSGFILTER (-1) -#define WH_JOURNALRECORD 0 -#define WH_JOURNALPLAYBACK 1 -#define WH_KEYBOARD 2 -#define WH_GETMESSAGE 3 -#define WH_CALLWNDPROC 4 -#define WH_CBT 5 -#define WH_SYSMSGFILTER 6 -#define WH_MOUSE 7 -#define WH_HARDWARE 8 -#define WH_DEBUG 9 -#define WH_SHELL 10 -#define WH_FOREGROUNDIDLE 11 -#define WH_CALLWNDPROCRET 12 -#define WH_MAX 12 - -#define WH_MINHOOK WH_MIN -#define WH_MAXHOOK WH_MAX -#define WH_NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1) - - /* Hook action codes */ -#define HC_ACTION 0 -#define HC_GETNEXT 1 -#define HC_SKIP 2 -#define HC_NOREMOVE 3 -#define HC_NOREM HC_NOREMOVE -#define HC_SYSMODALON 4 -#define HC_SYSMODALOFF 5 - - /* CallMsgFilter() values */ -#define MSGF_DIALOGBOX 0 -#define MSGF_MESSAGEBOX 1 -#define MSGF_MENU 2 -#define MSGF_MOVE 3 -#define MSGF_SIZE 4 -#define MSGF_SCROLLBAR 5 -#define MSGF_NEXTWINDOW 6 -#define MSGF_MAINLOOP 8 -#define MSGF_USER 4096 - -typedef struct -{ - UINT style; - WNDPROC lpfnWndProc; - INT cbClsExtra; - INT cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; -} WNDCLASSA, *LPWNDCLASSA; - -typedef struct -{ - UINT style; - WNDPROC lpfnWndProc; - INT cbClsExtra; - INT cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; -} WNDCLASSW, *LPWNDCLASSW; - -DECL_WINELIB_TYPE_AW(WNDCLASS) -DECL_WINELIB_TYPE_AW(LPWNDCLASS) - -typedef struct { - DWORD dwData; - DWORD cbData; - LPVOID lpData; -} COPYDATASTRUCT, *PCOPYDATASTRUCT, *LPCOPYDATASTRUCT; - -typedef struct { - HMENU hmenuIn; - HMENU hmenuNext; - HWND hwndNext; -} MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU; - -/* WinHelp internal structure */ -typedef struct { - WORD size; - WORD command; - LONG data; - LONG reserved; - WORD ofsFilename; - WORD ofsData; -} WINHELP,*LPWINHELP; - -typedef struct -{ - UINT16 mkSize; - BYTE mkKeyList; - BYTE szKeyphrase[1]; -} MULTIKEYHELP, *LPMULTIKEYHELP; - -typedef struct { - WORD wStructSize; - WORD x; - WORD y; - WORD dx; - WORD dy; - WORD wMax; - char rgchMember[2]; -} HELPWININFO, *LPHELPWININFO; - -#define HELP_CONTEXT 0x0001 -#define HELP_QUIT 0x0002 -#define HELP_INDEX 0x0003 -#define HELP_CONTENTS 0x0003 -#define HELP_HELPONHELP 0x0004 -#define HELP_SETINDEX 0x0005 -#define HELP_SETCONTENTS 0x0005 -#define HELP_CONTEXTPOPUP 0x0008 -#define HELP_FORCEFILE 0x0009 -#define HELP_KEY 0x0101 -#define HELP_COMMAND 0x0102 -#define HELP_PARTIALKEY 0x0105 -#define HELP_MULTIKEY 0x0201 -#define HELP_SETWINPOS 0x0203 -#define HELP_CONTEXTMENU 0x000a -#define HELP_FINDER 0x000b -#define HELP_WM_HELP 0x000c -#define HELP_SETPOPUP_POS 0x000d - -#define HELP_TCARD 0x8000 -#define HELP_TCARD_DATA 0x0010 -#define HELP_TCARD_OTHER_CALLER 0x0011 - - - /* ChangeDisplaySettings return codes */ - -#define DISP_CHANGE_SUCCESSFUL 0 -#define DISP_CHANGE_RESTART 1 -#define DISP_CHANGE_FAILED (-1) -#define DISP_CHANGE_BADMODE (-2) -#define DISP_CHANGE_NOTUPDATED (-3) -#define DISP_CHANGE_BADFLAGS (-4) -#define DISP_CHANGE_BADPARAM (-5) - -/* ChangeDisplaySettings.dwFlags */ -#define CDS_UPDATEREGISTRY 0x00000001 -#define CDS_TEST 0x00000002 -#define CDS_FULLSCREEN 0x00000004 -#define CDS_GLOBAL 0x00000008 -#define CDS_SET_PRIMARY 0x00000010 -#define CDS_RESET 0x40000000 -#define CDS_SETRECT 0x20000000 -#define CDS_NORESET 0x10000000 - -/* flags to FormatMessage */ -#define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100 -#define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200 -#define FORMAT_MESSAGE_FROM_STRING 0x00000400 -#define FORMAT_MESSAGE_FROM_HMODULE 0x00000800 -#define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000 -#define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000 -#define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF - -typedef struct -{ - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - INT cbClsExtra; - INT cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; - HICON hIconSm; -} WNDCLASSEXA, *LPWNDCLASSEXA; - -typedef struct -{ - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - INT cbClsExtra; - INT cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; - HICON hIconSm; -} WNDCLASSEXW, *LPWNDCLASSEXW; - -DECL_WINELIB_TYPE_AW(WNDCLASSEX) -DECL_WINELIB_TYPE_AW(LPWNDCLASSEX) - -typedef struct tagMSG -{ - HWND hwnd; - UINT message; - WPARAM wParam; - LPARAM lParam; - DWORD time; - POINT pt; -} MSG, *LPMSG; - -#define POINTSTOPOINT(pt, pts) \ - { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); \ - (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); } - -#define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) - - -/* Cursors / Icons */ - -typedef struct { - WIN_BOOL fIcon; - DWORD xHotspot; - DWORD yHotspot; - HBITMAP hbmMask; - HBITMAP hbmColor; -} ICONINFO,*LPICONINFO; - - -/* this is the 6 byte accel struct used in Win32 when presented to the user */ -typedef struct -{ - BYTE fVirt; - BYTE pad0; - WORD key; - WORD cmd; -} ACCEL, *LPACCEL; - -/* this is the 8 byte accel struct used in Win32 resources (internal only) */ -typedef struct -{ - BYTE fVirt; - BYTE pad0; - WORD key; - WORD cmd; - WORD pad1; -} PE_ACCEL, *LPPE_ACCEL; - - -/* Flags for TrackPopupMenu */ -#define TPM_LEFTBUTTON 0x0000 -#define TPM_RIGHTBUTTON 0x0002 -#define TPM_LEFTALIGN 0x0000 -#define TPM_CENTERALIGN 0x0004 -#define TPM_RIGHTALIGN 0x0008 -#define TPM_TOPALIGN 0x0000 -#define TPM_VCENTERALIGN 0x0010 -#define TPM_BOTTOMALIGN 0x0020 -#define TPM_HORIZONTAL 0x0000 -#define TPM_VERTICAL 0x0040 -#define TPM_NONOTIFY 0x0080 -#define TPM_RETURNCMD 0x0100 - -typedef struct -{ - UINT cbSize; - RECT rcExclude; -} TPMPARAMS, *LPTPMPARAMS; - -/* FIXME: not sure this one is correct */ -typedef struct { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - LPSTR dwTypeData; - UINT cch; - HBITMAP hbmpItem; -} MENUITEMINFOA, *LPMENUITEMINFOA; - -typedef struct { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - LPWSTR dwTypeData; - UINT cch; - HBITMAP hbmpItem; -} MENUITEMINFOW, *LPMENUITEMINFOW; - -DECL_WINELIB_TYPE_AW(MENUITEMINFO) -DECL_WINELIB_TYPE_AW(LPMENUITEMINFO) - -typedef struct { - DWORD cbSize; - DWORD fMask; - DWORD dwStyle; - UINT cyMax; - HBRUSH hbrBack; - DWORD dwContextHelpID; - DWORD dwMenuData; -} MENUINFO, *LPMENUINFO; - -typedef MENUINFO const * LPCMENUINFO; - -#define MIM_MAXHEIGHT 0x00000001 -#define MIM_BACKGROUND 0x00000002 -#define MIM_HELPID 0x00000004 -#define MIM_MENUDATA 0x00000008 -#define MIM_STYLE 0x00000010 -#define MIM_APPLYTOSUBMENUS 0x80000000 - -typedef struct { - WORD versionNumber; - WORD offset; -} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER; - - -typedef struct { - WORD mtOption; - WORD mtID; - WCHAR mtString[1]; -} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE; - - -typedef VOID MENUTEMPLATE; -typedef PVOID *LPMENUTEMPLATE; - -/* Field specifiers for MENUITEMINFO[AW] type. */ -#define MIIM_STATE 0x00000001 -#define MIIM_ID 0x00000002 -#define MIIM_SUBMENU 0x00000004 -#define MIIM_CHECKMARKS 0x00000008 -#define MIIM_TYPE 0x00000010 -#define MIIM_DATA 0x00000020 -#define MIIM_STRING 0x00000040 -#define MIIM_BITMAP 0x00000080 -#define MIIM_FTYPE 0x00000100 - -#define HBMMENU_CALLBACK ((HBITMAP) -1) -#define HBMMENU_SYSTEM ((HBITMAP) 1) -#define HBMMENU_MBAR_RESTORE ((HBITMAP) 2) -#define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3) -#define HBMMENU_MBAR_CLOSE ((HBITMAP) 5) -#define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6) -#define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7) -#define HBMMENU_POPUP_CLOSE ((HBITMAP) 8) -#define HBMMENU_POPUP_RESTORE ((HBITMAP) 9) -#define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10) -#define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11) - -/* DrawState defines ... */ -typedef WIN_BOOL CALLBACK (*DRAWSTATEPROC)(HDC,LPARAM,WPARAM,INT,INT); - -/* WM_H/VSCROLL commands */ -#define SB_LINEUP 0 -#define SB_LINELEFT 0 -#define SB_LINEDOWN 1 -#define SB_LINERIGHT 1 -#define SB_PAGEUP 2 -#define SB_PAGELEFT 2 -#define SB_PAGEDOWN 3 -#define SB_PAGERIGHT 3 -#define SB_THUMBPOSITION 4 -#define SB_THUMBTRACK 5 -#define SB_TOP 6 -#define SB_LEFT 6 -#define SB_BOTTOM 7 -#define SB_RIGHT 7 -#define SB_ENDSCROLL 8 - -/* Scroll bar selection constants */ -#define SB_HORZ 0 -#define SB_VERT 1 -#define SB_CTL 2 -#define SB_BOTH 3 - -/* Scrollbar styles */ -#define SBS_HORZ 0x0000L -#define SBS_VERT 0x0001L -#define SBS_TOPALIGN 0x0002L -#define SBS_LEFTALIGN 0x0002L -#define SBS_BOTTOMALIGN 0x0004L -#define SBS_RIGHTALIGN 0x0004L -#define SBS_SIZEBOXTOPLEFTALIGN 0x0002L -#define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L -#define SBS_SIZEBOX 0x0008L -#define SBS_SIZEGRIP 0x0010L - -/* EnableScrollBar() flags */ -#define ESB_ENABLE_BOTH 0x0000 -#define ESB_DISABLE_BOTH 0x0003 - -#define ESB_DISABLE_LEFT 0x0001 -#define ESB_DISABLE_RIGHT 0x0002 - -#define ESB_DISABLE_UP 0x0001 -#define ESB_DISABLE_DOWN 0x0002 - -#define ESB_DISABLE_LTUP ESB_DISABLE_LEFT -#define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT - -/* Win32 button control messages */ -#define BM_GETCHECK 0x00f0 -#define BM_SETCHECK 0x00f1 -#define BM_GETSTATE 0x00f2 -#define BM_SETSTATE 0x00f3 -#define BM_SETSTYLE 0x00f4 -#define BM_CLICK 0x00f5 -#define BM_GETIMAGE 0x00f6 -#define BM_SETIMAGE 0x00f7 -/* Winelib button control messages */ - -/* Button notification codes */ -#define BN_CLICKED 0 -#define BN_PAINT 1 -#define BN_HILITE 2 -#define BN_UNHILITE 3 -#define BN_DISABLE 4 -#define BN_DOUBLECLICKED 5 - -/* Button states */ -#define BST_UNCHECKED 0x0000 -#define BST_CHECKED 0x0001 -#define BST_INDETERMINATE 0x0002 -#define BST_PUSHED 0x0004 -#define BST_FOCUS 0x0008 - -/* Static Control Styles */ -#define SS_LEFT 0x00000000L -#define SS_CENTER 0x00000001L -#define SS_RIGHT 0x00000002L -#define SS_ICON 0x00000003L -#define SS_BLACKRECT 0x00000004L -#define SS_GRAYRECT 0x00000005L -#define SS_WHITERECT 0x00000006L -#define SS_BLACKFRAME 0x00000007L -#define SS_GRAYFRAME 0x00000008L -#define SS_WHITEFRAME 0x00000009L - -#define SS_SIMPLE 0x0000000BL -#define SS_LEFTNOWORDWRAP 0x0000000CL - -#define SS_OWNERDRAW 0x0000000DL -#define SS_BITMAP 0x0000000EL -#define SS_ENHMETAFILE 0x0000000FL - -#define SS_ETCHEDHORZ 0x00000010L -#define SS_ETCHEDVERT 0x00000011L -#define SS_ETCHEDFRAME 0x00000012L -#define SS_TYPEMASK 0x0000001FL - -#define SS_NOPREFIX 0x00000080L -#define SS_NOTIFY 0x00000100L -#define SS_CENTERIMAGE 0x00000200L -#define SS_RIGHTJUST 0x00000400L -#define SS_REALSIZEIMAGE 0x00000800L -#define SS_SUNKEN 0x00001000L - -/* Static Control Messages */ -#define STM_SETICON 0x0170 -#define STM_GETICON 0x0171 -#define STM_SETIMAGE 0x0172 -#define STM_GETIMAGE 0x0173 - -/* Scrollbar messages */ -#define SBM_SETPOS 0x00e0 -#define SBM_GETPOS 0x00e1 -#define SBM_SETRANGE 0x00e2 -#define SBM_GETRANGE 0x00e3 -#define SBM_ENABLE_ARROWS 0x00e4 -#define SBM_SETRANGEREDRAW 0x00e6 -#define SBM_SETSCROLLINFO 0x00e9 -#define SBM_GETSCROLLINFO 0x00ea - -/* Scrollbar info */ -typedef struct -{ - UINT cbSize; - UINT fMask; - INT nMin; - INT nMax; - UINT nPage; - INT nPos; - INT nTrackPos; -} SCROLLINFO, *LPSCROLLINFO; - -/* GetScrollInfo() flags */ -#define SIF_RANGE 0x0001 -#define SIF_PAGE 0x0002 -#define SIF_POS 0x0004 -#define SIF_DISABLENOSCROLL 0x0008 -#define SIF_TRACKPOS 0x0010 -#define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS) - -/* Listbox styles */ -#define LBS_NOTIFY 0x0001 -#define LBS_SORT 0x0002 -#define LBS_NOREDRAW 0x0004 -#define LBS_MULTIPLESEL 0x0008 -#define LBS_OWNERDRAWFIXED 0x0010 -#define LBS_OWNERDRAWVARIABLE 0x0020 -#define LBS_HASSTRINGS 0x0040 -#define LBS_USETABSTOPS 0x0080 -#define LBS_NOINTEGRALHEIGHT 0x0100 -#define LBS_MULTICOLUMN 0x0200 -#define LBS_WANTKEYBOARDINPUT 0x0400 -#define LBS_EXTENDEDSEL 0x0800 -#define LBS_DISABLENOSCROLL 0x1000 -#define LBS_NODATA 0x2000 -#define LBS_NOSEL 0x4000 -#define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) - -/* Listbox messages */ -#define LB_ADDSTRING 0x0180 -#define LB_INSERTSTRING 0x0181 -#define LB_DELETESTRING 0x0182 -#define LB_SELITEMRANGEEX 0x0183 -#define LB_RESETCONTENT 0x0184 -#define LB_SETSEL 0x0185 -#define LB_SETCURSEL 0x0186 -#define LB_GETSEL 0x0187 -#define LB_GETCURSEL 0x0188 -#define LB_GETTEXT 0x0189 -#define LB_GETTEXTLEN 0x018a -#define LB_GETCOUNT 0x018b -#define LB_SELECTSTRING 0x018c -#define LB_DIR 0x018d -#define LB_GETTOPINDEX 0x018e -#define LB_FINDSTRING 0x018f -#define LB_GETSELCOUNT 0x0190 -#define LB_GETSELITEMS 0x0191 -#define LB_SETTABSTOPS 0x0192 -#define LB_GETHORIZONTALEXTENT 0x0193 -#define LB_SETHORIZONTALEXTENT 0x0194 -#define LB_SETCOLUMNWIDTH 0x0195 -#define LB_ADDFILE 0x0196 -#define LB_SETTOPINDEX 0x0197 -#define LB_GETITEMRECT 0x0198 -#define LB_GETITEMDATA 0x0199 -#define LB_SETITEMDATA 0x019a -#define LB_SELITEMRANGE 0x019b -#define LB_SETANCHORINDEX 0x019c -#define LB_GETANCHORINDEX 0x019d -#define LB_SETCARETINDEX 0x019e -#define LB_GETCARETINDEX 0x019f -#define LB_SETITEMHEIGHT 0x01a0 -#define LB_GETITEMHEIGHT 0x01a1 -#define LB_FINDSTRINGEXACT 0x01a2 -#define LB_CARETON 0x01a3 -#define LB_CARETOFF 0x01a4 -#define LB_SETLOCALE 0x01a5 -#define LB_GETLOCALE 0x01a6 -#define LB_SETCOUNT 0x01a7 -#define LB_INITSTORAGE 0x01a8 -#define LB_ITEMFROMPOINT 0x01a9 - -/* Listbox notification codes */ -#define LBN_ERRSPACE (-2) -#define LBN_SELCHANGE 1 -#define LBN_DBLCLK 2 -#define LBN_SELCANCEL 3 -#define LBN_SETFOCUS 4 -#define LBN_KILLFOCUS 5 - -/* Listbox message return values */ -#define LB_OKAY 0 -#define LB_ERR (-1) -#define LB_ERRSPACE (-2) - -#define LB_CTLCODE 0L - -/* Combo box styles */ -#define CBS_SIMPLE 0x0001L -#define CBS_DROPDOWN 0x0002L -#define CBS_DROPDOWNLIST 0x0003L -#define CBS_OWNERDRAWFIXED 0x0010L -#define CBS_OWNERDRAWVARIABLE 0x0020L -#define CBS_AUTOHSCROLL 0x0040L -#define CBS_OEMCONVERT 0x0080L -#define CBS_SORT 0x0100L -#define CBS_HASSTRINGS 0x0200L -#define CBS_NOINTEGRALHEIGHT 0x0400L -#define CBS_DISABLENOSCROLL 0x0800L - -#define CBS_UPPERCASE 0x2000L -#define CBS_LOWERCASE 0x4000L - - -/* Combo box messages */ -#define CB_GETEDITSEL 0x0140 -#define CB_LIMITTEXT 0x0141 -#define CB_SETEDITSEL 0x0142 -#define CB_ADDSTRING 0x0143 -#define CB_DELETESTRING 0x0144 -#define CB_DIR 0x0145 -#define CB_GETCOUNT 0x0146 -#define CB_GETCURSEL 0x0147 -#define CB_GETLBTEXT 0x0148 -#define CB_GETLBTEXTLEN 0x0149 -#define CB_INSERTSTRING 0x014a -#define CB_RESETCONTENT 0x014b -#define CB_FINDSTRING 0x014c -#define CB_SELECTSTRING 0x014d -#define CB_SETCURSEL 0x014e -#define CB_SHOWDROPDOWN 0x014f -#define CB_GETITEMDATA 0x0150 -#define CB_SETITEMDATA 0x0151 -#define CB_GETDROPPEDCONTROLRECT 0x0152 -#define CB_SETITEMHEIGHT 0x0153 -#define CB_GETITEMHEIGHT 0x0154 -#define CB_SETEXTENDEDUI 0x0155 -#define CB_GETEXTENDEDUI 0x0156 -#define CB_GETDROPPEDSTATE 0x0157 -#define CB_FINDSTRINGEXACT 0x0158 -#define CB_SETLOCALE 0x0159 -#define CB_GETLOCALE 0x015a -#define CB_GETTOPINDEX 0x015b -#define CB_SETTOPINDEX 0x015c -#define CB_GETHORIZONTALEXTENT 0x015d -#define CB_SETHORIZONTALEXTENT 0x015e -#define CB_GETDROPPEDWIDTH 0x015f -#define CB_SETDROPPEDWIDTH 0x0160 -#define CB_INITSTORAGE 0x0161 - -/* Combo box notification codes */ -#define CBN_ERRSPACE (-1) -#define CBN_SELCHANGE 1 -#define CBN_DBLCLK 2 -#define CBN_SETFOCUS 3 -#define CBN_KILLFOCUS 4 -#define CBN_EDITCHANGE 5 -#define CBN_EDITUPDATE 6 -#define CBN_DROPDOWN 7 -#define CBN_CLOSEUP 8 -#define CBN_SELENDOK 9 -#define CBN_SELENDCANCEL 10 - -/* Combo box message return values */ -#define CB_OKAY 0 -#define CB_ERR (-1) -#define CB_ERRSPACE (-2) - -#define MB_OK 0x00000000 -#define MB_OKCANCEL 0x00000001 -#define MB_ABORTRETRYIGNORE 0x00000002 -#define MB_YESNOCANCEL 0x00000003 -#define MB_YESNO 0x00000004 -#define MB_RETRYCANCEL 0x00000005 -#define MB_TYPEMASK 0x0000000F - -#define MB_ICONHAND 0x00000010 -#define MB_ICONQUESTION 0x00000020 -#define MB_ICONEXCLAMATION 0x00000030 -#define MB_ICONASTERISK 0x00000040 -#define MB_USERICON 0x00000080 -#define MB_ICONMASK 0x000000F0 - -#define MB_ICONINFORMATION MB_ICONASTERISK -#define MB_ICONSTOP MB_ICONHAND -#define MB_ICONWARNING MB_ICONEXCLAMATION -#define MB_ICONERROR MB_ICONHAND - -#define MB_DEFBUTTON1 0x00000000 -#define MB_DEFBUTTON2 0x00000100 -#define MB_DEFBUTTON3 0x00000200 -#define MB_DEFBUTTON4 0x00000300 -#define MB_DEFMASK 0x00000F00 - -#define MB_APPLMODAL 0x00000000 -#define MB_SYSTEMMODAL 0x00001000 -#define MB_TASKMODAL 0x00002000 -#define MB_MODEMASK 0x00003000 - -#define MB_HELP 0x00004000 -#define MB_NOFOCUS 0x00008000 -#define MB_MISCMASK 0x0000C000 - -#define MB_SETFOREGROUND 0x00010000 -#define MB_DEFAULT_DESKTOP_ONLY 0x00020000 -#define MB_SERVICE_NOTIFICATION 0x00040000 -#define MB_TOPMOST 0x00040000 -#define MB_RIGHT 0x00080000 -#define MB_RTLREADING 0x00100000 - -#define HELPINFO_WINDOW 0x0001 -#define HELPINFO_MENUITEM 0x0002 - -/* Structure pointed to by lParam of WM_HELP */ -typedef struct -{ - UINT cbSize; /* Size in bytes of this struct */ - INT iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */ - INT iCtrlId; /* Control Id or a Menu item Id. */ - HANDLE hItemHandle; /* hWnd of control or hMenu. */ - DWORD dwContextId; /* Context Id associated with this item */ - POINT MousePos; /* Mouse Position in screen co-ordinates */ -} HELPINFO,*LPHELPINFO; - -typedef void CALLBACK (*MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo); - -typedef struct -{ - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpszText; - LPCSTR lpszCaption; - DWORD dwStyle; - LPCSTR lpszIcon; - DWORD dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} MSGBOXPARAMSA,*LPMSGBOXPARAMSA; - -typedef struct -{ - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpszText; - LPCWSTR lpszCaption; - DWORD dwStyle; - LPCWSTR lpszIcon; - DWORD dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} MSGBOXPARAMSW,*LPMSGBOXPARAMSW; - -DECL_WINELIB_TYPE_AW(MSGBOXPARAMS) -DECL_WINELIB_TYPE_AW(LPMSGBOXPARAMS) - -typedef struct _numberfmt32a { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPCSTR lpDecimalSep; - LPCSTR lpThousandSep; - UINT NegativeOrder; -} NUMBERFMTA; - -typedef struct _numberfmt32w { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPCWSTR lpDecimalSep; - LPCWSTR lpThousandSep; - UINT NegativeOrder; -} NUMBERFMTW; - -typedef struct _currencyfmt32a -{ - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPCSTR lpDecimalSep; - LPCSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPCSTR lpCurrencySymbol; -} CURRENCYFMTA; - -typedef struct _currencyfmt32w -{ - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPCWSTR lpDecimalSep; - LPCWSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPCWSTR lpCurrencySymbol; -} CURRENCYFMTW; - -#define MONITOR_DEFAULTTONULL 0x00000000 -#define MONITOR_DEFAULTTOPRIMARY 0x00000001 -#define MONITOR_DEFAULTTONEAREST 0x00000002 - -#define MONITORINFOF_PRIMARY 0x00000001 - -typedef struct tagMONITORINFO -{ - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; -} MONITORINFO, *LPMONITORINFO; - - -typedef WIN_BOOL CALLBACK (*MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM); - -/* FIXME: use this instead of LPCVOID for CreateDialogIndirectParam - and DialogBoxIndirectParam */ -typedef struct tagDLGTEMPLATE -{ - DWORD style; - DWORD dwExtendedStyle; - WORD cdit; - short x; - short y; - short cx; - short cy; -} DLGTEMPLATE; - -typedef DLGTEMPLATE *LPDLGTEMPLATEA; -typedef DLGTEMPLATE *LPDLGTEMPLATEW; -#define LPDLGTEMPLATE WINELIB_NAME_AW(LPDLGTEMPLATE) -typedef const DLGTEMPLATE *LPCDLGTEMPLATEA; -typedef const DLGTEMPLATE *LPCDLGTEMPLATEW; -#define LPCDLGTEMPLATE WINELIB_NAME_AW(LPCDLGTEMPLATE) - -typedef struct tagDLGITEMTEMPLATE -{ - DWORD style; - DWORD dwExtendedStyle; - short x; - short y; - short cx; - short cy; - WORD id; -} DLGITEMTEMPLATE; - -typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; -typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; -#define LPDLGITEMTEMPLATE WINELIB_NAME_AW(LPDLGITEMTEMPLATE) -typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEA; -typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEW; -#define LPCDLGITEMTEMPLATE WINELIB_NAME_AW(LPCDLGITEMTEMPLATE) - - - /* CBT hook values */ -#define HCBT_MOVESIZE 0 -#define HCBT_MINMAX 1 -#define HCBT_QS 2 -#define HCBT_CREATEWND 3 -#define HCBT_DESTROYWND 4 -#define HCBT_ACTIVATE 5 -#define HCBT_CLICKSKIPPED 6 -#define HCBT_KEYSKIPPED 7 -#define HCBT_SYSCOMMAND 8 -#define HCBT_SETFOCUS 9 - - /* CBT hook structures */ - -typedef struct -{ - CREATESTRUCTA *lpcs; - HWND hwndInsertAfter; -} CBT_CREATEWNDA, *LPCBT_CREATEWNDA; - -typedef struct -{ - CREATESTRUCTW *lpcs; - HWND hwndInsertAfter; -} CBT_CREATEWNDW, *LPCBT_CREATEWNDW; - -DECL_WINELIB_TYPE_AW(CBT_CREATEWND) -DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND) - -typedef struct -{ - WIN_BOOL fMouse; - HWND hWndActive; -} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT; - - -/* modifiers for RegisterHotKey */ -#define MOD_ALT 0x0001 -#define MOD_CONTROL 0x0002 -#define MOD_SHIFT 0x0004 -#define MOD_WIN 0x0008 - -/* ids for RegisterHotKey */ -#define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */ -#define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */ - - /* keybd_event flags */ -#define KEYEVENTF_EXTENDEDKEY 0x0001 -#define KEYEVENTF_KEYUP 0x0002 -#define KEYEVENTF_WINE_FORCEEXTENDED 0x8000 - - /* mouse_event flags */ -#define MOUSEEVENTF_MOVE 0x0001 -#define MOUSEEVENTF_LEFTDOWN 0x0002 -#define MOUSEEVENTF_LEFTUP 0x0004 -#define MOUSEEVENTF_RIGHTDOWN 0x0008 -#define MOUSEEVENTF_RIGHTUP 0x0010 -#define MOUSEEVENTF_MIDDLEDOWN 0x0020 -#define MOUSEEVENTF_MIDDLEUP 0x0040 -#define MOUSEEVENTF_WHEEL 0x0800 -#define MOUSEEVENTF_ABSOLUTE 0x8000 - -/* ExitWindows() flags */ -#define EW_RESTARTWINDOWS 0x0042 -#define EW_REBOOTSYSTEM 0x0043 -#define EW_EXITANDEXECAPP 0x0044 - -/* ExitWindowsEx() flags */ -#define EWX_LOGOFF 0 -#define EWX_SHUTDOWN 1 -#define EWX_REBOOT 2 -#define EWX_FORCE 4 -#define EWX_POWEROFF 8 - -/* SetLastErrorEx types */ -#define SLE_ERROR 0x00000001 -#define SLE_MINORERROR 0x00000002 -#define SLE_WARNING 0x00000003 - -/* Predefined resources */ -#define IDI_APPLICATIONA MAKEINTRESOURCEA(32512) -#define IDI_APPLICATIONW MAKEINTRESOURCEW(32512) -#define IDI_APPLICATION WINELIB_NAME_AW(IDI_APPLICATION) -#define IDI_HANDA MAKEINTRESOURCEA(32513) -#define IDI_HANDW MAKEINTRESOURCEW(32513) -#define IDI_HAND WINELIB_NAME_AW(IDI_HAND) -#define IDI_QUESTIONA MAKEINTRESOURCEA(32514) -#define IDI_QUESTIONW MAKEINTRESOURCEW(32514) -#define IDI_QUESTION WINELIB_NAME_AW(IDI_QUESTION) -#define IDI_EXCLAMATIONA MAKEINTRESOURCEA(32515) -#define IDI_EXCLAMATIONW MAKEINTRESOURCEW(32515) -#define IDI_EXCLAMATION WINELIB_NAME_AW(IDI_EXCLAMATION) -#define IDI_ASTERISKA MAKEINTRESOURCEA(32516) -#define IDI_ASTERISKW MAKEINTRESOURCEW(32516) -#define IDI_ASTERISK WINELIB_NAME_AW(IDI_ASTERISK) - -#define IDC_BUMMERA MAKEINTRESOURCEA(100) -#define IDC_BUMMERW MAKEINTRESOURCEW(100) -#define IDC_BUMMER WINELIB_NAME_AW(IDC_BUMMER) -#define IDC_ARROWA MAKEINTRESOURCEA(32512) -#define IDC_ARROWW MAKEINTRESOURCEW(32512) -#define IDC_ARROW WINELIB_NAME_AW(IDC_ARROW) -#define IDC_IBEAMA MAKEINTRESOURCEA(32513) -#define IDC_IBEAMW MAKEINTRESOURCEW(32513) -#define IDC_IBEAM WINELIB_NAME_AW(IDC_IBEAM) -#define IDC_WAITA MAKEINTRESOURCEA(32514) -#define IDC_WAITW MAKEINTRESOURCEW(32514) -#define IDC_WAIT WINELIB_NAME_AW(IDC_WAIT) -#define IDC_CROSSA MAKEINTRESOURCEA(32515) -#define IDC_CROSSW MAKEINTRESOURCEW(32515) -#define IDC_CROSS WINELIB_NAME_AW(IDC_CROSS) -#define IDC_UPARROWA MAKEINTRESOURCEA(32516) -#define IDC_UPARROWW MAKEINTRESOURCEW(32516) -#define IDC_UPARROW WINELIB_NAME_AW(IDC_UPARROW) -#define IDC_SIZEA MAKEINTRESOURCEA(32640) -#define IDC_SIZEW MAKEINTRESOURCEW(32640) -#define IDC_SIZE WINELIB_NAME_AW(IDC_SIZE) -#define IDC_ICONA MAKEINTRESOURCEA(32641) -#define IDC_ICONW MAKEINTRESOURCEW(32641) -#define IDC_ICON WINELIB_NAME_AW(IDC_ICON) -#define IDC_SIZENWSEA MAKEINTRESOURCEA(32642) -#define IDC_SIZENWSEW MAKEINTRESOURCEW(32642) -#define IDC_SIZENWSE WINELIB_NAME_AW(IDC_SIZENWSE) -#define IDC_SIZENESWA MAKEINTRESOURCEA(32643) -#define IDC_SIZENESWW MAKEINTRESOURCEW(32643) -#define IDC_SIZENESW WINELIB_NAME_AW(IDC_SIZENESW) -#define IDC_SIZEWEA MAKEINTRESOURCEA(32644) -#define IDC_SIZEWEW MAKEINTRESOURCEW(32644) -#define IDC_SIZEWE WINELIB_NAME_AW(IDC_SIZEWE) -#define IDC_SIZENSA MAKEINTRESOURCEA(32645) -#define IDC_SIZENSW MAKEINTRESOURCEW(32645) -#define IDC_SIZENS WINELIB_NAME_AW(IDC_SIZENS) -#define IDC_SIZEALLA MAKEINTRESOURCEA(32646) -#define IDC_SIZEALLW MAKEINTRESOURCEW(32646) -#define IDC_SIZEALL WINELIB_NAME_AW(IDC_SIZEALL) -#define IDC_NOA MAKEINTRESOURCEA(32648) -#define IDC_NOW MAKEINTRESOURCEW(32648) -#define IDC_NO WINELIB_NAME_AW(IDC_NO) -#define IDC_APPSTARTINGA MAKEINTRESOURCEA(32650) -#define IDC_APPSTARTINGW MAKEINTRESOURCEW(32650) -#define IDC_APPSTARTING WINELIB_NAME_AW(IDC_APPSTARTING) -#define IDC_HELPA MAKEINTRESOURCEA(32651) -#define IDC_HELPW MAKEINTRESOURCEW(32651) -#define IDC_HELP WINELIB_NAME_AW(IDC_HELP) - -#define MNC_IGNORE 0 -#define MNC_CLOSE 1 -#define MNC_EXECUTE 2 -#define MNC_SELECT 3 - -/* SystemParametersInfo */ -/* defines below are for all win versions */ -#define SPI_GETBEEP 1 -#define SPI_SETBEEP 2 -#define SPI_GETMOUSE 3 -#define SPI_SETMOUSE 4 -#define SPI_GETBORDER 5 -#define SPI_SETBORDER 6 -#define SPI_GETKEYBOARDSPEED 10 -#define SPI_SETKEYBOARDSPEED 11 -#define SPI_LANGDRIVER 12 -#define SPI_ICONHORIZONTALSPACING 13 -#define SPI_GETSCREENSAVETIMEOUT 14 -#define SPI_SETSCREENSAVETIMEOUT 15 -#define SPI_GETSCREENSAVEACTIVE 16 -#define SPI_SETSCREENSAVEACTIVE 17 -#define SPI_GETGRIDGRANULARITY 18 -#define SPI_SETGRIDGRANULARITY 19 -#define SPI_SETDESKWALLPAPER 20 -#define SPI_SETDESKPATTERN 21 -#define SPI_GETKEYBOARDDELAY 22 -#define SPI_SETKEYBOARDDELAY 23 -#define SPI_ICONVERTICALSPACING 24 -#define SPI_GETICONTITLEWRAP 25 -#define SPI_SETICONTITLEWRAP 26 -#define SPI_GETMENUDROPALIGNMENT 27 -#define SPI_SETMENUDROPALIGNMENT 28 -#define SPI_SETDOUBLECLKWIDTH 29 -#define SPI_SETDOUBLECLKHEIGHT 30 -#define SPI_GETICONTITLELOGFONT 31 -#define SPI_SETDOUBLECLICKTIME 32 -#define SPI_SETMOUSEBUTTONSWAP 33 -#define SPI_SETICONTITLELOGFONT 34 -#define SPI_GETFASTTASKSWITCH 35 -#define SPI_SETFASTTASKSWITCH 36 -#define SPI_SETDRAGFULLWINDOWS 37 -#define SPI_GETDRAGFULLWINDOWS 38 - -#define SPI_GETFILTERKEYS 50 -#define SPI_SETFILTERKEYS 51 -#define SPI_GETTOGGLEKEYS 52 -#define SPI_SETTOGGLEKEYS 53 -#define SPI_GETMOUSEKEYS 54 -#define SPI_SETMOUSEKEYS 55 -#define SPI_GETSHOWSOUNDS 56 -#define SPI_SETSHOWSOUNDS 57 -#define SPI_GETSTICKYKEYS 58 -#define SPI_SETSTICKYKEYS 59 -#define SPI_GETACCESSTIMEOUT 60 -#define SPI_SETACCESSTIMEOUT 61 - -#define SPI_GETSOUNDSENTRY 64 -#define SPI_SETSOUNDSENTRY 65 - -/* defines below are for all win versions WINVER >= 0x0400 */ -#define SPI_SETDRAGFULLWINDOWS 37 -#define SPI_GETDRAGFULLWINDOWS 38 -#define SPI_GETNONCLIENTMETRICS 41 -#define SPI_SETNONCLIENTMETRICS 42 -#define SPI_GETMINIMIZEDMETRICS 43 -#define SPI_SETMINIMIZEDMETRICS 44 -#define SPI_GETICONMETRICS 45 -#define SPI_SETICONMETRICS 46 -#define SPI_SETWORKAREA 47 -#define SPI_GETWORKAREA 48 -#define SPI_SETPENWINDOWS 49 - -#define SPI_GETSERIALKEYS 62 -#define SPI_SETSERIALKEYS 63 -#define SPI_GETHIGHCONTRAST 66 -#define SPI_SETHIGHCONTRAST 67 -#define SPI_GETKEYBOARDPREF 68 -#define SPI_SETKEYBOARDPREF 69 -#define SPI_GETSCREENREADER 70 -#define SPI_SETSCREENREADER 71 -#define SPI_GETANIMATION 72 -#define SPI_SETANIMATION 73 -#define SPI_GETFONTSMOOTHING 74 -#define SPI_SETFONTSMOOTHING 75 -#define SPI_SETDRAGWIDTH 76 -#define SPI_SETDRAGHEIGHT 77 -#define SPI_SETHANDHELD 78 -#define SPI_GETLOWPOWERTIMEOUT 79 -#define SPI_GETPOWEROFFTIMEOUT 80 -#define SPI_SETLOWPOWERTIMEOUT 81 -#define SPI_SETPOWEROFFTIMEOUT 82 -#define SPI_GETLOWPOWERACTIVE 83 -#define SPI_GETPOWEROFFACTIVE 84 -#define SPI_SETLOWPOWERACTIVE 85 -#define SPI_SETPOWEROFFACTIVE 86 -#define SPI_SETCURSORS 87 -#define SPI_SETICONS 88 -#define SPI_GETDEFAULTINPUTLANG 89 -#define SPI_SETDEFAULTINPUTLANG 90 -#define SPI_SETLANGTOGGLE 91 -#define SPI_GETWINDOWSEXTENSION 92 -#define SPI_SETMOUSETRAILS 93 -#define SPI_GETMOUSETRAILS 94 -#define SPI_SETSCREENSAVERRUNNING 97 -#define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING - -/* defines below are for all win versions (_WIN32_WINNT >= 0x0400) || - * (_WIN32_WINDOWS > 0x0400) */ -#define SPI_GETMOUSEHOVERWIDTH 98 -#define SPI_SETMOUSEHOVERWIDTH 99 -#define SPI_GETMOUSEHOVERHEIGHT 100 -#define SPI_SETMOUSEHOVERHEIGHT 101 -#define SPI_GETMOUSEHOVERTIME 102 -#define SPI_SETMOUSEHOVERTIME 103 -#define SPI_GETWHEELSCROLLLINES 104 -#define SPI_SETWHEELSCROLLLINES 105 - -#define SPI_GETSHOWIMEUI 110 -#define SPI_SETSHOWIMEUI 111 - -/* defines below are for all win versions WINVER >= 0x0500 */ -#define SPI_GETMOUSESPEED 112 -#define SPI_SETMOUSESPEED 113 -#define SPI_GETSCREENSAVERRUNNING 114 - -#define SPI_GETACTIVEWINDOWTRACKING 0x1000 -#define SPI_SETACTIVEWINDOWTRACKING 0x1001 -#define SPI_GETMENUANIMATION 0x1002 -#define SPI_SETMENUANIMATION 0x1003 -#define SPI_GETCOMBOBOXANIMATION 0x1004 -#define SPI_SETCOMBOBOXANIMATION 0x1005 -#define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006 -#define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007 -#define SPI_GETGRADIENTCAPTIONS 0x1008 -#define SPI_SETGRADIENTCAPTIONS 0x1009 -#define SPI_GETMENUUNDERLINES 0x100A -#define SPI_SETMENUUNDERLINES 0x100B -#define SPI_GETACTIVEWNDTRKZORDER 0x100C -#define SPI_SETACTIVEWNDTRKZORDER 0x100D -#define SPI_GETHOTTRACKING 0x100E -#define SPI_SETHOTTRACKING 0x100F -#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000 -#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001 -#define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002 -#define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003 -#define SPI_GETFOREGROUNDFLASHCOUNT 0x2004 -#define SPI_SETFOREGROUNDFLASHCOUNT 0x2005 - -/* SystemParametersInfo flags */ - -#define SPIF_UPDATEINIFILE 1 -#define SPIF_SENDWININICHANGE 2 -#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE - - - - -/* Window Styles */ -#define WS_OVERLAPPED 0x00000000L -#define WS_POPUP 0x80000000L -#define WS_CHILD 0x40000000L -#define WS_MINIMIZE 0x20000000L -#define WS_VISIBLE 0x10000000L -#define WS_DISABLED 0x08000000L -#define WS_CLIPSIBLINGS 0x04000000L -#define WS_CLIPCHILDREN 0x02000000L -#define WS_MAXIMIZE 0x01000000L -#define WS_CAPTION 0x00C00000L -#define WS_BORDER 0x00800000L -#define WS_DLGFRAME 0x00400000L -#define WS_VSCROLL 0x00200000L -#define WS_HSCROLL 0x00100000L -#define WS_SYSMENU 0x00080000L -#define WS_THICKFRAME 0x00040000L -#define WS_GROUP 0x00020000L -#define WS_TABSTOP 0x00010000L -#define WS_MINIMIZEBOX 0x00020000L -#define WS_MAXIMIZEBOX 0x00010000L -#define WS_TILED WS_OVERLAPPED -#define WS_ICONIC WS_MINIMIZE -#define WS_SIZEBOX WS_THICKFRAME -#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX) -#define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU) -#define WS_CHILDWINDOW (WS_CHILD) -#define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW) - -/* Window extended styles */ -#define WS_EX_DLGMODALFRAME 0x00000001L -#define WS_EX_DRAGDETECT 0x00000002L -#define WS_EX_NOPARENTNOTIFY 0x00000004L -#define WS_EX_TOPMOST 0x00000008L -#define WS_EX_ACCEPTFILES 0x00000010L -#define WS_EX_TRANSPARENT 0x00000020L - -/* New Win95/WinNT4 styles */ -#define WS_EX_MDICHILD 0x00000040L -#define WS_EX_TOOLWINDOW 0x00000080L -#define WS_EX_WINDOWEDGE 0x00000100L -#define WS_EX_CLIENTEDGE 0x00000200L -#define WS_EX_CONTEXTHELP 0x00000400L -#define WS_EX_RIGHT 0x00001000L -#define WS_EX_LEFT 0x00000000L -#define WS_EX_RTLREADING 0x00002000L -#define WS_EX_LTRREADING 0x00000000L -#define WS_EX_LEFTSCROLLBAR 0x00004000L -#define WS_EX_RIGHTSCROLLBAR 0x00000000L -#define WS_EX_CONTROLPARENT 0x00010000L -#define WS_EX_STATICEDGE 0x00020000L -#define WS_EX_APPWINDOW 0x00040000L - -#define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE) -#define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST) - -/* WINE internal... */ -#define WS_EX_TRAYWINDOW 0x80000000L - -/* Window scrolling */ -#define SW_SCROLLCHILDREN 0x0001 -#define SW_INVALIDATE 0x0002 -#define SW_ERASE 0x0004 - -/* CreateWindow() coordinates */ -#define CW_USEDEFAULT ((INT)0x80000000) - -/* ChildWindowFromPointEx Flags */ -#define CWP_ALL 0x0000 -#define CWP_SKIPINVISIBLE 0x0001 -#define CWP_SKIPDISABLED 0x0002 -#define CWP_SKIPTRANSPARENT 0x0004 - - /* PeekMessage() options */ -#define PM_NOREMOVE 0x0000 -#define PM_REMOVE 0x0001 -#define PM_NOYIELD 0x0002 - -/* WM_SHOWWINDOW wParam codes */ -#define SW_PARENTCLOSING 1 -#define SW_OTHERMAXIMIZED 2 -#define SW_PARENTOPENING 3 -#define SW_OTHERRESTORED 4 - - /* ShowWindow() codes */ -#define SW_HIDE 0 -#define SW_SHOWNORMAL 1 -#define SW_NORMAL 1 -#define SW_SHOWMINIMIZED 2 -#define SW_SHOWMAXIMIZED 3 -#define SW_MAXIMIZE 3 -#define SW_SHOWNOACTIVATE 4 -#define SW_SHOW 5 -#define SW_MINIMIZE 6 -#define SW_SHOWMINNOACTIVE 7 -#define SW_SHOWNA 8 -#define SW_RESTORE 9 -#define SW_SHOWDEFAULT 10 -#define SW_MAX 10 -#define SW_NORMALNA 0xCC /* undoc. flag in MinMaximize */ - - /* WM_SIZE message wParam values */ -#define SIZE_RESTORED 0 -#define SIZE_MINIMIZED 1 -#define SIZE_MAXIMIZED 2 -#define SIZE_MAXSHOW 3 -#define SIZE_MAXHIDE 4 -#define SIZENORMAL SIZE_RESTORED -#define SIZEICONIC SIZE_MINIMIZED -#define SIZEFULLSCREEN SIZE_MAXIMIZED -#define SIZEZOOMSHOW SIZE_MAXSHOW -#define SIZEZOOMHIDE SIZE_MAXHIDE - -/* SetWindowPos() and WINDOWPOS flags */ -#define SWP_NOSIZE 0x0001 -#define SWP_NOMOVE 0x0002 -#define SWP_NOZORDER 0x0004 -#define SWP_NOREDRAW 0x0008 -#define SWP_NOACTIVATE 0x0010 -#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */ -#define SWP_SHOWWINDOW 0x0040 -#define SWP_HIDEWINDOW 0x0080 -#define SWP_NOCOPYBITS 0x0100 -#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */ - -#define SWP_DRAWFRAME SWP_FRAMECHANGED -#define SWP_NOREPOSITION SWP_NOOWNERZORDER - -#define SWP_NOSENDCHANGING 0x0400 -#define SWP_DEFERERASE 0x2000 -#define SWP_ASYNCWINDOWPOS 0x4000 - -#define HWND_DESKTOP ((HWND)0) -#define HWND_BROADCAST ((HWND)0xffff) - -/* SetWindowPos() hwndInsertAfter field values */ -#define HWND_TOP ((HWND)0) -#define HWND_BOTTOM ((HWND)1) -#define HWND_TOPMOST ((HWND)-1) -#define HWND_NOTOPMOST ((HWND)-2) - -#define MF_INSERT 0x0000 -#define MF_CHANGE 0x0080 -#define MF_APPEND 0x0100 -#define MF_DELETE 0x0200 -#define MF_REMOVE 0x1000 -#define MF_END 0x0080 - -#define MF_ENABLED 0x0000 -#define MF_GRAYED 0x0001 -#define MF_DISABLED 0x0002 -#define MF_STRING 0x0000 -#define MF_BITMAP 0x0004 -#define MF_UNCHECKED 0x0000 -#define MF_CHECKED 0x0008 -#define MF_POPUP 0x0010 -#define MF_MENUBARBREAK 0x0020 -#define MF_MENUBREAK 0x0040 -#define MF_UNHILITE 0x0000 -#define MF_HILITE 0x0080 -#define MF_OWNERDRAW 0x0100 -#define MF_USECHECKBITMAPS 0x0200 -#define MF_BYCOMMAND 0x0000 -#define MF_BYPOSITION 0x0400 -#define MF_SEPARATOR 0x0800 -#define MF_DEFAULT 0x1000 -#define MF_SYSMENU 0x2000 -#define MF_HELP 0x4000 -#define MF_RIGHTJUSTIFY 0x4000 -#define MF_MOUSESELECT 0x8000 - -/* Flags for extended menu item types. */ -#define MFT_STRING MF_STRING -#define MFT_BITMAP MF_BITMAP -#define MFT_MENUBARBREAK MF_MENUBARBREAK -#define MFT_MENUBREAK MF_MENUBREAK -#define MFT_OWNERDRAW MF_OWNERDRAW -#define MFT_RADIOCHECK 0x00000200L -#define MFT_SEPARATOR MF_SEPARATOR -#define MFT_RIGHTORDER 0x00002000L -#define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY - -/* Flags for extended menu item states. */ -#define MFS_GRAYED 0x00000003L -#define MFS_DISABLED MFS_GRAYED -#define MFS_CHECKED MF_CHECKED -#define MFS_HILITE MF_HILITE -#define MFS_ENABLED MF_ENABLED -#define MFS_UNCHECKED MF_UNCHECKED -#define MFS_UNHILITE MF_UNHILITE -#define MFS_DEFAULT MF_DEFAULT -#define MFS_MASK 0x0000108BL -#define MFS_HOTTRACKDRAWN 0x10000000L -#define MFS_CACHEDBMP 0x20000000L -#define MFS_BOTTOMGAPDROP 0x40000000L -#define MFS_TOPGAPDROP 0x80000000L -#define MFS_GAPDROP 0xC0000000L - -/* for GetMenuDefaultItem */ -#define GMDI_USEDISABLED 0x0001L -#define GMDI_GOINTOPOPUPS 0x0002L - -#define DT_TOP 0 -#define DT_LEFT 0 -#define DT_CENTER 1 -#define DT_RIGHT 2 -#define DT_VCENTER 4 -#define DT_BOTTOM 8 -#define DT_WORDBREAK 16 -#define DT_SINGLELINE 32 -#define DT_EXPANDTABS 64 -#define DT_TABSTOP 128 -#define DT_NOCLIP 256 -#define DT_EXTERNALLEADING 512 -#define DT_CALCRECT 1024 -#define DT_NOPREFIX 2048 -#define DT_INTERNAL 4096 - -/* DrawCaption()/DrawCaptionTemp() flags */ -#define DC_ACTIVE 0x0001 -#define DC_SMALLCAP 0x0002 -#define DC_ICON 0x0004 -#define DC_TEXT 0x0008 -#define DC_INBUTTON 0x0010 - -/* DrawEdge() flags */ -#define BDR_RAISEDOUTER 0x0001 -#define BDR_SUNKENOUTER 0x0002 -#define BDR_RAISEDINNER 0x0004 -#define BDR_SUNKENINNER 0x0008 - -#define BDR_OUTER 0x0003 -#define BDR_INNER 0x000c -#define BDR_RAISED 0x0005 -#define BDR_SUNKEN 0x000a - -#define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER) -#define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER) -#define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER) -#define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER) - -/* border flags */ -#define BF_LEFT 0x0001 -#define BF_TOP 0x0002 -#define BF_RIGHT 0x0004 -#define BF_BOTTOM 0x0008 -#define BF_DIAGONAL 0x0010 -#define BF_MIDDLE 0x0800 /* Fill in the middle */ -#define BF_SOFT 0x1000 /* For softer buttons */ -#define BF_ADJUST 0x2000 /* Calculate the space left over */ -#define BF_FLAT 0x4000 /* For flat rather than 3D borders */ -#define BF_MONO 0x8000 /* For monochrome borders */ -#define BF_TOPLEFT (BF_TOP | BF_LEFT) -#define BF_TOPRIGHT (BF_TOP | BF_RIGHT) -#define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT) -#define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT) -#define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM) -#define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT) -#define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT) -#define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) -#define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) - -/* DrawFrameControl() uType's */ - -#define DFC_CAPTION 1 -#define DFC_MENU 2 -#define DFC_SCROLL 3 -#define DFC_BUTTON 4 - -/* uState's */ - -#define DFCS_CAPTIONCLOSE 0x0000 -#define DFCS_CAPTIONMIN 0x0001 -#define DFCS_CAPTIONMAX 0x0002 -#define DFCS_CAPTIONRESTORE 0x0003 -#define DFCS_CAPTIONHELP 0x0004 /* Windows 95 only */ - -#define DFCS_MENUARROW 0x0000 -#define DFCS_MENUCHECK 0x0001 -#define DFCS_MENUBULLET 0x0002 -#define DFCS_MENUARROWRIGHT 0x0004 - -#define DFCS_SCROLLUP 0x0000 -#define DFCS_SCROLLDOWN 0x0001 -#define DFCS_SCROLLLEFT 0x0002 -#define DFCS_SCROLLRIGHT 0x0003 -#define DFCS_SCROLLCOMBOBOX 0x0005 -#define DFCS_SCROLLSIZEGRIP 0x0008 -#define DFCS_SCROLLSIZEGRIPRIGHT 0x0010 - -#define DFCS_BUTTONCHECK 0x0000 -#define DFCS_BUTTONRADIOIMAGE 0x0001 -#define DFCS_BUTTONRADIOMASK 0x0002 /* to draw nonsquare button */ -#define DFCS_BUTTONRADIO 0x0004 -#define DFCS_BUTTON3STATE 0x0008 -#define DFCS_BUTTONPUSH 0x0010 - -/* additional state of the control */ - -#define DFCS_INACTIVE 0x0100 -#define DFCS_PUSHED 0x0200 -#define DFCS_CHECKED 0x0400 -#define DFCS_ADJUSTRECT 0x2000 /* exclude surrounding edge */ -#define DFCS_FLAT 0x4000 -#define DFCS_MONO 0x8000 - -/* Image type */ -#define DST_COMPLEX 0x0000 -#define DST_TEXT 0x0001 -#define DST_PREFIXTEXT 0x0002 -#define DST_ICON 0x0003 -#define DST_BITMAP 0x0004 - -/* State type */ -#define DSS_NORMAL 0x0000 -#define DSS_UNION 0x0010 /* Gray string appearance */ -#define DSS_DISABLED 0x0020 -#define DSS_DEFAULT 0x0040 /* Make it bold */ -#define DSS_MONO 0x0080 -#define DSS_RIGHT 0x8000 - -typedef struct -{ - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemAction; - UINT itemState; - HWND hwndItem; - HDC hDC; - RECT rcItem WINE_PACKED; - DWORD itemData WINE_PACKED; -} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT; - - -typedef struct -{ - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemWidth; - UINT itemHeight; - DWORD itemData; -} MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT; - - -typedef struct -{ - UINT CtlType; - UINT CtlID; - UINT itemID; - HWND hwndItem; - DWORD itemData; -} DELETEITEMSTRUCT, *LPDELETEITEMSTRUCT; - - -typedef struct -{ - UINT CtlType; - UINT CtlID; - HWND hwndItem; - UINT itemID1; - DWORD itemData1; - UINT itemID2; - DWORD itemData2; - DWORD dwLocaleId; -} COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT; - - -/* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */ -#define KF_EXTENDED 0x0100 -#define KF_DLGMODE 0x0800 -#define KF_MENUMODE 0x1000 -#define KF_ALTDOWN 0x2000 -#define KF_REPEAT 0x4000 -#define KF_UP 0x8000 - -/* Virtual key codes */ -#define VK_LBUTTON 0x01 -#define VK_RBUTTON 0x02 -#define VK_CANCEL 0x03 -#define VK_MBUTTON 0x04 -/* 0x05-0x07 Undefined */ -#define VK_BACK 0x08 -#define VK_TAB 0x09 -/* 0x0A-0x0B Undefined */ -#define VK_CLEAR 0x0C -#define VK_RETURN 0x0D -/* 0x0E-0x0F Undefined */ -#define VK_SHIFT 0x10 -#define VK_CONTROL 0x11 -#define VK_MENU 0x12 -#define VK_PAUSE 0x13 -#define VK_CAPITAL 0x14 -/* 0x15-0x19 Reserved for Kanji systems */ -/* 0x1A Undefined */ -#define VK_ESCAPE 0x1B -/* 0x1C-0x1F Reserved for Kanji systems */ -#define VK_SPACE 0x20 -#define VK_PRIOR 0x21 -#define VK_NEXT 0x22 -#define VK_END 0x23 -#define VK_HOME 0x24 -#define VK_LEFT 0x25 -#define VK_UP 0x26 -#define VK_RIGHT 0x27 -#define VK_DOWN 0x28 -#define VK_SELECT 0x29 -#define VK_PRINT 0x2A /* OEM specific in Windows 3.1 SDK */ -#define VK_EXECUTE 0x2B -#define VK_SNAPSHOT 0x2C -#define VK_INSERT 0x2D -#define VK_DELETE 0x2E -#define VK_HELP 0x2F -#define VK_0 0x30 -#define VK_1 0x31 -#define VK_2 0x32 -#define VK_3 0x33 -#define VK_4 0x34 -#define VK_5 0x35 -#define VK_6 0x36 -#define VK_7 0x37 -#define VK_8 0x38 -#define VK_9 0x39 -/* 0x3A-0x40 Undefined */ -#define VK_A 0x41 -#define VK_B 0x42 -#define VK_C 0x43 -#define VK_D 0x44 -#define VK_E 0x45 -#define VK_F 0x46 -#define VK_G 0x47 -#define VK_H 0x48 -#define VK_I 0x49 -#define VK_J 0x4A -#define VK_K 0x4B -#define VK_L 0x4C -#define VK_M 0x4D -#define VK_N 0x4E -#define VK_O 0x4F -#define VK_P 0x50 -#define VK_Q 0x51 -#define VK_R 0x52 -#define VK_S 0x53 -#define VK_T 0x54 -#define VK_U 0x55 -#define VK_V 0x56 -#define VK_W 0x57 -#define VK_X 0x58 -#define VK_Y 0x59 -#define VK_Z 0x5A - -#define VK_LWIN 0x5B -#define VK_RWIN 0x5C -#define VK_APPS 0x5D -/* 0x5E-0x5F Unassigned */ -#define VK_NUMPAD0 0x60 -#define VK_NUMPAD1 0x61 -#define VK_NUMPAD2 0x62 -#define VK_NUMPAD3 0x63 -#define VK_NUMPAD4 0x64 -#define VK_NUMPAD5 0x65 -#define VK_NUMPAD6 0x66 -#define VK_NUMPAD7 0x67 -#define VK_NUMPAD8 0x68 -#define VK_NUMPAD9 0x69 -#define VK_MULTIPLY 0x6A -#define VK_ADD 0x6B -#define VK_SEPARATOR 0x6C -#define VK_SUBTRACT 0x6D -#define VK_DECIMAL 0x6E -#define VK_DIVIDE 0x6F -#define VK_F1 0x70 -#define VK_F2 0x71 -#define VK_F3 0x72 -#define VK_F4 0x73 -#define VK_F5 0x74 -#define VK_F6 0x75 -#define VK_F7 0x76 -#define VK_F8 0x77 -#define VK_F9 0x78 -#define VK_F10 0x79 -#define VK_F11 0x7A -#define VK_F12 0x7B -#define VK_F13 0x7C -#define VK_F14 0x7D -#define VK_F15 0x7E -#define VK_F16 0x7F -#define VK_F17 0x80 -#define VK_F18 0x81 -#define VK_F19 0x82 -#define VK_F20 0x83 -#define VK_F21 0x84 -#define VK_F22 0x85 -#define VK_F23 0x86 -#define VK_F24 0x87 -/* 0x88-0x8F Unassigned */ -#define VK_NUMLOCK 0x90 -#define VK_SCROLL 0x91 -/* 0x92-0x9F Unassigned */ -/* - * differencing between right and left shift/control/alt key. - * Used only by GetAsyncKeyState() and GetKeyState(). - */ -#define VK_LSHIFT 0xA0 -#define VK_RSHIFT 0xA1 -#define VK_LCONTROL 0xA2 -#define VK_RCONTROL 0xA3 -#define VK_LMENU 0xA4 -#define VK_RMENU 0xA5 -/* 0xA6-0xB9 Unassigned */ -#define VK_OEM_1 0xBA -#define VK_OEM_PLUS 0xBB -#define VK_OEM_COMMA 0xBC -#define VK_OEM_MINUS 0xBD -#define VK_OEM_PERIOD 0xBE -#define VK_OEM_2 0xBF -#define VK_OEM_3 0xC0 -/* 0xC1-0xDA Unassigned */ -#define VK_OEM_4 0xDB -#define VK_OEM_5 0xDC -#define VK_OEM_6 0xDD -#define VK_OEM_7 0xDE -/* 0xDF-0xE4 OEM specific */ - -#define VK_PROCESSKEY 0xE5 - -/* 0xE6 OEM specific */ -/* 0xE7-0xE8 Unassigned */ -/* 0xE9-0xF5 OEM specific */ - -#define VK_ATTN 0xF6 -#define VK_CRSEL 0xF7 -#define VK_EXSEL 0xF8 -#define VK_EREOF 0xF9 -#define VK_PLAY 0xFA -#define VK_ZOOM 0xFB -#define VK_NONAME 0xFC -#define VK_PA1 0xFD -#define VK_OEM_CLEAR 0xFE - - /* Key status flags for mouse events */ -#define MK_LBUTTON 0x0001 -#define MK_RBUTTON 0x0002 -#define MK_SHIFT 0x0004 -#define MK_CONTROL 0x0008 -#define MK_MBUTTON 0x0010 - - /* Queue status flags */ -#define QS_KEY 0x0001 -#define QS_MOUSEMOVE 0x0002 -#define QS_MOUSEBUTTON 0x0004 -#define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON) -#define QS_POSTMESSAGE 0x0008 -#define QS_TIMER 0x0010 -#define QS_PAINT 0x0020 -#define QS_SENDMESSAGE 0x0040 -#define QS_HOTKEY 0x0080 -#define QS_INPUT (QS_MOUSE | QS_KEY) -#define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY) -#define QS_ALLINPUT (QS_ALLEVENTS | QS_SENDMESSAGE) - -#define DDL_READWRITE 0x0000 -#define DDL_READONLY 0x0001 -#define DDL_HIDDEN 0x0002 -#define DDL_SYSTEM 0x0004 -#define DDL_DIRECTORY 0x0010 -#define DDL_ARCHIVE 0x0020 - -#define DDL_POSTMSGS 0x2000 -#define DDL_DRIVES 0x4000 -#define DDL_EXCLUSIVE 0x8000 - - /* Shell hook values */ -#define HSHELL_WINDOWCREATED 1 -#define HSHELL_WINDOWDESTROYED 2 -#define HSHELL_ACTIVATESHELLWINDOW 3 - -/* Predefined Clipboard Formats */ -#define CF_TEXT 1 -#define CF_BITMAP 2 -#define CF_METAFILEPICT 3 -#define CF_SYLK 4 -#define CF_DIF 5 -#define CF_TIFF 6 -#define CF_OEMTEXT 7 -#define CF_DIB 8 -#define CF_PALETTE 9 -#define CF_PENDATA 10 -#define CF_RIFF 11 -#define CF_WAVE 12 -#define CF_ENHMETAFILE 14 -#define CF_HDROP 15 -#define CF_LOCALE 16 -#define CF_MAX 17 - -#define CF_OWNERDISPLAY 0x0080 -#define CF_DSPTEXT 0x0081 -#define CF_DSPBITMAP 0x0082 -#define CF_DSPMETAFILEPICT 0x0083 - -/* "Private" formats don't get GlobalFree()'d */ -#define CF_PRIVATEFIRST 0x0200 -#define CF_PRIVATELAST 0x02FF - -/* "GDIOBJ" formats do get DeleteObject()'d */ -#define CF_GDIOBJFIRST 0x0300 -#define CF_GDIOBJLAST 0x03FF - - -/* DragObject stuff */ - -typedef struct -{ - HWND16 hWnd; - HANDLE16 hScope; - WORD wFlags; - HANDLE16 hList; - HANDLE16 hOfStruct; - POINT16 pt WINE_PACKED; - LONG l WINE_PACKED; -} DRAGINFO, *LPDRAGINFO; - -#define DRAGOBJ_PROGRAM 0x0001 -#define DRAGOBJ_DATA 0x0002 -#define DRAGOBJ_DIRECTORY 0x0004 -#define DRAGOBJ_MULTIPLE 0x0008 -#define DRAGOBJ_EXTERNAL 0x8000 - -#define DRAG_PRINT 0x544E5250 -#define DRAG_FILE 0x454C4946 - -/* types of LoadImage */ -#define IMAGE_BITMAP 0 -#define IMAGE_ICON 1 -#define IMAGE_CURSOR 2 -#define IMAGE_ENHMETAFILE 3 - -/* loadflags to LoadImage */ -#define LR_DEFAULTCOLOR 0x0000 -#define LR_MONOCHROME 0x0001 -#define LR_COLOR 0x0002 -#define LR_COPYRETURNORG 0x0004 -#define LR_COPYDELETEORG 0x0008 -#define LR_LOADFROMFILE 0x0010 -#define LR_LOADTRANSPARENT 0x0020 -#define LR_DEFAULTSIZE 0x0040 -#define LR_VGA_COLOR 0x0080 -#define LR_LOADMAP3DCOLORS 0x1000 -#define LR_CREATEDIBSECTION 0x2000 -#define LR_COPYFROMRESOURCE 0x4000 -#define LR_SHARED 0x8000 - -/* Flags for DrawIconEx. */ -#define DI_MASK 1 -#define DI_IMAGE 2 -#define DI_NORMAL (DI_MASK | DI_IMAGE) -#define DI_COMPAT 4 -#define DI_DEFAULTSIZE 8 - - /* misc messages */ -#define WM_CPL_LAUNCH (WM_USER + 1000) -#define WM_CPL_LAUNCHED (WM_USER + 1001) - -/* WM_NOTIFYFORMAT commands and return values */ -#define NFR_ANSI 1 -#define NFR_UNICODE 2 -#define NF_QUERY 3 -#define NF_REQUERY 4 - -#include "poppack.h" -#define EnumTaskWindows(handle,proc,lparam) \ - EnumThreadWindows(handle,proc,lparam) -#define OemToAnsiA OemToCharA -#define OemToAnsiW OemToCharW -#define OemToAnsi WINELIB_NAME_AW(OemToAnsi) -#define OemToAnsiBuffA OemToCharBuffA -#define OemToAnsiBuffW OemToCharBuffW -#define OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff) -#define AnsiToOemA CharToOemA -#define AnsiToOemW CharToOemW -#define AnsiToOem WINELIB_NAME_AW(AnsiToOem) -#define AnsiToOemBuffA CharToOemBuffA -#define AnsiToOemBuffW CharToOemBuffW -#define AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff) -/* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */ -WORD WINAPI SYSTEM_KillSystemTimer( WORD ); - -/* Extra functions that don't exist in the Windows API */ - -HPEN WINAPI GetSysColorPen(INT); -INT WINAPI LoadMessageA(HMODULE,UINT,WORD,LPSTR,INT); -INT WINAPI LoadMessageW(HMODULE,UINT,WORD,LPWSTR,INT); - -VOID WINAPI ScreenSwitchEnable16(WORD); - -#define WC_DIALOG (LPSTR)((DWORD)((WORD)( 0x8002))) - -#ifdef __cplusplus -} -#endif - -#endif /* _WINUSER_ */ diff --git a/libs/audio/gstaudio.c b/libs/audio/gstaudio.c index 0faca0172d..c18d6c6e78 100644 --- a/libs/audio/gstaudio.c +++ b/libs/audio/gstaudio.c @@ -1,5 +1,89 @@ +/* Gnome-Streamer + * Copyright (C) <1999> Erik Walthinsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + #include "gstaudio.h" +int +gst_audio_frame_byte_size (GstPad* pad) +{ +/* calculate byte size of an audio frame + * this should be moved closer to the gstreamer core + * and be implemented for every mime type IMO + * returns 0 if there's an error, or the byte size if everything's ok + */ + + int width = 0; + int channels = 0; + + GstCaps *caps = NULL; + + /* get caps of pad */ + caps = GST_PAD_CAPS (pad); + + if (caps == NULL) + /* ERROR: could not get caps of pad */ + return 0; + + width = gst_caps_get_int (caps, "width"); + channels = gst_caps_get_int (caps, "channels"); + return (width / 8) * channels; +} + +long +gst_audio_frame_length (GstPad* pad, GstBuffer* buf) +/* calculate length of buffer in frames + * this should be moved closer to the gstreamer core + * and be implemented for every mime type IMO + * returns 0 if there's an error, or the number of frames if everything's ok + */ +{ + int frame_byte_size = 0; + + frame_byte_size = gst_audio_frame_byte_size (pad); + if (frame_byte_size == 0) + /* error */ + return 0; + /* FIXME: this function assumes the buffer size to be a whole multiple + * of the frame byte size + */ + return GST_BUFFER_SIZE (buf) / frame_byte_size; +} + +long +gst_audio_frame_rate (GstPad *pad) +/* + * calculate frame rate (based on caps of pad) + * returns 0 if failed, rate if success + */ +{ + GstCaps *caps = NULL; + + /* get caps of pad */ + caps = GST_PAD_CAPS (pad); + + if (caps == NULL) + /* ERROR: could not get caps of pad */ + return 0; + else + return gst_caps_get_int (caps, "rate"); +} + double gst_audio_length (GstPad* pad, GstBuffer* buf) { @@ -35,3 +119,34 @@ gst_audio_length (GstPad* pad, GstBuffer* buf) } return length; } + +long +gst_audio_highest_sample_value (GstPad* pad) +/* calculate highest possible sample value + * based on capabilities of pad + */ +{ + gboolean is_signed = FALSE; + gint width = 0; + GstCaps *caps = NULL; + + caps = GST_PAD_CAPS (pad); + // FIXME : Please change this to a better warning method ! + if (caps == NULL) + printf ("WARNING: gstaudio: could not get caps of pad !\n"); + width = gst_caps_get_int (caps, "width"); + is_signed = gst_caps_get_boolean (caps, "signed"); + if (is_signed) --width; + /* example : 16 bit, signed : samples between -32768 and 32767 */ + return ((long) (1 << width)); +} + +gboolean +gst_audio_is_buffer_framed (GstPad* pad, GstBuffer* buf) +/* check if the buffer size is a whole multiple of the frame size */ +{ + if (GST_BUFFER_SIZE (buf) % gst_audio_frame_byte_size (pad) == 0) + return TRUE; + else + return FALSE; +} diff --git a/libs/audio/gstaudio.h b/libs/audio/gstaudio.h index ce35115116..7cced9acf2 100644 --- a/libs/audio/gstaudio.h +++ b/libs/audio/gstaudio.h @@ -25,7 +25,21 @@ #include +/* get byte size of audio frame (based on caps of pad */ +int gst_audio_frame_byte_size (GstPad* pad); + +/* get length in frames of buffer */ +long gst_audio_frame_length (GstPad* pad, GstBuffer* buf); + +/* get frame rate based on caps */ +long gst_audio_frame_rate (GstPad *pad); + /* calculate length in seconds of audio buffer buf based on caps of pad */ +double gst_audio_length (GstPad* pad, GstBuffer* buf); -double gst_audio_length (GstPad* pad, GstBuffer* buf); +/* calculate highest possible sample value based on capabilities of pad */ +long gst_audio_highest_sample_value (GstPad* pad); + +/* check if the buffer size is a whole multiple of the frame size */ +gboolean gst_audio_is_buffer_framed (GstPad* pad, GstBuffer* buf); diff --git a/libs/riff/gstriffencode.c b/libs/riff/gstriffencode.c index 425e85d28c..f5e014a96c 100644 --- a/libs/riff/gstriffencode.c +++ b/libs/riff/gstriffencode.c @@ -30,7 +30,7 @@ chunk = (gst_riff_chunk *)(riffenc->dataleft + riffenc->nextlikely);\ chunk->id = chunkid; \ chunk->size = chunksize; \ - riffenc->nextlikely += sizeof(gst_riff_chunk) + (chunksize&1); \ + riffenc->nextlikely += sizeof(gst_riff_chunk); \ } #define ADD_LIST(riffenc, listsize, listtype) \ diff --git a/plugins/elements/gstdisksink.c b/plugins/elements/gstdisksink.c index 23f1c1b631..2922ccca17 100644 --- a/plugins/elements/gstdisksink.c +++ b/plugins/elements/gstdisksink.c @@ -216,7 +216,7 @@ static void gst_disksink_chain (GstPad *pad, GstBuffer *buf) { GstDiskSink *disksink; - guint16 bytes_written = 0; + gint bytes_written = 0; g_return_if_fail (pad != NULL); g_return_if_fail (GST_IS_PAD (pad)); diff --git a/plugins/elements/gstdisksrc.c b/plugins/elements/gstdisksrc.c index e88f06698a..259473e750 100644 --- a/plugins/elements/gstdisksrc.c +++ b/plugins/elements/gstdisksrc.c @@ -233,8 +233,10 @@ gst_disksrc_get (GstPad *pad) src = GST_DISKSRC (gst_pad_get_parent (pad)); g_return_val_if_fail (GST_FLAG_IS_SET (src, GST_DISKSRC_OPEN), NULL); + /* deal with EOF state */ if (src->curoffset >= src->size) { + GST_DEBUG (0,"map offset %ld >= size %ld --> eos\n", src->curoffset, src->size); gst_pad_set_eos (pad); return NULL; } @@ -296,8 +298,12 @@ gst_disksrc_get_region (GstPad *pad, GstRegionType type,guint64 offset,guint64 l /* deal with EOF state */ if (offset >= src->size) { - gst_pad_set_eos (pad); - return NULL; + //gst_pad_set_eos (pad); + GST_DEBUG (0,"map offset %lld >= size %ld --> eos\n", offset, src->size); + //FIXME + buf = gst_buffer_new(); + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_EOS); + return buf; } /* create the buffer */ diff --git a/tests/old/examples/Makefile.am b/tests/old/examples/Makefile.am index 7d5a43860f..6fe9c9c70b 100644 --- a/tests/old/examples/Makefile.am +++ b/tests/old/examples/Makefile.am @@ -8,6 +8,10 @@ endif SUBDIRS = $(GNOME_SUBDS) \ helloworld helloworld2 \ queue queue2 queue3 queue4 \ - launch thread xml typefind mixer + launch thread xml plugins typefind mixer cutter + +DIST_SUBDIRS = autoplug \ + helloworld helloworld2 \ + queue queue2 queue3 queue4 \ + launch thread xml plugins typefind mixer cutter -DIST_SUBDIRS = autoplug plugins diff --git a/tests/old/examples/cutter/Makefile.am b/tests/old/examples/cutter/Makefile.am new file mode 100644 index 0000000000..c1fca3f985 --- /dev/null +++ b/tests/old/examples/cutter/Makefile.am @@ -0,0 +1,5 @@ +noinst_PROGRAMS = cutter +noinst_HEADERS = cutter.h + +LIBS += $(GST_LIBS) +CFLAGS += $(GST_CFLAGS) diff --git a/tests/old/examples/cutter/cutter.c b/tests/old/examples/cutter/cutter.c new file mode 100644 index 0000000000..323778d0f7 --- /dev/null +++ b/tests/old/examples/cutter/cutter.c @@ -0,0 +1,210 @@ +/* + * cutter.c - cut audio into pieces based on silence - thomas@apestaart.org + * + * construct a simple pipeline osssrc ! cutter ! disksink + * pause when necessary, change output + * + * Latest change : 03/06/2001 + * + * Version : 0.3 + */ + +#include +#include +#include +#include + +#define DEBUG + +gboolean playing = TRUE; +gboolean cut_start_signalled = FALSE; +gboolean cut_stop_signalled = FALSE; + +int id = 0; /* increment this for each new cut */ +GstElement *main_bin; +GstElement *audiosrc; +GstElement *queue; +GstElement *thread; +GstElement *cutter; +GstElement *disksink; +GstElement *encoder; +char buffer[255]; + +/* signal callbacks */ + +void cut_start (GstElement *element) +{ + g_print ("\nDEBUG: main: cut start\n"); + /* we should pause the pipeline, disconnect cutter and disksink + * create a new disksink to a real file, reconnect, and set to play + */ + g_print ("DEBUG: cut_start: main_bin pausing\n"); + gst_element_set_state (main_bin, GST_STATE_PAUSED); + g_print ("DEBUG: cut_start: main_bin paused\n"); + + { + long seconds; + struct tm *ct; + time (&seconds); + ct = localtime (&seconds); +// sprintf (buffer, "/news/incoming/audio/cutter.%06d.wav", id); + sprintf (buffer, "/news/incoming/audio/cutter.%04d%02d%02d.%02d%02d%02d.wav", + ct->tm_year + 1900, ct->tm_mon, ct->tm_mday, + ct->tm_hour, ct->tm_min, ct->tm_sec); + } + g_print ("DEBUG: cut_start: setting new location to %s\n", buffer); + gtk_object_set (G_OBJECT (disksink), "location", buffer, NULL); + gtk_object_set (G_OBJECT (disksink), "type", 4, NULL); + + gst_element_set_state (main_bin, GST_STATE_PLAYING); + ++id; + g_print ("start_cut_signal done\n"); + return; +} + +void cut_start_signal (GstElement *element) +{ + g_print ("\nDEBUG: main: cut start signal\n"); + cut_start_signalled = TRUE; +} + +void cut_stop (GstElement *element) +{ + g_print ("\nDEBUG: main: cut stop\n"); + /* we should pause the pipeline, disconnect disksink, create a fake disksink, + * connect to pipeline, and set to play + */ + g_print ("DEBUG: cut_stop: main_bin paused\n"); + gst_element_set_state (main_bin, GST_STATE_PAUSED); + + g_print ("DEBUG: cut_stop: setting new location\n"); + gtk_object_set (G_OBJECT (disksink), "location", "/dev/null", NULL); + + gst_element_set_state (main_bin, GST_STATE_PLAYING); + g_print ("stop_cut_signal done\n"); + return; +} + +void cut_stop_signal (GstElement *element) +{ + g_print ("\nDEBUG: main: cut stop signal\n"); + cut_stop_signalled = TRUE; +} + +int main (int argc, char *argv[]) +{ + //int i, j; + //gboolean done; + + //char buffer[20]; + + //output_channel_t *channel_out; + + GstElement *audiosrc; + + gst_init (&argc,&argv); +/* + if (argc == 1) + { + g_print("usage: %s <...>\n", argv[0]); + exit(-1); + }*/ + + /* set up input channel and main bin */ + + g_print ("creating main bin\n"); + /* create cutter */ + cutter = gst_elementfactory_make ("cutter", "cutter"); + + gtk_object_set (G_OBJECT (cutter), + "threshold_dB", -40.0, + "runlength", 0.5, + NULL); + + /* create an audio src */ + audiosrc = gst_elementfactory_make ("osssrc", "audio_src"); + + /* set params */ + + gtk_object_set (G_OBJECT (audiosrc), "frequency", 44100, + "channels", 1, + "format", 16, NULL); + + encoder = gst_elementfactory_make ("passthrough", "encoder"); + disksink = gst_elementfactory_make ("afsink", "disk_sink"); + + gtk_object_set (G_OBJECT (disksink), "location", "/dev/null", NULL); + + thread = gst_thread_new ("thread"); + g_assert (thread != NULL); + + /* create main bin */ + main_bin = gst_pipeline_new ("bin"); + g_assert (main_bin != NULL); + + queue = gst_elementfactory_make ("queue", "queue"); + + /* add elements to bin */ + gst_bin_add (GST_BIN (main_bin), audiosrc); + gst_bin_add (GST_BIN (thread), queue); + + gst_bin_add (GST_BIN (thread), cutter); + gst_bin_add (GST_BIN (thread), encoder); + gst_bin_add (GST_BIN (thread), disksink); + + /* connect adder and disksink */ + + gst_pad_connect (gst_element_get_pad (audiosrc, "src"), + gst_element_get_pad (queue, "sink")); + + gst_pad_connect (gst_element_get_pad (queue, "src"), + gst_element_get_pad (cutter, "sink")); + gst_pad_connect (gst_element_get_pad (cutter, "src"), + gst_element_get_pad (encoder, "sink")); + gst_pad_connect (gst_element_get_pad (encoder, "src"), + gst_element_get_pad (disksink, "sink")); + + gst_bin_add (GST_BIN (main_bin), thread); + + /* set signal handlers */ + g_print ("setting signal handlers\n"); + gtk_signal_connect (G_OBJECT(cutter), "cut_start", + GTK_SIGNAL_FUNC(cut_start_signal), NULL); + gtk_signal_connect (G_OBJECT(cutter), "cut_stop", + GTK_SIGNAL_FUNC(cut_stop_signal), NULL); + + /* start playing */ + g_print ("setting to play\n"); + gst_element_set_state (main_bin, GST_STATE_PLAYING); +/* + g_print ("setting thread to play\n"); + gst_element_set_state (GST_ELEMENT (thread), GST_STATE_PLAYING); +*/ + while (playing) + { +// g_print ("> "); + gst_bin_iterate (GST_BIN (main_bin)); +// g_print (" <"); + if (cut_start_signalled) + { + g_print ("\nDEBUG: main: cut_start_signalled true !\n"); + cut_start (cutter); + cut_start_signalled = FALSE; + } + if (cut_stop_signalled) + { + g_print ("\nDEBUG: main: cut_stop_signalled true !\n"); + cut_stop (cutter); + cut_stop_signalled = FALSE; + } + } + g_print ("we're done iterating.\n"); + /* stop the bin */ + + gst_element_set_state (main_bin, GST_STATE_NULL); + + gst_object_destroy (GST_OBJECT (disksink)); + gst_object_destroy (GST_OBJECT (main_bin)); + + exit(0); +} diff --git a/tests/old/examples/cutter/cutter.h b/tests/old/examples/cutter/cutter.h new file mode 100644 index 0000000000..f7ba2d6ca7 --- /dev/null +++ b/tests/old/examples/cutter/cutter.h @@ -0,0 +1,14 @@ +/* + * cutter.h header file + * thomas@apestaart.org + */ + +typedef struct +{ + GstElement *pipe; + GstElement *disksink; + GstElement *audiosink; + + char *location; + int channel_id; +} output_channel_t; diff --git a/tools/README b/tools/README index 5ec363fbed..6771d23c6e 100644 --- a/tools/README +++ b/tools/README @@ -8,22 +8,80 @@ feedback pipelines are the most complex. A simple commandline looks like: - ./launch disksrc demo.mp3 | mp3parse | mpg123 | osssink + gstreamer-launch disksrc location=music.mp3 ! mad ! osssink -A more complex pipeline looks like: +This plays an mp3 music file music.mp3 using libmad, and: - ./launch disksrc redpill.vob | css-descramble | private_stream_1.0| \ - (ac3parse | ac3dec | audioink-oss) video_0| (mpeg2dec | videosink) + gstreamer-launch disksrc location=music.mp3 ! mp3parse ! mpg123 ! osssink +Plays and mp3 music file using mpg123 +You can also stream files over http: + + gstreamer-launch httpsrc location=http://domain.com/music.mp3 ! mad ! osssink + +And using gnome-vfs you can do the same with: + + gstreamer-launch gnomevfssrc location=music.mp3 ! mad ! osssink + gstreamer-launch gnomevfssrc location=http://domain.com/music.mp3 ! mad ! osssink + +And too play the same song with gnome-vfs via smb: + + gstreamer-launch gnomevfssrc location=smb://computer/music.mp3 ! mad ! osssink + +Here we convert a Mp3 file into an Ogg Vorbis file: + + gstreamer-launch disksrc location=music.mp3 ! mad ! vorbisenc ! disksink location=music.ogg + +And then we can play that file with: + + gstreamer-launch disksrc location=music.ogg ! vorbisdec ! osssink + +Some other useful pipelines are.. +Plays wav files (currently there are no wav encoders): + + gstreamer-launch disksrc location=music.wav ! parsewav ! osssink + +Converts wav files into mp3 and ogg files: + + gstreamer-launch disksrc location=music.wav ! parsewav ! vorbisenc ! disksink location=music.ogg + gstreamer-launch disksrc location=music.wav ! parsewav ! mpegaudio ! disksink location=music.mp3 + +You can also use lame for mp3 encoding if you have it installed, it does a +much better job than mpegaudio. + +Rips all songs from cd and saves them into a mp3 file: + + gstreamer-launch cdparanoia ! mpegaudio ! disksink location=cd.mp3 + +You can toy around with gstreamer-inspect to discover the settings for +cdparanoia to rip individual tracks + +Record sound from your sound input and encode it into an ogg file: + + gstreamer-launch osssrc ! vorbisenc ! disksink location=input.ogg + +gstreamer-launch not only handles audio but video as well: +For mpeg1 files (video and audio streams respectively): + + gstreamer-launch disksrc location=video.mpg ! mpeg1parse video_00! queue ! { mp1videoparse ! mpeg_play ! sdlvideosink } + gstreamer-launch disksrc location=video.mpg ! mpeg1parse audio_00! queue ! { mad ! osssink } + +For mpeg2 files (video and audio streams respectively): + + gstreamer-launch disksrc location=video.mpeg ! mpeg2parse video_0! queue ! { mpeg2dec ! sdlvideosink } + gstreamer-launch disksrc location=video.mpeg ! mpeg2parse private_stream_1.0! queue ! { ac3dec ! osssink } + +Note: The types of audio streams in the mpeg files can vary! + gstreamer-complete ================== This is a simple utility which provides custom bash completion when -typing gstreamer-launch commands. +typing gstreamer-launch commands. -Simply run "gstreamer-compprep" to build the registry of completions, and -then put, in your .bashrc, +Simply run "gstreamer-compprep" as root to build the registry of completions, +and then put, in your .bashrc, "complete -C gstreamer-complete gstreamer-launch" (ensuring that gstreamer-complete is on your path). @@ -37,7 +95,8 @@ gstreamer-register This tool will perform an introspection on all available plugins and will create a registry file in /etc/gstreamer/reg.xml. Startup time will be much faster since the gstreamer core doesn't have to bring all the plugins -files into memory at startup. +files into memory at startup. As with gstreamer-compprep you need to run this +as root for it too work correctly. gstreamer-inspect diff --git a/tools/gstreamer-compprep.1 b/tools/gstreamer-compprep.1 index c1d62b9fb7..f671460323 100644 --- a/tools/gstreamer-compprep.1 +++ b/tools/gstreamer-compprep.1 @@ -1,29 +1,28 @@ -.TH GStreamer 1 "June 2001" -.SH NAME -gstreamer\-compprep - create the registry for gstreamer\-complete -.SH SYNOPSIS -.B compprep -.SH DESCRIPTION -.PP -\fIgstreamer\-compprep\fP is a utility to build the registry of gstreamer +.TH "gstreamer-compprep" "1" "0.2.0" "Richard Boulton" "GStreamer" +.SH "NAME" +gstreamer\-compprep \- create the registry for gstreamer\-complete +.SH "SYNOPSIS" +gstreamer\-compprep +.SH "DESCRIPTION" +.LP +\fIgstreamer\-compprep\fR is a utility to build the registry of gstreamer elements and their features to enable context sensitive tab completion for -\fIgstreamer\-launch\fP command\-lines to be performed by -\fIgstreamer\-complete\fP. -. +\fIgstreamer\-launch\fR command\-lines to be performed by +\fIgstreamer\-complete\fR. +.LP By default, the registry is stored in /etc/gstreamer/compreg.xml -. -.SH USAGE +.SH "USAGE" Whenever the available gstreamer plugins are modified, generate the registry of available plugins by running \fIgstreamer\-compprep\fP. -.SH FILES +.SH "FILES" .TP 8 /etc/gstreamer/compreg.xml Registry generated by \fIgstreamer\-compprep\fP and used by \fIgstreamer\-complete\fP. -.SH SEE ALSO +.SH "SEE ALSO" .BR gstreamer\-complete (1), .BR gstreamer\-lanuch (1), .BR gstreamer\-register (1), .BR gstreamer\-inspect (1), .BR gstreamer\-config (1) -.SH AUTHOR +.SH "AUTHOR" The GStreamer team at http://gstreamer.net/ diff --git a/tools/gstreamer-launch.c b/tools/gstreamer-launch.c index e9df116977..42da4f5a37 100644 --- a/tools/gstreamer-launch.c +++ b/tools/gstreamer-launch.c @@ -98,9 +98,21 @@ main(int argc, char *argv[]) char **argvn; gchar *cmdline; int i; + gboolean save_pipeline = FALSE; + gboolean run_pipeline = TRUE; + gchar *savefile = ""; gst_init (&argc, &argv); + if (argc >= 3 && !strcmp(argv[1], "-o")) { + save_pipeline = TRUE; + run_pipeline = FALSE; + savefile = argv[2]; + argv[2] = argv[0]; + argv+=2; + argc-=2; + } + launch_argc = argc; launch_argv = argv; @@ -132,19 +144,22 @@ main(int argc, char *argv[]) gst_parse_launch (cmdline, GST_BIN (pipeline)); - arg_search(GST_BIN(pipeline),"xid",xid_handler,NULL); + if (save_pipeline) { + xmlSaveFile (savefile, gst_xml_write (pipeline)); + } + if (run_pipeline) { + arg_search(GST_BIN(pipeline),"xid",xid_handler,NULL); -// xmlSaveFile("gstreamer-launch.gst",gst_xml_write(pipeline)); + fprintf(stderr,"RUNNING pipeline\n"); + gst_element_set_state (pipeline, GST_STATE_PLAYING); - fprintf(stderr,"RUNNING pipeline\n"); - gst_element_set_state (pipeline, GST_STATE_PLAYING); +// g_idle_add(idle_func,pipeline); +// g_main_loop_run (g_main_loop_new (NULL, FALSE)); + while (1) + gst_bin_iterate (GST_BIN (pipeline)); - //g_idle_add(idle_func,pipeline); - // g_main_loop_run (g_main_loop_new (NULL, FALSE)); - while (1) - gst_bin_iterate (GST_BIN (pipeline)); - - gst_element_set_state (pipeline, GST_STATE_NULL); + gst_element_set_state (pipeline, GST_STATE_NULL); + } return 0; }