--- mstools/h/mmsystem.h 2018/08/09 18:20:34 1.1 +++ mstools/h/mmsystem.h 2018/08/09 18:23:10 1.1.1.3 @@ -1,11 +1,8 @@ -#ifndef _MMSYSTEM_ -#define _MMSYSTEM_ - /**************************************************************************/ /*++ BUILD Version: 0002 Increment this if a change has global effects -Copyright (c) 1990-91, Microsoft Corporation +Copyright (c) 1990-92, Microsoft Corporation Module Name: @@ -42,21 +39,23 @@ Abstract: */ /**************************************************************************** -* Multimedia Systems Window Messages + + General constants and data types + ****************************************************************************/ -#ifndef WM_MM_RESERVED_FIRST -// taken from windows.h -/* The following message range reserved for multi-media */ -#define WM_MM_RESERVED_FIRST 0x3A0 -#define WM_MM_RESERVED_LAST 0x3DF -#endif +#ifndef _INC_MMSYSTEM +#define _INC_MMSYSTEM +#ifdef __cplusplus +extern "C" { +#endif +/* general constants */ #define MAXPNAMELEN 32 // max product name length (including NULL) #define MAXERRORLENGTH 128 // max error text length (including final NULL) -// general data types +/* general data types */ typedef UINT MMVERSION; // major (high byte), minor (low byte) typedef UINT MMRESULT; // error return code, 0 means no error // call as if(err=xxxx(...)) Error(err); else @@ -212,24 +211,25 @@ typedef struct tagDRVCONFIGINFO { typedef DRVCONFIGINFO *PDRVCONFIGINFO; typedef DRVCONFIGINFO *NPDRVCONFIGINFO; typedef DRVCONFIGINFO *LPDRVCONFIGINFO; + /* Supported return values for DRV_CONFIGURE message */ #define DRVCNF_CANCEL 0x0000 #define DRVCNF_OK 0x0001 #define DRVCNF_RESTART 0x0002 - // return values from DriverProc() function #define DRV_CANCEL DRVCNF_CANCEL #define DRV_OK DRVCNF_OK #define DRV_RESTART DRVCNF_RESTART // installable driver function prototypes -LRESULT APIENTRY DrvClose(HDRVR hDriver, LONG lParam1, LONG lParam2); -HDRVR APIENTRY DrvOpen( LPCWSTR szDriverName, LPCWSTR szSectionName, +LRESULT APIENTRY CloseDriver(HDRVR hDriver, LONG lParam1, LONG lParam2); +HDRVR APIENTRY OpenDriver( LPCWSTR szDriverName, LPCWSTR szSectionName, LONG lParam2); -LRESULT APIENTRY DrvSendMessage( HDRVR hDriver, UINT message, LONG lParam1, +LRESULT APIENTRY SendDriverMessage( HDRVR hDriver, UINT message, LONG lParam1, LONG lParam2); -HANDLE APIENTRY DrvGetModuleHandle( HDRVR hDriver ); +HMODULE APIENTRY DrvGetModuleHandle( HDRVR hDriver ); +HMODULE APIENTRY GetDriverModuleHandle( HDRVR hDriver ); #define DRV_MCI_FIRST DRV_RESERVED #define DRV_MCI_LAST (DRV_RESERVED + 0xFFF) @@ -313,14 +313,13 @@ UINT APIENTRY mmsystemGetVersion(VOID); * that PlaySound takes a module handle. The position is to be reviewed. ****************************************************************************/ -BOOL APIENTRY sndPlaySoundA( LPCSTR lpszSoundName, UINT uFlags ); +BOOL APIENTRY sndPlaySoundA( LPCSTR lpszSoundName, UINT uFlags ); BOOL APIENTRY sndPlaySoundW( LPCWSTR lpszSoundName, UINT uFlags ); - #ifdef UNICODE -#define sndPlaySound sndPlaySoundW +#define sndPlaySound sndPlaySoundW #else -#define sndPlaySound sndPlaySoundA -#endif +#define sndPlaySound sndPlaySoundA +#endif // !UNICODE // flag values for uFlags parameter /**** These are the Win3.1 values *** @@ -377,14 +376,13 @@ BOOL APIENTRY sndPlaySoundW( LPCWSTR lps /****************************************************************************/ -BOOL APIENTRY PlaySoundA( LPCSTR lpszName, HANDLE hModule, DWORD dwFlags ); +BOOL APIENTRY PlaySoundA( LPCSTR lpszName, HANDLE hModule, DWORD dwFlags ); BOOL APIENTRY PlaySoundW( LPCWSTR lpszName, HANDLE hModule, DWORD dwFlags ); - #ifdef UNICODE -#define PlaySound PlaySoundW +#define PlaySound PlaySoundW #else -#define PlaySound PlaySoundA -#endif +#define PlaySound PlaySoundA +#endif // !UNICODE #ifndef MMNOWAVE /**************************************************************************** @@ -418,7 +416,7 @@ typedef WAVECALLBACK *LPWAVECALLBACK; #define WIM_DATA MM_WIM_DATA // device ID for wave device mapper -#define WAVE_MAPPER (-1) +#define WAVE_MAPPER ((DWORD)(-1)) // flags for dwFlags parameter in waveOutOpen() and waveInOpen() #define WAVE_FORMAT_QUERY 0x00000001 @@ -448,46 +446,53 @@ typedef WAVEHDR *LPWAVEHDR; #define WHDR_INQUEUE 0x00000010 // reserved for driver #define WHDR_VALID 0x0000001F // valid flags /* ;Internal */ -// waveform output device capabilities structure (ASCII ) +// waveform output device capabilities structure typedef struct tagWAVEOUTCAPSA { - WORD wMid; // manufacturer ID - WORD wPid; // product ID - MMVERSION vDriverVersion; // version of the driver - CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) - DWORD dwFormats; // formats supported - WORD wChannels; // number of sources supported - DWORD dwSupport; // functionality supported by driver + WORD wMid; // manufacturer ID + WORD wPid; // product ID + MMVERSION vDriverVersion; // version of the driver + CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) + DWORD dwFormats; // formats supported + WORD wChannels; // number of sources supported + DWORD dwSupport; // functionality supported by driver } WAVEOUTCAPSA; - -// waveform output device capabilities structure (UNICODE ) +// waveform output device capabilities structure typedef struct tagWAVEOUTCAPSW { - WORD wMid; // manufacturer ID - WORD wPid; // product ID - MMVERSION vDriverVersion; // version of the driver - WCHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) - DWORD dwFormats; // formats supported - WORD wChannels; // number of sources supported - DWORD dwSupport; // functionality supported by driver + WORD wMid; // manufacturer ID + WORD wPid; // product ID + MMVERSION vDriverVersion; // version of the driver + WCHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) + DWORD dwFormats; // formats supported + WORD wChannels; // number of sources supported + DWORD dwSupport; // functionality supported by driver } WAVEOUTCAPSW; +#ifdef UNICODE +typedef WAVEOUTCAPSW WAVEOUTCAPS; +#else +typedef WAVEOUTCAPSA WAVEOUTCAPS; +#endif // UNICODE typedef WAVEOUTCAPSA *PWAVEOUTCAPSA; -typedef WAVEOUTCAPSA *NPWAVEOUTCAPSA; -typedef WAVEOUTCAPSA *LPWAVEOUTCAPSA; - typedef WAVEOUTCAPSW *PWAVEOUTCAPSW; +#ifdef UNICODE +typedef PWAVEOUTCAPSW PWAVEOUTCAPS; +#else +typedef PWAVEOUTCAPSA PWAVEOUTCAPS; +#endif // UNICODE +typedef WAVEOUTCAPSA *NPWAVEOUTCAPSA; typedef WAVEOUTCAPSW *NPWAVEOUTCAPSW; +#ifdef UNICODE +typedef NPWAVEOUTCAPSW NPWAVEOUTCAPS; +#else +typedef NPWAVEOUTCAPSA NPWAVEOUTCAPS; +#endif // UNICODE +typedef WAVEOUTCAPSA *LPWAVEOUTCAPSA; typedef WAVEOUTCAPSW *LPWAVEOUTCAPSW; - #ifdef UNICODE -#define WAVEOUTCAPS WAVEOUTCAPSW -#define NPWAVEOUTCAPS NPWAVEOUTCAPSW -#define LPWAVEOUTCAPS LPWAVEOUTCAPSW -#else -#define WAVEOUTCAPS WAVEOUTCAPSA -#define NPWAVEOUTCAPS NPWAVEOUTCAPSA -#define LPWAVEOUTCAPS LPWAVEOUTCAPSA -#endif - +typedef LPWAVEOUTCAPSW LPWAVEOUTCAPS; +#else +typedef LPWAVEOUTCAPSA LPWAVEOUTCAPS; +#endif // UNICODE // flags for dwSupport field of WAVEOUTCAPS #define WAVECAPS_PITCH 0x00000001 // supports pitch control @@ -496,7 +501,7 @@ typedef WAVEOUTCAPSW *LPWAVEOUTCAPSW #define WAVECAPS_LRVOLUME 0x00000008 // separate left-right volume control #define WAVECAPS_SYNC 0x00000010 -// waveform input device capabilities structure (ASCII) +// waveform input device capabilities structure typedef struct tagWAVEINCAPSA { WORD wMid; // manufacturer ID WORD wPid; // product ID @@ -504,9 +509,8 @@ typedef struct tagWAVEINCAPSA { CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) DWORD dwFormats; // formats supported WORD wChannels; // number of channels supported -} WAVEINCAPSA, *PWAVEINCAPSA, *LPWAVEINCAPSA; - -// waveform input device capabilities structure (UNICODE) +} WAVEINCAPSA; +// waveform input device capabilities structure typedef struct tagWAVEINCAPSW { WORD wMid; // manufacturer ID WORD wPid; // product ID @@ -514,17 +518,26 @@ typedef struct tagWAVEINCAPSW { WCHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) DWORD dwFormats; // formats supported WORD wChannels; // number of channels supported -} WAVEINCAPSW, *PWAVEINCAPSW, *LPWAVEINCAPSW; - +} WAVEINCAPSW; #ifdef UNICODE -#define WAVEINCAPS WAVEINCAPSW -#define LPWAVEINCAPS LPWAVEINCAPSW -#define PWAVEINCAPS PWAVEINCAPSW +typedef WAVEINCAPSW WAVEINCAPS; #else -#define WAVEINCAPS WAVEINCAPSA -#define PWAVEINCAPS PWAVEINCAPSA -#define LPWAVEINCAPS LPWAVEINCAPSA -#endif +typedef WAVEINCAPSA WAVEINCAPS; +#endif // UNICODE +typedef WAVEINCAPSA *PWAVEINCAPSA; +typedef WAVEINCAPSW *PWAVEINCAPSW; +#ifdef UNICODE +typedef PWAVEINCAPSW PWAVEINCAPS; +#else +typedef PWAVEINCAPSA PWAVEINCAPS; +#endif // UNICODE +typedef WAVEINCAPSA *LPWAVEINCAPSA; +typedef WAVEINCAPSW *LPWAVEINCAPSW; +#ifdef UNICODE +typedef LPWAVEINCAPSW LPWAVEINCAPS; +#else +typedef LPWAVEINCAPSA LPWAVEINCAPS; +#endif // UNICODE // defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS #define WAVE_INVALIDFORMAT 0x00000000 // invalid format @@ -542,7 +555,7 @@ typedef struct tagWAVEINCAPSW { #define WAVE_FORMAT_4S16 0x00000800 // 44.1 kHz, Stereo, 16-bit // flags for wFormatTag field of WAVEFORMAT -#define WAVE_FORMAT_PCM 1 // Needed in resource files +#define WAVE_FORMAT_PCM 1 // Needed in resource files so outside #ifndef RC_INVOKED #ifndef RC_INVOKED // RC gets upset by #pragma pack() @@ -581,10 +594,10 @@ MMRESULT APIENTRY waveOutGetDevCapsA(UIN MMRESULT APIENTRY waveOutGetDevCapsW(UINT uDeviceID, LPWAVEOUTCAPSW lpCaps, UINT uSize); #ifdef UNICODE -#define waveOutGetDevCaps waveOutGetDevCapsW +#define waveOutGetDevCaps waveOutGetDevCapsW #else -#define waveOutGetDevCaps waveOutGetDevCapsA -#endif +#define waveOutGetDevCaps waveOutGetDevCapsA +#endif // !UNICODE MMRESULT APIENTRY waveOutGetVolume(UINT uDeviceID, LPDWORD lpdwVolume); MMRESULT APIENTRY waveOutSetVolume(UINT uDeviceID, DWORD dwVolume); @@ -592,10 +605,10 @@ MMRESULT APIENTRY waveOutSetVolume(UINT MMRESULT APIENTRY waveOutGetErrorTextA(MMRESULT err, LPSTR lpText, UINT uSize); MMRESULT APIENTRY waveOutGetErrorTextW(MMRESULT err, LPWSTR lpText, UINT uSize); #ifdef UNICODE -#define waveOutGetErrorText waveOutGetErrorTextW +#define waveOutGetErrorText waveOutGetErrorTextW #else -#define waveOutGetErrorText waveOutGetErrorTextA -#endif +#define waveOutGetErrorText waveOutGetErrorTextA +#endif // !UNICODE MMRESULT APIENTRY waveOutOpen(LPHWAVEOUT lphWaveOut, UINT uDeviceID, LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); @@ -625,19 +638,18 @@ MMRESULT APIENTRY waveInGetDevCapsA(UINT MMRESULT APIENTRY waveInGetDevCapsW(UINT uDeviceID, LPWAVEINCAPSW lpCaps, UINT uSize); #ifdef UNICODE -#define waveInGetDevCaps waveInGetDevCapsW +#define waveInGetDevCaps waveInGetDevCapsW #else -#define waveInGetDevCaps waveInGetDevCapsA -#endif - +#define waveInGetDevCaps waveInGetDevCapsA +#endif // !UNICODE MMRESULT APIENTRY waveInGetErrorTextA(MMRESULT err, LPSTR lpText, UINT uSize); MMRESULT APIENTRY waveInGetErrorTextW(MMRESULT err, LPWSTR lpText, UINT uSize); #ifdef UNICODE -#define waveInGetErrorText waveInGetErrorTextW +#define waveInGetErrorText waveInGetErrorTextW #else -#define waveInGetErrorText waveInGetErrorTextA -#endif +#define waveInGetErrorText waveInGetErrorTextA +#endif // !UNICODE MMRESULT APIENTRY waveInOpen(LPHWAVEIN lphWaveIn, UINT uDeviceID, LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); @@ -701,8 +713,8 @@ typedef WORD *LPKEYARRAY; #define MOM_DONE MM_MOM_DONE // device ID for MIDI mapper -#define MIDIMAPPER (-1) -#define MIDI_MAPPER (-1) +#define MIDIMAPPER (-1) /* Cannot be cast to DWORD as RC complains */ +#define MIDI_MAPPER ((DWORD)(-1)) // flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches() #define MIDI_CACHE_ALL 1 @@ -711,7 +723,7 @@ typedef WORD *LPKEYARRAY; #define MIDI_UNCACHE 4 #define MIDI_CACHE_VALID (MIDI_CACHE_ALL | MIDI_CACHE_BESTFIT | MIDI_CACHE_QUERY | MIDI_UNCACHE) /* ;Internal */ -// MIDI output device capabilities structure (ASCII) +// MIDI output device capabilities structure typedef struct tagMIDIOUTCAPSA { WORD wMid; // manufacturer ID WORD wPid; // product ID @@ -723,11 +735,7 @@ typedef struct tagMIDIOUTCAPSA { WORD wChannelMask; // channels used (internal synth only) DWORD dwSupport; // functionality supported by driver } MIDIOUTCAPSA; -typedef MIDIOUTCAPSA *PMIDIOUTCAPSA; -typedef MIDIOUTCAPSA *NPMIDIOUTCAPSA; -typedef MIDIOUTCAPSA *LPMIDIOUTCAPSA; - -// MIDI output device capabilities structure (UNICODE) +// MIDI output device capabilities structure typedef struct tagMIDIOUTCAPSW { WORD wMid; // manufacturer ID WORD wPid; // product ID @@ -739,19 +747,32 @@ typedef struct tagMIDIOUTCAPSW { WORD wChannelMask; // channels used (internal synth only) DWORD dwSupport; // functionality supported by driver } MIDIOUTCAPSW; +#ifdef UNICODE +typedef MIDIOUTCAPSW MIDIOUTCAPS; +#else +typedef MIDIOUTCAPSA MIDIOUTCAPS; +#endif // UNICODE +typedef MIDIOUTCAPSA *PMIDIOUTCAPSA; typedef MIDIOUTCAPSW *PMIDIOUTCAPSW; +#ifdef UNICODE +typedef PMIDIOUTCAPSW PMIDIOUTCAPS; +#else +typedef PMIDIOUTCAPSA PMIDIOUTCAPS; +#endif // UNICODE +typedef MIDIOUTCAPSA *NPMIDIOUTCAPSA; typedef MIDIOUTCAPSW *NPMIDIOUTCAPSW; +#ifdef UNICODE +typedef NPMIDIOUTCAPSW NPMIDIOUTCAPS; +#else +typedef NPMIDIOUTCAPSA NPMIDIOUTCAPS; +#endif // UNICODE +typedef MIDIOUTCAPSA *LPMIDIOUTCAPSA; typedef MIDIOUTCAPSW *LPMIDIOUTCAPSW; - #ifdef UNICODE -#define MIDIOUTCAPS MIDIOUTCAPSW -#define NPMIDIOUTCAPS NPMIDIOUTCAPSW -#define LPMIDIOUTCAPS LPMIDIOUTCAPSW -#else -#define MIDIOUTCAPS MIDIOUTCAPSA -#define NPMIDIOUTCAPS NPMIDIOUTCAPSA -#define LPMIDIOUTCAPS LPMIDIOUTCAPSA -#endif +typedef LPMIDIOUTCAPSW LPMIDIOUTCAPS; +#else +typedef LPMIDIOUTCAPSA LPMIDIOUTCAPS; +#endif // UNICODE // flags for wTechnology field of MIDIOUTCAPS structure #define MOD_MIDIPORT 1 // output port @@ -765,37 +786,46 @@ typedef MIDIOUTCAPSW *LPMIDIOUTCAPSW; #define MIDICAPS_LRVOLUME 0x00000002 // separate left-right volume control #define MIDICAPS_CACHE 0x00000004 -// MIDI input device capabilities structure (ASCII) +// MIDI input device capabilities structure typedef struct tagMIDIINCAPSA { WORD wMid; // manufacturer ID WORD wPid; // product ID MMVERSION vDriverVersion; // version of the driver CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) } MIDIINCAPSA; -typedef MIDIINCAPSA *PMIDIINCAPSA; -typedef MIDIINCAPSA *NPMIDIINCAPSA; -typedef MIDIINCAPSA *LPMIDIINCAPSA; - -// MIDI input device capabilities structure (UNICODE) +// MIDI input device capabilities structure typedef struct tagMIDIINCAPSW { WORD wMid; // manufacturer ID WORD wPid; // product ID MMVERSION vDriverVersion; // version of the driver WCHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) } MIDIINCAPSW; +#ifdef UNICODE +typedef MIDIINCAPSW MIDIINCAPS; +#else +typedef MIDIINCAPSA MIDIINCAPS; +#endif // UNICODE +typedef MIDIINCAPSA *PMIDIINCAPSA; typedef MIDIINCAPSW *PMIDIINCAPSW; +#ifdef UNICODE +typedef PMIDIINCAPSW PMIDIINCAPS; +#else +typedef PMIDIINCAPSA PMIDIINCAPS; +#endif // UNICODE +typedef MIDIINCAPSA *NPMIDIINCAPSA; typedef MIDIINCAPSW *NPMIDIINCAPSW; +#ifdef UNICODE +typedef NPMIDIINCAPSW NPMIDIINCAPS; +#else +typedef NPMIDIINCAPSA NPMIDIINCAPS; +#endif // UNICODE +typedef MIDIINCAPSA *LPMIDIINCAPSA; typedef MIDIINCAPSW *LPMIDIINCAPSW; - #ifdef UNICODE -#define MIDIINCAPS MIDIINCAPSW -#define NPMIDIINCAPS NPMIDIINCAPSW -#define LPMIDIINCAPS LPMIDIINCAPSW -#else -#define MIDIINCAPS MIDIINCAPSA -#define NPMIDIINCAPS NPMIDIINCAPSA -#define LPMIDIINCAPS LPMIDIINCAPSA -#endif +typedef LPMIDIINCAPSW LPMIDIINCAPS; +#else +typedef LPMIDIINCAPSA LPMIDIINCAPS; +#endif // UNICODE // MIDI data block header typedef struct midihdr_tag { @@ -820,17 +850,15 @@ typedef MIDIHDR *LPMIDIHDR; // MIDI function prototypes UINT APIENTRY midiOutGetNumDevs(VOID); -MMRESULT APIENTRY midiOutGetDevCapsW(UINT uDeviceID, // UNICODE version - LPMIDIOUTCAPSW lpCaps, UINT uSize); - -MMRESULT APIENTRY midiOutGetDevCapsA(UINT uDeviceID, // ASCII version +MMRESULT APIENTRY midiOutGetDevCapsA(UINT uDeviceID, LPMIDIOUTCAPSA lpCaps, UINT uSize); - +MMRESULT APIENTRY midiOutGetDevCapsW(UINT uDeviceID, + LPMIDIOUTCAPSW lpCaps, UINT uSize); #ifdef UNICODE -#define midiOutGetDevCaps midiOutGetDevCapsW +#define midiOutGetDevCaps midiOutGetDevCapsW #else -#define midiOutGetDevCaps midiOutGetDevCapsA -#endif +#define midiOutGetDevCaps midiOutGetDevCapsA +#endif // !UNICODE MMRESULT APIENTRY midiOutGetVolume(UINT uDeviceID, LPDWORD lpdwVolume); MMRESULT APIENTRY midiOutSetVolume(UINT uDeviceID, DWORD dwVolume); @@ -838,11 +866,10 @@ MMRESULT APIENTRY midiOutSetVolume(UINT MMRESULT APIENTRY midiOutGetErrorTextA(MMRESULT err, LPSTR lpText, UINT uSize); MMRESULT APIENTRY midiOutGetErrorTextW(MMRESULT err, LPWSTR lpText, UINT uSize); #ifdef UNICODE -#define midiOutGetErrorText midiOutGetErrorTextW +#define midiOutGetErrorText midiOutGetErrorTextW #else -#define midiOutGetErrorText midiOutGetErrorTextA -#endif - +#define midiOutGetErrorText midiOutGetErrorTextA +#endif // !UNICODE MMRESULT APIENTRY midiOutOpen(LPHMIDIOUT lphMidiOut, UINT uDeviceID, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); @@ -865,27 +892,23 @@ MMRESULT APIENTRY UINT APIENTRY midiInGetNumDevs(VOID); -MMRESULT APIENTRY midiInGetDevCapsW(UINT uDeviceID, // UNICODE version - LPMIDIINCAPSW lpCaps, UINT uSize); - -MMRESULT APIENTRY midiInGetDevCapsA(UINT uDeviceID, // ASCII version +MMRESULT APIENTRY midiInGetDevCapsA(UINT uDeviceID, LPMIDIINCAPSA lpCaps, UINT uSize); - +MMRESULT APIENTRY midiInGetDevCapsW(UINT uDeviceID, + LPMIDIINCAPSW lpCaps, UINT uSize); #ifdef UNICODE -#define midiInGetDevCaps midiInGetDevCapsW +#define midiInGetDevCaps midiInGetDevCapsW #else -#define midiInGetDevCaps midiInGetDevCapsA -#endif - -MMRESULT APIENTRY midiInGetErrorTextW(MMRESULT err, LPWSTR lpText, UINT uSize); +#define midiInGetDevCaps midiInGetDevCapsA +#endif // !UNICODE MMRESULT APIENTRY midiInGetErrorTextA(MMRESULT err, LPSTR lpText, UINT uSize); - +MMRESULT APIENTRY midiInGetErrorTextW(MMRESULT err, LPWSTR lpText, UINT uSize); #ifdef UNICODE -#define midiInGetErrorText midiInGetErrorTextW +#define midiInGetErrorText midiInGetErrorTextW #else -#define midiInGetErrorText midiInGetErrorTextA -#endif +#define midiInGetErrorText midiInGetErrorTextA +#endif // !UNICODE MMRESULT APIENTRY midiInOpen(LPHMIDIIN lphMidiIn, UINT uDeviceID, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); @@ -914,43 +937,52 @@ MMRESULT APIENTRY ****************************************************************************/ // device ID for aux device mapper -#define AUX_MAPPER (-1) +#define AUX_MAPPER ((DWORD)(-1)) -// Auxiliary audio device capabilities structure (UNICODE) -typedef struct auxcapsW_tag { +// Auxiliary audio device capabilities structure +typedef struct tagAUXCAPSA { WORD wMid; // manufacturer ID WORD wPid; // product ID MMVERSION vDriverVersion; // version of the driver - WCHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) + CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) WORD wTechnology; // type of device DWORD dwSupport; // functionality supported by driver -} AUXCAPSW; -typedef AUXCAPSW *PAUXCAPSW; -typedef AUXCAPSW *NPAUXCAPSW; -typedef AUXCAPSW *LPAUXCAPSW; - -// Auxiliary audio device capabilities structure (ASCII) -typedef struct auxcapsA_tag { +} AUXCAPSA; +// Auxiliary audio device capabilities structure +typedef struct tagAUXCAPSW { WORD wMid; // manufacturer ID WORD wPid; // product ID MMVERSION vDriverVersion; // version of the driver - CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) + WCHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) WORD wTechnology; // type of device DWORD dwSupport; // functionality supported by driver -} AUXCAPSA; -typedef AUXCAPSA *PAUXCAPSA; -typedef AUXCAPSA *NPAUXCAPSA; -typedef AUXCAPSA *LPAUXCAPSA; - +} AUXCAPSW; #ifdef UNICODE -#define AUXCAPS AUXCAPSW -#define NPAUXCAPS NPAUXCAPSW -#define LPAUXCAPS LPAUXCAPSW -#else -#define AUXCAPS AUXCAPSA -#define NPAUXCAPS NPAUXCAPSA -#define LPAUXCAPS LPAUXCAPSA -#endif +typedef AUXCAPSW AUXCAPS; +#else +typedef AUXCAPSA AUXCAPS; +#endif // UNICODE +typedef AUXCAPSA *PAUXCAPSA; +typedef AUXCAPSW *PAUXCAPSW; +#ifdef UNICODE +typedef PAUXCAPSW PAUXCAPS; +#else +typedef PAUXCAPSA PAUXCAPS; +#endif // UNICODE +typedef AUXCAPSA *NPAUXCAPSA; +typedef AUXCAPSW *NPAUXCAPSW; +#ifdef UNICODE +typedef NPAUXCAPSW NPAUXCAPS; +#else +typedef NPAUXCAPSA NPAUXCAPS; +#endif // UNICODE +typedef AUXCAPSA *LPAUXCAPSA; +typedef AUXCAPSW *LPAUXCAPSW; +#ifdef UNICODE +typedef LPAUXCAPSW LPAUXCAPS; +#else +typedef LPAUXCAPSA LPAUXCAPS; +#endif // UNICODE // flags for wTechnology field in AUXCAPS structure #define AUXCAPS_CDAUDIO 1 // audio from internal CD-ROM drive @@ -962,14 +994,13 @@ typedef AUXCAPSA *LPAUXCAPSA; // auxiliary audio function prototypes UINT APIENTRY auxGetNumDevs(VOID); -MMRESULT APIENTRY auxGetDevCapsW(UINT uDeviceID, LPAUXCAPSW lpCaps, UINT uSize); MMRESULT APIENTRY auxGetDevCapsA(UINT uDeviceID, LPAUXCAPSA lpCaps, UINT uSize); - +MMRESULT APIENTRY auxGetDevCapsW(UINT uDeviceID, LPAUXCAPSW lpCaps, UINT uSize); #ifdef UNICODE -#define auxGetDevCaps auxGetDevCapsW +#define auxGetDevCaps auxGetDevCapsW #else -#define auxGetDevCaps auxGetDevCapsA -#endif +#define auxGetDevCaps auxGetDevCapsA +#endif // !UNICODE MMRESULT APIENTRY auxSetVolume(UINT uDeviceID, DWORD dwVolume); MMRESULT APIENTRY auxGetVolume(UINT uDeviceID, LPDWORD lpdwVolume); @@ -1048,84 +1079,94 @@ MMRESULT APIENTRY timeEndPeriod(UINT uPe #define JOYSTICKID1 0 #define JOYSTICKID2 1 -// joystick device capabilities data structure (UNICODE) -typedef struct joycapsW_tag { +// joystick device capabilities data structure +typedef struct tagJOYCAPSA { + WORD wMid; // manufacturer ID + WORD wPid; // product ID + CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) + UINT wXmin; // minimum x position value + UINT wXmax; // maximum x position value + UINT wYmin; // minimum y position value + UINT wYmax; // maximum y position value + UINT wZmin; // minimum z position value + UINT wZmax; // maximum z position value + UINT wNumButtons; // number of buttons + UINT wPeriodMin; // minimum message period when captured + UINT wPeriodMax; // maximum message period when captured +} JOYCAPSA; +// joystick device capabilities data structure +typedef struct tagJOYCAPSW { WORD wMid; // manufacturer ID WORD wPid; // product ID WCHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) - WORD wXmin; // minimum x position value - WORD wXmax; // maximum x position value - WORD wYmin; // minimum y position value - WORD wYmax; // maximum y position value - WORD wZmin; // minimum z position value - WORD wZmax; // maximum z position value - WORD wNumButtons; // number of buttons - WORD wPeriodMin; // minimum message period when captured - WORD wPeriodMax; // maximum message period when captured - } JOYCAPSW; + UINT wXmin; // minimum x position value + UINT wXmax; // maximum x position value + UINT wYmin; // minimum y position value + UINT wYmax; // maximum y position value + UINT wZmin; // minimum z position value + UINT wZmax; // maximum z position value + UINT wNumButtons; // number of buttons + UINT wPeriodMin; // minimum message period when captured + UINT wPeriodMax; // maximum message period when captured +} JOYCAPSW; +#ifdef UNICODE +typedef JOYCAPSW JOYCAPS; +#else +typedef JOYCAPSA JOYCAPS; +#endif // UNICODE +typedef JOYCAPSA *PJOYCAPSA; typedef JOYCAPSW *PJOYCAPSW; +#ifdef UNICODE +typedef PJOYCAPSW PJOYCAPS; +#else +typedef PJOYCAPSA PJOYCAPS; +#endif // UNICODE +typedef JOYCAPSA *NPJOYCAPSA; typedef JOYCAPSW *NPJOYCAPSW; +#ifdef UNICODE +typedef NPJOYCAPSW NPJOYCAPS; +#else +typedef NPJOYCAPSA NPJOYCAPS; +#endif // UNICODE +typedef JOYCAPSA *LPJOYCAPSA; typedef JOYCAPSW *LPJOYCAPSW; - -// joystick device capabilities data structure -typedef struct joycapsA_tag { - WORD wMid; // manufacturer ID - WORD wPid; // product ID - CHAR szPname[MAXPNAMELEN]; // product name (NULL terminated string) - WORD wXmin; // minimum x position value - WORD wXmax; // maximum x position value - WORD wYmin; // minimum y position value - WORD wYmax; // maximum y position value - WORD wZmin; // minimum z position value - WORD wZmax; // maximum z position value - WORD wNumButtons; // number of buttons - WORD wPeriodMin; // minimum message period when captured - WORD wPeriodMax; // maximum message period when captured - } JOYCAPSA; -typedef JOYCAPSA *PJOYCAPSA; -typedef JOYCAPSA *NPJOYCAPSA; -typedef JOYCAPSA *LPJOYCAPSA; - -#ifdef UNICODE -#define JOYCAPS JOYCAPSW -#define NPJOYCAPS NPJOYCAPSW -#define LPJOYCAPS LPJOYCAPSW -#else -#define JOYCAPS JOYCAPSA -#define NPJOYCAPS NPJOYCAPSA -#define LPJOYCAPS LPJOYCAPSA -#endif +#ifdef UNICODE +typedef LPJOYCAPSW LPJOYCAPS; +#else +typedef LPJOYCAPSA LPJOYCAPS; +#endif // UNICODE // joystick information data structure typedef struct joyinfo_tag { - WORD wXpos; // x position - WORD wYpos; // y position - WORD wZpos; // z position - WORD wButtons; // button states + UINT wXpos; // x position + UINT wYpos; // y position + UINT wZpos; // z position + UINT wButtons; // button states } JOYINFO; typedef JOYINFO *PJOYINFO; typedef JOYINFO *NPJOYINFO; typedef JOYINFO *LPJOYINFO; // joystick function prototypes -MMRESULT APIENTRY joyGetDevCapsW(UINT id, LPJOYCAPSW lpCaps, UINT uSize); MMRESULT APIENTRY joyGetDevCapsA(UINT id, LPJOYCAPSA lpCaps, UINT uSize); +// joystick function prototypes +MMRESULT APIENTRY joyGetDevCapsW(UINT id, LPJOYCAPSW lpCaps, UINT uSize); #ifdef UNICODE -#define joyGetDevCaps joyGetDevCapsW +#define joyGetDevCaps joyGetDevCapsW #else -#define joyGetDevCaps joyGetDevCapsA -#endif +#define joyGetDevCaps joyGetDevCapsA +#endif // !UNICODE UINT APIENTRY joyGetNumDevs(VOID); MMRESULT APIENTRY joyGetPos(UINT id, LPJOYINFO lpInfo); -MMRESULT APIENTRY joyGetThreshold(UINT id,LPWORD lpwThreshold); +MMRESULT APIENTRY joyGetThreshold(UINT id, PUINT lpuThreshold); MMRESULT APIENTRY joyReleaseCapture(UINT id); MMRESULT APIENTRY joySetCapture(HWND hwnd, UINT uId, UINT uPeriod, BOOL bChanged); MMRESULT APIENTRY joySetThreshold(UINT id, UINT uThreshold); -UINT APIENTRY joySetCalibration(UINT id, LPWORD pwXbase, /* ;Internal */ - LPWORD pwXdelta, LPWORD pwYbase, LPWORD pwYdelta, /* ;Internal */ - LPWORD pwZbase, LPWORD pwZdelta); /* ;Internal */ +UINT APIENTRY joySetCalibration(UINT id, PUINT pwXbase, /* ;Internal */ + PUINT pwXdelta, PUINT pwYbase, PUINT pwYdelta, /* ;Internal */ + PUINT pwZbase, PUINT pwZdelta); /* ;Internal */ #endif //ifndef MMNOJOY @@ -1297,44 +1338,42 @@ typedef MMCKINFO *LPMMCKINFO; /* MMIO prototypes */ -FOURCC APIENTRY mmioStringToFOURCCA(LPSTR sz, UINT uFlags); -FOURCC APIENTRY mmioStringToFOURCCW(LPWSTR sz, UINT uFlags); +FOURCC APIENTRY mmioStringToFOURCCA(LPCSTR sz, UINT uFlags); +FOURCC APIENTRY mmioStringToFOURCCW(LPCWSTR sz, UINT uFlags); #ifdef UNICODE -#define mmioStringToFOURCC mmioStringToFOURCCW +#define mmioStringToFOURCC mmioStringToFOURCCW #else -#define mmioStringToFOURCC mmioStringToFOURCCA -#endif +#define mmioStringToFOURCC mmioStringToFOURCCA +#endif // !UNICODE LPMMIOPROC APIENTRY mmioInstallIOProcA( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); LPMMIOPROC APIENTRY mmioInstallIOProcW( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); #ifdef UNICODE -#define mmioInstallIOProc mmioInstallIOProcW +#define mmioInstallIOProc mmioInstallIOProcW #else -#define mmioInstallIOProc mmioInstallIOProcA -#endif - +#define mmioInstallIOProc mmioInstallIOProcA +#endif // !UNICODE HMMIO APIENTRY mmioOpenA( LPSTR szFileName, LPMMIOINFO lpmmioinfo, DWORD dwOpenFlags); HMMIO APIENTRY mmioOpenW( LPWSTR szFileName, LPMMIOINFO lpmmioinfo, DWORD dwOpenFlags); #ifdef UNICODE -#define mmioOpen mmioOpenW +#define mmioOpen mmioOpenW #else -#define mmioOpen mmioOpenA -#endif +#define mmioOpen mmioOpenA +#endif // !UNICODE -MMRESULT APIENTRY mmioRenameA( LPSTR szFileName, LPSTR szNewFileName, +MMRESULT APIENTRY mmioRenameA( LPCSTR szFileName, LPCSTR szNewFileName, LPMMIOINFO lpmmioinfo, DWORD dwRenameFlags); -MMRESULT APIENTRY mmioRenameW( LPWSTR szFileName, LPWSTR szNewFileName, +MMRESULT APIENTRY mmioRenameW( LPCWSTR szFileName, LPCWSTR szNewFileName, LPMMIOINFO lpmmioinfo, DWORD dwRenameFlags); #ifdef UNICODE -#define mmioRename mmioRenameW +#define mmioRename mmioRenameW #else -#define mmioRename mmioRenameA -#endif - +#define mmioRename mmioRenameA +#endif // !UNICODE MMRESULT APIENTRY mmioClose(HMMIO hmmio, UINT uFlags); LRESULT APIENTRY mmioRead(HMMIO hmmio, LPSTR pch, LONG cch); @@ -1380,19 +1419,23 @@ MCIERROR APIENTRY mciSendCommandA( UINT uMessage, DWORD dwParam1, DWORD dwParam2 ); - +/*--------------------------------------------------------------------*\ + * + * MCI functions + * + *-------------------------------------------------------------------- + * msiSendCommand +\*--------------------------------------------------------------------*/ MCIERROR APIENTRY mciSendCommandW( MCIDEVICEID wDeviceID, UINT uMessage, DWORD dwParam1, DWORD dwParam2 ); - #ifdef UNICODE -#define mciSendCommand mciSendCommandW +#define mciSendCommand mciSendCommandW #else -#define mciSendCommand mciSendCommandA -#endif - +#define mciSendCommand mciSendCommandA +#endif // !UNICODE /*--------------------------------------------------------------------*\ * mciSendString @@ -1401,20 +1444,20 @@ MCIERROR APIENTRY mciSendStringA( LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, - HWND hwndCallback ); - + HANDLE hwndCallback ); +/*--------------------------------------------------------------------*\ + * mciSendString +\*--------------------------------------------------------------------*/ MCIERROR APIENTRY mciSendStringW( LPCWSTR lpstrCommand, LPWSTR lpstrReturnString, UINT uReturnLength, - HWND hwndCallback ); - + HANDLE hwndCallback ); #ifdef UNICODE -#define mciSendString mciSendStringW +#define mciSendString mciSendStringW #else -#define mciSendString mciSendStringA -#endif - +#define mciSendString mciSendStringA +#endif // !UNICODE /*--------------------------------------------------------------------*\ * mciGetCreatorTask @@ -1428,15 +1471,16 @@ HANDLE APIENTRY mciGetCreatorTask( \*--------------------------------------------------------------------*/ MCIDEVICEID APIENTRY mciGetDeviceIDA( LPCSTR lpstrName ); - +/*--------------------------------------------------------------------*\ + * mciGetDeviceID +\*--------------------------------------------------------------------*/ MCIDEVICEID APIENTRY mciGetDeviceIDW( LPCWSTR lpstrName ); - #ifdef UNICODE -#define mciGetDeviceID mciGetDeviceIDW +#define mciGetDeviceID mciGetDeviceIDW #else -#define mciGetDeviceID mciGetDeviceIDA -#endif +#define mciGetDeviceID mciGetDeviceIDA +#endif // !UNICODE /*--------------------------------------------------------------------*\ * mciGetDeviceIDFromElementID @@ -1444,64 +1488,52 @@ MCIDEVICEID APIENTRY mciGetDeviceIDW( MCIDEVICEID APIENTRY mciGetDeviceIDFromElementIDA( DWORD dwElementID, LPCSTR lpstrType ); - +/*--------------------------------------------------------------------*\ + * mciGetDeviceIDFromElementID +\*--------------------------------------------------------------------*/ MCIDEVICEID APIENTRY mciGetDeviceIDFromElementIDW( DWORD dwElementID, LPCWSTR lpstrType ); - #ifdef UNICODE -#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDW +#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDW #else -#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDA -#endif - +#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDA +#endif // !UNICODE /*--------------------------------------------------------------------*\ * mciGetErrorString \*--------------------------------------------------------------------*/ BOOL APIENTRY mciGetErrorStringA( - DWORD dwError, + DWORD dwError, // Should be type==MCIERROR... LPSTR lpstrBuffer, UINT uLength ); - +/*--------------------------------------------------------------------*\ + * mciGetErrorString +\*--------------------------------------------------------------------*/ BOOL APIENTRY mciGetErrorStringW( - DWORD dwError, + DWORD dwError, // Should be type==MCIERROR... LPWSTR lpstrBuffer, UINT uLength ); - -#ifdef UNICODE -#define mciGetErrorString mciGetErrorStringW -#else -#define mciGetErrorString mciGetErrorStringA -#endif - - -/*--------------------------------------------------------------------*\ - * mciExecute -\*--------------------------------------------------------------------*/ -BOOL APIENTRY mciExecuteA( - LPCSTR lpstrCommand ); - -BOOL APIENTRY mciExecuteW( - LPCWSTR lpstrCommand ); - #ifdef UNICODE -#define mciExecute mciExecuteW +#define mciGetErrorString mciGetErrorStringW #else -#define mciExecute mciExecuteA -#endif - -//BOOL APIENTRY mciSetYieldProc ( MCIDEVICEID wDeviceID // ??? -// , YIELDPROC fpYieldProc // ??? -// , DWORD dwYieldData // ??? -// ); // ??? -//YIELDPROC APIENTRY mciGetYieldProc ( MCIDEVICEID wDeviceID // ??? -// , LPDWORD lpdwYieldData // ??? -// ); // ??? -// +#define mciGetErrorString mciGetErrorStringA +#endif // !UNICODE typedef UINT (*YIELDPROC) (MCIDEVICEID wDeviceID, DWORD dwYieldData); +BOOL APIENTRY mciSetYieldProc ( MCIDEVICEID wDeviceID + , YIELDPROC fpYieldProc + , DWORD dwYieldData + ); +YIELDPROC APIENTRY mciGetYieldProc ( MCIDEVICEID wDeviceID + , LPDWORD lpdwYieldData + ); + +#if (WINVER < 0x030a) +BOOL WINAPI mciExecute (LPCSTR lpstrCommand); +#endif /* ifdef WINVER < 0x030a */ + // THIS NUMBER IS HARDCODED WHERE THE MCI_FORMAT_'s ARE #define'd // You must change those definitions if you change this number @@ -1647,7 +1679,7 @@ typedef UINT (*YIELDPROC) (MCIDEVICEID w -#define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1) // Device ids are 16 bits +#define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1) // Matches all MCI devices // constants for predefined MCI device types //#define MCI_DEVTYPE_VCR (MCI_STRING_OFFSET + 1) @@ -1861,40 +1893,41 @@ typedef struct tagMCI_GENERIC_PARMS { typedef MCI_GENERIC_PARMS *PMCI_GENERIC_PARMS; typedef MCI_GENERIC_PARMS *LPMCI_GENERIC_PARMS; -// parameter block for MCI_OPEN command message (ascii version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_OPEN_PARMSA { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; } MCI_OPEN_PARMSA; -typedef MCI_OPEN_PARMSA *PMCI_OPEN_PARMSA; -typedef MCI_OPEN_PARMSA *LPMCI_OPEN_PARMSA; - -// parameter block for MCI_OPEN command message (unicode version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_OPEN_PARMSW { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; } MCI_OPEN_PARMSW; +#ifdef UNICODE +typedef MCI_OPEN_PARMSW MCI_OPEN_PARMS; +#else +typedef MCI_OPEN_PARMSA MCI_OPEN_PARMS; +#endif // UNICODE +typedef MCI_OPEN_PARMSA *PMCI_OPEN_PARMSA; typedef MCI_OPEN_PARMSW *PMCI_OPEN_PARMSW; +#ifdef UNICODE +typedef PMCI_OPEN_PARMSW PMCI_OPEN_PARMS; +#else +typedef PMCI_OPEN_PARMSA PMCI_OPEN_PARMS; +#endif // UNICODE +typedef MCI_OPEN_PARMSA *LPMCI_OPEN_PARMSA; typedef MCI_OPEN_PARMSW *LPMCI_OPEN_PARMSW; - #ifdef UNICODE -#define MCI_OPEN_PARMS MCI_OPEN_PARMSW -#define PMCI_OPEN_PARMS PMCI_OPEN_PARMSW -#define LPMCI_OPEN_PARMS LPMCI_OPEN_PARMSW -#else -#define MCI_OPEN_PARMS MCI_OPEN_PARMSA -#define PMCI_OPEN_PARMS PMCI_OPEN_PARMSWA -#define LPMCI_OPEN_PARMS LPMCI_OPEN_PARMSA -#endif - +typedef LPMCI_OPEN_PARMSW LPMCI_OPEN_PARMS; +#else +typedef LPMCI_OPEN_PARMSA LPMCI_OPEN_PARMS; +#endif // UNICODE // parameter block for MCI_PLAY command message typedef struct tagMCI_PLAY_PARMS { @@ -1923,33 +1956,37 @@ typedef struct tagMCI_STATUS_PARMS { typedef MCI_STATUS_PARMS * PMCI_STATUS_PARMS; typedef MCI_STATUS_PARMS * LPMCI_STATUS_PARMS; -// parameter block for MCI_INFO command message (ascii version) +// parameter block for MCI_INFO command message typedef struct tagMCI_INFO_PARMSA { DWORD dwCallback; LPSTR lpstrReturn; DWORD dwRetSize; } MCI_INFO_PARMSA; -typedef MCI_INFO_PARMSA * PMCI_INFO_PARMSA; -typedef MCI_INFO_PARMSA * LPMCI_INFO_PARMSA; - -// parameter block for MCI_INFO command message (unicode version) +// parameter block for MCI_INFO command message typedef struct tagMCI_INFO_PARMSW { DWORD dwCallback; - LPWSTR lpstrReturn; + LPWSTR lpstrReturn; DWORD dwRetSize; } MCI_INFO_PARMSW; +#ifdef UNICODE +typedef MCI_INFO_PARMSW MCI_INFO_PARMS; +#else +typedef MCI_INFO_PARMSA MCI_INFO_PARMS; +#endif // UNICODE +typedef MCI_INFO_PARMSA * PMCI_INFO_PARMSA; typedef MCI_INFO_PARMSW * PMCI_INFO_PARMSW; +#ifdef UNICODE +typedef PMCI_INFO_PARMSW PMCI_INFO_PARMS; +#else +typedef PMCI_INFO_PARMSA PMCI_INFO_PARMS; +#endif // UNICODE +typedef MCI_INFO_PARMSA * LPMCI_INFO_PARMSA; typedef MCI_INFO_PARMSW * LPMCI_INFO_PARMSW; - #ifdef UNICODE -#define MCI_INFO_PARMS MCI_INFO_PARMSW -#define PMCI_INFO_PARMS PMCI_INFO_PARMSW -#define LPMCI_INFO_PARMS LPMCI_INFO_PARMSW -#else -#define MCI_INFO_PARMS MCI_INFO_PARMSA -#define PMCI_INFO_PARMS PMCI_INFO_PARMSWA -#define LPMCI_INFO_PARMS LPMCI_INFO_PARMSA -#endif +typedef LPMCI_INFO_PARMSW LPMCI_INFO_PARMS; +#else +typedef LPMCI_INFO_PARMSA LPMCI_INFO_PARMS; +#endif // UNICODE // parameter block for MCI_GETDEVCAPS command message typedef struct tagMCI_GETDEVCAPS_PARMS { @@ -1960,7 +1997,7 @@ typedef struct tagMCI_GETDEVCAPS_PARMS { typedef MCI_GETDEVCAPS_PARMS * PMCI_GETDEVCAPS_PARMS; typedef MCI_GETDEVCAPS_PARMS * LPMCI_GETDEVCAPS_PARMS; -// parameter block for MCI_SYSINFO command message (ascii version) +// parameter block for MCI_SYSINFO command message typedef struct tagMCI_SYSINFO_PARMSA { DWORD dwCallback; LPSTR lpstrReturn; @@ -1968,10 +2005,7 @@ typedef struct tagMCI_SYSINFO_PARMSA { DWORD dwNumber; UINT wDeviceType; } MCI_SYSINFO_PARMSA; -typedef MCI_SYSINFO_PARMSA *PMCI_SYSINFO_PARMSA; -typedef MCI_SYSINFO_PARMSA *LPMCI_SYSINFO_PARMSA; - -// parameter block for MCI_SYSINFO command message (unicode version) +// parameter block for MCI_SYSINFO command message typedef struct tagMCI_SYSINFO_PARMSW { DWORD dwCallback; LPWSTR lpstrReturn; @@ -1979,18 +2013,25 @@ typedef struct tagMCI_SYSINFO_PARMSW { DWORD dwNumber; UINT wDeviceType; } MCI_SYSINFO_PARMSW; +#ifdef UNICODE +typedef MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS; +#else +typedef MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS; +#endif // UNICODE +typedef MCI_SYSINFO_PARMSA *PMCI_SYSINFO_PARMSA; typedef MCI_SYSINFO_PARMSW *PMCI_SYSINFO_PARMSW; +#ifdef UNICODE +typedef PMCI_SYSINFO_PARMSW PMCI_SYSINFO_PARMS; +#else +typedef PMCI_SYSINFO_PARMSA PMCI_SYSINFO_PARMS; +#endif // UNICODE +typedef MCI_SYSINFO_PARMSA *LPMCI_SYSINFO_PARMSA; typedef MCI_SYSINFO_PARMSW *LPMCI_SYSINFO_PARMSW; - #ifdef UNICODE -#define MCI_SYSINFO_PARMS MCI_SYSINFO_PARMSW -#define PMCI_SYSINFO_PARMS PMCI_SYSINFO_PARMSW -#define LPMCI_SYSINFO_PARMS LPMCI_SYSINFO_PARMSW -#else -#define MCI_SYSINFO_PARMS MCI_SYSINFO_PARMSA -#define PMCI_SYSINFO_PARMS PMCI_SYSINFO_PARMSWA -#define LPMCI_SYSINFO_PARMS LPMCI_SYSINFO_PARMSA -#endif +typedef LPMCI_SYSINFO_PARMSW LPMCI_SYSINFO_PARMS; +#else +typedef LPMCI_SYSINFO_PARMSA LPMCI_SYSINFO_PARMS; +#endif // UNICODE // parameter block for MCI_SET command message typedef struct tagMCI_SET_PARMS { @@ -2010,83 +2051,95 @@ typedef struct tagMCI_BREAK_PARMS { typedef MCI_BREAK_PARMS * PMCI_BREAK_PARMS; typedef MCI_BREAK_PARMS * LPMCI_BREAK_PARMS; -// parameter block for MCI_SOUND command message (ascii version) +// parameter block for MCI_SOUND command message typedef struct tagMCI_SOUND_PARMSA { DWORD dwCallback; - LPCSTR lpstrSoundName; + LPCSTR lpstrSoundName; } MCI_SOUND_PARMSA; -typedef MCI_SOUND_PARMSA * PMCI_SOUND_PARMSA; -typedef MCI_SOUND_PARMSA * LPMCI_SOUND_PARMSA; - -// parameter block for MCI_SOUND command message (unicode version) +// parameter block for MCI_SOUND command message typedef struct tagMCI_SOUND_PARMSW { DWORD dwCallback; - LPCWSTR lpstrSoundName; + LPCWSTR lpstrSoundName; } MCI_SOUND_PARMSW; +#ifdef UNICODE +typedef MCI_SOUND_PARMSW MCI_SOUND_PARMS; +#else +typedef MCI_SOUND_PARMSA MCI_SOUND_PARMS; +#endif // UNICODE +typedef MCI_SOUND_PARMSA *PMCI_SOUND_PARMSA; typedef MCI_SOUND_PARMSW *PMCI_SOUND_PARMSW; +#ifdef UNICODE +typedef PMCI_SOUND_PARMSW PMCI_SOUND_PARMS; +#else +typedef PMCI_SOUND_PARMSA PMCI_SOUND_PARMS; +#endif // UNICODE +typedef MCI_SOUND_PARMSA *LPMCI_SOUND_PARMSA; typedef MCI_SOUND_PARMSW *LPMCI_SOUND_PARMSW; - #ifdef UNICODE -#define MCI_SOUND_PARMS MCI_SOUND_PARMSW -#define PMCI_SOUND_PARMS PMCI_SOUND_PARMSW -#define LPMCI_SOUND_PARMS LPMCI_SOUND_PARMSW -#else -#define MCI_SOUND_PARMS MCI_SOUND_PARMSA -#define PMCI_SOUND_PARMS PMCI_SOUND_PARMSWA -#define LPMCI_SOUND_PARMS LPMCI_SOUND_PARMSA -#endif +typedef LPMCI_SOUND_PARMSW LPMCI_SOUND_PARMS; +#else +typedef LPMCI_SOUND_PARMSA LPMCI_SOUND_PARMS; +#endif // UNICODE -// parameter block for MCI_SAVE command message (ascii version) +// parameter block for MCI_SAVE command message typedef struct tagMCI_SAVE_PARMSA { - DWORD dwCallback; - LPCSTR lpfilename; + DWORD dwCallback; + LPCSTR lpfilename; } MCI_SAVE_PARMSA; -typedef MCI_SAVE_PARMSA *PMCI_SAVE_PARMSA; -typedef MCI_SAVE_PARMSA *LPMCI_SAVE_PARMSA; - -// parameter block for MCI_SAVE command message (unicode version) +// parameter block for MCI_SAVE command message typedef struct tagMCI_SAVE_PARMSW { DWORD dwCallback; - LPCWSTR lpfilename; + LPCWSTR lpfilename; } MCI_SAVE_PARMSW; +#ifdef UNICODE +typedef MCI_SAVE_PARMSW MCI_SAVE_PARMS; +#else +typedef MCI_SAVE_PARMSA MCI_SAVE_PARMS; +#endif // UNICODE +typedef MCI_SAVE_PARMSA *PMCI_SAVE_PARMSA; typedef MCI_SAVE_PARMSW *PMCI_SAVE_PARMSW; +#ifdef UNICODE +typedef PMCI_SAVE_PARMSW PMCI_SAVE_PARMS; +#else +typedef PMCI_SAVE_PARMSA PMCI_SAVE_PARMS; +#endif // UNICODE +typedef MCI_SAVE_PARMSA *LPMCI_SAVE_PARMSA; typedef MCI_SAVE_PARMSW *LPMCI_SAVE_PARMSW; - #ifdef UNICODE -#define MCI_SAVE_PARMS MCI_SAVE_PARMSW -#define PMCI_SAVE_PARMS PMCI_SAVE_PARMSW -#define LPMCI_SAVE_PARMS LPMCI_SAVE_PARMSW -#else -#define MCI_SAVE_PARMS MCI_SAVE_PARMSA -#define PMCI_SAVE_PARMS PMCI_SAVE_PARMSWA -#define LPMCI_SAVE_PARMS LPMCI_SAVE_PARMSA -#endif +typedef LPMCI_SAVE_PARMSW LPMCI_SAVE_PARMS; +#else +typedef LPMCI_SAVE_PARMSA LPMCI_SAVE_PARMS; +#endif // UNICODE -// parameter block for MCI_LOAD command message (ascii version) +// parameter block for MCI_LOAD command message typedef struct tagMCI_LOAD_PARMSA { DWORD dwCallback; - LPCSTR lpfilename; + LPCSTR lpfilename; } MCI_LOAD_PARMSA; -typedef MCI_LOAD_PARMSA *PMCI_LOAD_PARMSA; -typedef MCI_LOAD_PARMSA *LPMCI_LOAD_PARMSA; - -// parameter block for MCI_LOAD command message (unicode version) +// parameter block for MCI_LOAD command message typedef struct tagMCI_LOAD_PARMSW { DWORD dwCallback; - LPCWSTR lpfilename; + LPCWSTR lpfilename; } MCI_LOAD_PARMSW; +#ifdef UNICODE +typedef MCI_LOAD_PARMSW MCI_LOAD_PARMS; +#else +typedef MCI_LOAD_PARMSA MCI_LOAD_PARMS; +#endif // UNICODE +typedef MCI_LOAD_PARMSA *PMCI_LOAD_PARMSA; typedef MCI_LOAD_PARMSW *PMCI_LOAD_PARMSW; +#ifdef UNICODE +typedef PMCI_LOAD_PARMSW PMCI_LOAD_PARMS; +#else +typedef PMCI_LOAD_PARMSA PMCI_LOAD_PARMS; +#endif // UNICODE +typedef MCI_LOAD_PARMSA *LPMCI_LOAD_PARMSA; typedef MCI_LOAD_PARMSW *LPMCI_LOAD_PARMSW; - #ifdef UNICODE -#define MCI_LOAD_PARMS MCI_LOAD_PARMSW -#define PMCI_LOAD_PARMS PMCI_LOAD_PARMSW -#define LPMCI_LOAD_PARMS LPMCI_LOAD_PARMSW -#else -#define MCI_LOAD_PARMS MCI_LOAD_PARMSA -#define PMCI_LOAD_PARMS PMCI_LOAD_PARMSA -#define LPMCI_LOAD_PARMS LPMCI_LOAD_PARMSA -#endif +typedef LPMCI_LOAD_PARMSW LPMCI_LOAD_PARMS; +#else +typedef LPMCI_LOAD_PARMSA LPMCI_LOAD_PARMS; +#endif // UNICODE // parameter block for MCI_RECORD command message typedef struct tagMCI_RECORD_PARMS { @@ -2172,31 +2225,35 @@ typedef struct tagMCI_VD_STEP_PARMS { typedef MCI_VD_STEP_PARMS *PMCI_VD_STEP_PARMS; typedef MCI_VD_STEP_PARMS *LPMCI_VD_STEP_PARMS; -// parameter block for MCI_ESCAPE command message (ascii version) +// parameter block for MCI_ESCAPE command message typedef struct tagMCI_VD_ESCAPE_PARMSA { DWORD dwCallback; - LPCSTR lpstrCommand; + LPCSTR lpstrCommand; } MCI_VD_ESCAPE_PARMSA; -typedef MCI_VD_ESCAPE_PARMSA *PMCI_VD_ESCAPE_PARMSA; -typedef MCI_VD_ESCAPE_PARMSA *LPMCI_VD_ESCAPE_PARMSA; - -// parameter block for MCI_ESCAPE command message (unicode version) +// parameter block for MCI_ESCAPE command message typedef struct tagMCI_VD_ESCAPE_PARMSW { DWORD dwCallback; LPCWSTR lpstrCommand; } MCI_VD_ESCAPE_PARMSW; +#ifdef UNICODE +typedef MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS; +#else +typedef MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS; +#endif // UNICODE +typedef MCI_VD_ESCAPE_PARMSA *PMCI_VD_ESCAPE_PARMSA; typedef MCI_VD_ESCAPE_PARMSW *PMCI_VD_ESCAPE_PARMSW; +#ifdef UNICODE +typedef PMCI_VD_ESCAPE_PARMSW PMCI_VD_ESCAPE_PARMS; +#else +typedef PMCI_VD_ESCAPE_PARMSA PMCI_VD_ESCAPE_PARMS; +#endif // UNICODE +typedef MCI_VD_ESCAPE_PARMSA *LPMCI_VD_ESCAPE_PARMSA; typedef MCI_VD_ESCAPE_PARMSW *LPMCI_VD_ESCAPE_PARMSW; - #ifdef UNICODE -#define MCI_VD_ESCAPE_PARMS MCI_VD_ESCAPE_PARMSW -#define PMCI_VD_ESCAPE_PARMS PMCI_VD_ESCAPE_PARMSW -#define LPMCI_VD_ESCAPE_PARMS LPMCI_VD_ESCAPE_PARMSW -#else -#define MCI_VD_ESCAPE_PARMS MCI_VD_ESCAPE_PARMSA -#define PMCI_VD_ESCAPE_PARMS PMCI_VD_ESCAPE_PARMSWA -#define LPMCI_VD_ESCAPE_PARMS LPMCI_VD_ESCAPE_PARMSA -#endif +typedef LPMCI_VD_ESCAPE_PARMSW LPMCI_VD_ESCAPE_PARMS; +#else +typedef LPMCI_VD_ESCAPE_PARMSA LPMCI_VD_ESCAPE_PARMS; +#endif // UNICODE /***************************************************************************** * Standard command parameters for waveform audio drivers @@ -2237,41 +2294,43 @@ typedef MCI_VD_ESCAPE_PARMSW *LPMCI_ #define MCI_WAVE_GETDEVCAPS_INPUTS 0x00004001L #define MCI_WAVE_GETDEVCAPS_OUTPUTS 0x00004002L -// parameter block for MCI_OPEN command message (ascii version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_WAVE_OPEN_PARMSA { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD - remove when a UINT - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; DWORD dwBufferSeconds; } MCI_WAVE_OPEN_PARMSA; -typedef MCI_WAVE_OPEN_PARMSA *PMCI_WAVE_OPEN_PARMSA; -typedef MCI_WAVE_OPEN_PARMSA *LPMCI_WAVE_OPEN_PARMSA; - -// parameter block for MCI_OPEN command message (unicode version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_WAVE_OPEN_PARMSW { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD - remove when a UINT LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; DWORD dwBufferSeconds; } MCI_WAVE_OPEN_PARMSW; +#ifdef UNICODE +typedef MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS; +#else +typedef MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS; +#endif // UNICODE +typedef MCI_WAVE_OPEN_PARMSA *PMCI_WAVE_OPEN_PARMSA; typedef MCI_WAVE_OPEN_PARMSW *PMCI_WAVE_OPEN_PARMSW; +#ifdef UNICODE +typedef PMCI_WAVE_OPEN_PARMSW PMCI_WAVE_OPEN_PARMS; +#else +typedef PMCI_WAVE_OPEN_PARMSA PMCI_WAVE_OPEN_PARMS; +#endif // UNICODE +typedef MCI_WAVE_OPEN_PARMSA *LPMCI_WAVE_OPEN_PARMSA; typedef MCI_WAVE_OPEN_PARMSW *LPMCI_WAVE_OPEN_PARMSW; - #ifdef UNICODE -#define MCI_WAVE_OPEN_PARMS MCI_WAVE_OPEN_PARMSW -#define PMCI_WAVE_OPEN_PARMS PMCI_WAVE_OPEN_PARMSW -#define LPMCI_WAVE_OPEN_PARMS LPMCI_WAVE_OPEN_PARMSW -#else -#define MCI_WAVE_OPEN_PARMS MCI_WAVE_OPEN_PARMSA -#define PMCI_WAVE_OPEN_PARMS PMCI_WAVE_OPEN_PARMSWA -#define LPMCI_WAVE_OPEN_PARMS LPMCI_WAVE_OPEN_PARMSA -#endif +typedef LPMCI_WAVE_OPEN_PARMSW LPMCI_WAVE_OPEN_PARMS; +#else +typedef LPMCI_WAVE_OPEN_PARMSA LPMCI_WAVE_OPEN_PARMS; +#endif // UNICODE // parameter block for MCI_DELETE command message typedef struct tagMCI_WAVE_DELETE_PARMS { @@ -2430,43 +2489,45 @@ typedef MCI_SEQ_SET_PARMS * LPMCI_SE // flags for dwFlags parameter of MCI_UPDATE command message #define MCI_ANIM_UPDATE_HDC 0x00020000L -// parameter block for MCI_OPEN command message (ascii version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_ANIM_OPEN_PARMSA { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_ANIM_OPEN_PARMSA; -typedef MCI_ANIM_OPEN_PARMSA *PMCI_ANIM_OPEN_PARMSA; -typedef MCI_ANIM_OPEN_PARMSA *LPMCI_ANIM_OPEN_PARMSA; - -// parameter block for MCI_OPEN command message (unicode version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_ANIM_OPEN_PARMSW { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_ANIM_OPEN_PARMSW; +#ifdef UNICODE +typedef MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS; +#else +typedef MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS; +#endif // UNICODE +typedef MCI_ANIM_OPEN_PARMSA *PMCI_ANIM_OPEN_PARMSA; typedef MCI_ANIM_OPEN_PARMSW *PMCI_ANIM_OPEN_PARMSW; +#ifdef UNICODE +typedef PMCI_ANIM_OPEN_PARMSW PMCI_ANIM_OPEN_PARMS; +#else +typedef PMCI_ANIM_OPEN_PARMSA PMCI_ANIM_OPEN_PARMS; +#endif // UNICODE +typedef MCI_ANIM_OPEN_PARMSA *LPMCI_ANIM_OPEN_PARMSA; typedef MCI_ANIM_OPEN_PARMSW *LPMCI_ANIM_OPEN_PARMSW; - #ifdef UNICODE -#define MCI_ANIM_OPEN_PARMS MCI_ANIM_OPEN_PARMSW -#define PMCI_ANIM_OPEN_PARMS PMCI_ANIM_OPEN_PARMSW -#define LPMCI_ANIM_OPEN_PARMS LPMCI_ANIM_OPEN_PARMSW -#else -#define MCI_ANIM_OPEN_PARMS MCI_ANIM_OPEN_PARMSA -#define PMCI_ANIM_OPEN_PARMS PMCI_ANIM_OPEN_PARMSWA -#define LPMCI_ANIM_OPEN_PARMS LPMCI_ANIM_OPEN_PARMSA -#endif +typedef LPMCI_ANIM_OPEN_PARMSW LPMCI_ANIM_OPEN_PARMS; +#else +typedef LPMCI_ANIM_OPEN_PARMSA LPMCI_ANIM_OPEN_PARMS; +#endif // UNICODE // parameter block for MCI_PLAY command message typedef struct tagMCI_ANIM_PLAY_PARMS { @@ -2486,44 +2547,39 @@ typedef struct tagMCI_ANIM_STEP_PARMS { typedef MCI_ANIM_STEP_PARMS *PMCI_ANIM_STEP_PARMS; typedef MCI_ANIM_STEP_PARMS *LPMCI_ANIM_STEP_PARMS; -// paramter block for MCI_ANIM_SET new ??? -typedef struct tagMCI_ANIM_SET_PARMS { - DWORD dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; -} MCI_ANIM_SET_PARMS; -typedef MCI_ANIM_SET_PARMS * PMCI_ANIM_SET_PARMS; -typedef MCI_ANIM_SET_PARMS * LPMCI_ANIM_SET_PARMS; - -// parameter block for MCI_WINDOW command message (ascii version) +// parameter block for MCI_WINDOW command message typedef struct tagMCI_ANIM_WINDOW_PARMSA { DWORD dwCallback; - WORD hWnd; + HWND hWnd; UINT nCmdShow; - LPCSTR lpstrText; + LPCSTR lpstrText; } MCI_ANIM_WINDOW_PARMSA; -typedef MCI_ANIM_WINDOW_PARMSA * PMCI_ANIM_WINDOW_PARMSA; -typedef MCI_ANIM_WINDOW_PARMSA * LPMCI_ANIM_WINDOW_PARMSA; - -// parameter block for MCI_WINDOW command message (unicode version) +// parameter block for MCI_WINDOW command message typedef struct tagMCI_ANIM_WINDOW_PARMSW { DWORD dwCallback; - WORD hWnd; + HWND hWnd; UINT nCmdShow; LPCWSTR lpstrText; } MCI_ANIM_WINDOW_PARMSW; +#ifdef UNICODE +typedef MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS; +#else +typedef MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS; +#endif // UNICODE +typedef MCI_ANIM_WINDOW_PARMSA * PMCI_ANIM_WINDOW_PARMSA; typedef MCI_ANIM_WINDOW_PARMSW * PMCI_ANIM_WINDOW_PARMSW; +#ifdef UNICODE +typedef PMCI_ANIM_WINDOW_PARMSW PMCI_ANIM_WINDOW_PARMS; +#else +typedef PMCI_ANIM_WINDOW_PARMSA PMCI_ANIM_WINDOW_PARMS; +#endif // UNICODE +typedef MCI_ANIM_WINDOW_PARMSA * LPMCI_ANIM_WINDOW_PARMSA; typedef MCI_ANIM_WINDOW_PARMSW * LPMCI_ANIM_WINDOW_PARMSW; - #ifdef UNICODE -#define MCI_ANIM_WINDOW_PARMS MCI_ANIM_WINDOW_PARMSW -#define PMCI_ANIM_WINDOW_PARMS PMCI_ANIM_WINDOW_PARMSW -#define LPMCI_ANIM_WINDOW_PARMS LPMCI_ANIM_WINDOW_PARMSW -#else -#define MCI_ANIM_WINDOW_PARMS MCI_ANIM_WINDOW_PARMSA -#define PMCI_ANIM_WINDOW_PARMS PMCI_ANIM_WINDOW_PARMSWA -#define LPMCI_ANIM_WINDOW_PARMS LPMCI_ANIM_WINDOW_PARMSA -#endif +typedef LPMCI_ANIM_WINDOW_PARMSW LPMCI_ANIM_WINDOW_PARMS; +#else +typedef LPMCI_ANIM_WINDOW_PARMSA LPMCI_ANIM_WINDOW_PARMS; +#endif // UNICODE // parameter block for MCI_PUT, MCI_UPDATE, MCI_WHERE command messages typedef struct tagMCI_ANIM_RECT_PARMS { @@ -2594,75 +2650,80 @@ typedef MCI_ANIM_UPDATE_PARMS * LPMC #define MCI_OVLY_WHERE_FRAME 0x00080000L #define MCI_OVLY_WHERE_VIDEO 0x00100000L -#define MCI_OVLY_UPDATE_HDC 0x00020000L // MCI_UPDATE -// parameter block for MCI_OPEN command message (ascii version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_OVLY_OPEN_PARMSA { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_OVLY_OPEN_PARMSA; -typedef MCI_OVLY_OPEN_PARMSA *PMCI_OVLY_OPEN_PARMSA; -typedef MCI_OVLY_OPEN_PARMSA *LPMCI_OVLY_OPEN_PARMSA; - -// parameter block for MCI_OPEN command message (unicode version) +// parameter block for MCI_OPEN command message typedef struct tagMCI_OVLY_OPEN_PARMSW { DWORD dwCallback; MCIDEVICEID wDeviceID; -// MCIDEVICEID wReserved0; // While MCIDEVICEID is a WORD LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_OVLY_OPEN_PARMSW; +#ifdef UNICODE +typedef MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS; +#else +typedef MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS; +#endif // UNICODE +typedef MCI_OVLY_OPEN_PARMSA *PMCI_OVLY_OPEN_PARMSA; typedef MCI_OVLY_OPEN_PARMSW *PMCI_OVLY_OPEN_PARMSW; +#ifdef UNICODE +typedef PMCI_OVLY_OPEN_PARMSW PMCI_OVLY_OPEN_PARMS; +#else +typedef PMCI_OVLY_OPEN_PARMSA PMCI_OVLY_OPEN_PARMS; +#endif // UNICODE +typedef MCI_OVLY_OPEN_PARMSA *LPMCI_OVLY_OPEN_PARMSA; typedef MCI_OVLY_OPEN_PARMSW *LPMCI_OVLY_OPEN_PARMSW; - #ifdef UNICODE -#define MCI_OVLY_OPEN_PARMS MCI_OVLY_OPEN_PARMSW -#define PMCI_OVLY_OPEN_PARMS PMCI_OVLY_OPEN_PARMSW -#define LPMCI_OVLY_OPEN_PARMS LPMCI_OVLY_OPEN_PARMSW -#else -#define MCI_OVLY_OPEN_PARMS MCI_OVLY_OPEN_PARMSA -#define PMCI_OVLY_OPEN_PARMS PMCI_OVLY_OPEN_PARMSWA -#define LPMCI_OVLY_OPEN_PARMS LPMCI_OVLY_OPEN_PARMSA -#endif +typedef LPMCI_OVLY_OPEN_PARMSW LPMCI_OVLY_OPEN_PARMS; +#else +typedef LPMCI_OVLY_OPEN_PARMSA LPMCI_OVLY_OPEN_PARMS; +#endif // UNICODE -// parameter block for MCI_WINDOW command message (ascii version) +// parameter block for MCI_WINDOW command message typedef struct tagMCI_OVLY_WINDOW_PARMSA { DWORD dwCallback; HWND hWnd; UINT nCmdShow; - LPCSTR lpstrText; + LPCSTR lpstrText; } MCI_OVLY_WINDOW_PARMSA; -typedef MCI_OVLY_WINDOW_PARMSA * PMCI_OVLY_WINDOW_PARMSA; -typedef MCI_OVLY_WINDOW_PARMSA * LPMCI_OVLY_WINDOW_PARMSA; - -// parameter block for MCI_WINDOW command message (unicode version) +// parameter block for MCI_WINDOW command message typedef struct tagMCI_OVLY_WINDOW_PARMSW { DWORD dwCallback; HWND hWnd; UINT nCmdShow; LPCWSTR lpstrText; } MCI_OVLY_WINDOW_PARMSW; +#ifdef UNICODE +typedef MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS; +#else +typedef MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS; +#endif // UNICODE +typedef MCI_OVLY_WINDOW_PARMSA * PMCI_OVLY_WINDOW_PARMSA; typedef MCI_OVLY_WINDOW_PARMSW * PMCI_OVLY_WINDOW_PARMSW; +#ifdef UNICODE +typedef PMCI_OVLY_WINDOW_PARMSW PMCI_OVLY_WINDOW_PARMS; +#else +typedef PMCI_OVLY_WINDOW_PARMSA PMCI_OVLY_WINDOW_PARMS; +#endif // UNICODE +typedef MCI_OVLY_WINDOW_PARMSA * LPMCI_OVLY_WINDOW_PARMSA; typedef MCI_OVLY_WINDOW_PARMSW * LPMCI_OVLY_WINDOW_PARMSW; - #ifdef UNICODE -#define MCI_OVLY_WINDOW_PARMS MCI_OVLY_WINDOW_PARMSW -#define PMCI_OVLY_WINDOW_PARMS PMCI_OVLY_WINDOW_PARMSW -#define LPMCI_OVLY_WINDOW_PARMS LPMCI_OVLY_WINDOW_PARMSW -#else -#define MCI_OVLY_WINDOW_PARMS MCI_OVLY_WINDOW_PARMSA -#define PMCI_OVLY_WINDOW_PARMS PMCI_OVLY_WINDOW_PARMSWA -#define LPMCI_OVLY_WINDOW_PARMS LPMCI_OVLY_WINDOW_PARMSA -#endif +typedef LPMCI_OVLY_WINDOW_PARMSW LPMCI_OVLY_WINDOW_PARMS; +#else +typedef LPMCI_OVLY_WINDOW_PARMSA LPMCI_OVLY_WINDOW_PARMS; +#endif // UNICODE // parameter block for MCI_PUT, MCI_UPDATE, and MCI_WHERE command messages typedef struct tagMCI_OVLY_RECT_PARMS { @@ -2677,72 +2738,69 @@ typedef struct tagMCI_OVLY_RECT_PARMS { typedef MCI_OVLY_RECT_PARMS * PMCI_OVLY_RECT_PARMS; typedef MCI_OVLY_RECT_PARMS * LPMCI_OVLY_RECT_PARMS; - -typedef struct tagMCI_OVLY_UPDATE_PARMS { // new ??? - DWORD dwCallback; - RECT rc; - HDC hDC; -} MCI_OVLY_UPDATE_PARMS; -typedef MCI_OVLY_UPDATE_PARMS * PMCI_OVLY_UPDATE_PARMS; -typedef MCI_OVLY_UPDATE_PARMS * LPMCI_OVLY_UPDATE_PARMS; - -// parameter block for MCI_SAVE command message (ascii version) +// parameter block for MCI_SAVE command message typedef struct tagMCI_OVLY_SAVE_PARMSA { DWORD dwCallback; - LPCSTR lpfilename; + LPCSTR lpfilename; RECT rc; } MCI_OVLY_SAVE_PARMSA; -typedef MCI_OVLY_SAVE_PARMSA * PMCI_OVLY_SAVE_PARMSA; -typedef MCI_OVLY_SAVE_PARMSA * LPMCI_OVLY_SAVE_PARMSA; - -// parameter block for MCI_SAVE command message (unicode version) +// parameter block for MCI_SAVE command message typedef struct tagMCI_OVLY_SAVE_PARMSW { DWORD dwCallback; LPCWSTR lpfilename; RECT rc; } MCI_OVLY_SAVE_PARMSW; +#ifdef UNICODE +typedef MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS; +#else +typedef MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS; +#endif // UNICODE +typedef MCI_OVLY_SAVE_PARMSA * PMCI_OVLY_SAVE_PARMSA; typedef MCI_OVLY_SAVE_PARMSW * PMCI_OVLY_SAVE_PARMSW; +#ifdef UNICODE +typedef PMCI_OVLY_SAVE_PARMSW PMCI_OVLY_SAVE_PARMS; +#else +typedef PMCI_OVLY_SAVE_PARMSA PMCI_OVLY_SAVE_PARMS; +#endif // UNICODE +typedef MCI_OVLY_SAVE_PARMSA * LPMCI_OVLY_SAVE_PARMSA; typedef MCI_OVLY_SAVE_PARMSW * LPMCI_OVLY_SAVE_PARMSW; - #ifdef UNICODE -#define MCI_OVLY_SAVE_PARMS MCI_OVLY_SAVE_PARMSW -#define PMCI_OVLY_SAVE_PARMS PMCI_OVLY_SAVE_PARMSW -#define LPMCI_OVLY_SAVE_PARMS LPMCI_OVLY_SAVE_PARMSW -#else -#define MCI_OVLY_SAVE_PARMS MCI_OVLY_SAVE_PARMSA -#define PMCI_OVLY_SAVE_PARMS PMCI_OVLY_SAVE_PARMSWA -#define LPMCI_OVLY_SAVE_PARMS LPMCI_OVLY_SAVE_PARMSA -#endif +typedef LPMCI_OVLY_SAVE_PARMSW LPMCI_OVLY_SAVE_PARMS; +#else +typedef LPMCI_OVLY_SAVE_PARMSA LPMCI_OVLY_SAVE_PARMS; +#endif // UNICODE -// parameter block for MCI_LOAD command message (ascii version) +// parameter block for MCI_LOAD command message typedef struct tagMCI_OVLY_LOAD_PARMSA { DWORD dwCallback; - LPCSTR lpfilename; + LPCSTR lpfilename; RECT rc; } MCI_OVLY_LOAD_PARMSA; -typedef MCI_OVLY_LOAD_PARMSA * PMCI_OVLY_LOAD_PARMSA; -typedef MCI_OVLY_LOAD_PARMSA * LPMCI_OVLY_LOAD_PARMSA; - -// parameter block for MCI_LOAD command message (unicode version) +// parameter block for MCI_LOAD command message typedef struct tagMCI_OVLY_LOAD_PARMSW { DWORD dwCallback; LPCWSTR lpfilename; RECT rc; } MCI_OVLY_LOAD_PARMSW; +#ifdef UNICODE +typedef MCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMS; +#else +typedef MCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMS; +#endif // UNICODE +typedef MCI_OVLY_LOAD_PARMSA * PMCI_OVLY_LOAD_PARMSA; typedef MCI_OVLY_LOAD_PARMSW * PMCI_OVLY_LOAD_PARMSW; +#ifdef UNICODE +typedef PMCI_OVLY_LOAD_PARMSW PMCI_OVLY_LOAD_PARMS; +#else +typedef PMCI_OVLY_LOAD_PARMSA PMCI_OVLY_LOAD_PARMS; +#endif // UNICODE +typedef MCI_OVLY_LOAD_PARMSA * LPMCI_OVLY_LOAD_PARMSA; typedef MCI_OVLY_LOAD_PARMSW * LPMCI_OVLY_LOAD_PARMSW; - #ifdef UNICODE -#define MCI_OVLY_LOAD_PARMS MCI_OVLY_LOAD_PARMSW -#define PMCI_OVLY_LOAD_PARMS PMCI_OVLY_LOAD_PARMSW -#define LPMCI_OVLY_LOAD_PARMS LPMCI_OVLY_LOAD_PARMSW -#else -#define MCI_OVLY_LOAD_PARMS MCI_OVLY_LOAD_PARMSA -#define PMCI_OVLY_LOAD_PARMS PMCI_OVLY_LOAD_PARMSWA -#define LPMCI_OVLY_LOAD_PARMS LPMCI_OVLY_LOAD_PARMSA -#endif - - +typedef LPMCI_OVLY_LOAD_PARMSW LPMCI_OVLY_LOAD_PARMS; +#else +typedef LPMCI_OVLY_LOAD_PARMSA LPMCI_OVLY_LOAD_PARMS; +#endif // UNICODE #endif //ifndef MMNOMCI @@ -2754,11 +2812,11 @@ typedef MCI_OVLY_LOAD_PARMSW * LPMCI ****************************************************************************/ #ifndef C1_TRANSPARENT - #define CAPS1 94 // other caps - #define C1_TRANSPARENT 0x0001 // new raster cap - #define NEWTRANSPARENT 3 // use with SetBkMode() +#define CAPS1 94 // other caps +#define C1_TRANSPARENT 0x0001 // new raster cap +#define NEWTRANSPARENT 3 // use with SetBkMode() - #define QUERYROPSUPPORT 40 // use to determine ROP support +#define QUERYROPSUPPORT 40 // use to determine ROP support #endif //ifndef C1_TRANSPARENT /**************************************************************************** @@ -2767,7 +2825,7 @@ typedef MCI_OVLY_LOAD_PARMSW * LPMCI ****************************************************************************/ -#define SELECTDIB 41 // DIB.DRV select dib escape +#define SELECTDIB 41 // DIB.DRV select dib escape #define DIBINDEX(n) MAKELONG((n),0x10FF) @@ -2783,8 +2841,12 @@ typedef MCI_OVLY_LOAD_PARMSW * LPMCI #ifndef SC_SCREENSAVE - #define SC_SCREENSAVE 0xF140 +#define SC_SCREENSAVE 0xF140 #endif //ifndef SC_SCREENSAVE -#endif // _MMSYSTEM_ +#ifdef __cplusplus +} +#endif + +#endif // _INC_MMSYSTEM