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

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) 1993 - 1997  Microsoft Corporation.  All Rights Reserved.
  9. //
  10. //--------------------------------------------------------------------------;
  11. //
  12. //  mixapp.h
  13. //
  14. //==========================================================================;
  15. #ifndef _INC_MIXAPP
  16. #define _INC_MIXAPP                 // #defined if file has been included
  17. #ifndef RC_INVOKED
  18. #pragma pack(1)                     // assume byte packing throughout
  19. #endif
  20. #ifndef EXTERN_C
  21. #ifdef __cplusplus
  22.     #define EXTERN_C extern "C"
  23. #else
  24.     #define EXTERN_C extern
  25. #endif
  26. #endif
  27. #ifdef __cplusplus
  28. extern "C"                          // assume C declarations for C++
  29. {
  30. #endif
  31. //
  32. //Some useful stuff to clarify the code a bit
  33. //
  34. #ifndef FNLOCAL
  35.     #ifdef DEBUG
  36.         #define FNLOCAL     _stdcall
  37.     #else
  38.         #define FNLOCAL     static _stdcall
  39.     #endif
  40.     #define FNGLOBAL    _stdcall
  41.     #define FNCGLOBAL   _cdecl
  42. #endif
  43. //
  44. //  for compiling Unicode
  45. //
  46. #ifdef UNICODE
  47.     #define SIZEOF(x)   (sizeof(x)/sizeof(WCHAR))
  48. #else
  49.     #define SIZEOF(x)   sizeof(x)
  50. #endif
  51. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  52. //
  53. //  Application Version Information:
  54. //
  55. //
  56. //
  57. //
  58. //  NOTE! all string resources that will be used in app.rcv for the
  59. //  version resource information *MUST* have an explicit  terminator!
  60. //
  61. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  62. #define APP_VERSION_MAJOR           4
  63. #define APP_VERSION_MINOR           0
  64. #define APP_VERSION_BUILD           0
  65. #ifdef UNICODE
  66. #define APP_VERSION_STRING_RC       "Version 4.00 (Unicode Enabled)"
  67. #else
  68. #define APP_VERSION_STRING_RC       "Version 4.00"
  69. #endif
  70. #define APP_VERSION_NAME_RC         "mixapp32.exe"
  71. #define APP_VERSION_BYLINE_RC       ""
  72. #define APP_VERSION_COMPANYNAME_RC  "Microsoft Corporation"
  73. #define APP_VERSION_COPYRIGHT_RC    "Copyright (C) 1985 - 1996 Microsoft Corp."
  74. #if (defined(_X86_)) || (defined(i386))
  75. #define APP_VERSION_PRODUCTNAME_RC  "Microsoft Windows Sample Application (i386)"
  76. #endif
  77. #if (defined(_MIPS_)) || (defined(MIPS))
  78. #define APP_VERSION_PRODUCTNAME_RC  "Microsoft Windows Sample Application (MIPS)"
  79. #endif
  80. #if (defined(_ALPHA_)) || (defined(ALPHA))
  81. #define APP_VERSION_PRODUCTNAME_RC  "Microsoft Windows Sample Application (Alpha)"
  82. #endif
  83. #ifndef APP_VERSION_PRODUCTNAME_RC
  84. #define APP_VERSION_PRODUCTNAME_RC  "Microsoft Windows Sample Application"
  85. #endif
  86. #ifdef DEBUG
  87. #define APP_VERSION_DESCRIPTION_RC  "Microsoft Audio Mixer Manager Sample Application (debug)"
  88. #else
  89. #define APP_VERSION_DESCRIPTION_RC  "Microsoft Audio Mixer Manager Sample Application"
  90. #endif
  91. //
  92. //  Unicode versions (if UNICODE is defined)... the resource compiler
  93. //  cannot deal with the TEXT() macro.
  94. //
  95. #define APP_VERSION_STRING          TEXT(APP_VERSION_STRING_RC)
  96. #define APP_VERSION_NAME            TEXT(APP_VERSION_NAME_RC)
  97. #define APP_VERSION_BYLINE          TEXT(APP_VERSION_BYLINE_RC)
  98. #define APP_VERSION_COMPANYNAME     TEXT(APP_VERSION_COMPANYNAME_RC)
  99. #define APP_VERSION_COPYRIGHT       TEXT(APP_VERSION_COPYRIGHT_RC)
  100. #define APP_VERSION_PRODUCTNAME     TEXT(APP_VERSION_PRODUCTNAME_RC)
  101. #define APP_VERSION_DESCRIPTION     TEXT(APP_VERSION_DESCRIPTION_RC)
  102. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  103. //
  104. //  misc defines for misc sizes and things...
  105. //
  106. //
  107. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  108. //
  109. //  bilingual. this allows the same identifier to be used in resource files
  110. //  and code without having to decorate the id in your code.
  111. //
  112. #ifdef RC_INVOKED
  113.     #define RCID(id)    id
  114. #else
  115.     #define RCID(id)    MAKEINTRESOURCE(id)
  116. #endif
  117. //
  118. //  misc. defines
  119. //
  120. #define APP_MAX_APP_NAME_CHARS          30
  121. #define APP_MAX_APP_NAME_BYTES          (APP_MAX_APP_NAME_CHARS * sizeof(TCHAR))
  122. #define APP_MAX_STRING_RC_CHARS         512
  123. #define APP_MAX_STRING_RC_BYTES         (APP_MAX_STRING_RC_CHARS * sizeof(TCHAR))
  124. #define APP_MAX_STRING_ERROR_CHARS      512
  125. #define APP_MAX_STRING_ERROR_BYTES      (APP_MAX_STRING_ERROR_CHARS * sizeof(TCHAR))
  126. #define APP_WINDOW_XOFFSET              CW_USEDEFAULT
  127. #define APP_WINDOW_YOFFSET              CW_USEDEFAULT
  128. #define APP_WINDOW_WIDTH                500 //CW_USEDEFAULT
  129. #define APP_WINDOW_HEIGHT               300 //CW_USEDEFAULT
  130. //
  131. //  resource defines...
  132. //
  133. #define ICON_APP                        RCID(10)
  134. #define ACCEL_APP                       RCID(15)
  135. //
  136. //  the application menu...
  137. //
  138. //
  139. #define MENU_APP                        RCID(20)
  140. #define APP_MENU_ITEM_FILE              0
  141. #define IDM_FILE_MIXER_DEVICE           1000
  142. #define IDM_FILE_FONT                   1001
  143. #define IDM_FILE_DEBUG_LOG              1005
  144. #define IDM_FILE_ABOUT                  1009
  145. #define IDM_FILE_EXIT                   1010
  146. #define APP_MENU_ITEM_VIEW              1
  147. #define IDM_VIEW_LINE_INFO              1050
  148. #define IDM_VIEW_LINE_CONTROLS          1051
  149. #define IDM_UPDATE                      1100
  150. //
  151. //  the main window control id's...
  152. //
  153. #define IDD_APP_LIST_LINES                  100
  154. //
  155. //  misc dlg boxes...
  156. //
  157. #define DLG_ABOUT                           RCID(50)
  158. #define IDD_ABOUT_VERSION_OS                100
  159. #define IDD_ABOUT_VERSION_PLATFORM          101
  160. #define IDD_ABOUT_VERSION_MMSYSTEM          150
  161. #define DLG_MIXAPP_DEVICE                   RCID(51)
  162. #define IDD_MADEVICE_COMBO_DEVICE           100
  163. #define IDD_MADEVICE_EDIT_CAPABILITIES      101
  164. #define DLG_LINEINFO                        RCID(55)
  165. #define IDD_LINEINFO_EDIT_INFO              100
  166. #define DLG_LINECONTROLS                    RCID(60)
  167. #define IDD_LINECONTROLS_STATIC_POSITION    100
  168. #define IDD_LINECONTROLS_LIST_CONTROLS      101
  169. #define IDD_LINECONTROLS_BTN_INFO           102
  170. #define IDD_LINECONTROLS_BTN_SETTINGS       103
  171. #define DLG_CONTROLINFO                     RCID(61)
  172. #define IDD_CONTROLINFO_EDIT_INFO           100
  173. //
  174. //  mainit.c
  175. //
  176. //
  177. //
  178. BOOL CALLBACK AboutDlgProc
  179. (
  180.     HWND            hwnd,
  181.     UINT            uMsg,
  182.     WPARAM          wParam,
  183.     LPARAM          lParam
  184. );
  185. BOOL FNGLOBAL MixAppChooseFont
  186. (
  187.     HWND            hwnd
  188. );
  189. LRESULT FNGLOBAL AppCreate
  190. (
  191.     HWND            hwnd,
  192.     LPCREATESTRUCT  pcs
  193. );
  194. LRESULT FNGLOBAL AppQueryEndSession
  195. (
  196.     HWND            hwnd
  197. );
  198. LRESULT FNGLOBAL AppEndSession
  199. (
  200.     HWND            hwnd,
  201.     BOOL            fEndSession
  202. );
  203. LRESULT FNGLOBAL AppClose
  204. (
  205.     HWND            hwnd
  206. );
  207. HWND FNGLOBAL AppInit
  208. (
  209.     HINSTANCE       hinst,
  210.     HINSTANCE       hinstPrev,
  211.     LPTSTR          pszCmdLine,
  212.     int             nCmdShow
  213. );
  214. int FNGLOBAL AppExit
  215. (
  216.     HINSTANCE               hinst,
  217.     int                     nResult
  218. );
  219. //
  220. //  macntrls.c
  221. //
  222. //
  223. //
  224. BOOL CALLBACK MixAppDlgProcLineControls
  225. (
  226.     HWND                    hwnd,
  227.     UINT                    uMsg,
  228.     WPARAM                  wParam,
  229.     LPARAM                  lParam
  230. );
  231. LRESULT FNGLOBAL MixAppControlChange
  232. (
  233.     HWND                    hwnd,
  234.     HMIXER                  hmx,
  235.     DWORD                   dwControlID
  236. );
  237. //
  238. //  mixapp.c
  239. //
  240. //
  241. //
  242. LRESULT CALLBACK AppWndProc
  243. (
  244.     HWND                    hwnd,
  245.     UINT                    uMsg,
  246.     WPARAM                  wParam,
  247.     LPARAM                  lParam
  248. );
  249. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  250. //
  251. //  string resources
  252. //
  253. //
  254. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  255. #define IDS_APP_NAME                100
  256. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  257. //
  258. //  Public function prototypes
  259. //
  260. //
  261. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  262. void FNGLOBAL AppHourGlass
  263. (
  264.     BOOL                    fHourGlass
  265. );
  266. int FNCGLOBAL AppMsgBox
  267. (
  268.     HWND                    hwnd,
  269.     UINT                    fuStyle,
  270.     PTSTR                   pszFormat,
  271.     ...
  272. );
  273. int FNCGLOBAL AppSetWindowText
  274. (
  275.     HWND                    hwnd,
  276.     PTSTR                   pszFormat,
  277.     ...
  278. );
  279. void FNCGLOBAL MixAppDebugLog
  280. (
  281.     PTSTR                   pszFormat,
  282.     ...
  283. );
  284. //
  285. //
  286. //
  287. //
  288. int FNCGLOBAL MEditPrintF
  289. (
  290.     HWND            hedit,
  291.     PTSTR           pszFormat,
  292.     ...
  293. );
  294. HMIXER FNGLOBAL MixAppNewDevice
  295. (
  296.     HWND                    hwnd,
  297.     HMIXER                  hmxCur,
  298.     UINT                    uMxId
  299. );
  300. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  301. //
  302. //  global variables, etc.
  303. //
  304. //
  305. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  306. #define APP_OPTF_DEBUGLOG       0x0004
  307. extern HINSTANCE    ghinst;
  308. extern UINT         gfuAppOptions;
  309. extern TCHAR        gszNull[];
  310. extern TCHAR        gszCRLF[];
  311. extern TCHAR        gszAppName[APP_MAX_APP_NAME_CHARS];
  312. //
  313. //
  314. //
  315. #include "tlb.h"
  316. extern PTABBEDLISTBOX   gptlbLines;
  317. extern HMIXER           ghmx;
  318. extern BOOL             gfDisplayingControl;
  319. extern DWORD            gdwControlID;
  320. extern HWND             ghdlgControl;
  321. extern MIXERLINE        gmxl;
  322. extern MIXERCONTROL     gmxctrl;
  323. BOOL CALLBACK MixAppDlgProcControlList
  324. (
  325.     HWND            hwnd,
  326.     UINT            uMsg,
  327.     WPARAM          wParam,
  328.     LPARAM          lParam
  329. );
  330. //
  331. //  malines.c
  332. //
  333. //
  334. //
  335. BOOL CALLBACK MixAppDlgProcLineInfo
  336. (
  337.     HWND                    hwnd,
  338.     UINT                    uMsg,
  339.     WPARAM                  wParam,
  340.     LPARAM                  lParam
  341. );
  342. BOOL FNGLOBAL MixAppRefreshLineList
  343. (
  344.     HWND                    hwnd,
  345.     PTABBEDLISTBOX          ptlb
  346. );
  347. LRESULT FNGLOBAL MixAppLineChange
  348. (
  349.     HWND                    hwnd,
  350.     HMIXER                  hmx,
  351.     DWORD                   dwLineID
  352. );
  353. BOOL CALLBACK MixAppDlgProcControlMeter
  354. (
  355.     HWND            hwnd,
  356.     UINT            uMsg,
  357.     WPARAM          wParam,
  358.     LPARAM          lParam
  359. );
  360. BOOL CALLBACK MixAppDlgProcControlSwitch
  361. (
  362.     HWND            hwnd,
  363.     UINT            uMsg,
  364.     WPARAM          wParam,
  365.     LPARAM          lParam
  366. );
  367. BOOL CALLBACK MixAppDlgProcControlFader
  368. (
  369.     HWND            hwnd,
  370.     UINT            uMsg,
  371.     WPARAM          wParam,
  372.     LPARAM          lParam
  373. );
  374. BOOL CALLBACK MixAppDlgProcDevice
  375. (
  376.     HWND            hwnd,
  377.     UINT            uMsg,
  378.     WPARAM          wParam,
  379.     LPARAM          lParam
  380. );
  381. BOOL FNGLOBAL MixAppGetControlTypeName
  382. (
  383.     LPMIXERCONTROL          pmxctrl,
  384.     LPTSTR                  szControlType
  385. );
  386. //
  387. //
  388. //
  389. //
  390. #define DLG_MIXAPP_CONTROL              RCID(42)
  391. #define IDD_MACONTROL_GRP_MULTICHANNEL  100
  392. #define IDD_MACONTROL_GRP_UNIFORM       101
  393. #define IDD_MACONTROL_TXT_SHORT_NAME    102
  394. #define IDD_MACONTROL_TXT_LONG_NAME     103
  395. #define IDD_MACONTROL_TXT_VALUE         104
  396. #define IDD_MACONTROL_TXT_BOUNDS        105
  397. #define IDD_MACONTROL_TXT_METRICS       106
  398. #define IDD_MACONTROL_TXT_LINEINFO      107
  399. #define IDD_MACONTROL_MULTICHANNEL_BASE 200
  400. #define IDD_MACONTROL_UNIFORM_BASE      300
  401. //
  402. //
  403. //
  404. typedef struct tMACONTROLINSTANCE
  405. {
  406.     HMIXER                      hmx;
  407.     LPMIXERLINE                 pmxl;
  408.     LPMIXERCONTROL              pmxctrl;
  409. } MACONTROLINSTANCE, FAR *LPMACONTROLINSTANCE;
  410. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  411. //
  412. //
  413. //
  414. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  415. #ifndef RC_INVOKED
  416. #pragma pack()                      // revert to default packing
  417. #endif
  418. #ifdef __cplusplus
  419. }                                   // end of extern "C" {
  420. #endif
  421. #endif // _INC_APPPORT