C bzw. C++ Programm, Beispiel wie man ein MCI Gerät bzw. in diesem Fall eine Wave Datei öffnet, abspielt, schliesst, es wurde hier keine Fehlerabfrage programmiert, außerdem muß dem Linker die Importlibrary als Datei winmm.lib angegeben werden, sonst findet das Betriebssystem die Funktion mciSendCommand nicht.
c++ datei ... z.b. main.cpp bzw. fensterfunktionsdatei.cpp ... window_proc ... open_device.cpp
--- Anfang der Einfügungen in open_device.cpp
... gleich nach #include <windows.h> folgende Zeilen einfügen:
--- Anfang der einzufügenden Zeilen
Code:
#include <mmsystem.h>
MCI_OPEN_PARMS mciOpenParameters; // respektive in einer weiteren Includedatei
--- Ende der einzufügenden Zeilen
... Open Device Aufruf z.B. bei case WM_CREATE: der Fensterfunktion WndProc einfügen:
also:
case WM_CREATE:
--- Anfang der einzufügenden Zeilen
Code:
mciOpenParameters.lpstrDeviceType= (LPCSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
mciOpenParameters.lpstrElementName= "C:\\WINDOWS\\CHORD.WAV";
ulrc = // ulrc ... ULONG ReturnCode
mciSendCommand(0,
MCI_OPEN,
MCI_WAIT | MCI_OPEN_ELEMENT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID,
(ULONG)&mciOpenParameters);
--- Ende der einzufügenden Zeilen
und:
case WM_DESTROY:
--- Anfang der einzufügenden Zeilen
Code:
ulrc = // ulrc ... ULONG ReturnCode
mciSendCommand(mciOpenParameters.wDeviceID,
MCI_CLOSE,
MCI_WAIT,
(ULONG)&mciOpenParameters);
--- Ende der einzufügenden Zeilen
--- Ende der Einfügungen in open_device.cpp
************************************************** ******************
--- Anfang der Einfügungen in play_device.cpp
--- Anfang der einzufügenden Zeilen
Code:
#include <mmsystem.h>
extern MCI_OPEN_PARMS mciOpenParameters; // wurde in open_device.cpp bereits definiert, deswegen hier der Zusatz extern
MCI_PLAY_PARMS mciPlayParameters; // hier global, sonst z.B. in einer Funktion definieren
--- Ende der einzufügenden Zeilen
--- Anfang der einzufügenden Zeilen
Code:
case WM_USER_PLAY_WAVE: // WM_USER_PLAY_WAVE muß der Programmierer letztlich festlegen über #define WM_USER_PLAY_WAVE (WM_USER + 1) z.B.
mciSendCommand(mciOpenParameters.wDeviceID, MCI_PLAY, MCI_WAIT, (ULONG)&mciPlayParameters);
--- Ende der einzufügenden Zeilen
--- Ende der Einfügungen in play_device.cpp
mfg Kikakater