/*
 * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "windef.h"
#include "mmddk.h"

#pragma code_page(65001)

STRINGTABLE LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
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 Ausgabezeichenkette 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 Parameter liegt außerhalb des zulässigen Bereichs für diesen Befehl."
MCIERR_FLAGS_NOT_COMPATIBLE, 	"Die Parameter 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
