2 added + 6 modified, total 8 files
reactos/lib/winmm
diff -N winmm_De.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ winmm_De.rc 8 Aug 2004 21:36:20 -0000 1.1
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2004 Henning Gerhardt
+ *
+ * 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
+ */
+
+STRINGTABLE LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
+BEGIN
+
+/* MMSYS errors */
+MMSYSERR_NOERROR, "Der angeforderte Befehl wurde ausgef�hrt."
+MMSYSERR_ERROR, "Unbekannter externer Fehler."
+MMSYSERR_BADDEVICEID, "Die derzeit verwendete Ger�tekennung ist au�erhalb des zul�ssigen Bereichs f�r Ihr System."
+MMSYSERR_NOTENABLED, "Der Treiber konnte nicht gestartet werden."
+MMSYSERR_ALLOCATED, "Das Ger�t wird bereits verwendet. Warten Sie, bis es freigegeben ist, und versuchen Sie es erneut."
+MMSYSERR_INVALHANDLE, "Das angegebende Ger�tehandle ist ung�ltig."
+MMSYSERR_NODRIVER, "Es ist kein Treiber auf Ihrem System installiert !\n"
+MMSYSERR_NOMEM, "Nicht gen�gend Speicher f�r diesen Befehl. Beenden Sie eine oder mehrere Anwendungen, und versuchen Sie es erneut."
+MMSYSERR_NOTSUPPORTED, "Diese Funktion wird nicht unterst�tzt. Benutzen Sie die Funktion 'Capabilities', um zu ermitteln, welche Funktion dieser Treiber unterst�tzt."
+MMSYSERR_BADERRNUM, "Die angegebene Fehlernummer ist f�r dieses System nicht definiert."
+MMSYSERR_INVALFLAG, "Ein ung�ltiges Flag wurde an eine Systemfunktion �bergeben."
+MMSYSERR_INVALPARAM, "Ein ung�ltiger Parameter wurde an eine Systemfunktion �bergeben."
+
+/* WAVE errors */
+WAVERR_BADFORMAT, "Dieses Format wird nicht unterst�tzt oder kann nicht �bersetzt werden. Benutzen Sie die Funktion 'Capabilities', um die unterst�tzten Formate zu ermitteln."
+WAVERR_STILLPLAYING, "Die Funktion kann nicht durchgef�hrt werden, wenn noch Mediendateien wiedergegeben werden. Starten Sie das Ger�t neu, oder warten Sie bis keine Daten mehr wiedergegeben werden."
+WAVERR_UNPREPARED, "Der WAVE - Header wurde nicht vorbereitet. Benutzen Sie die Funktion 'Prepare' zum Vorbereiten des Headers und versuchen Sie es erneut."
+WAVERR_SYNC, "Das Ger�t kann nicht ohne das WAVE_ALLOWSYNC - Flag ge�ffnet werden. Benutzen Sie dieses Flag und versuchen Sie es erneut."
+
+/* MIDI errors */
+MIDIERR_UNPREPARED, "Der MIDI - Header wurde nicht vorbereitet. Benutzen Sie die Funktion 'Prepare' zum Vorbereiten des Headers und versuchen Sie es erneut."
+MIDIERR_STILLPLAYING, "Die Funktion kann nicht durchgef�hrt werden, wenn noch Mediendateien wiedergegeben werden. Starten Sie das Ger�t neu, oder warten Sie bis keine Daten mehr wiedergegeben werden."
+MIDIERR_NOMAP, "Es wurde keine MIDI - Map gefunden. Es k�nnte ein Problem mit dem Treiber geben oder die Datei MIDIMAP.CFG fehlt oder ist besch�digt."
+MIDIERR_NOTREADY, "Der Anschluss ist mit der Datenausgabe belegt. Warten Sie, bis die Daten �bertragen wurden und versuchen Sie es erneut."
+MIDIERR_NODEVICE, "Das gegenw�rtige MIDI - Mapper Setup benutzt ein MIDI - Ger�t, das nicht installiert ist. Benutzen Sie den MIDI - Mapper, um das Setup zu �ndern."
+MIDIERR_INVALIDSETUP, "Das aktuelle MIDI Setup ist besch�digt. Kopieren sie die urspr�ngliche Datei MIDIMAP.CFG ind das Windows - Systemverzeichnis und versuchen Sie es erneut."
+
+/* MCI errors */
+MCIERR_INVALID_DEVICE_ID, "Ung�ltige MCI - Ger�tekennung. Benutzen Sie die zur�ckgegebene ID, wenn Sie das MCI - Ger�t �ffnen."
+MCIERR_UNRECOGNIZED_KEYWORD, "Der Treiber kann den angegebenen Befehlsparameter nicht anerkennen."
+MCIERR_UNRECOGNIZED_COMMAND, "Der Treiber kann den angegebenen Befehl nicht anerkennen."
+MCIERR_HARDWARE, "Es gibt ein Problem mit Ihrem Media - Ger�t. Stellen Sie sicher, dass es richtig arbeitet oder fragen Sie den Ger�tehersteller."
+MCIERR_INVALID_DEVICE_NAME, "Das angegebene Ger�t ist nicht ge�ffnet oder wird vom MCI nicht erkannt."
+MCIERR_OUT_OF_MEMORY, "Nicht gen�gend Speicher f�r den angeforderten Vorgang. \nBeenden Sie eine oder mehrere Anwendungen, und versuchen Sie es erneut."
+MCIERR_DEVICE_OPEN, "Der Ger�tename wird von dieser Anwendung bereits als Alias benutzt. Benutzen Sie einen eindeutigen Alias"
+MCIERR_CANNOT_LOAD_DRIVER, "Es gibt ein unbekanntes Problem beim Laden des angegebenen Ger�tetreibers."
+MCIERR_MISSING_COMMAND_STRING, "Kein Befehl wurde angegeben."
+MCIERR_PARAM_OVERFLOW, "Die Ausgabezeichenkennte war zu lang f�r den R�ckgabepuffer. Erh�hen Sie die Puffergr��e."
+MCIERR_MISSING_STRING_ARGUMENT, "Der Befehl erfordert einen Zeichenkettenparameter. Bitte stellen Sie einen bereit."
+MCIERR_BAD_INTEGER, "Die Angabe einer ganzen Zahl ist f�r diesen Befehl ung�ltig."
+MCIERR_PARSER_INTERNAL, "Der Ger�tetreiber hat einen ung�ltigen R�ckgabewert geliefert. Fragen Sie den Ger�tehersteller nach einem neuen Treiber."
+MCIERR_DRIVER_INTERNAL, "Ein Treiberfehler ist aufgetreten. Fragen Sie den Ger�tehersteller nach einem neuen Treiber."
+MCIERR_MISSING_PARAMETER, "Der angegebene Befehl erfordert einen Parameter. Bitte geben Sie einen an."
+MCIERR_UNSUPPORTED_FUNCTION, "Das verwendete MCI - Ger�t unterst�tzt diesen Befehl nicht."
+MCIERR_FILE_NOT_FOUND, "Die angeforderte Datei wurde nicht gefunden. Stellen Sie sicher, dass Pfad- und Dateiname richtig sind."
+MCIERR_DEVICE_NOT_READY, "Der Ger�tetreiber ist nicht bereit."
+MCIERR_INTERNAL, "Ein Fehler ereignete sich beim Starten von MCI. Versuche Windows neu zu starten."
+MCIERR_DRIVER, "Es gibt ein Problem mit dem Ger�tetreiber. Der Treiber wird geschlossen. Ein Fehler kann nicht gemeldet werden."
+MCIERR_CANNOT_USE_ALL, "Der Ger�tename 'all' ist nicht in diesem Befehl erlaubt."
+MCIERR_MULTIPLE, "Es traten Fehler in mehr als einem Ger�t auf. Geben Sie jeden Befehl f�r jedes Ger�t einzeln an, um zu bestimmen, welches Ger�t die Fehler verursachte."
+MCIERR_EXTENSION_NOT_FOUND, "Kann keinen Ger�tetyp aus der angegebenen Dateinamenerweiterung ermitteln."
+MCIERR_OUTOFRANGE, "Der angegebene Paramter liegt au�erhalb des zul�ssigen Bereichs f�r diesen Befehl."
+MCIERR_FLAGS_NOT_COMPATIBLE, "Die Paramter k�nnen nicht zusammen verwendet werden."
+MCIERR_FILE_NOT_SAVED, "Die Datei kann nicht gespeichert werden. Stellen Sie sicher, dass gen�gend Platz auf dem Datentr�ger verf�gbar ist oder Ihre Netzwerkverbindung noch besteht."
+MCIERR_DEVICE_TYPE_REQUIRED, "Das angegebene Ger�t wurde nicht gefunden. Stellen Sie sicher, dass es installiert ist oder der Ger�tename richtig geschrieben ist."
+MCIERR_DEVICE_LOCKED, "Das angegebene Ger�t wird geschlossen. Warten Sie einige Sekunden, und versuchen Sie es erneut."
+MCIERR_DUPLICATE_ALIAS, "Der angegebene Alias wird von dieser Anwendung bereits verwendet. W�hlen Sie einen eindeutigen Alias."
+MCIERR_BAD_CONSTANT, "Der angegebene Parameter f�r diesen Befehl ung�ltig."
+MCIERR_MUST_USE_SHAREABLE, "Das Ger�t ist bereits ge�ffnet. Benutzen Sie den 'shareable' - Parameter bei jedem 'open' - Befehl."
+MCIERR_MISSING_DEVICE_NAME, "Der angegebene Befehl erfordert einen Alias-, Datei-, Treiber- oder Ger�tenamen. Bitte geben Sie einen an."
+MCIERR_BAD_TIME_FORMAT, "Der angegebene Wert f�r das Zeitformat ist ung�ltig. Lesen Sie in der MCI - Dokumentation nach g�ltigen Formaten nach."
+MCIERR_NO_CLOSING_QUOTE, "Ein abschlie�endes Anf�hrungszeichen fehlt im Parameter. Bitte geben Sie eins an."
+MCIERR_DUPLICATE_FLAGS, "Ein Parameter oder Wert wurde zweimal angegeben. Geben Sie in nur einzeln an."
+MCIERR_INVALID_FILE, "Die angegebene Datei kann auf dem MCI - Ger�t nicht wiedergegeben werden. Die Datei ist wahrscheinlich besch�digt oder in einem ung�ltigen Format."
+MCIERR_NULL_PARAMETER_BLOCK, "Der Parameterblock, der zu MCI �bergeben wurde, war NULL."
+MCIERR_UNNAMED_RESOURCE, "Es kann keine unbenannte Datei gespeichert werden. Geben Sie einen Dateinamen an."
+MCIERR_NEW_REQUIRES_ALIAS, "Sie m�ssen einen Alias mit dem 'new' - Parameter angeben."
+MCIERR_NOTIFY_ON_AUTO_OPEN, "Das 'notify' Flag ist unzul�ssig f�r selbst�ffnende Ger�te."
+MCIERR_NO_ELEMENT_ALLOWED, "Ein Dateiname kann mit diesem Ger�t nicht verwendet werden."
+MCIERR_NONAPPLICABLE_FUNCTION, "Die Befehle sind in der angegebenen Reihenfolge nicht ausf�hrbar. �ndern Sie die Reihenfolge, und versuchen Sie es erneut."
+MCIERR_ILLEGAL_FOR_AUTO_OPEN, "Der Befehl kann nicht auf ein selbst�ffnedes Ger�t angewandt werden. Warten Sie, bis das Ger�t geschlossen wurde und versuchen Sie es erneut."
+MCIERR_FILENAME_REQUIRED, "Der Dateiname ist ung�ltig. Der Dateiname muss aus maximal 8 Zeichen, gefolgt von einem Punkt und einer Dateinamenerweiterung bestehen."
+MCIERR_EXTRA_CHARACTERS, "Zus�tzliche Zeichen nach einer Zeichenkette mit Anf�hrungszeichen sind nicht erlaubt."
+MCIERR_DEVICE_NOT_INSTALLED, "Das angegebene Ger�t ist nicht auf Ihren System installiert. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um das Ger�t zu installieren."
+MCIERR_GET_CD, "Auf die angegebene Datei oder das MCI - Ger�t kann nicht zugegriffen werden. Versuchen Sie, das Verzeichnis zu wechseln oder das System neu zu starten."
+MCIERR_SET_CD, "Auf die angegebene Datei oder das MCI - Ger�t kann nicht zugegriffen werden, weil die Anwendung nicht das Verzeichnis wechseln kann."
+MCIERR_SET_DRIVE, "Auf die angegebene Datei oder das MCI - Ger�t kann nicht zugegriffen werden, weil die Anwendung nicht das Laufwerk wechseln kann."
+MCIERR_DEVICE_LENGTH, "Geben Sie einen Ger�te- oder Treibernamen mit weniger als 79 Zeichen an."
+MCIERR_DEVICE_ORD_LENGTH, "Geben Sie einen Ger�te- oder Treibernamen mit weniger als 69 Zeichen an."
+MCIERR_NO_INTEGER, "Der angegebene Befehl erfordert einen ganzzahligen Parameter. Bitte geben Sie einen an."
+MCIERR_WAVE_OUTPUTSINUSE, "Alle Waveformger�te, die diese Dateien in dem gegenw�rtigen Format wiedergeben k�nnten, sind in Benutzung. Warten Sie, bis ein Waveformger�t frei ist, und wiederholen Sie den Vorgang."
+MCIERR_WAVE_SETOUTPUTINUSE, "Das gegenw�rtige Waveformger�t kann nicht wiedergeben, weil es gerade benutzt wird. Warten Sie, bis das Ger�t frei ist, und wiederholen Sie den Vorgang."
+MCIERR_WAVE_INPUTSINUSE, "Es ist kein Waveformger�t frei, das das gegenw�rtige Format aufzeichnen k�nnte. Warten Sie, bis ein Waveformger�t frei ist, und wiederholen Sie den Vorgang."
+MCIERR_WAVE_SETINPUTINUSE, "Das gegenw�rtige Waveformger�t kann nicht aufzeichnen, weil es gerade verwendet wird. Warten Sie, bis das Ger�t frei ist, und wiederholen Sie den Vorgang."
+MCIERR_WAVE_OUTPUTUNSPECIFIED, "Jedes kompatible Waveform - Wiedergabeger�t kann verwendet werden."
+MCIERR_WAVE_INPUTUNSPECIFIED, "Jedes kompatible Waveform - Aufnahmeger�t kann verwendet werden."
+MCIERR_WAVE_OUTPUTSUNSUITABLE, "Es ist kein Waveformger�t installiert, das Dateien im aktuellen Format wiedergeben kann. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um ein Waveformger�t zu installieren."
+MCIERR_WAVE_SETOUTPUTUNSUITABLE,"Das Wiedergabeger�t erkennt das gegenw�rtige Dateiformat nicht."
+MCIERR_WAVE_INPUTSUNSUITABLE, "Es ist kein Waveformger�t installiert, das Dateien im aktuellen Format aufnehmen kann. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um ein Waveformger�t zu installieren."
+MCIERR_WAVE_SETINPUTUNSUITABLE, "Das Ger�t, mit dem Sie aufzeichnen m�chten, erkennt das gegenw�rtige Dateiformat nicht."
+MCIERR_NO_WINDOW, "Es gibt kein Anzeigefenster."
+MCIERR_CREATEWINDOW, "Fenster konnte nicht erzeugt oder verwendet werden."
+MCIERR_FILE_READ, "Die Datei konnte nicht gelesen werden. Stellen Sie sicher, dass die Datei existiert oder Ihre Netzwerkverbindung noch besteht."
+MCIERR_FILE_WRITE, "Die Datei konnte nicht geschrieben werden. Stellen Sie sicher, dass gen�gend Platz auf dem Datentr�ger verf�gbar ist, oder dass die Netzwerkverbindung noch besteht."
+MCIERR_SEQ_DIV_INCOMPATIBLE, "Die Zeitformate von ""song pointer"" und SMPTE schliessen sich gegenseitig aus. Sie k�nnen sie nicht zusammen verwenden."
+MCIERR_SEQ_NOMIDIPRESENT, "Es sind keine MIDI - Ger�te auf dem System installiert. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um einen MIDI - Treiber zu installieren."
+MCIERR_SEQ_PORT_INUSE, "Der angegebene MIDI - Anschluss wird bereits verwendet. Warten Sie bis der Anschluss frei ist, und versuchen Sie es erneut."
+MCIERR_SEQ_PORT_MAPNODEVICE, "Das gegenw�rtige MIDI - Mapper Setup benutzt ein MIDI - Ger�t, dass nicht auf Ihren System installiert ist. Benutzen Sie den MIDI - Mapper in der Systemsteuerung, um das Setup zu �ndern."
+MCIERR_SEQ_PORT_MISCERROR, "Beim Benutzen des angegebenen Anschlusses trat ein Fehler auf."
+MCIERR_SEQ_PORT_NONEXISTENT, "Es sind keine angegebnen MIDI - Ger�te auf dem System installiert. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um ein MIDI - Ger�t zu installieren."
+MCIERR_SEQ_PORTUNSPECIFIED, "Es gibt keinen aktuellen MIDI - Anschluss auf dem System."
+MCIERR_SEQ_TIMER, "Alle Multimediazeitgeber werden von anderen Anwendungen verwendet. Beenden Sie eine dieser Anwendungen, und versuchen Sie es erneut."
+
+END
reactos/lib/winmm
diff -N winmm_Ja.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ winmm_Ja.rc 8 Aug 2004 21:36:20 -0000 1.1
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2004 Hajime Segawa
+ *
+ * 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
+ */
+
+STRINGTABLE LANGUAGE LANG_JAPANESE, SUBLANG_NEUTRAL
+BEGIN
+
+/* MMSYS errors */
+MMSYSERR_NOERROR, "�w���������R�}���h�����s�����������������B"
+MMSYSERR_ERROR, "�s�����O���G���[�����B"
+MMSYSERR_BADDEVICEID, "�������f�o�C�XID�����B"
+MMSYSERR_NOTENABLED, "�h���C�o���L�������������������B"
+MMSYSERR_ALLOCATED, "�w���������f�o�C�X���g�p�������B�f�o�C�X�������������������������������������������B"
+MMSYSERR_INVALHANDLE, "�������f�o�C�X�n���h�������B"
+MMSYSERR_NODRIVER, "�V�X�e�����h���C�o���C���X�g�[����������������!\n"
+MMSYSERR_NOMEM, "�������������s�������������������s�������������B�����������A�v���P�[�V�������I�������������������������������������������B"
+MMSYSERR_NOTSUPPORTED, "�����@�\���T�|�[�g���������������BCapabilities�������g�p�����h���C�o���T�|�[�g�����@�\�����b�Z�[�W���m�F�����������B"
+MMSYSERR_BADERRNUM, "�w���������G���[���������`���������������B"
+MMSYSERR_INVALFLAG, "�V�X�e���������������t���O���n�����������B"
+MMSYSERR_INVALPARAM, "�V�X�e���������������p�����[�^���n�����������B"
+
+/* WAVE errors */
+WAVERR_BADFORMAT, "�w���������t�H�[�}�b�g���T�|�[�g���������������A���������������BCapabilities�������g�p�����T�|�[�g�����������t�H�[�}�b�g���m�F�����������B"
+WAVERR_STILLPLAYING, "���f�B�A�����������������������s�����������B�f�o�C�X�����Z�b�g�������������I���������������������B"
+WAVERR_UNPREPARED, "wave�w�b�_���������������������BPrepare�������g�p�����w�b�_���������������������������B"
+WAVERR_SYNC, "WAVE_ALLOWSYNC�t���O���������f�o�C�X���I�[�v�������������B�t���O���w�����������������������B"
+
+/* MIDI errors */
+MIDIERR_UNPREPARED, "MIDI�w�b�_���������������������BPrepare�������g�p�����w�b�_���������������������������B"
+MIDIERR_STILLPLAYING, "���f�B�A�����������������������s�����������B�f�o�C�X�����Z�b�g�������������I���������������������B"
+MIDIERR_NOMAP, "MIDI�}�b�v�����������������B�h���C�o���������AMIDIMAP.CFG�t�@�C�����j�������������������������\�������������B"
+MIDIERR_NOTREADY, "�|�[�g���f�o�C�X���f�[�^�����M�������B�f�[�^�����M���I�����������������������������������B"
+MIDIERR_NODEVICE, "MIDI�}�b�p���������V�X�e���������������������f�o�C�X���Q�������������B���������X���������R���g���[���p�l�����uMIDI�}�b�p�v�A�v���b�g���g�p�����������B"
+MIDIERR_INVALIDSETUP, "MIDI���������j�������������B�I���W�i����MIDIMAP.CFG�t�@�C����Windows��SYSTEM�f�B���N�g�������R�s�[���������������������B"
+
+/* MCI errors */
+MCIERR_INVALID_DEVICE_ID, "������MCI�f�o�C�XID�����BMCI�f�o�C�X���I�[�v��������������������ID���g�p�����������B"
+MCIERR_UNRECOGNIZED_KEYWORD, "�h���C�o���w���������R�}���h���p�����[�^���F�������������������B"
+MCIERR_UNRECOGNIZED_COMMAND, "�h���C�o���w���������R�}���h���F�������������������B"
+MCIERR_HARDWARE, "���f�B�A�f�o�C�X���������������������B�f�o�C�X�����������������������m�F�������A���������������������������B"
+MCIERR_INVALID_DEVICE_NAME, "�w���������f�o�C�X���I�[�v�����������������AMCI���F�����������������B"
+MCIERR_OUT_OF_MEMORY, "�������������s�������������������s�������������B\n�����������A�v���P�[�V�������I�������������������������������������������B"
+MCIERR_DEVICE_OPEN, "�f�o�C�X���������A�v���P�[�V�������������G�C���A�X�������g�p�������������B�������G�C���A�X���g�p�����������B"
+MCIERR_CANNOT_LOAD_DRIVER, "�w���������f�o�C�X�h���C�o�����[�h�����s�����G���[���������������B"
+MCIERR_MISSING_COMMAND_STRING, "�R�}���h���w�����������������B"
+MCIERR_PARAM_OVERFLOW, "�o�����������������o�b�t�@�����������������B�o�b�t�@���T�C�Y�����������������B"
+MCIERR_MISSING_STRING_ARGUMENT, "�w���������R�}���h�������������p�����[�^���K�v�����B"
+MCIERR_BAD_INTEGER, "�w�������������l�������R�}���h�������������B"
+MCIERR_PARSER_INTERNAL, "�f�o�C�X�h���C�o���������`�����l�������������B���������V�����h���C�o���������������������������B"
+MCIERR_DRIVER_INTERNAL, "�f�o�C�X�h���C�o���������������������B���������V�����h���C�o���������������������������B"
+MCIERR_MISSING_PARAMETER, "�w���������R�}���h�����p�����[�^���K�v�����B"
+MCIERR_UNSUPPORTED_FUNCTION, "�g�p��������MCI�f�o�C�X���w���������R�}���h���T�|�[�g�������������B"
+MCIERR_FILE_NOT_FOUND, "�w���������t�@�C�������������������B�t�@�C�������p�X���m�F�����������B"
+MCIERR_DEVICE_NOT_READY, "�f�o�C�X�h���C�o�����������������������B"
+MCIERR_INTERNAL, "MCI�������������������������������BWindows�����N�������������B"
+MCIERR_DRIVER, "�f�o�C�X�h���C�o���������������������B�h���C�o���N���[�Y�������������B�G���[���A�N�Z�X�����������B"
+MCIERR_CANNOT_USE_ALL, "�w���������R�}���h���uall�v���f�o�C�X���������g�p���������������������B"
+MCIERR_MULTIPLE, "�������f�o�C�X���G���[���������������B�����f�o�C�X���G���[�������������m�F���������A�R�}���h���f�o�C�X���������w�������������B"
+MCIERR_EXTENSION_NOT_FOUND, "�w���������t�@�C�����g���q�����f�o�C�X�����������������������B"
+MCIERR_OUTOFRANGE, "�w���������R�}���h���������w���������p�����[�^�������O�����B"
+MCIERR_FLAGS_NOT_COMPATIBLE, "�w���������p�����[�^���������g�p�����������B"
+MCIERR_FILE_NOT_SAVED, "�w���������t�@�C�������������������������B�f�B�X�N���\���������e�����������A���������l�b�g���[�N�������������������m�F�����������B"
+MCIERR_DEVICE_TYPE_REQUIRED, "�w���������f�o�C�X�����������������������B�f�o�C�X�����������������A�f�o�C�X���������������������m�F�����������B"
+MCIERR_DEVICE_LOCKED, "�w���������f�o�C�X���N���[�Y�����������B���b���������������������������B"
+MCIERR_DUPLICATE_ALIAS, "�w���������G�C���A�X�������A�v���P�[�V�������������G�C���A�X�������g�p�������������B�������G�C���A�X���g�p�����������B"
+MCIERR_BAD_CONSTANT, "�w���������p�����[�^�������R�}���h�������������B"
+MCIERR_MUST_USE_SHAREABLE, "�f�o�C�X�h���C�o���g�p�������B�f�o�C�X�����L���������uopen�v�R�}���h�������ushareable�v�p�����[�^���w�������������B"
+MCIERR_MISSING_DEVICE_NAME, "�w���������R�}���h�����G�C���A�X�A�t�@�C���A�h���C�o�������f�o�C�X�����w�������K�v�����������B"
+MCIERR_BAD_TIME_FORMAT, "�w���������������t�H�[�}�b�g�����������B�g�p�������t�H�[�}�b�g����������MCI���h�L�������g���Q�������������B"
+MCIERR_NO_CLOSING_QUOTE, "�_�u���N�I�[�e�[�V���������������������B"
+MCIERR_DUPLICATE_FLAGS, "�p�����[�^�����d���w���������������B"
+MCIERR_INVALID_FILE, "�w���������t�@�C�����w��������MCI�f�o�C�X�������������������B�t�@�C�����j�������������A�t�H�[�}�b�g���s�������B"
+MCIERR_NULL_PARAMETER_BLOCK, "�k���p�����[�^��MCI���n�����������B"
+MCIERR_UNNAMED_RESOURCE, "�t�@�C�������w���������������������������������B�t�@�C�������w�������������B"
+MCIERR_NEW_REQUIRES_ALIAS, "�unew�v�p�����[�^���g�p�����������G�C���A�X���w�������K�v�����������B"
+MCIERR_NOTIFY_ON_AUTO_OPEN, "�I�[�g�I�[�v���������f�o�C�X���unotify�v�t���O���g�p���������������������B"
+MCIERR_NO_ELEMENT_ALLOWED, "�w���������f�o�C�X���������t�@�C�������g�p���������������������B"
+MCIERR_NONAPPLICABLE_FUNCTION, "�w���������������R�}���h�����s�����������B�R�}���h�V�[�P���X���C�����������������������B"
+MCIERR_ILLEGAL_FOR_AUTO_OPEN, "�I�[�g�I�[�v���������f�o�C�X���������w���������R�}���h�����s�����������B�f�o�C�X���N���[�Y�����������������������������������B"
+MCIERR_FILENAME_REQUIRED, "�t�@�C���������������B�t�@�C���������p8�����������A�s���I�h���������g���q���t���������������m�F�����������B"
+MCIERR_EXTRA_CHARACTERS, "�N�I�[�e�[�V�����}�[�N�����������������������]�������������������������B"
+MCIERR_DEVICE_NOT_INSTALLED, "�w���������f�o�C�X���C���X�g�[�����������������B�f�o�C�X���C���X�g�[�����������R���g���[���p�l�������u�n�[�h�E�F�A�������������v�A�v���b�g���g�p�����������B"
+MCIERR_GET_CD, "�w���������t�@�C��������MCI�f�o�C�X���A�N�Z�X�����������B�f�B���N�g�������X�������A�R���s���[�^�����N�������������B"
+MCIERR_SET_CD, "�A�v���P�[�V�������f�B���N�g�������X�������������A�w���������t�@�C��������MCI�f�o�C�X���A�N�Z�X�����������B"
+MCIERR_SET_DRIVE, "�A�v���P�[�V�������h���C�u�����X�������������A�w���������t�@�C��������MCI�f�o�C�X���A�N�Z�X�����������B"
+MCIERR_DEVICE_LENGTH, "�f�o�C�X���������h���C�o�������p79�����������w�������������B"
+MCIERR_DEVICE_ORD_LENGTH, "�f�o�C�X���������h���C�o�������p69�����������w�������������B"
+MCIERR_NO_INTEGER, "�w���������R�}���h���������l���p�����[�^���K�v�����B"
+MCIERR_WAVE_OUTPUTSINUSE, "�t�@�C�����������t�H�[�}�b�g������������wave�f�o�C�X���S���g�p�������B�f�o�C�X�������������������������������������������B"
+MCIERR_WAVE_SETOUTPUTINUSE, "������wave�f�o�C�X���g�p���������������[�h�����������������B�f�o�C�X�������������������������������������������B"
+MCIERR_WAVE_INPUTSINUSE, "�������t�H�[�}�b�g���^�������\���S����wave�f�o�C�X���g�p�������B�f�o�C�X�������������������������������������������B"
+MCIERR_WAVE_SETINPUTINUSE, "������wave�f�o�C�X���g�p���������^�����[�h�����������������B�f�o�C�X�������������������������������������������B"
+MCIERR_WAVE_OUTPUTUNSPECIFIED, "�����������������f�o�C�X�����������g�p���������B"
+MCIERR_WAVE_INPUTUNSPECIFIED, "�������������^���f�o�C�X�����������g�p���������B"
+MCIERR_WAVE_OUTPUTSUNSUITABLE, "�������t�H�[�}�b�g���t�@�C��������������wave�f�o�C�X���C���X�g�[�����������������Bwave�f�o�C�X���C���X�g�[�����������R���g���[���p�l�������u�n�[�h�E�F�A�������������v�A�v���b�g���g�p�����������B"
+MCIERR_WAVE_SETOUTPUTUNSUITABLE,"���������������������f�o�C�X���������t�@�C���t�H�[�}�b�g���F�������������B"
+MCIERR_WAVE_INPUTSUNSUITABLE, "�������t�H�[�}�b�g���t�@�C�����^��������wave�f�o�C�X���C���X�g�[�����������������Bwave�f�o�C�X���C���X�g�[�����������R���g���[���p�l�������u�n�[�h�E�F�A�������������v�A�v���b�g���g�p�����������B"
+MCIERR_WAVE_SETINPUTUNSUITABLE, "�^�������������������f�o�C�X���������t�@�C���t�H�[�}�b�g���F�������������B"
+MCIERR_NO_WINDOW, "�\���E�B���h�E�������������B"
+MCIERR_CREATEWINDOW, "�E�B���h�E�������������g�p�������������B"
+MCIERR_FILE_READ, "�w�������t�@�C�������������������B�t�@�C���������������m�F�����������A���������f�B�X�N���l�b�g���[�N�������m�F�����������B"
+MCIERR_FILE_WRITE, "�w���������t�@�C�������������������B�f�B�X�N���\���������e�����������A���������l�b�g���[�N�������������������m�F�����������B"
+MCIERR_SEQ_DIV_INCOMPATIBLE, "�u�\���O�|�C���^�v��SMPTE�������t�H�[�}�b�g���������g�p���������������������B"
+MCIERR_SEQ_NOMIDIPRESENT, "MIDI�f�o�C�X���C���X�g�[�����������������BMIDI�h���C�o���C���X�g�[�����������R���g���[���p�l�������u�n�[�h�E�F�A�������������v�A�v���b�g���g�p�����������B"
+MCIERR_SEQ_PORT_INUSE, "�w��������MIDI�|�[�g���g�p�������BMIDI�|�[�g���J���������������������������������������B"
+MCIERR_SEQ_PORT_MAPNODEVICE, "MIDI�}�b�p���������V�X�e���������������������f�o�C�X���Q�������������B���������X���������R���g���[���p�l�����uMIDI�}�b�p�v�A�v���b�g���g�p�����������B"
+MCIERR_SEQ_PORT_MISCERROR, "�w���������|�[�g���G���[���������������B"
+MCIERR_SEQ_PORT_NONEXISTENT, "�w��������MIDI�f�o�C�X���V�X�e�����������������������BMIDI�f�o�C�X���C���X�g�[�����������R���g���[���p�l�������u�n�[�h�E�F�A�������������v�A�v���b�g���g�p�����������B"
+MCIERR_SEQ_PORTUNSPECIFIED, "�V�X�e����������MIDI�|�[�g���w�����������������B"
+MCIERR_SEQ_TIMER, "�S�����}���`���f�B�A�^�C�}�������A�v���P�[�V�������������g�p�������������B�^�C�}���g�p���������A�v���P�[�V�����������I���������������������������B"
+
+END
reactos/lib/winmm
diff -u -r1.3 -r1.4
--- driver.c 25 Feb 2004 20:00:41 -0000 1.3
+++ driver.c 8 Aug 2004 21:36:20 -0000 1.4
@@ -29,12 +29,15 @@
#include "wingdi.h"
#include "winuser.h"
#include "winnls.h"
+#include "winreg.h"
#include "mmddk.h"
#include "winemm.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(driver);
+#define HKLM_BASE "Software\\Microsoft\\Windows NT\\CurrentVersion"
+
static LPWINE_DRIVER lpDrvItemList /* = NULL */;
WINE_MMTHREAD* (*pFnGetMMThread16)(UINT16 h) /* = NULL */;
@@ -206,7 +209,21 @@
*/
BOOL DRIVER_GetLibName(LPCSTR keyName, LPCSTR sectName, LPSTR buf, int sz)
{
- /* should also do some registry diving */
+ HKEY hKey, hSecKey;
+ DWORD bufLen, lRet;
+
+ lRet = RegOpenKeyExA(HKEY_LOCAL_MACHINE, HKLM_BASE, 0, KEY_QUERY_VALUE, &hKey);
+ if (lRet == ERROR_SUCCESS) {
+ lRet = RegOpenKeyExA(hKey, sectName, 0, KEY_QUERY_VALUE, &hSecKey);
+ if (lRet == ERROR_SUCCESS) {
+ lRet = RegQueryValueExA(hSecKey, keyName, 0, 0, buf, &bufLen);
+ RegCloseKey( hSecKey );
+ }
+ RegCloseKey( hKey );
+ }
+ if (lRet == ERROR_SUCCESS) return TRUE;
+ /* default to system.ini if we can't find it in the registry,
+ * to support native installations where system.ini is still used */
return GetPrivateProfileStringA(sectName, keyName, "", buf, sz, "SYSTEM.INI");
}
reactos/lib/winmm
diff -u -r1.3 -r1.4
--- mci.c 16 Apr 2004 09:04:04 -0000 1.3
+++ mci.c 8 Aug 2004 21:36:20 -0000 1.4
@@ -57,9 +57,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(mci);
-static int MCI_InstalledCount;
-static LPSTR MCI_lpInstallNames /* = NULL */;
-
WINMM_MapType (*pFnMciMapMsg16To32A) (WORD,WORD,DWORD*) /* = NULL */;
WINMM_MapType (*pFnMciUnMapMsg16To32A)(WORD,WORD,DWORD) /* = NULL */;
WINMM_MapType (*pFnMciMapMsg32ATo16) (WORD,WORD,DWORD,DWORD*) /* = NULL */;
@@ -68,6 +65,9 @@
/* First MCI valid device ID (0 means error) */
#define MCI_MAGIC 0x0001
+/* MCI settings */
+#define HKLM_MCI "Software\\Microsoft\\Windows NT\\CurrentVersion\\MCI"
+
/* dup a string and uppercase it */
inline static LPSTR str_dup_upper( LPCSTR str )
{
@@ -1435,8 +1435,10 @@
*/
static DWORD MCI_SysInfo(UINT uDevID, DWORD dwFlags, LPMCI_SYSINFO_PARMSA lpParms)
{
- DWORD ret = MCIERR_INVALID_DEVICE_ID;
+ DWORD ret = MCIERR_INVALID_DEVICE_ID, cnt = 0;
+ CHAR buf[2048], *s = buf, *p;
LPWINE_MCIDRIVER wmd;
+ HKEY hKey;
if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK;
@@ -1445,41 +1447,39 @@
switch (dwFlags & ~MCI_SYSINFO_OPEN) {
case MCI_SYSINFO_QUANTITY:
- {
- DWORD cnt = 0;
-
- if (lpParms->wDeviceType < MCI_DEVTYPE_FIRST ||
- lpParms->wDeviceType > MCI_DEVTYPE_LAST) {
- if (dwFlags & MCI_SYSINFO_OPEN) {
- TRACE("MCI_SYSINFO_QUANTITY: # of open MCI drivers\n");
- EnterCriticalSection(&WINMM_IData->cs);
- for (wmd = WINMM_IData->lpMciDrvs; wmd; wmd = wmd->lpNext) {
- cnt++;
- }
- LeaveCriticalSection(&WINMM_IData->cs);
- } else {
- TRACE("MCI_SYSINFO_QUANTITY: # of installed MCI drivers\n");
- cnt = MCI_InstalledCount;
+ if (lpParms->wDeviceType < MCI_DEVTYPE_FIRST || lpParms->wDeviceType > MCI_DEVTYPE_LAST) {
+ if (dwFlags & MCI_SYSINFO_OPEN) {
+ TRACE("MCI_SYSINFO_QUANTITY: # of open MCI drivers\n");
+ EnterCriticalSection(&WINMM_IData->cs);
+ for (wmd = WINMM_IData->lpMciDrvs; wmd; wmd = wmd->lpNext) {
+ cnt++;
}
+ LeaveCriticalSection(&WINMM_IData->cs);
} else {
- if (dwFlags & MCI_SYSINFO_OPEN) {
- TRACE("MCI_SYSINFO_QUANTITY: # of open MCI drivers of type %u\n",
- lpParms->wDeviceType);
- EnterCriticalSection(&WINMM_IData->cs);
- for (wmd = WINMM_IData->lpMciDrvs; wmd; wmd = wmd->lpNext) {
- if (wmd->wType == lpParms->wDeviceType)
- cnt++;
- }
- LeaveCriticalSection(&WINMM_IData->cs);
- } else {
- TRACE("MCI_SYSINFO_QUANTITY: # of installed MCI drivers of type %u\n",
- lpParms->wDeviceType);
- FIXME("Don't know how to get # of MCI devices of a given type\n");
- cnt = 1;
+ TRACE("MCI_SYSINFO_QUANTITY: # of installed MCI drivers\n");
+ if (RegOpenKeyExA( HKEY_LOCAL_MACHINE, HKLM_MCI,
+ 0, KEY_QUERY_VALUE, &hKey ) == ERROR_SUCCESS) {
+ RegQueryInfoKeyA( hKey, 0, 0, 0, &cnt, 0, 0, 0, 0, 0, 0, 0);
+ RegCloseKey( hKey );
+ }
+ if (GetPrivateProfileStringA("mci", 0, "", buf, sizeof(buf), "system.ini"))
+ for(s = buf; *s; s += strlen(s) + 1) cnt++;
+ }
+ } else {
+ if (dwFlags & MCI_SYSINFO_OPEN) {
+ TRACE("MCI_SYSINFO_QUANTITY: # of open MCI drivers of type %u\n", lpParms->wDeviceType);
+ EnterCriticalSection(&WINMM_IData->cs);
+ for (wmd = WINMM_IData->lpMciDrvs; wmd; wmd = wmd->lpNext) {
+ if (wmd->wType == lpParms->wDeviceType) cnt++;
}
+ LeaveCriticalSection(&WINMM_IData->cs);
+ } else {
+ TRACE("MCI_SYSINFO_QUANTITY: # of installed MCI drivers of type %u\n", lpParms->wDeviceType);
+ FIXME("Don't know how to get # of MCI devices of a given type\n");
+ cnt = 1;
}
- *(DWORD*)lpParms->lpstrReturn = cnt;
}
+ *(DWORD*)lpParms->lpstrReturn = cnt;
TRACE("(%ld) => '%ld'\n", lpParms->dwNumber, *(DWORD*)lpParms->lpstrReturn);
ret = MCI_INTEGER_RETURNED;
break;
@@ -1499,14 +1499,30 @@
if (dwFlags & MCI_SYSINFO_OPEN) {
FIXME("Don't handle MCI_SYSINFO_NAME|MCI_SYSINFO_OPEN (yet)\n");
ret = MCIERR_UNRECOGNIZED_COMMAND;
- } else if (lpParms->dwNumber > MCI_InstalledCount) {
- ret = MCIERR_OUTOFRANGE;
} else {
- DWORD count = lpParms->dwNumber;
- LPSTR ptr = MCI_lpInstallNames;
-
- while (--count > 0) ptr += strlen(ptr) + 1;
- ret = MCI_WriteString(lpParms->lpstrReturn, lpParms->dwRetSize, ptr);
+ DWORD lRet;
+ s = 0;
+ lRet = RegOpenKeyExA( HKEY_LOCAL_MACHINE, HKLM_MCI, 0, KEY_QUERY_VALUE, &hKey );
+ if (lRet == ERROR_SUCCESS) {
+ lRet = RegQueryInfoKeyA( hKey, 0, 0, 0, &cnt, 0, 0, 0, 0, 0, 0, 0);
+ if (lRet == ERROR_SUCCESS && lpParms->dwNumber <= cnt) {
+ DWORD bufLen = sizeof(buf);
+ lRet = RegEnumKeyExA(hKey, lpParms->dwNumber - 1, buf, &bufLen, 0, 0, 0, 0);
+ if (lRet == ERROR_SUCCESS) s = buf;
+ }
+ RegCloseKey( hKey );
+ }
+ if (!s) {
+ if (GetPrivateProfileStringA("mci", 0, "", buf, sizeof(buf), "system.ini")) {
+ for(p = buf; *p; p += strlen(s) + 1, cnt++) {
+ if (cnt == lpParms->dwNumber - 1) {
+ s = p;
+ break;
+ }
+ }
+ }
+ }
+ ret = s ? MCI_WriteString(lpParms->lpstrReturn, lpParms->dwRetSize, s) : MCIERR_OUTOFRANGE;
}
TRACE("(%ld) => '%s'\n", lpParms->dwNumber, lpParms->lpstrReturn);
break;
@@ -1724,54 +1740,3 @@
}
return LOWORD(dwRet);
}
-
-/**************************************************************************
- * MCI_Init [internal]
- *
- * Initializes the MCI internal variables.
- *
- */
-BOOL MCI_Init(void)
-{
- LPSTR ptr1, ptr2;
- HKEY hWineConf;
- HKEY hkey;
- DWORD err;
- DWORD type;
- DWORD count = 2048;
-
- MCI_InstalledCount = 0;
- ptr1 = MCI_lpInstallNames = HeapAlloc(GetProcessHeap(), 0, count);
-
- if (!MCI_lpInstallNames)
- return FALSE;
-
- /* FIXME: should do also some registry diving here ? */
- if (!(err = RegOpenKeyA(HKEY_LOCAL_MACHINE, "Software\\Wine\\Wine\\Config", &hWineConf)) &&
- !(err = RegOpenKeyA(hWineConf, "options", &hkey))) {
- err = RegQueryValueExA(hkey, "mci", 0, &type, MCI_lpInstallNames, &count);
- RegCloseKey(hkey);
-
- }
- if (!err) {
- TRACE("Wine => '%s' \n", ptr1);
- while ((ptr2 = strchr(ptr1, ':')) != 0) {
- *ptr2++ = 0;
- TRACE("---> '%s' \n", ptr1);
- MCI_InstalledCount++;
- ptr1 = ptr2;
- }
- MCI_InstalledCount++;
- TRACE("---> '%s' \n", ptr1);
- ptr1 += strlen(ptr1) + 1;
- } else {
- GetPrivateProfileStringA("mci", NULL, "", MCI_lpInstallNames, count, "SYSTEM.INI");
- while (strlen(ptr1) > 0) {
- TRACE("---> '%s' \n", ptr1);
- ptr1 += strlen(ptr1) + 1;
- MCI_InstalledCount++;
- }
- }
- RegCloseKey(hWineConf);
- return TRUE;
-}
reactos/lib/winmm
diff -u -r1.4 -r1.5
--- winehq2ros.patch 16 Jun 2004 18:48:46 -0000 1.4
+++ winehq2ros.patch 8 Aug 2004 21:36:20 -0000 1.5
@@ -4,7 +4,7 @@
retrieving revision 1.58
diff -u -r1.58 lolvldrv.c
--- lolvldrv.c 1 Jun 2004 19:40:48 -0000 1.58
-+++ lolvldrv.c 16 Jun 2004 18:56:14 -0000
++++ lolvldrv.c 8 Aug 2004 21:46:41 -0000
@@ -510,10 +510,12 @@
case DRV_QUERYDEVICEINTERFACESIZE:
return MMDRV_Message(mld, uMsg, dwParam1, dwParam2, TRUE);
@@ -45,7 +45,7 @@
retrieving revision 1.26
diff -u -r1.26 time.c
--- time.c 12 Jan 2004 21:03:10 -0000 1.26
-+++ time.c 16 Jun 2004 18:56:14 -0000
++++ time.c 8 Aug 2004 21:46:42 -0000
@@ -175,14 +175,19 @@
volatile HANDLE *pActive = (volatile HANDLE *)&TIME_hMMTimer;
DWORD last_time, cur_time;
@@ -69,11 +69,22 @@
Index: winmm.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/winmm.c,v
-retrieving revision 1.37
-diff -u -r1.37 winmm.c
---- winmm.c 14 Jun 2004 16:53:59 -0000 1.37
-+++ winmm.c 16 Jun 2004 18:56:15 -0000
-@@ -126,10 +126,12 @@
+retrieving revision 1.38
+diff -u -r1.38 winmm.c
+--- winmm.c 30 Jun 2004 18:12:20 -0000 1.38
++++ winmm.c 8 Aug 2004 21:46:43 -0000
+@@ -102,8 +102,9 @@
+ * inside WINMM_IData */
+ CloseHandle(WINMM_IData->psStopEvent);
+ CloseHandle(WINMM_IData->psLastEvent);
++ WINMM_IData->cs.DebugInfo = NULL;
+ DeleteCriticalSection(&WINMM_IData->cs);
+- HeapFree(GetProcessHeap(), 0, WINMM_IData);
++ HeapFree(GetProcessHeap(), 0, WINMM_IData);
+ WINMM_IData = NULL;
+ }
+ }
+@@ -126,10 +127,12 @@
loaded = -1;
if (h)
{
@@ -86,3 +97,139 @@
loaded = 1;
}
}
+@@ -2658,6 +2661,7 @@
+ WAVEHDR* lpWaveOutHdr, UINT uSize)
+ {
+ LPWINE_MLD wmld;
++ UINT result;
+
+ TRACE("(%p, %p, %u);\n", hWaveOut, lpWaveOutHdr, uSize);
+
+@@ -2667,7 +2671,17 @@
+ if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, FALSE)) == NULL)
+ return MMSYSERR_INVALHANDLE;
+
+- return MMDRV_Message(wmld, WODM_PREPARE, (DWORD_PTR)lpWaveOutHdr, uSize, TRUE);
++ if ((result = MMDRV_Message(wmld, WODM_PREPARE, (DWORD_PTR)lpWaveOutHdr,
++ uSize, TRUE)) != MMSYSERR_NOTSUPPORTED)
++ return result;
++
++ if (lpWaveOutHdr->dwFlags & WHDR_INQUEUE)
++ return WAVERR_STILLPLAYING;
++
++ lpWaveOutHdr->dwFlags |= WHDR_PREPARED;
++ lpWaveOutHdr->dwFlags &= ~WHDR_DONE;
++
++ return MMSYSERR_NOERROR;
+ }
+
+ /**************************************************************************
+@@ -2677,6 +2691,7 @@
+ LPWAVEHDR lpWaveOutHdr, UINT uSize)
+ {
+ LPWINE_MLD wmld;
++ UINT result;
+
+ TRACE("(%p, %p, %u);\n", hWaveOut, lpWaveOutHdr, uSize);
+
+@@ -2690,7 +2705,17 @@
+ if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, FALSE)) == NULL)
+ return MMSYSERR_INVALHANDLE;
+
+- return MMDRV_Message(wmld, WODM_UNPREPARE, (DWORD_PTR)lpWaveOutHdr, uSize, TRUE);
++ if ((result = MMDRV_Message(wmld, WODM_UNPREPARE, (DWORD_PTR)lpWaveOutHdr,
++ uSize, TRUE)) != MMSYSERR_NOTSUPPORTED)
++ return result;
++
++ if (lpWaveOutHdr->dwFlags & WHDR_INQUEUE)
++ return WAVERR_STILLPLAYING;
++
++ lpWaveOutHdr->dwFlags &= ~WHDR_PREPARED;
++ lpWaveOutHdr->dwFlags |= WHDR_DONE;
++
++ return MMSYSERR_NOERROR;
+ }
+
+ /**************************************************************************
+@@ -3173,4 +3198,50 @@
+
+
+ return MMDRV_Message(wmld, uMessage, dwParam1, dwParam2, TRUE);
++}
++
++struct mm_starter
++{
++ LPTASKCALLBACK cb;
++ DWORD client;
++ HANDLE event;
++};
++
++DWORD WINAPI mmTaskRun(void* pmt)
++{
++ struct mm_starter mms;
++
++ memcpy(&mms, pmt, sizeof(struct mm_starter));
++ HeapFree(GetProcessHeap(), 0, pmt);
++ mms.cb(mms.client);
++ if (mms.event) SetEvent(mms.event);
++ return 0;
++}
++
++MMRESULT WINAPI mmTaskCreate(LPTASKCALLBACK cb, HANDLE* ph, DWORD client)
++{
++ HANDLE hThread;
++ HANDLE hEvent;
++ struct mm_starter *mms;
++
++ mms = HeapAlloc(GetProcessHeap(), 0, sizeof(struct mm_starter));
++ if (mms == NULL) { return TASKERR_OUTOFMEMORY; }
++
++ mms->cb = cb;
++ mms->client = client;
++ if (ph) {
++ mms->event = hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
++ } else {
++ mms->event = NULL;
++ }
++
++ hThread = CreateThread(0, 0, mmTaskRun, (LPVOID)mms, 0, NULL);
++ if (!hThread) {
++ HeapFree(GetProcessHeap(), 0, mms);
++ CloseHandle(hEvent);
++ return TASKERR_OUTOFMEMORY;
++ }
++ if (ph) *ph = hEvent;
++ CloseHandle(hThread);
++ return 0;
+ }
+Index: winmm.spec
+===================================================================
+RCS file: /home/wine/wine/dlls/winmm/winmm.spec,v
+retrieving revision 1.20
+diff -u -r1.20 winmm.spec
+--- winmm.spec 15 Sep 2003 20:13:30 -0000 1.20
++++ winmm.spec 8 Aug 2004 21:46:43 -0000
+@@ -135,6 +135,7 @@
+ @ stdcall mmioStringToFOURCCW(wstr long)
+ @ stdcall mmioWrite(long ptr long)
+ @ stdcall mmsystemGetVersion()
++@ stdcall mmTaskCreate(ptr ptr long)
+ @ stdcall sndPlaySoundA(ptr long)
+ @ stdcall sndPlaySoundW(ptr long)
+ @ stdcall timeBeginPeriod(long)
+Index: winmm_res.rc
+===================================================================
+RCS file: /home/wine/wine/dlls/winmm/winmm_res.rc,v
+retrieving revision 1.15
+diff -u -r1.15 winmm_res.rc
+--- winmm_res.rc 13 Jul 2004 23:36:37 -0000 1.15
++++ winmm_res.rc 8 Aug 2004 21:46:43 -0000
+@@ -33,7 +33,7 @@
+ #include "winmm_Es.rc"
+ #include "winmm_Fr.rc"
+ #include "winmm_It.rc"
+-#include "winmm_Ja.rc"
++/* #include "winmm_Ja.rc" */ /* Gives error during ReactOS build */
+ #include "winmm_Nl.rc"
+ #include "winmm_Pt.rc"
+ #include "winmm_Ru.rc"
reactos/lib/winmm
diff -u -r1.4 -r1.5
--- winemm.h 16 Jun 2004 18:48:46 -0000 1.4
+++ winemm.h 8 Aug 2004 21:36:20 -0000 1.5
@@ -243,7 +243,6 @@
void MMDRV_InstallMap(unsigned int, MMDRV_MAPFUNC, MMDRV_UNMAPFUNC,
MMDRV_MAPFUNC, MMDRV_UNMAPFUNC, LPDRVCALLBACK);
-BOOL MCI_Init(void);
WINE_MCIDRIVER* MCI_GetDriver(UINT16 uDevID);
UINT MCI_GetDriverFromString(LPCSTR str);
DWORD MCI_WriteString(LPSTR lpDstStr, DWORD dstSize, LPCSTR lpSrcStr);
reactos/lib/winmm
diff -u -r1.8 -r1.9
--- winmm.c 18 Jul 2004 17:06:03 -0000 1.8
+++ winmm.c 8 Aug 2004 21:36:20 -0000 1.9
@@ -185,7 +185,7 @@
if (!WINMM_CreateIData(hInstDLL))
return FALSE;
- if (!MCI_Init() || !MMDRV_Init()) {
+ if (!MMDRV_Init()) {
WINMM_DeleteIData();
return FALSE;
}
reactos/lib/winmm
diff -u -r1.2 -r1.3
--- winmm_res.rc 16 Apr 2004 09:04:04 -0000 1.2
+++ winmm_res.rc 8 Aug 2004 21:36:20 -0000 1.3
@@ -28,12 +28,14 @@
#include "winnls.h"
/* Add your language specific defines here */
+#include "winmm_De.rc"
#include "winmm_En.rc"
+#include "winmm_Es.rc"
#include "winmm_Fr.rc"
#include "winmm_It.rc"
+/* #include "winmm_Ja.rc" */ /* Gives error during ReactOS build */
#include "winmm_Nl.rc"
#include "winmm_Pt.rc"
-#include "winmm_Es.rc"
#include "winmm_Ru.rc"
#include "winmm_Si.rc"
#include "winmm_Sk.rc"
CVSspam 0.2.8