Der CooperativeLevel legt fest, wie ein Eingabegerät
z.B. die Tastatur, mit anderen Anwendungen geteilt
wird. Dies ist wichtig, denn ein falsch eingesetzter
CooperativeLevel kann zu Fehlermeldungen oder eigenartigem
Verhalten der Anwendung führen. So ist z.B. ein
exklusiver Zugriff auf die Tastatur nicht erlaubt.
|
Folgende
Cooperative Level sind möglich:
|
DISCL_NONEXCLUSIVE
|
Die
Anwendung erhält keinen exklusiven Zugriff auf
das Gerät (zwingend erforderlich für die Tastatur)
|
DISCL_EXCLUSIVE
|
Die
Anwendungen erhält den exklusiven Zugriff auf das
Gerät, keine andere Anwendung kann somit darauf
zugreifen. (zwingend erforderlich für Force Feedback)
|
DISCL_FOREGROUND |
Die
Anwendung bekommt nur dann Daten, wenn sie im Vordergrund ist. |
DISCL_BACKGROUND
|
Die
Anwendung bekommt immer Daten, egal ob sie im Vorder-
oder Hintergrund
ist. |
Folgende
Kombinationen sind zulässig für die entsprechenden
Eingabegeräte:
|
DISCL_NONEXCLUSIVE
Or
DISCL_BACKGROUND
|
alle
Eingabegeräte ohne Force Feedback (Default-Einstellung)
|
DISCL_NONEXCLUSIVE
Or
DISCL_FOREGROUND
|
alle
Eingabegeräte ohne Force Feedback
|
DISCL_EXCLUSIVE
Or
DISCL_FOREGROUND
|
alle
Eingabegeräte außer der Tastatur
|
DISCL_EXCLUSIVE
Or
DISCL_BACKGROUND
|
Joysticks
und Eingabegeräte mit Force Feedback (nicht zulässig
für Tastatur und Maus)
|
DirectInput
unterdrückt alle Tastatureingaben außer
[Strg+Alt+Del] und [Alt+Tab] wenn eine andere Anwendung
den exklusiven Zugriff hat.
|
Das
Datenformat
|
Wie
bereits erwähnt ist DirectInput mit einer offenen
Schnittstelle ausgestattet um alle zukünftigen
Eingabegeräte unterstützen zu können.
Zum Glück gibt es aber auch Standard-Formate mit
denen die normalen Eingabegeräte angesprochen werden können.
Folgende
Standard-Formate sind möglich:
|
DIFORMAT_KEYBOARD
|
Tastatur;
für jede Taste ein Byte
|
DIFORMAT_MOUSE
|
Maus;
vier Tasten, drei Achsen
|
DIFORMAT_JOYSTICK
|
Joystick;
bis zu 32 Knöpfe, bis zu 6 Achsen, bis zu 2 Schieberegler
und bis zu 4 Richtungsschalter
|
DIFORMAT_JOYSTICK2
|
Datenformat
für erweiterte Joysticks
|
Über
das DirectInputDevice-Objekt stehen zwei Funktionen
zur Verfügung, die DirectInput mitteilen, welches
Datenformat verwendet werden kann.
SetCommonDataFormat()
und SetDataFormat()
|
Standard-Datenformat
|
Mit
der Funktion SetCommonDataFormat (format As CONST_DICOMMONDATAFORMATS)
wird das gewünschte Standard-Format festgelegt.
format
ist die Bezeichnung des Standard-Formats aus der o.a.
Auflistung der Formate.
Es muss ein Datenformat gesetzt werden bevor auf
ein Eingabegerät zugegriffen werden kann. Während
auf ein Eingabegerät zugegriffen wird, kann das
Datenformat nicht geändert werden.
|