Added dxerr8 and dxerr9 libraries.
diff --git a/DEVELOPERS-HINTS b/DEVELOPERS-HINTS index 82a2a33..9a9bbd8 100644 --- a/DEVELOPERS-HINTS +++ b/DEVELOPERS-HINTS
@@ -190,6 +190,8 @@ Support programs, libraries, etc: --------------------------------- + dlls/dxerr8/ - DirectX 8 error import lib + dlls/dxerr9/ - DirectX 9 error import lib dlls/dxguid/ - DirectX UUID import lib dlls/uuid/ - Windows-compatible UUID import lib documentation/ - some documentation
diff --git a/configure b/configure index d2ec533..8c4e3f5 100755 --- a/configure +++ b/configure
@@ -20075,7 +20075,7 @@ MAKE_PROG_RULES=programs/Makeprog.rules - ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/amstream/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/capi2032/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/ctl3d/Makefile dlls/d3d8/Makefile dlls/d3d9/Makefile dlls/d3dim/Makefile dlls/d3dx8/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lzexpand/Makefile dlls/mapi32/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/winemp3/Makefile dlls/msdmo/Makefile dlls/mshtml/Makefile dlls/msi/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvidc32/Makefile dlls/msvideo/Makefile dlls/mswsock/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/odbc32/Makefile dlls/ole32/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr/Makefile dlls/opengl32/Makefile dlls/psapi/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/rasapi32/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/secur32/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/shdocvw/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/sti/Makefile dlls/tapi32/Makefile dlls/ttydrv/Makefile dlls/twain/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/vdhcp.vxd/Makefile dlls/version/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/win32s/Makefile dlls/winaspi/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mcianim/Makefile dlls/winmm/mciavi/Makefile dlls/winmm/mcicda/Makefile dlls/winmm/mciseq/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/midimap/Makefile dlls/winmm/tests/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls/Makefile dlls/winsock/Makefile dlls/winsock/tests/Makefile dlls/winspool/Makefile dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wow32/Makefile dlls/wsock32/Makefile dlls/x11drv/Makefile documentation/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/expand/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile" + ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/amstream/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/capi2032/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/ctl3d/Makefile dlls/d3d8/Makefile dlls/d3d9/Makefile dlls/d3dim/Makefile dlls/d3dx8/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lzexpand/Makefile dlls/mapi32/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/winemp3/Makefile dlls/msdmo/Makefile dlls/mshtml/Makefile dlls/msi/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvidc32/Makefile dlls/msvideo/Makefile dlls/mswsock/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/odbc32/Makefile dlls/ole32/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr/Makefile dlls/opengl32/Makefile dlls/psapi/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/rasapi32/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/secur32/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/shdocvw/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/sti/Makefile dlls/tapi32/Makefile dlls/ttydrv/Makefile dlls/twain/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/vdhcp.vxd/Makefile dlls/version/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/win32s/Makefile dlls/winaspi/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mcianim/Makefile dlls/winmm/mciavi/Makefile dlls/winmm/mcicda/Makefile dlls/winmm/mciseq/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/midimap/Makefile dlls/winmm/tests/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls/Makefile dlls/winsock/Makefile dlls/winsock/tests/Makefile dlls/winspool/Makefile dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wow32/Makefile dlls/wsock32/Makefile dlls/x11drv/Makefile documentation/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/expand/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile" cat >confcache <<\_ACEOF @@ -20653,6 +20653,8 @@ "dlls/dsound/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/dsound/Makefile" ;; "dlls/dsound/tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/dsound/tests/Makefile" ;; "dlls/dswave/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/dswave/Makefile" ;; + "dlls/dxerr8/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/dxerr8/Makefile" ;; + "dlls/dxerr9/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/dxerr9/Makefile" ;; "dlls/dxguid/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/dxguid/Makefile" ;; "dlls/gdi/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/gdi/Makefile" ;; "dlls/gdi/tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlls/gdi/tests/Makefile" ;;
diff --git a/configure.ac b/configure.ac index 996a3d7..4630e1a 100644 --- a/configure.ac +++ b/configure.ac
@@ -1530,6 +1530,8 @@ dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile +dlls/dxerr8/Makefile +dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile
diff --git a/dlls/Makefile.in b/dlls/Makefile.in index c28f3cc..92ad41e 100644 --- a/dlls/Makefile.in +++ b/dlls/Makefile.in
@@ -156,6 +156,8 @@ d3d9 \ d3dx8 \ ddraw \ + dxerr8 \ + dxerr9 \ dxguid \ glu32 \ glut32 \ @@ -267,6 +269,8 @@ iphlpapi.dll$(DLLEXT) \ joystick.drv$(DLLEXT) \ kernel32.dll$(DLLEXT) \ + libdxerr8.a \ + libdxerr9.a \ libdxguid.a \ libuuid.a \ lz32.dll$(DLLEXT) \ @@ -876,6 +880,12 @@ x11drv.dll$(DLLEXT): x11drv/x11drv.dll$(DLLEXT) $(RM) $@ && $(LN_S) x11drv/x11drv.dll$(DLLEXT) $@ +libdxerr8.a: dxerr8/libdxerr8.a + $(RM) $@ && $(LN_S) dxerr8/libdxerr8.a $@ + +libdxerr9.a: dxerr9/libdxerr9.a + $(RM) $@ && $(LN_S) dxerr9/libdxerr9.a $@ + libdxguid.a: dxguid/libdxguid.a $(RM) $@ && $(LN_S) dxguid/libdxguid.a $@ @@ -1003,6 +1013,8 @@ ALL_IMPORT_LIBS = \ $(IMPORT_LIBS:%=%.$(IMPLIBEXT)) \ + libdxerr8.a \ + libdxerr9.a \ libdxguid.a \ libuuid.a @@ -1838,6 +1850,8 @@ winsock/ws2_32.dll$(DLLEXT): winsock wsock32/wsock32.dll$(DLLEXT): wsock32 x11drv/x11drv.dll$(DLLEXT): x11drv +dxerr8/libdxerr8.a: dxerr8 +dxerr9/libdxerr9.a: dxerr9 dxguid/libdxguid.a: dxguid uuid/libuuid.a: uuid
diff --git a/dlls/dxerr8/.cvsignore b/dlls/dxerr8/.cvsignore new file mode 100644 index 0000000..9dd8dd4 --- /dev/null +++ b/dlls/dxerr8/.cvsignore
@@ -0,0 +1,2 @@ +Makefile +libdxerr8.a.dbg.c
diff --git a/dlls/dxerr8/Makefile.in b/dlls/dxerr8/Makefile.in new file mode 100644 index 0000000..8a12034 --- /dev/null +++ b/dlls/dxerr8/Makefile.in
@@ -0,0 +1,29 @@ +DEFS = -D__WINESRC__ +DLLFLAGS = @DLLFLAGS@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = libdxerr8.a + +C_SRCS = \ + dxerr8.c + +EXTRA_OBJS = $(MODULE).dbg.o + +all: $(MODULE) + +@MAKE_RULES@ + +$(MODULE): $(OBJS) Makefile.in + $(RM) $@ + $(AR) $@ $(OBJS) + $(RANLIB) $@ + +man: + +doc-html: + +doc-sgml: + +### Dependencies:
diff --git a/dlls/dxerr8/dxerr8.c b/dlls/dxerr8/dxerr8.c new file mode 100644 index 0000000..d97d611 --- /dev/null +++ b/dlls/dxerr8/dxerr8.c
@@ -0,0 +1,157 @@ +/* + * DirectX 8 error routines + * + * Copyright 2004 Robert Reif + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser 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 + */ + +/* + * TODO: + * Add error codes for D3D8, D3DX8, DDRAW, DPLAY8, DMUSIC, DINPUT and DSHOW. + * Sort list for faster lookup. + */ + +#include <stdarg.h> +#include <stdio.h> + +#define COM_NO_WINDOWS_H +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winnls.h" + +#include "mmsystem.h" +#include "dsound.h" + +#include "dxerr8.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(dxerr); + +typedef struct { + HRESULT hr; + const CHAR* resultA; + const WCHAR* resultW; + const CHAR* descriptionA; + const WCHAR* descriptionW; +} error_info; + +#include "errors.h" + +const char * WINAPI DXGetErrorString8A(HRESULT hr) +{ + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) + return info[i].resultA; + } + + return "Unknown"; +} + +const WCHAR * WINAPI DXGetErrorString8W(HRESULT hr) +{ + static const WCHAR unknown[] = { 'U', 'n', 'k', 'n', 'o', 'w', 'n', 0 }; + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) { + return info[i].resultW; + } + } + + return unknown; +} + +const char * WINAPI DXGetErrorDescription8A(HRESULT hr) +{ + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) + return info[i].descriptionA; + } + + return "n/a"; +} + +const WCHAR * WINAPI DXGetErrorDescription8W(HRESULT hr) +{ + static const WCHAR na[] = { 'n', '/', 'a', 0 }; + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) { + return info[i].descriptionW; + } + } + + return na; +} + +HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox) +{ + char msg[1024]; + TRACE("(%p,%ld,0x%08lx,%p,%d)\n", strFile, dwLine, hr, strMsg, bPopMsgBox); + + if (bPopMsgBox) { + snprintf(msg, sizeof(msg), "File: %s\nLine: %ld\nError Code: %s (0x%08lx)\nCalling: %s", + strFile, dwLine, DXGetErrorString8A(hr), hr, strMsg); + MessageBoxA(0, msg, "Unexpected error encountered", MB_OK|MB_ICONERROR); + } else { + snprintf(msg, sizeof(msg), "%s(%ld): %s (hr=%s (0x%08lx))", strFile, + dwLine, strMsg, DXGetErrorString8A(hr), hr); + OutputDebugStringA(msg); + } + + return hr; +} + +HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox) +{ + WCHAR msg[1024]; + TRACE("(%p,%ld,0x%08lx,%p,%d)\n", strFile, dwLine, hr, strMsg, bPopMsgBox); + + if (bPopMsgBox) { + WCHAR format[] = { 'F','i','l','e',':',' ','%','s','\\','n','L','i','n', + 'e',':',' ','%','l','d','\\','n','E','r','r','o','r',' ','C','o', + 'd','e',':',' ','%','s',' ','(','0','x','%','0','8','l','x',')', + '\\','n','C','a','l','l','i','n','g',':',' ','%','s',0 }; + WCHAR caption[] = { 'U','n','e','x','p','e','c','t','e','d',' ','e','r', + 'r','o','r',' ','e','n','c','o','u','n','t','e','r','e','d',0 }; + /* FIXME: should use wsnprintf */ + wsprintfW(msg, format, strFile, dwLine, + DXGetErrorString8W(hr), hr, strMsg); + MessageBoxW(0, msg, caption, MB_OK|MB_ICONERROR); + } else { + WCHAR format[] = { '%','s','(','%','l','d',')',':',' ','%','s',' ','(', + 'h','r','=','%','s',' ','(','0','x','%','0','8','l','x',')',')',' ', + 0 }; + /* FIXME: should use wsnprintf */ + wsprintfW(msg, format, strFile, dwLine, strMsg, + DXGetErrorString8W(hr), hr); + OutputDebugStringW(msg); + } + + return hr; +}
diff --git a/dlls/dxerr8/errors.awk b/dlls/dxerr8/errors.awk new file mode 100644 index 0000000..f983367 --- /dev/null +++ b/dlls/dxerr8/errors.awk
@@ -0,0 +1,65 @@ +BEGIN { + print "/* Machine generated. Do not edit. */" + print "" + lines = 0 +} +{ + split($0, array, FS) + + if (NF > 0 && length(array[1]) > 0) { + lines++ + + # save the first word is the names array + names[lines] = array[1] + + # create the WCHAR version of the name + printf "static const WCHAR name%dW[] = { ", lines + i = 1 + len = length(array[1]) + 1 + while (i < len) { + printf "'%s',", substr(array[1],i,1) + i++ + } + print "0 };" + + # create the CHAR version of the description + printf "static const CHAR description%dA[] = \"", lines + word = 2 + while (word < (NF + 1)) { + printf "%s", array[word] + if (word < NF ) + printf " " + word++ + } + print "\";" + + # create the WCHAR version of the description + printf "static const WCHAR description%dW[] = { ", lines + word = 2 + while (word < (NF + 1)) { + i = 1 + len = length(array[word]) + 1 + while (i < len) { + printf "'%s',", substr(array[word],i,1) + i++ + } + if (word < NF ) + printf "' '," + word++ + } + print "0 };" + } +} +END { + print "" + print "static const error_info info[] = {" + + i = 1 + while ( i <= lines) { + printf " { %s, \"%s\", name%dW, description%dA, description%dW },\n", + names[i], names[i], i, i,i + i++ + } + + print "};" +}
diff --git a/dlls/dxerr8/errors.dat b/dlls/dxerr8/errors.dat new file mode 100644 index 0000000..20ad527 --- /dev/null +++ b/dlls/dxerr8/errors.dat
@@ -0,0 +1,26 @@ +S_OK Succeeded +DS_NO_VIRTUALIZATION Succeeded but with different 3D algorithn +DS_INCOMPLETE Succeeded but not with all effects +DSERR_ALLOCATED Already allocated +DSERR_CONTROLUNAVAIL Control unavailable +E_INVALIDARG Invalid argument +DSERR_INVALIDCALL Invalid call +E_FAIL Undetermined error +DSERR_PRIOLEVELNEEDED Insufficiant priority level +E_OUTOFMEMORY Out of memory +DSERR_BADFORMAT Bad WAVE format +E_NOTIMPL Not implemented +DSERR_NODRIVER No driver +DSERR_ALREADYINITIALIZED Already initialized +CLASS_E_NOAGGREGATION No aggregation +DSERR_BUFFERLOST Buffer lost +DSERR_OTHERAPPHASPRIO Other app has higher priority +DSERR_UNINITIALIZED Not initialized +E_NOINTERFACE No interface +E_ACCESSDENIED Access denied +DSERR_BUFFERTOOSMALL Buffer too small +DSERR_DS8_REQUIRED Direct Sound 8 required +DSERR_SENDLOOP Circular loop +DSERR_BADSENDBUFFERGUID Bad send buffer GUID +DSERR_OBJECTNOTFOUND Object not found +DSERR_FXUNAVAILABLE Effect not available
diff --git a/dlls/dxerr8/errors.h b/dlls/dxerr8/errors.h new file mode 100644 index 0000000..c8eb81b --- /dev/null +++ b/dlls/dxerr8/errors.h
@@ -0,0 +1,109 @@ +/* Machine generated. Do not edit. */ + +static const WCHAR name1W[] = { 'S','_','O','K',0 }; +static const CHAR description1A[] = "Succeeded"; +static const WCHAR description1W[] = { 'S','u','c','c','e','e','d','e','d',0 }; +static const WCHAR name2W[] = { 'D','S','_','N','O','_','V','I','R','T','U','A','L','I','Z','A','T','I','O','N',0 }; +static const CHAR description2A[] = "Succeeded but with different 3D algorithn"; +static const WCHAR description2W[] = { 'S','u','c','c','e','e','d','e','d',' ','b','u','t',' ','w','i','t','h',' ','d','i','f','f','e','r','e','n','t',' ','3','D',' ','a','l','g','o','r','i','t','h','n',0 }; +static const WCHAR name3W[] = { 'D','S','_','I','N','C','O','M','P','L','E','T','E',0 }; +static const CHAR description3A[] = "Succeeded but not with all effects"; +static const WCHAR description3W[] = { 'S','u','c','c','e','e','d','e','d',' ','b','u','t',' ','n','o','t',' ','w','i','t','h',' ','a','l','l',' ','e','f','f','e','c','t','s',0 }; +static const WCHAR name4W[] = { 'D','S','E','R','R','_','A','L','L','O','C','A','T','E','D',0 }; +static const CHAR description4A[] = "Already allocated"; +static const WCHAR description4W[] = { 'A','l','r','e','a','d','y',' ','a','l','l','o','c','a','t','e','d',0 }; +static const WCHAR name5W[] = { 'D','S','E','R','R','_','C','O','N','T','R','O','L','U','N','A','V','A','I','L',0 }; +static const CHAR description5A[] = "Control unavailable"; +static const WCHAR description5W[] = { 'C','o','n','t','r','o','l',' ','u','n','a','v','a','i','l','a','b','l','e',0 }; +static const WCHAR name6W[] = { 'E','_','I','N','V','A','L','I','D','A','R','G',0 }; +static const CHAR description6A[] = "Invalid argument"; +static const WCHAR description6W[] = { 'I','n','v','a','l','i','d',' ','a','r','g','u','m','e','n','t',0 }; +static const WCHAR name7W[] = { 'D','S','E','R','R','_','I','N','V','A','L','I','D','C','A','L','L',0 }; +static const CHAR description7A[] = "Invalid call"; +static const WCHAR description7W[] = { 'I','n','v','a','l','i','d',' ','c','a','l','l',0 }; +static const WCHAR name8W[] = { 'E','_','F','A','I','L',0 }; +static const CHAR description8A[] = "Undetermined error"; +static const WCHAR description8W[] = { 'U','n','d','e','t','e','r','m','i','n','e','d',' ','e','r','r','o','r',0 }; +static const WCHAR name9W[] = { 'D','S','E','R','R','_','P','R','I','O','L','E','V','E','L','N','E','E','D','E','D',0 }; +static const CHAR description9A[] = "Insufficiant priority level"; +static const WCHAR description9W[] = { 'I','n','s','u','f','f','i','c','i','a','n','t',' ','p','r','i','o','r','i','t','y',' ','l','e','v','e','l',0 }; +static const WCHAR name10W[] = { 'E','_','O','U','T','O','F','M','E','M','O','R','Y',0 }; +static const CHAR description10A[] = "Out of memory"; +static const WCHAR description10W[] = { 'O','u','t',' ','o','f',' ','m','e','m','o','r','y',0 }; +static const WCHAR name11W[] = { 'D','S','E','R','R','_','B','A','D','F','O','R','M','A','T',0 }; +static const CHAR description11A[] = "Bad WAVE format"; +static const WCHAR description11W[] = { 'B','a','d',' ','W','A','V','E',' ','f','o','r','m','a','t',0 }; +static const WCHAR name12W[] = { 'E','_','N','O','T','I','M','P','L',0 }; +static const CHAR description12A[] = "Not implemented"; +static const WCHAR description12W[] = { 'N','o','t',' ','i','m','p','l','e','m','e','n','t','e','d',0 }; +static const WCHAR name13W[] = { 'D','S','E','R','R','_','N','O','D','R','I','V','E','R',0 }; +static const CHAR description13A[] = "No driver"; +static const WCHAR description13W[] = { 'N','o',' ','d','r','i','v','e','r',0 }; +static const WCHAR name14W[] = { 'D','S','E','R','R','_','A','L','R','E','A','D','Y','I','N','I','T','I','A','L','I','Z','E','D',0 }; +static const CHAR description14A[] = "Already initialized"; +static const WCHAR description14W[] = { 'A','l','r','e','a','d','y',' ','i','n','i','t','i','a','l','i','z','e','d',0 }; +static const WCHAR name15W[] = { 'C','L','A','S','S','_','E','_','N','O','A','G','G','R','E','G','A','T','I','O','N',0 }; +static const CHAR description15A[] = "No aggregation"; +static const WCHAR description15W[] = { 'N','o',' ','a','g','g','r','e','g','a','t','i','o','n',0 }; +static const WCHAR name16W[] = { 'D','S','E','R','R','_','B','U','F','F','E','R','L','O','S','T',0 }; +static const CHAR description16A[] = "Buffer lost"; +static const WCHAR description16W[] = { 'B','u','f','f','e','r',' ','l','o','s','t',0 }; +static const WCHAR name17W[] = { 'D','S','E','R','R','_','O','T','H','E','R','A','P','P','H','A','S','P','R','I','O',0 }; +static const CHAR description17A[] = "Other app has higher priority"; +static const WCHAR description17W[] = { 'O','t','h','e','r',' ','a','p','p',' ','h','a','s',' ','h','i','g','h','e','r',' ','p','r','i','o','r','i','t','y',0 }; +static const WCHAR name18W[] = { 'D','S','E','R','R','_','U','N','I','N','I','T','I','A','L','I','Z','E','D',0 }; +static const CHAR description18A[] = "Not initialized"; +static const WCHAR description18W[] = { 'N','o','t',' ','i','n','i','t','i','a','l','i','z','e','d',0 }; +static const WCHAR name19W[] = { 'E','_','N','O','I','N','T','E','R','F','A','C','E',0 }; +static const CHAR description19A[] = "No interface"; +static const WCHAR description19W[] = { 'N','o',' ','i','n','t','e','r','f','a','c','e',0 }; +static const WCHAR name20W[] = { 'E','_','A','C','C','E','S','S','D','E','N','I','E','D',0 }; +static const CHAR description20A[] = "Access denied"; +static const WCHAR description20W[] = { 'A','c','c','e','s','s',' ','d','e','n','i','e','d',0 }; +static const WCHAR name21W[] = { 'D','S','E','R','R','_','B','U','F','F','E','R','T','O','O','S','M','A','L','L',0 }; +static const CHAR description21A[] = "Buffer too small"; +static const WCHAR description21W[] = { 'B','u','f','f','e','r',' ','t','o','o',' ','s','m','a','l','l',0 }; +static const WCHAR name22W[] = { 'D','S','E','R','R','_','D','S','8','_','R','E','Q','U','I','R','E','D',0 }; +static const CHAR description22A[] = "Direct Sound 8 required"; +static const WCHAR description22W[] = { 'D','i','r','e','c','t',' ','S','o','u','n','d',' ','8',' ','r','e','q','u','i','r','e','d',0 }; +static const WCHAR name23W[] = { 'D','S','E','R','R','_','S','E','N','D','L','O','O','P',0 }; +static const CHAR description23A[] = "Circular loop"; +static const WCHAR description23W[] = { 'C','i','r','c','u','l','a','r',' ','l','o','o','p',0 }; +static const WCHAR name24W[] = { 'D','S','E','R','R','_','B','A','D','S','E','N','D','B','U','F','F','E','R','G','U','I','D',0 }; +static const CHAR description24A[] = "Bad send buffer GUID"; +static const WCHAR description24W[] = { 'B','a','d',' ','s','e','n','d',' ','b','u','f','f','e','r',' ','G','U','I','D',0 }; +static const WCHAR name25W[] = { 'D','S','E','R','R','_','O','B','J','E','C','T','N','O','T','F','O','U','N','D',0 }; +static const CHAR description25A[] = "Object not found"; +static const WCHAR description25W[] = { 'O','b','j','e','c','t',' ','n','o','t',' ','f','o','u','n','d',0 }; +static const WCHAR name26W[] = { 'D','S','E','R','R','_','F','X','U','N','A','V','A','I','L','A','B','L','E',0 }; +static const CHAR description26A[] = "Effect not available"; +static const WCHAR description26W[] = { 'E','f','f','e','c','t',' ','n','o','t',' ','a','v','a','i','l','a','b','l','e',0 }; + +static const error_info info[] = { + { S_OK, "S_OK", name1W, description1A, description1W }, + { DS_NO_VIRTUALIZATION, "DS_NO_VIRTUALIZATION", name2W, description2A, description2W }, + { DS_INCOMPLETE, "DS_INCOMPLETE", name3W, description3A, description3W }, + { DSERR_ALLOCATED, "DSERR_ALLOCATED", name4W, description4A, description4W }, + { DSERR_CONTROLUNAVAIL, "DSERR_CONTROLUNAVAIL", name5W, description5A, description5W }, + { E_INVALIDARG, "E_INVALIDARG", name6W, description6A, description6W }, + { DSERR_INVALIDCALL, "DSERR_INVALIDCALL", name7W, description7A, description7W }, + { E_FAIL, "E_FAIL", name8W, description8A, description8W }, + { DSERR_PRIOLEVELNEEDED, "DSERR_PRIOLEVELNEEDED", name9W, description9A, description9W }, + { E_OUTOFMEMORY, "E_OUTOFMEMORY", name10W, description10A, description10W }, + { DSERR_BADFORMAT, "DSERR_BADFORMAT", name11W, description11A, description11W }, + { E_NOTIMPL, "E_NOTIMPL", name12W, description12A, description12W }, + { DSERR_NODRIVER, "DSERR_NODRIVER", name13W, description13A, description13W }, + { DSERR_ALREADYINITIALIZED, "DSERR_ALREADYINITIALIZED", name14W, description14A, description14W }, + { CLASS_E_NOAGGREGATION, "CLASS_E_NOAGGREGATION", name15W, description15A, description15W }, + { DSERR_BUFFERLOST, "DSERR_BUFFERLOST", name16W, description16A, description16W }, + { DSERR_OTHERAPPHASPRIO, "DSERR_OTHERAPPHASPRIO", name17W, description17A, description17W }, + { DSERR_UNINITIALIZED, "DSERR_UNINITIALIZED", name18W, description18A, description18W }, + { E_NOINTERFACE, "E_NOINTERFACE", name19W, description19A, description19W }, + { E_ACCESSDENIED, "E_ACCESSDENIED", name20W, description20A, description20W }, + { DSERR_BUFFERTOOSMALL, "DSERR_BUFFERTOOSMALL", name21W, description21A, description21W }, + { DSERR_DS8_REQUIRED, "DSERR_DS8_REQUIRED", name22W, description22A, description22W }, + { DSERR_SENDLOOP, "DSERR_SENDLOOP", name23W, description23A, description23W }, + { DSERR_BADSENDBUFFERGUID, "DSERR_BADSENDBUFFERGUID", name24W, description24A, description24W }, + { DSERR_OBJECTNOTFOUND, "DSERR_OBJECTNOTFOUND", name25W, description25A, description25W }, + { DSERR_FXUNAVAILABLE, "DSERR_FXUNAVAILABLE", name26W, description26A, description26W }, +};
diff --git a/dlls/dxerr8/make_errors b/dlls/dxerr8/make_errors new file mode 100755 index 0000000..75e4b6b --- /dev/null +++ b/dlls/dxerr8/make_errors
@@ -0,0 +1,2 @@ +#!/bin/sh +exec awk -f errors.awk < errors.dat > errors.h
diff --git a/dlls/dxerr9/.cvsignore b/dlls/dxerr9/.cvsignore new file mode 100644 index 0000000..cdb801f --- /dev/null +++ b/dlls/dxerr9/.cvsignore
@@ -0,0 +1,2 @@ +Makefile +libdxerr9.a.dbg.c
diff --git a/dlls/dxerr9/Makefile.in b/dlls/dxerr9/Makefile.in new file mode 100644 index 0000000..16771c9 --- /dev/null +++ b/dlls/dxerr9/Makefile.in
@@ -0,0 +1,29 @@ +DEFS = -D__WINESRC__ +DLLFLAGS = @DLLFLAGS@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = libdxerr9.a + +C_SRCS = \ + dxerr9.c + +EXTRA_OBJS = $(MODULE).dbg.o + +all: $(MODULE) + +@MAKE_RULES@ + +$(MODULE): $(OBJS) Makefile.in + $(RM) $@ + $(AR) $@ $(OBJS) + $(RANLIB) $@ + +man: + +doc-html: + +doc-sgml: + +### Dependencies:
diff --git a/dlls/dxerr9/dxerr9.c b/dlls/dxerr9/dxerr9.c new file mode 100644 index 0000000..6bfee44 --- /dev/null +++ b/dlls/dxerr9/dxerr9.c
@@ -0,0 +1,157 @@ +/* + * DirectX 9 error routines + * + * Copyright 2004 Robert Reif + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser 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 + */ + +/* + * TODO: + * Add error codes for D3D9, D3DX9, D3D8, D3DX8, DDRAW, DPLAY8, DMUSIC, DINPUT and DSHOW. + * Sort list for faster lookup. + */ + +#include <stdarg.h> +#include <stdio.h> + +#define COM_NO_WINDOWS_H +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winnls.h" + +#include "mmsystem.h" +#include "dsound.h" + +#include "dxerr9.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(dxerr); + +typedef struct { + HRESULT hr; + const CHAR* resultA; + const WCHAR* resultW; + const CHAR* descriptionA; + const WCHAR* descriptionW; +} error_info; + +#include "errors.h" + +const char * WINAPI DXGetErrorString9A(HRESULT hr) +{ + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) + return info[i].resultA; + } + + return "Unknown"; +} + +const WCHAR * WINAPI DXGetErrorString9W(HRESULT hr) +{ + static const WCHAR unknown[] = { 'U', 'n', 'k', 'n', 'o', 'w', 'n', 0 }; + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) { + return info[i].resultW; + } + } + + return unknown; +} + +const char * WINAPI DXGetErrorDescription9A(HRESULT hr) +{ + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) + return info[i].descriptionA; + } + + return "n/a"; +} + +const WCHAR * WINAPI DXGetErrorDescription9W(HRESULT hr) +{ + static const WCHAR na[] = { 'n', '/', 'a', 0 }; + unsigned int i; + TRACE("(0x%08lx)\n", hr); + + for (i = 0; i < sizeof(info)/sizeof(info[0]); i++) { + if (hr == info[i].hr) { + return info[i].descriptionW; + } + } + + return na; +} + +HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox) +{ + char msg[1024]; + TRACE("(%p,%ld,0x%08lx,%p,%d)\n", strFile, dwLine, hr, strMsg, bPopMsgBox); + + if (bPopMsgBox) { + snprintf(msg, sizeof(msg), "File: %s\nLine: %ld\nError Code: %s (0x%08lx)\nCalling: %s", + strFile, dwLine, DXGetErrorString9A(hr), hr, strMsg); + MessageBoxA(0, msg, "Unexpected error encountered", MB_OK|MB_ICONERROR); + } else { + snprintf(msg, sizeof(msg), "%s(%ld): %s (hr=%s (0x%08lx))", strFile, + dwLine, strMsg, DXGetErrorString9A(hr), hr); + OutputDebugStringA(msg); + } + + return hr; +} + +HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox) +{ + WCHAR msg[1024]; + TRACE("(%p,%ld,0x%08lx,%p,%d)\n", strFile, dwLine, hr, strMsg, bPopMsgBox); + + if (bPopMsgBox) { + WCHAR format[] = { 'F','i','l','e',':',' ','%','s','\\','n','L','i','n', + 'e',':',' ','%','l','d','\\','n','E','r','r','o','r',' ','C','o', + 'd','e',':',' ','%','s',' ','(','0','x','%','0','8','l','x',')', + '\\','n','C','a','l','l','i','n','g',':',' ','%','s',0 }; + WCHAR caption[] = { 'U','n','e','x','p','e','c','t','e','d',' ','e','r', + 'r','o','r',' ','e','n','c','o','u','n','t','e','r','e','d',0 }; + /* FIXME: should use wsnprintf */ + wsprintfW(msg, format, strFile, dwLine, + DXGetErrorString9W(hr), hr, strMsg); + MessageBoxW(0, msg, caption, MB_OK|MB_ICONERROR); + } else { + WCHAR format[] = { '%','s','(','%','l','d',')',':',' ','%','s',' ','(', + 'h','r','=','%','s',' ','(','0','x','%','0','8','l','x',')',')',' ', + 0 }; + /* FIXME: should use wsnprintf */ + wsprintfW(msg, format, strFile, dwLine, strMsg, + DXGetErrorString9W(hr), hr); + OutputDebugStringW(msg); + } + + return hr; +}
diff --git a/dlls/dxerr9/errors.awk b/dlls/dxerr9/errors.awk new file mode 100644 index 0000000..f983367 --- /dev/null +++ b/dlls/dxerr9/errors.awk
@@ -0,0 +1,65 @@ +BEGIN { + print "/* Machine generated. Do not edit. */" + print "" + lines = 0 +} +{ + split($0, array, FS) + + if (NF > 0 && length(array[1]) > 0) { + lines++ + + # save the first word is the names array + names[lines] = array[1] + + # create the WCHAR version of the name + printf "static const WCHAR name%dW[] = { ", lines + i = 1 + len = length(array[1]) + 1 + while (i < len) { + printf "'%s',", substr(array[1],i,1) + i++ + } + print "0 };" + + # create the CHAR version of the description + printf "static const CHAR description%dA[] = \"", lines + word = 2 + while (word < (NF + 1)) { + printf "%s", array[word] + if (word < NF ) + printf " " + word++ + } + print "\";" + + # create the WCHAR version of the description + printf "static const WCHAR description%dW[] = { ", lines + word = 2 + while (word < (NF + 1)) { + i = 1 + len = length(array[word]) + 1 + while (i < len) { + printf "'%s',", substr(array[word],i,1) + i++ + } + if (word < NF ) + printf "' '," + word++ + } + print "0 };" + } +} +END { + print "" + print "static const error_info info[] = {" + + i = 1 + while ( i <= lines) { + printf " { %s, \"%s\", name%dW, description%dA, description%dW },\n", + names[i], names[i], i, i,i + i++ + } + + print "};" +}
diff --git a/dlls/dxerr9/errors.dat b/dlls/dxerr9/errors.dat new file mode 100644 index 0000000..0421539 --- /dev/null +++ b/dlls/dxerr9/errors.dat
@@ -0,0 +1,25 @@ +S_OK Succeeded +DS_NO_VIRTUALIZATION Succeeded but with different 3D algorithn +DSERR_ALLOCATED Already allocated +DSERR_CONTROLUNAVAIL Control unavailable +E_INVALIDARG Invalid argument +DSERR_INVALIDCALL Invalid call +E_FAIL Undetermined error +DSERR_PRIOLEVELNEEDED Insufficiant priority level +E_OUTOFMEMORY Out of memory +DSERR_BADFORMAT Bad WAVE format +E_NOTIMPL Not implemented +DSERR_NODRIVER No driver +DSERR_ALREADYINITIALIZED Already initialized +CLASS_E_NOAGGREGATION No aggregation +DSERR_BUFFERLOST Buffer lost +DSERR_OTHERAPPHASPRIO Other app has higher priority +DSERR_UNINITIALIZED Not initialized +E_NOINTERFACE No interface +E_ACCESSDENIED Access denied +DSERR_BUFFERTOOSMALL Buffer too small +DSERR_DS8_REQUIRED Direct Sound 8 required +DSERR_SENDLOOP Circular loop +DSERR_BADSENDBUFFERGUID Bad send buffer GUID +DSERR_OBJECTNOTFOUND Object not found +DSERR_FXUNAVAILABLE Effect not available
diff --git a/dlls/dxerr9/errors.h b/dlls/dxerr9/errors.h new file mode 100644 index 0000000..2d7ba2b --- /dev/null +++ b/dlls/dxerr9/errors.h
@@ -0,0 +1,105 @@ +/* Machine generated. Do not edit. */ + +static const WCHAR name1W[] = { 'S','_','O','K',0 }; +static const CHAR description1A[] = "Succeeded"; +static const WCHAR description1W[] = { 'S','u','c','c','e','e','d','e','d',0 }; +static const WCHAR name2W[] = { 'D','S','_','N','O','_','V','I','R','T','U','A','L','I','Z','A','T','I','O','N',0 }; +static const CHAR description2A[] = "Succeeded but with different 3D algorithn"; +static const WCHAR description2W[] = { 'S','u','c','c','e','e','d','e','d',' ','b','u','t',' ','w','i','t','h',' ','d','i','f','f','e','r','e','n','t',' ','3','D',' ','a','l','g','o','r','i','t','h','n',0 }; +static const WCHAR name3W[] = { 'D','S','E','R','R','_','A','L','L','O','C','A','T','E','D',0 }; +static const CHAR description3A[] = "Already allocated"; +static const WCHAR description3W[] = { 'A','l','r','e','a','d','y',' ','a','l','l','o','c','a','t','e','d',0 }; +static const WCHAR name4W[] = { 'D','S','E','R','R','_','C','O','N','T','R','O','L','U','N','A','V','A','I','L',0 }; +static const CHAR description4A[] = "Control unavailable"; +static const WCHAR description4W[] = { 'C','o','n','t','r','o','l',' ','u','n','a','v','a','i','l','a','b','l','e',0 }; +static const WCHAR name5W[] = { 'E','_','I','N','V','A','L','I','D','A','R','G',0 }; +static const CHAR description5A[] = "Invalid argument"; +static const WCHAR description5W[] = { 'I','n','v','a','l','i','d',' ','a','r','g','u','m','e','n','t',0 }; +static const WCHAR name6W[] = { 'D','S','E','R','R','_','I','N','V','A','L','I','D','C','A','L','L',0 }; +static const CHAR description6A[] = "Invalid call"; +static const WCHAR description6W[] = { 'I','n','v','a','l','i','d',' ','c','a','l','l',0 }; +static const WCHAR name7W[] = { 'E','_','F','A','I','L',0 }; +static const CHAR description7A[] = "Undetermined error"; +static const WCHAR description7W[] = { 'U','n','d','e','t','e','r','m','i','n','e','d',' ','e','r','r','o','r',0 }; +static const WCHAR name8W[] = { 'D','S','E','R','R','_','P','R','I','O','L','E','V','E','L','N','E','E','D','E','D',0 }; +static const CHAR description8A[] = "Insufficiant priority level"; +static const WCHAR description8W[] = { 'I','n','s','u','f','f','i','c','i','a','n','t',' ','p','r','i','o','r','i','t','y',' ','l','e','v','e','l',0 }; +static const WCHAR name9W[] = { 'E','_','O','U','T','O','F','M','E','M','O','R','Y',0 }; +static const CHAR description9A[] = "Out of memory"; +static const WCHAR description9W[] = { 'O','u','t',' ','o','f',' ','m','e','m','o','r','y',0 }; +static const WCHAR name10W[] = { 'D','S','E','R','R','_','B','A','D','F','O','R','M','A','T',0 }; +static const CHAR description10A[] = "Bad WAVE format"; +static const WCHAR description10W[] = { 'B','a','d',' ','W','A','V','E',' ','f','o','r','m','a','t',0 }; +static const WCHAR name11W[] = { 'E','_','N','O','T','I','M','P','L',0 }; +static const CHAR description11A[] = "Not implemented"; +static const WCHAR description11W[] = { 'N','o','t',' ','i','m','p','l','e','m','e','n','t','e','d',0 }; +static const WCHAR name12W[] = { 'D','S','E','R','R','_','N','O','D','R','I','V','E','R',0 }; +static const CHAR description12A[] = "No driver"; +static const WCHAR description12W[] = { 'N','o',' ','d','r','i','v','e','r',0 }; +static const WCHAR name13W[] = { 'D','S','E','R','R','_','A','L','R','E','A','D','Y','I','N','I','T','I','A','L','I','Z','E','D',0 }; +static const CHAR description13A[] = "Already initialized"; +static const WCHAR description13W[] = { 'A','l','r','e','a','d','y',' ','i','n','i','t','i','a','l','i','z','e','d',0 }; +static const WCHAR name14W[] = { 'C','L','A','S','S','_','E','_','N','O','A','G','G','R','E','G','A','T','I','O','N',0 }; +static const CHAR description14A[] = "No aggregation"; +static const WCHAR description14W[] = { 'N','o',' ','a','g','g','r','e','g','a','t','i','o','n',0 }; +static const WCHAR name15W[] = { 'D','S','E','R','R','_','B','U','F','F','E','R','L','O','S','T',0 }; +static const CHAR description15A[] = "Buffer lost"; +static const WCHAR description15W[] = { 'B','u','f','f','e','r',' ','l','o','s','t',0 }; +static const WCHAR name16W[] = { 'D','S','E','R','R','_','O','T','H','E','R','A','P','P','H','A','S','P','R','I','O',0 }; +static const CHAR description16A[] = "Other app has higher priority"; +static const WCHAR description16W[] = { 'O','t','h','e','r',' ','a','p','p',' ','h','a','s',' ','h','i','g','h','e','r',' ','p','r','i','o','r','i','t','y',0 }; +static const WCHAR name17W[] = { 'D','S','E','R','R','_','U','N','I','N','I','T','I','A','L','I','Z','E','D',0 }; +static const CHAR description17A[] = "Not initialized"; +static const WCHAR description17W[] = { 'N','o','t',' ','i','n','i','t','i','a','l','i','z','e','d',0 }; +static const WCHAR name18W[] = { 'E','_','N','O','I','N','T','E','R','F','A','C','E',0 }; +static const CHAR description18A[] = "No interface"; +static const WCHAR description18W[] = { 'N','o',' ','i','n','t','e','r','f','a','c','e',0 }; +static const WCHAR name19W[] = { 'E','_','A','C','C','E','S','S','D','E','N','I','E','D',0 }; +static const CHAR description19A[] = "Access denied"; +static const WCHAR description19W[] = { 'A','c','c','e','s','s',' ','d','e','n','i','e','d',0 }; +static const WCHAR name20W[] = { 'D','S','E','R','R','_','B','U','F','F','E','R','T','O','O','S','M','A','L','L',0 }; +static const CHAR description20A[] = "Buffer too small"; +static const WCHAR description20W[] = { 'B','u','f','f','e','r',' ','t','o','o',' ','s','m','a','l','l',0 }; +static const WCHAR name21W[] = { 'D','S','E','R','R','_','D','S','8','_','R','E','Q','U','I','R','E','D',0 }; +static const CHAR description21A[] = "Direct Sound 8 required"; +static const WCHAR description21W[] = { 'D','i','r','e','c','t',' ','S','o','u','n','d',' ','8',' ','r','e','q','u','i','r','e','d',0 }; +static const WCHAR name22W[] = { 'D','S','E','R','R','_','S','E','N','D','L','O','O','P',0 }; +static const CHAR description22A[] = "Circular loop"; +static const WCHAR description22W[] = { 'C','i','r','c','u','l','a','r',' ','l','o','o','p',0 }; +static const WCHAR name23W[] = { 'D','S','E','R','R','_','B','A','D','S','E','N','D','B','U','F','F','E','R','G','U','I','D',0 }; +static const CHAR description23A[] = "Bad send buffer GUID"; +static const WCHAR description23W[] = { 'B','a','d',' ','s','e','n','d',' ','b','u','f','f','e','r',' ','G','U','I','D',0 }; +static const WCHAR name24W[] = { 'D','S','E','R','R','_','O','B','J','E','C','T','N','O','T','F','O','U','N','D',0 }; +static const CHAR description24A[] = "Object not found"; +static const WCHAR description24W[] = { 'O','b','j','e','c','t',' ','n','o','t',' ','f','o','u','n','d',0 }; +static const WCHAR name25W[] = { 'D','S','E','R','R','_','F','X','U','N','A','V','A','I','L','A','B','L','E',0 }; +static const CHAR description25A[] = "Effect not available"; +static const WCHAR description25W[] = { 'E','f','f','e','c','t',' ','n','o','t',' ','a','v','a','i','l','a','b','l','e',0 }; + +static const error_info info[] = { + { S_OK, "S_OK", name1W, description1A, description1W }, + { DS_NO_VIRTUALIZATION, "DS_NO_VIRTUALIZATION", name2W, description2A, description2W }, + { DSERR_ALLOCATED, "DSERR_ALLOCATED", name3W, description3A, description3W }, + { DSERR_CONTROLUNAVAIL, "DSERR_CONTROLUNAVAIL", name4W, description4A, description4W }, + { E_INVALIDARG, "E_INVALIDARG", name5W, description5A, description5W }, + { DSERR_INVALIDCALL, "DSERR_INVALIDCALL", name6W, description6A, description6W }, + { E_FAIL, "E_FAIL", name7W, description7A, description7W }, + { DSERR_PRIOLEVELNEEDED, "DSERR_PRIOLEVELNEEDED", name8W, description8A, description8W }, + { E_OUTOFMEMORY, "E_OUTOFMEMORY", name9W, description9A, description9W }, + { DSERR_BADFORMAT, "DSERR_BADFORMAT", name10W, description10A, description10W }, + { E_NOTIMPL, "E_NOTIMPL", name11W, description11A, description11W }, + { DSERR_NODRIVER, "DSERR_NODRIVER", name12W, description12A, description12W }, + { DSERR_ALREADYINITIALIZED, "DSERR_ALREADYINITIALIZED", name13W, description13A, description13W }, + { CLASS_E_NOAGGREGATION, "CLASS_E_NOAGGREGATION", name14W, description14A, description14W }, + { DSERR_BUFFERLOST, "DSERR_BUFFERLOST", name15W, description15A, description15W }, + { DSERR_OTHERAPPHASPRIO, "DSERR_OTHERAPPHASPRIO", name16W, description16A, description16W }, + { DSERR_UNINITIALIZED, "DSERR_UNINITIALIZED", name17W, description17A, description17W }, + { E_NOINTERFACE, "E_NOINTERFACE", name18W, description18A, description18W }, + { E_ACCESSDENIED, "E_ACCESSDENIED", name19W, description19A, description19W }, + { DSERR_BUFFERTOOSMALL, "DSERR_BUFFERTOOSMALL", name20W, description20A, description20W }, + { DSERR_DS8_REQUIRED, "DSERR_DS8_REQUIRED", name21W, description21A, description21W }, + { DSERR_SENDLOOP, "DSERR_SENDLOOP", name22W, description22A, description22W }, + { DSERR_BADSENDBUFFERGUID, "DSERR_BADSENDBUFFERGUID", name23W, description23A, description23W }, + { DSERR_OBJECTNOTFOUND, "DSERR_OBJECTNOTFOUND", name24W, description24A, description24W }, + { DSERR_FXUNAVAILABLE, "DSERR_FXUNAVAILABLE", name25W, description25A, description25W }, +};
diff --git a/dlls/dxerr9/make_errors b/dlls/dxerr9/make_errors new file mode 100755 index 0000000..75e4b6b --- /dev/null +++ b/dlls/dxerr9/make_errors
@@ -0,0 +1,2 @@ +#!/bin/sh +exec awk -f errors.awk < errors.dat > errors.h