My question is each and every time when i have
tried to write something to the waveout device and
compared dwFlags of WAVEHDR to know whether it is in queue
or not but it always returned me False. The value of
dwFlags parameter is 18. I have checked the numeric values
of WHDR_BEGINLOOP, WHDR_DONE, WHDR_ENDLOOP, WHDR_INQUEUE
and WHDR_PREPARED but they all are except 18. So which may
be the constant or definition of no. 18?
Thanks.
Mehul,
WAVEHDR.dwFlags is not a single numeric value.
WAVEHDR.dwFlags is a bit field composed (binary OR) of flags.
Possible flags are according to mmsystem.h:
/* flags for dwFlags field of WAVEHDR */
#define WHDR_DONE 0x00000001 /* done bit */
#define WHDR_PREPARED 0x00000002 /* set if this header has been prepared */
#define WHDR_BEGINLOOP 0x00000004 /* loop start block */
#define WHDR_ENDLOOP 0x00000008 /* loop end block */
#define WHDR_INQUEUE 0x00000010 /* reserved for driver */
So WAVEHDR.dwFlags = 18 = 0x12 = 0x10 | 0x02 = WHDR_INQUEUE | WHDR_PREPARED;
--
Best Regards
Andreas Marschall
Microsoft MVP for TAPI / Windows SDK
TAPI / TSP Developer and Tester
http://www.I-B-A-M.de/Andreas_Marschall's_TAPI_and_TSPI_FAQ.htm
* Please post all messages and replies to the newsgroup so all may
* benefit from the discussion. Private mail is usually not replied to.
* This posting is provided "AS IS" with no warranties, and confers no rights.