| mmsystem.h (6.0.6002.18005-Windows 6.0) | | mmsystem.h (6.1.7600.16385-Windows 7.0) |
| | |
| skipping to change at line 32 | | skipping to change at line 32 |
| * MMNOMCI MCI support | | * MMNOMCI MCI support |
| * MMNOMMIO Multimedia file I/O support | | * MMNOMMIO Multimedia file I/O support |
| * MMNOMMSYSTEM General MMSYSTEM functions | | * MMNOMMSYSTEM General MMSYSTEM functions |
| * | | * |
| *========================================================================== | | *========================================================================== |
| */ | | */ |
| | |
| #ifndef _INC_MMSYSTEM | | #ifndef _INC_MMSYSTEM |
| #define _INC_MMSYSTEM /* #defined if mmsystem.h has been included */ | | #define _INC_MMSYSTEM /* #defined if mmsystem.h has been included */ |
| | |
|
| | #pragma warning(disable:4201) // nameless struct/union |
| | |
| #ifdef _WIN32 | | #ifdef _WIN32 |
| #include <pshpack1.h> | | #include <pshpack1.h> |
| #else | | #else |
| #ifndef RC_INVOKED | | #ifndef RC_INVOKED |
| #pragma pack(1) | | #pragma pack(1) |
| #endif | | #endif |
| #endif | | #endif |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| extern "C" { /* Assume C declarations for C++ */ | | extern "C" { /* Assume C declarations for C++ */ |
| | |
| skipping to change at line 403 | | skipping to change at line 405 |
| #define CALLBACK_THREAD (CALLBACK_TASK)/* thread ID replaces 16 bit task */ | | #define CALLBACK_THREAD (CALLBACK_TASK)/* thread ID replaces 16 bit task */ |
| #define CALLBACK_EVENT 0x00050000l /* dwCallback is an EVENT Handle */ | | #define CALLBACK_EVENT 0x00050000l /* dwCallback is an EVENT Handle */ |
| #endif | | #endif |
| typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DW
ORD_PTR dw1, DWORD_PTR dw2); | | typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DW
ORD_PTR dw1, DWORD_PTR dw2); |
| | |
| typedef DRVCALLBACK FAR *LPDRVCALLBACK; | | typedef DRVCALLBACK FAR *LPDRVCALLBACK; |
| #ifdef _WIN32 | | #ifdef _WIN32 |
| typedef DRVCALLBACK *PDRVCALLBACK; | | typedef DRVCALLBACK *PDRVCALLBACK; |
| #endif | | #endif |
| | |
|
| #ifndef MMNOMMSYSTEM | | |
| /**************************************************************************** | | |
| | |
| General MMSYSTEM support | | |
| | |
| ****************************************************************************/ | | |
| | |
| #if (WINVER <= 0x030A) | | |
| WINMMAPI UINT WINAPI mmsystemGetVersion(void); | | |
| #endif | | |
| #ifdef _WIN32 | | |
| #define OutputDebugStr OutputDebugString | | |
| #else | | |
| void WINAPI OutputDebugStr(LPCSTR); | | |
| #endif | | |
| | |
| #endif /* ifndef MMNOMMSYSTEM */ | | |
| | | |
| #ifndef MMNOSOUND | | #ifndef MMNOSOUND |
| /**************************************************************************** | | /**************************************************************************** |
| | |
| Sound support | | Sound support |
| | |
| ****************************************************************************/ | | ****************************************************************************/ |
| | |
| #ifdef _WIN32 | | #ifdef _WIN32 |
| | |
| WINMMAPI BOOL WINAPI sndPlaySoundA( __in_opt LPCSTR pszSound, __in UINT fuSound)
; | | WINMMAPI BOOL WINAPI sndPlaySoundA( __in_opt LPCSTR pszSound, __in UINT fuSound)
; |
| | |
| skipping to change at line 462 | | skipping to change at line 446 |
| #define SND_NOWAIT 0x00002000L /* don't wait if the driver is busy */ | | #define SND_NOWAIT 0x00002000L /* don't wait if the driver is busy */ |
| #define SND_ALIAS 0x00010000L /* name is a registry alias */ | | #define SND_ALIAS 0x00010000L /* name is a registry alias */ |
| #define SND_ALIAS_ID 0x00110000L /* alias is a predefined ID */ | | #define SND_ALIAS_ID 0x00110000L /* alias is a predefined ID */ |
| #define SND_FILENAME 0x00020000L /* name is file name */ | | #define SND_FILENAME 0x00020000L /* name is file name */ |
| #define SND_RESOURCE 0x00040004L /* name is resource name or atom */ | | #define SND_RESOURCE 0x00040004L /* name is resource name or atom */ |
| #if(WINVER >= 0x0400) | | #if(WINVER >= 0x0400) |
| #define SND_PURGE 0x0040 /* purge non-static events for task */ | | #define SND_PURGE 0x0040 /* purge non-static events for task */ |
| #define SND_APPLICATION 0x0080 /* look for application specific association
*/ | | #define SND_APPLICATION 0x0080 /* look for application specific association
*/ |
| #endif /* WINVER >= 0x0400 */ | | #endif /* WINVER >= 0x0400 */ |
| #define SND_SENTRY 0x00080000L /* Generate a SoundSentry event with this so
und */ | | #define SND_SENTRY 0x00080000L /* Generate a SoundSentry event with this so
und */ |
|
| | #define SND_RING 0x00100000L /* Treat this as a "ring" from a communicati
ons app - don't duck me */ |
| #define SND_SYSTEM 0x00200000L /* Treat this as a system sound */ | | #define SND_SYSTEM 0x00200000L /* Treat this as a system sound */ |
| | |
| #define SND_ALIAS_START 0 /* alias base */ | | #define SND_ALIAS_START 0 /* alias base */ |
| | |
| #ifdef _WIN32 | | #ifdef _WIN32 |
| #define sndAlias(ch0, ch1) (SND_ALIAS_START + (DWORD)(BYTE)(ch0) | ((DWORD)
(BYTE)(ch1) << 8)) | | #define sndAlias(ch0, ch1) (SND_ALIAS_START + (DWORD)(BYTE)(ch0) | ((DWORD)
(BYTE)(ch1) << 8)) |
| | |
| #define SND_ALIAS_SYSTEMASTERISK sndAlias('S', '*') | | #define SND_ALIAS_SYSTEMASTERISK sndAlias('S', '*') |
| #define SND_ALIAS_SYSTEMQUESTION sndAlias('S', '?') | | #define SND_ALIAS_SYSTEMQUESTION sndAlias('S', '?') |
| #define SND_ALIAS_SYSTEMHAND sndAlias('S', 'H') | | #define SND_ALIAS_SYSTEMHAND sndAlias('S', 'H') |
| | |
| skipping to change at line 527 | | skipping to change at line 512 |
| #define WOM_CLOSE MM_WOM_CLOSE | | #define WOM_CLOSE MM_WOM_CLOSE |
| #define WOM_DONE MM_WOM_DONE | | #define WOM_DONE MM_WOM_DONE |
| #define WIM_OPEN MM_WIM_OPEN | | #define WIM_OPEN MM_WIM_OPEN |
| #define WIM_CLOSE MM_WIM_CLOSE | | #define WIM_CLOSE MM_WIM_CLOSE |
| #define WIM_DATA MM_WIM_DATA | | #define WIM_DATA MM_WIM_DATA |
| | |
| /* device ID for wave device mapper */ | | /* device ID for wave device mapper */ |
| #define WAVE_MAPPER ((UINT)-1) | | #define WAVE_MAPPER ((UINT)-1) |
| | |
| /* flags for dwFlags parameter in waveOutOpen() and waveInOpen() */ | | /* flags for dwFlags parameter in waveOutOpen() and waveInOpen() */ |
|
| #define WAVE_FORMAT_QUERY 0x0001 | | #define WAVE_FORMAT_QUERY 0x0001 |
| #define WAVE_ALLOWSYNC 0x0002 | | #define WAVE_ALLOWSYNC 0x0002 |
| #if(WINVER >= 0x0400) | | #if(WINVER >= 0x0400) |
|
| #define WAVE_MAPPED 0x0004 | | #define WAVE_MAPPED 0x0004 |
| #define WAVE_FORMAT_DIRECT 0x0008 | | #define WAVE_FORMAT_DIRECT 0x0008 |
| #define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT) | | #define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY | WAVE_FO |
| | RMAT_DIRECT) |
| | #define WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE 0x0010 |
| #endif /* WINVER >= 0x0400 */ | | #endif /* WINVER >= 0x0400 */ |
| | |
| /* wave data block header */ | | /* wave data block header */ |
| typedef struct wavehdr_tag { | | typedef struct wavehdr_tag { |
| LPSTR lpData; /* pointer to locked data buffer */ | | LPSTR lpData; /* pointer to locked data buffer */ |
| DWORD dwBufferLength; /* length of data buffer */ | | DWORD dwBufferLength; /* length of data buffer */ |
| DWORD dwBytesRecorded; /* used for input only */ | | DWORD dwBytesRecorded; /* used for input only */ |
| DWORD_PTR dwUser; /* for client's use */ | | DWORD_PTR dwUser; /* for client's use */ |
| DWORD dwFlags; /* assorted flags (see defines) */ | | DWORD dwFlags; /* assorted flags (see defines) */ |
| DWORD dwLoops; /* loop control counter */ | | DWORD dwLoops; /* loop control counter */ |
| | |
| skipping to change at line 1773 | | skipping to change at line 1759 |
| /* */ | | /* */ |
| #define MIXERLINE_TARGETTYPE_UNDEFINED 0 | | #define MIXERLINE_TARGETTYPE_UNDEFINED 0 |
| #define MIXERLINE_TARGETTYPE_WAVEOUT 1 | | #define MIXERLINE_TARGETTYPE_WAVEOUT 1 |
| #define MIXERLINE_TARGETTYPE_WAVEIN 2 | | #define MIXERLINE_TARGETTYPE_WAVEIN 2 |
| #define MIXERLINE_TARGETTYPE_MIDIOUT 3 | | #define MIXERLINE_TARGETTYPE_MIDIOUT 3 |
| #define MIXERLINE_TARGETTYPE_MIDIIN 4 | | #define MIXERLINE_TARGETTYPE_MIDIIN 4 |
| #define MIXERLINE_TARGETTYPE_AUX 5 | | #define MIXERLINE_TARGETTYPE_AUX 5 |
| | |
| #ifdef _WIN32 | | #ifdef _WIN32 |
| | |
|
| WINMMAPI MMRESULT WINAPI mixerGetLineInfoA( __in_opt HMIXEROBJ hmxobj, __out LPM | | WINMMAPI MMRESULT WINAPI mixerGetLineInfoA( __in_opt HMIXEROBJ hmxobj, __inout L |
| IXERLINEA pmxl, __in DWORD fdwInfo); | | PMIXERLINEA pmxl, __in DWORD fdwInfo); |
| WINMMAPI MMRESULT WINAPI mixerGetLineInfoW( __in_opt HMIXEROBJ hmxobj, __out LPM | | WINMMAPI MMRESULT WINAPI mixerGetLineInfoW( __in_opt HMIXEROBJ hmxobj, __inout L |
| IXERLINEW pmxl, __in DWORD fdwInfo); | | PMIXERLINEW pmxl, __in DWORD fdwInfo); |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define mixerGetLineInfo mixerGetLineInfoW | | #define mixerGetLineInfo mixerGetLineInfoW |
| #else | | #else |
| #define mixerGetLineInfo mixerGetLineInfoA | | #define mixerGetLineInfo mixerGetLineInfoA |
| #endif // !UNICODE | | #endif // !UNICODE |
| | |
| #else | | #else |
| MMRESULT WINAPI mixerGetLineInfo(HMIXEROBJ hmxobj, LPMIXERLINE pmxl, DWORD fdwIn
fo); | | MMRESULT WINAPI mixerGetLineInfo(HMIXEROBJ hmxobj, LPMIXERLINE pmxl, DWORD fdwIn
fo); |
| #endif | | #endif |
| | |
| | |
| skipping to change at line 1813 | | skipping to change at line 1799 |
| DWORD dwControlID; /* unique control id for mixer device */ | | DWORD dwControlID; /* unique control id for mixer device */ |
| DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ | | DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ |
| DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ | | DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ |
| DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set
*/ | | DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set
*/ |
| CHAR szShortName[MIXER_SHORT_NAME_CHARS]; | | CHAR szShortName[MIXER_SHORT_NAME_CHARS]; |
| CHAR szName[MIXER_LONG_NAME_CHARS]; | | CHAR szName[MIXER_LONG_NAME_CHARS]; |
| union { | | union { |
| struct { | | struct { |
| LONG lMinimum; /* signed minimum for this control */ | | LONG lMinimum; /* signed minimum for this control */ |
| LONG lMaximum; /* signed maximum for this control */ | | LONG lMaximum; /* signed maximum for this control */ |
|
| }; | | } DUMMYSTRUCTNAME; |
| struct { | | struct { |
| DWORD dwMinimum; /* unsigned minimum for this control */ | | DWORD dwMinimum; /* unsigned minimum for this control */ |
| DWORD dwMaximum; /* unsigned maximum for this control */ | | DWORD dwMaximum; /* unsigned maximum for this control */ |
|
| }; | | } DUMMYSTRUCTNAME2; |
| DWORD dwReserved[6]; | | DWORD dwReserved[6]; |
| } Bounds; | | } Bounds; |
| union { | | union { |
| DWORD cSteps; /* # of steps between min & max */ | | DWORD cSteps; /* # of steps between min & max */ |
| DWORD cbCustomData; /* size in bytes of custom data */ | | DWORD cbCustomData; /* size in bytes of custom data */ |
| DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ | | DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ |
| } Metrics; | | } Metrics; |
| } MIXERCONTROLA, *PMIXERCONTROLA, *LPMIXERCONTROLA; | | } MIXERCONTROLA, *PMIXERCONTROLA, *LPMIXERCONTROLA; |
| typedef struct tagMIXERCONTROLW { | | typedef struct tagMIXERCONTROLW { |
| DWORD cbStruct; /* size in bytes of MIXERCONTROL */ | | DWORD cbStruct; /* size in bytes of MIXERCONTROL */ |
| DWORD dwControlID; /* unique control id for mixer device */ | | DWORD dwControlID; /* unique control id for mixer device */ |
| DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ | | DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ |
| DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ | | DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ |
| DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set
*/ | | DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set
*/ |
| WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; | | WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; |
| WCHAR szName[MIXER_LONG_NAME_CHARS]; | | WCHAR szName[MIXER_LONG_NAME_CHARS]; |
| union { | | union { |
| struct { | | struct { |
| LONG lMinimum; /* signed minimum for this control */ | | LONG lMinimum; /* signed minimum for this control */ |
| LONG lMaximum; /* signed maximum for this control */ | | LONG lMaximum; /* signed maximum for this control */ |
|
| }; | | } DUMMYSTRUCTNAME; |
| struct { | | struct { |
| DWORD dwMinimum; /* unsigned minimum for this control */ | | DWORD dwMinimum; /* unsigned minimum for this control */ |
| DWORD dwMaximum; /* unsigned maximum for this control */ | | DWORD dwMaximum; /* unsigned maximum for this control */ |
|
| }; | | } DUMMYSTRUCTNAME2; |
| DWORD dwReserved[6]; | | DWORD dwReserved[6]; |
| } Bounds; | | } Bounds; |
| union { | | union { |
| DWORD cSteps; /* # of steps between min & max */ | | DWORD cSteps; /* # of steps between min & max */ |
| DWORD cbCustomData; /* size in bytes of custom data */ | | DWORD cbCustomData; /* size in bytes of custom data */ |
| DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ | | DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ |
| } Metrics; | | } Metrics; |
| } MIXERCONTROLW, *PMIXERCONTROLW, *LPMIXERCONTROLW; | | } MIXERCONTROLW, *PMIXERCONTROLW, *LPMIXERCONTROLW; |
| #ifdef UNICODE | | #ifdef UNICODE |
| typedef MIXERCONTROLW MIXERCONTROL; | | typedef MIXERCONTROLW MIXERCONTROL; |
| | |
| skipping to change at line 1874 | | skipping to change at line 1860 |
| DWORD dwControlID; /* unique control id for mixer device */ | | DWORD dwControlID; /* unique control id for mixer device */ |
| DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ | | DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ |
| DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ | | DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ |
| DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set
*/ | | DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set
*/ |
| char szShortName[MIXER_SHORT_NAME_CHARS]; | | char szShortName[MIXER_SHORT_NAME_CHARS]; |
| char szName[MIXER_LONG_NAME_CHARS]; | | char szName[MIXER_LONG_NAME_CHARS]; |
| union { | | union { |
| struct { | | struct { |
| LONG lMinimum; /* signed minimum for this control */ | | LONG lMinimum; /* signed minimum for this control */ |
| LONG lMaximum; /* signed maximum for this control */ | | LONG lMaximum; /* signed maximum for this control */ |
|
| }; | | } DUMMYSTRUCTNAME; |
| struct { | | struct { |
| DWORD dwMinimum; /* unsigned minimum for this control */ | | DWORD dwMinimum; /* unsigned minimum for this control */ |
| DWORD dwMaximum; /* unsigned maximum for this control */ | | DWORD dwMaximum; /* unsigned maximum for this control */ |
|
| }; | | } DUMMYSTRUCTNAME2; |
| DWORD dwReserved[6]; | | DWORD dwReserved[6]; |
| } Bounds; | | } Bounds; |
| union { | | union { |
| DWORD cSteps; /* # of steps between min & max */ | | DWORD cSteps; /* # of steps between min & max */ |
| DWORD cbCustomData; /* size in bytes of custom data */ | | DWORD cbCustomData; /* size in bytes of custom data */ |
| DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ | | DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ |
| } Metrics; | | } Metrics; |
| } MIXERCONTROL, *PMIXERCONTROL, FAR *LPMIXERCONTROL; | | } MIXERCONTROL, *PMIXERCONTROL, FAR *LPMIXERCONTROL; |
| #endif | | #endif |
| | |
| | |
| skipping to change at line 1979 | | skipping to change at line 1965 |
| /* MIXERLINECONTROLS */ | | /* MIXERLINECONTROLS */ |
| /* */ | | /* */ |
| #ifdef _WIN32 | | #ifdef _WIN32 |
| | |
| typedef struct tagMIXERLINECONTROLSA { | | typedef struct tagMIXERLINECONTROLSA { |
| DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */ | | DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */ |
| DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */ | | DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */ |
| union { | | union { |
| DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */ | | DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */ |
| DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */ | | DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */ |
|
| }; | | } DUMMYUNIONNAME; |
| DWORD cControls; /* count of controls pmxctrl points to */ | | DWORD cControls; /* count of controls pmxctrl points to */ |
| DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */ | | DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */ |
| LPMIXERCONTROLA pamxctrl; /* pointer to first MIXERCONTROL array */ | | LPMIXERCONTROLA pamxctrl; /* pointer to first MIXERCONTROL array */ |
| } MIXERLINECONTROLSA, *PMIXERLINECONTROLSA, *LPMIXERLINECONTROLSA; | | } MIXERLINECONTROLSA, *PMIXERLINECONTROLSA, *LPMIXERLINECONTROLSA; |
| typedef struct tagMIXERLINECONTROLSW { | | typedef struct tagMIXERLINECONTROLSW { |
| DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */ | | DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */ |
| DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */ | | DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */ |
| union { | | union { |
| DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */ | | DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */ |
| DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */ | | DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */ |
|
| }; | | } DUMMYUNIONNAME; |
| DWORD cControls; /* count of controls pmxctrl points to */ | | DWORD cControls; /* count of controls pmxctrl points to */ |
| DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */ | | DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */ |
| LPMIXERCONTROLW pamxctrl; /* pointer to first MIXERCONTROL array */ | | LPMIXERCONTROLW pamxctrl; /* pointer to first MIXERCONTROL array */ |
| } MIXERLINECONTROLSW, *PMIXERLINECONTROLSW, *LPMIXERLINECONTROLSW; | | } MIXERLINECONTROLSW, *PMIXERLINECONTROLSW, *LPMIXERLINECONTROLSW; |
| #ifdef UNICODE | | #ifdef UNICODE |
| typedef MIXERLINECONTROLSW MIXERLINECONTROLS; | | typedef MIXERLINECONTROLSW MIXERLINECONTROLS; |
| typedef PMIXERLINECONTROLSW PMIXERLINECONTROLS; | | typedef PMIXERLINECONTROLSW PMIXERLINECONTROLS; |
| typedef LPMIXERLINECONTROLSW LPMIXERLINECONTROLS; | | typedef LPMIXERLINECONTROLSW LPMIXERLINECONTROLS; |
| #else | | #else |
| typedef MIXERLINECONTROLSA MIXERLINECONTROLS; | | typedef MIXERLINECONTROLSA MIXERLINECONTROLS; |
| | |
| skipping to change at line 2049 | | skipping to change at line 2035 |
| | |
| #define MIXER_GETLINECONTROLSF_QUERYMASK 0x0000000FL | | #define MIXER_GETLINECONTROLSF_QUERYMASK 0x0000000FL |
| | |
| typedef struct tMIXERCONTROLDETAILS { | | typedef struct tMIXERCONTROLDETAILS { |
| DWORD cbStruct; /* size in bytes of MIXERCONTROLDETAILS */ | | DWORD cbStruct; /* size in bytes of MIXERCONTROLDETAILS */ |
| DWORD dwControlID; /* control id to get/set details on */ | | DWORD dwControlID; /* control id to get/set details on */ |
| DWORD cChannels; /* number of channels in paDetails array */ | | DWORD cChannels; /* number of channels in paDetails array */ |
| union { | | union { |
| HWND hwndOwner; /* for MIXER_SETCONTROLDETAILSF_CUSTOM */ | | HWND hwndOwner; /* for MIXER_SETCONTROLDETAILSF_CUSTOM */ |
| DWORD cMultipleItems; /* if _MULTIPLE, the number of items per cha
nnel */ | | DWORD cMultipleItems; /* if _MULTIPLE, the number of items per cha
nnel */ |
|
| }; | | } DUMMYUNIONNAME; |
| DWORD cbDetails; /* size of _one_ details_XX struct */ | | DWORD cbDetails; /* size of _one_ details_XX struct */ |
| LPVOID paDetails; /* pointer to array of details_XX structs */ | | LPVOID paDetails; /* pointer to array of details_XX structs */ |
| } MIXERCONTROLDETAILS, *PMIXERCONTROLDETAILS, FAR *LPMIXERCONTROLDETAILS; | | } MIXERCONTROLDETAILS, *PMIXERCONTROLDETAILS, FAR *LPMIXERCONTROLDETAILS; |
| | |
| /* */ | | /* */ |
| /* MIXER_GETCONTROLDETAILSF_LISTTEXT */ | | /* MIXER_GETCONTROLDETAILSF_LISTTEXT */ |
| /* */ | | /* */ |
| /* */ | | /* */ |
| #ifdef _WIN32 | | #ifdef _WIN32 |
| | |
| | |
| End of changes. 15 change blocks. |
| 36 lines changed or deleted | | 23 lines changed or added |
|