home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / audio / acmapp / waveio.h < prev   
C/C++ Source or Header  |  1997-10-05  |  4KB  |  178 lines

  1. //==========================================================================;
  2. //
  3. //  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4. //  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5. //  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6. //  PURPOSE.
  7. //
  8. //  Copyright (C) 1992 - 1997 Microsoft Corporation.  All Rights Reserved.
  9. //
  10. //--------------------------------------------------------------------------;
  11. //
  12. //  waveio.h
  13. //
  14. //  Description:
  15. //      Contains structure definitions and prototypes for the functions in
  16. //      waveio.c.  Also contains Win16/Win32 portability definitions.
  17. //
  18. //
  19. //==========================================================================;
  20.  
  21. #ifndef _INC_WAVEIO
  22. #define _INC_WAVEIO                 // #defined if file has been included
  23.  
  24. #ifndef RC_INVOKED
  25. #pragma pack(1)                     // assume byte packing throughout
  26. #endif
  27.  
  28. #ifndef EXTERN_C
  29. #ifdef __cplusplus
  30.     #define EXTERN_C extern "C"
  31. #else
  32.     #define EXTERN_C extern 
  33. #endif
  34. #endif
  35.  
  36. #ifdef __cplusplus
  37. extern "C"                          // assume C declarations for C++
  38. {
  39. #endif
  40.  
  41. #ifdef WIN32
  42.     //
  43.     //  for compiling Unicode
  44.     //
  45.     #ifndef SIZEOF
  46.     #ifdef UNICODE
  47.         #define SIZEOF(x)       (sizeof(x)/sizeof(WCHAR))
  48.     #else
  49.         #define SIZEOF(x)       sizeof(x)
  50.     #endif
  51.     #endif
  52. #else
  53.     //
  54.     //  stuff for Unicode in Win 32--make it a noop in Win 16
  55.     //
  56.     #ifndef TEXT
  57.     #define TEXT(a)             a
  58.     #endif
  59.  
  60.     #ifndef SIZEOF
  61.     #define SIZEOF(x)           sizeof(x)
  62.     #endif
  63.  
  64.     #ifndef _TCHAR_DEFINED
  65.         #define _TCHAR_DEFINED
  66.         typedef char            TCHAR, *PTCHAR;
  67.         typedef unsigned char   TBYTE, *PTUCHAR;
  68.  
  69.         typedef PSTR            PTSTR, PTCH;
  70.         typedef LPSTR           LPTSTR, LPTCH;
  71.         typedef LPCSTR          LPCTSTR;
  72.     #endif
  73. #endif
  74.  
  75.  
  76. //
  77. //
  78. //
  79. //
  80. //
  81. #ifdef WIN32
  82.     #define WIOAPI      _stdcall
  83. #else
  84. #ifdef _WINDLL
  85.     #define WIOAPI      FAR PASCAL _loadds
  86. #else
  87.     #define WIOAPI      FAR PASCAL
  88. #endif
  89. #endif
  90.  
  91.  
  92. //
  93. //
  94. //
  95. typedef UINT        WIOERR;
  96.  
  97.  
  98. //
  99. //
  100. //
  101. //
  102. typedef struct tWAVEIOCB
  103. {
  104.     DWORD           dwFlags;
  105.     HMMIO           hmmio;
  106.  
  107.     DWORD           dwDataOffset;
  108.     DWORD           dwDataBytes;
  109.     DWORD           dwDataSamples;
  110.  
  111.     LPWAVEFORMATEX  pwfx;
  112.  
  113. #if 0
  114.     HWAVEOUT        hwo;
  115.     DWORD           dwBytesLeft;
  116.     DWORD           dwBytesPerBuffer;
  117.     
  118.     DISP FAR *      pDisp;
  119.     INFOCHUNK FAR * pInfo;
  120. #endif
  121.  
  122. } WAVEIOCB, *PWAVEIOCB, FAR *LPWAVEIOCB;
  123.  
  124.  
  125.  
  126. //
  127. //  error returns from waveio functions
  128. //
  129. #define WIOERR_BASE             (0)
  130. #define WIOERR_NOERROR          (0)
  131. #define WIOERR_ERROR            (WIOERR_BASE+1)
  132. #define WIOERR_BADHANDLE        (WIOERR_BASE+2)
  133. #define WIOERR_BADFLAGS         (WIOERR_BASE+3)
  134. #define WIOERR_BADPARAM         (WIOERR_BASE+4)
  135. #define WIOERR_BADSIZE          (WIOERR_BASE+5)
  136. #define WIOERR_FILEERROR        (WIOERR_BASE+6)
  137. #define WIOERR_NOMEM            (WIOERR_BASE+7)
  138. #define WIOERR_BADFILE          (WIOERR_BASE+8)
  139. #define WIOERR_NODEVICE         (WIOERR_BASE+9)
  140. #define WIOERR_BADFORMAT        (WIOERR_BASE+10)
  141. #define WIOERR_ALLOCATED        (WIOERR_BASE+11)
  142. #define WIOERR_NOTSUPPORTED     (WIOERR_BASE+12)
  143.  
  144.  
  145.  
  146. //
  147. //  function prototypes and flag definitions
  148. //
  149. WIOERR WIOAPI wioFileClose
  150. (
  151.     LPWAVEIOCB              pwio,
  152.     DWORD                   fdwClose
  153. );
  154.  
  155. WIOERR WIOAPI wioFileOpen
  156. (
  157.     LPWAVEIOCB              pwio,
  158.     LPCTSTR                 pszFilePath,
  159.     DWORD                   fdwOpen
  160. );
  161.  
  162.  
  163. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; 
  164. //
  165. //
  166. //
  167. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; 
  168.  
  169. #ifndef RC_INVOKED
  170. #pragma pack()                      // revert to default packing
  171. #endif
  172.  
  173. #ifdef __cplusplus
  174. }                                   // end of extern "C" { 
  175. #endif
  176.  
  177. #endif // _INC_WAVEIO
  178.