WAVEIO.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  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. #ifndef _INC_WAVEIO
  21. #define _INC_WAVEIO                 // #defined if file has been included
  22. #ifndef RC_INVOKED
  23. #pragma pack(1)                     // assume byte packing throughout
  24. #endif
  25. #ifndef EXTERN_C
  26. #ifdef __cplusplus
  27.     #define EXTERN_C extern "C"
  28. #else
  29.     #define EXTERN_C extern 
  30. #endif
  31. #endif
  32. #ifdef __cplusplus
  33. extern "C"                          // assume C declarations for C++
  34. {
  35. #endif
  36. #ifdef WIN32
  37.     //
  38.     //  for compiling Unicode
  39.     //
  40.     #ifndef SIZEOF
  41.     #ifdef UNICODE
  42.         #define SIZEOF(x)       (sizeof(x)/sizeof(WCHAR))
  43.     #else
  44.         #define SIZEOF(x)       sizeof(x)
  45.     #endif
  46.     #endif
  47. #else
  48.     //
  49.     //  stuff for Unicode in Win 32--make it a noop in Win 16
  50.     //
  51.     #ifndef TEXT
  52.     #define TEXT(a)             a
  53.     #endif
  54.     #ifndef SIZEOF
  55.     #define SIZEOF(x)           sizeof(x)
  56.     #endif
  57.     #ifndef _TCHAR_DEFINED
  58.         #define _TCHAR_DEFINED
  59.         typedef char            TCHAR, *PTCHAR;
  60.         typedef unsigned char   TBYTE, *PTUCHAR;
  61.         typedef PSTR            PTSTR, PTCH;
  62.         typedef LPSTR           LPTSTR, LPTCH;
  63.         typedef LPCSTR          LPCTSTR;
  64.     #endif
  65. #endif
  66. //
  67. //
  68. //
  69. //
  70. //
  71. #ifdef WIN32
  72.     #define WIOAPI      _stdcall
  73. #else
  74. #ifdef _WINDLL
  75.     #define WIOAPI      FAR PASCAL _loadds
  76. #else
  77.     #define WIOAPI      FAR PASCAL
  78. #endif
  79. #endif
  80. //
  81. //
  82. //
  83. typedef UINT        WIOERR;
  84. //
  85. //
  86. //
  87. //
  88. typedef struct tWAVEIOCB
  89. {
  90.     DWORD           dwFlags;
  91.     HMMIO           hmmio;
  92.     DWORD           dwDataOffset;
  93.     DWORD           dwDataBytes;
  94.     DWORD           dwDataSamples;
  95.     LPWAVEFORMATEX  pwfx;
  96. #if 0
  97.     HWAVEOUT        hwo;
  98.     DWORD           dwBytesLeft;
  99.     DWORD           dwBytesPerBuffer;
  100.     
  101.     DISP FAR *      pDisp;
  102.     INFOCHUNK FAR * pInfo;
  103. #endif
  104. } WAVEIOCB, *PWAVEIOCB, FAR *LPWAVEIOCB;
  105. //
  106. //  error returns from waveio functions
  107. //
  108. #define WIOERR_BASE             (0)
  109. #define WIOERR_NOERROR          (0)
  110. #define WIOERR_ERROR            (WIOERR_BASE+1)
  111. #define WIOERR_BADHANDLE        (WIOERR_BASE+2)
  112. #define WIOERR_BADFLAGS         (WIOERR_BASE+3)
  113. #define WIOERR_BADPARAM         (WIOERR_BASE+4)
  114. #define WIOERR_BADSIZE          (WIOERR_BASE+5)
  115. #define WIOERR_FILEERROR        (WIOERR_BASE+6)
  116. #define WIOERR_NOMEM            (WIOERR_BASE+7)
  117. #define WIOERR_BADFILE          (WIOERR_BASE+8)
  118. #define WIOERR_NODEVICE         (WIOERR_BASE+9)
  119. #define WIOERR_BADFORMAT        (WIOERR_BASE+10)
  120. #define WIOERR_ALLOCATED        (WIOERR_BASE+11)
  121. #define WIOERR_NOTSUPPORTED     (WIOERR_BASE+12)
  122. //
  123. //  function prototypes and flag definitions
  124. //
  125. WIOERR WIOAPI wioFileClose
  126. (
  127.     LPWAVEIOCB              pwio,
  128.     DWORD                   fdwClose
  129. );
  130. WIOERR WIOAPI wioFileOpen
  131. (
  132.     LPWAVEIOCB              pwio,
  133.     LPCTSTR                 pszFilePath,
  134.     DWORD                   fdwOpen
  135. );
  136. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; 
  137. //
  138. //
  139. //
  140. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; 
  141. #ifndef RC_INVOKED
  142. #pragma pack()                      // revert to default packing
  143. #endif
  144. #ifdef __cplusplus
  145. }                                   // end of extern "C" { 
  146. #endif
  147. #endif // _INC_WAVEIO