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

Windows编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  *
  3.  *   captest.h: Include file for the CapTest Sample Program
  4.  *
  5.  *   Microsoft Video for Windows Capture Class Sample Program
  6.  *
  7.  ***************************************************************************/
  8. /**************************************************************************
  9.  *
  10.  *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  11.  *  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  12.  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  13.  *  PURPOSE.
  14.  *
  15.  *  Copyright (C) 1992 - 1997 Microsoft Corporation.  All Rights Reserved.
  16.  *
  17.  **************************************************************************/
  18. #include "dialogs.h"
  19. //
  20. // General purpose constants...
  21. //
  22. #define MAXVIDDRIVERS            10
  23. #define MS_FOR_15FPS             66
  24. #define DEF_PALNUMFRAMES         10
  25. #define DEF_PALNUMCOLORS         236L
  26. #define ONEMEG                   (1024L * 1024L)
  27. //
  28. // Menu Ids...
  29. //
  30. #define IDM_FILE                  100
  31. #define IDM_F_SETCAPTUREFILE      101
  32. #define IDM_F_SAVEVIDEOAS         102
  33. #define IDM_F_ALLOCATESPACE       103
  34. #define IDM_F_EXIT                104
  35. #define IDM_EDIT                  110
  36. #define IDM_E_COPY                111
  37. #define IDM_E_PASTEPALETTE        112
  38. #define IDM_CAPTURE               120
  39. #define IDM_C_CAPTUREVIDEO        121
  40. #define IDM_C_CAPTUREFRAME        122
  41. #define IDM_C_CAPTURESETTINGS     123
  42. #define IDM_OPTIONS               130
  43. #define IDM_O_PREVIEW             131
  44. #define IDM_O_OVERLAY             132
  45. #define IDM_O_AUDIOFORMAT         133
  46. #define IDM_O_VIDEOFORMAT         134
  47. #define IDM_O_VIDEOSOURCE         135
  48. #define IDM_O_VIDEODISPLAY        136
  49. #define IDM_O_PALETTE             137
  50. #define IDM_O_CHOOSECOMPRESSOR    140
  51. // !!! Leave some room after this define for the drivers
  52. #define IDM_O_DRIVERS             150
  53. #define IDM_O_DRIVERS1            151
  54. #define IDM_O_DRIVERS2            152
  55. #define IDM_O_DRIVERS3            153
  56. #define IDM_O_DRIVERS4            154
  57. #define IDM_O_DRIVERS5            155
  58. #define IDM_O_DRIVERS6            156
  59. #define IDM_O_DRIVERS7            157
  60. #define IDM_O_DRIVERS8            158
  61. #define IDM_O_DRIVERS9            159
  62. // The above are just reserved dummy IDs.
  63. #define IDM_HELP                  190
  64. #define IDM_H_ABOUT               191
  65. #define IDS_ERR_REGISTER_CLASS   1
  66. #define IDS_ERR_CREATE_WINDOW    2
  67. //
  68. // Macro Definitions...
  69. //
  70. #define IsDriverIndex(w) ( ((w) >= IDM_O_DRIVERS)  &&  
  71.                            ((w) - IDM_O_DRIVERS < MAXVIDDRIVERS) )
  72. #define Width(X)  ((X).right - (X).left)
  73. #define Height(X) ((X).bottom - (X).top)
  74. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; 
  75. // 
  76. //  Win 16/32 portability stuff...
  77. // 
  78. // 
  79. // 
  80. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; 
  81. #ifndef WIN32
  82.     #ifndef FNLOCAL
  83.         #define FNLOCAL     NEAR PASCAL
  84.         #define FNCLOCAL    NEAR _cdecl
  85.         #define FNGLOBAL    FAR PASCAL
  86.         #define FNCGLOBAL   FAR _cdecl
  87.     #ifdef _WINDLL
  88.         #define FNWCALLBACK FAR PASCAL __loadds
  89.         #define FNEXPORT    FAR PASCAL __export
  90.     #else
  91.         #define FNWCALLBACK FAR PASCAL __loadds
  92.         #define FNEXPORT    FAR PASCAL __export
  93.     #endif
  94.     #endif
  95.     //
  96.     //
  97.     //
  98.     //
  99.     #ifndef FIELD_OFFSET
  100.     #define FIELD_OFFSET(type, field)    ((LONG)&(((type *)0)->field))
  101.     #endif
  102.     //
  103.     //  based code makes since only in win 16 (to try and keep stuff out of
  104.     //  our fixed data segment...
  105.     //
  106.     #define BCODE           _based(_segname("_CODE"))
  107.     #define HUGE            _huge
  108.     //
  109.     //  stuff for Unicode in Win 32--make it a noop in Win 16
  110.     //
  111.     #ifndef _TCHAR_DEFINED
  112.         #define _TCHAR_DEFINED
  113.         typedef char            TCHAR, *PTCHAR;
  114.         typedef unsigned char   TBYTE, *PTUCHAR;
  115.         typedef PSTR            PTSTR, PTCH;
  116.         typedef LPSTR           LPTSTR, LPTCH;
  117.         typedef LPCSTR          LPCTSTR;
  118.     #endif
  119.     #define TEXT(a)         a
  120.     #define SIZEOF(x)       sizeof(x)
  121.     #define SIZEOFACMSTR(x) sizeof(x)
  122. #else
  123.     #ifndef FNLOCAL
  124.         #define FNLOCAL     _stdcall
  125.         #define FNCLOCAL    _stdcall
  126.         #define FNGLOBAL    _stdcall
  127.         #define FNCGLOBAL   _stdcall
  128.         #define FNWCALLBACK CALLBACK
  129.         #define FNEXPORT    CALLBACK
  130.     #endif
  131.     #ifndef _CRTAPI1
  132.     #define _CRTAPI1    __cdecl
  133.     #endif
  134.     #ifndef _CRTAPI2
  135.     #define _CRTAPI2    __cdecl
  136.     #endif
  137.     #ifndef try
  138.     #define try         __try
  139.     #define leave       __leave
  140.     #define except      __except
  141.     #define finally     __finally
  142.     #endif
  143.     //
  144.     //  there is no reason to have based stuff in win 32
  145.     //
  146.     #define BCODE
  147.     #define HUGE
  148.     #define HTASK                   HANDLE
  149.     #define SELECTOROF(a)           (a)
  150.     typedef LRESULT (CALLBACK* DRIVERPROC)(DWORD, HDRVR, UINT, LPARAM, LPARAM);
  151.     //
  152.     //  for compiling Unicode
  153.     //
  154.     #ifdef UNICODE
  155.         #define SIZEOF(x)   (sizeof(x)/sizeof(WCHAR))
  156.     #else
  157.         #define SIZEOF(x)   sizeof(x)
  158.     #endif
  159.     #define SIZEOFACMSTR(x) (sizeof(x)/sizeof(WCHAR))
  160. #endif
  161. //
  162. // Global Variables...
  163. //
  164. extern TCHAR           gachAppName[] ;
  165. extern TCHAR           gachIconName[] ;
  166. extern TCHAR           gachMenuName[] ;
  167. extern TCHAR           gachString[] ;
  168. extern TCHAR           gachMCIDeviceName[] ;
  169. extern HINSTANCE      ghInstApp ;
  170. extern HWND           ghWndMain ;
  171. extern HWND           ghWndCap ;
  172. extern HANDLE         ghAccel ;
  173. extern WORD           gwDeviceIndex ;
  174. extern WORD           gwPalFrames ;
  175. extern WORD           gwPalColors ;
  176. extern WORD           gwCapFileSize ;
  177. extern CAPSTATUS      gCapStatus ;
  178. extern CAPDRIVERCAPS  gCapDriverCaps ;
  179. extern CAPTUREPARMS   gCapParms ;
  180. extern LPWAVEFORMATEX glpwfex ;
  181. //
  182. // Dialog Box Procedures...
  183. //
  184. int FAR PASCAL AboutProc(HWND, UINT, UINT, LONG) ;
  185. int FAR PASCAL AudioFormatProc(HWND, UINT, UINT, LONG) ;
  186. int FAR PASCAL CapSetUpProc(HWND, UINT, UINT, LONG) ;
  187. BOOL CALLBACK MakePaletteProc(HWND, UINT, UINT, LONG) ;
  188. int FAR PASCAL AllocCapFileProc(HWND, UINT, UINT, LONG) ;