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

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. //  aasysinf.c
  12. //
  13. //  Description:
  14. //      Respond to the View/System Information menu item - display info on
  15. //      the user's system and the ACM.
  16. //
  17. //
  18. //==========================================================================;
  19. #include <windows.h>
  20. #include <windowsx.h>
  21. #include <mmsystem.h>
  22. #include <memory.h>
  23. #include <mmreg.h>
  24. #include <msacm.h>
  25. #include "appport.h"
  26. #include "acmapp.h"
  27. #include "debug.h"
  28. //--------------------------------------------------------------------------;
  29. //  
  30. //  BOOL AcmAppDisplaySystemInfo
  31. //  
  32. //  Description:
  33. //  
  34. //  
  35. //  Arguments:
  36. //      HWND hedit:
  37. //  
  38. //  Return (BOOL):
  39. //  
  40. //  
  41. //--------------------------------------------------------------------------;
  42. BOOL FNLOCAL AcmAppDisplaySystemInfo
  43. (
  44.     HWND            hedit
  45. )
  46. {
  47.     static TCHAR    szDisplayTitle[]  = TEXT("[System Information]rn");
  48.     DWORD       dw;
  49.     //
  50.     //
  51.     //
  52.     MEditPrintF(hedit, szDisplayTitle);
  53.     //
  54.     //
  55.     //
  56.     dw = GetVersion();
  57.     MEditPrintF(hedit, TEXT("%23s: %u.%.02u"),
  58. #ifdef WIN32
  59.                     (LPTSTR)TEXT("WinMM Version"),
  60. #else
  61.                     (LPTSTR)TEXT("MMSystem Version"),
  62. #endif
  63.                     HIWORD(dw), LOWORD(dw));
  64.     //
  65.     //
  66.     //
  67.     MEditPrintF(hedit, TEXT("~%23s: "), (LPTSTR)TEXT("ACM Version"));
  68.     dw = acmGetVersion();
  69.     if (0L == dw)
  70.     {
  71.         MEditPrintF(hedit, TEXT("Not Installed"));
  72.         return (TRUE);
  73.     }
  74.     //
  75.     //  if the 'build' number is zero, it is a _retail_ version of the
  76.     //  ACM that is installed. if it is non-zero, it is the debug version.
  77.     //
  78.     if (0 == LOWORD(dw))
  79.     {
  80.         MEditPrintF(hedit, TEXT("%u.%.02u (retail)"),
  81.                         HIWORD(dw) >> 8, HIWORD(dw) & 0x00FF);
  82.     }
  83.     else
  84.     {
  85.         MEditPrintF(hedit, TEXT("%u.%.02u (debug build %u)"),
  86.                         HIWORD(dw) >> 8, HIWORD(dw) & 0x00FF, LOWORD(dw));
  87.     }
  88.     //
  89.     //
  90.     //
  91.     acmMetrics(NULL, ACM_METRIC_COUNT_DRIVERS, &dw);
  92.     MEditPrintF(hedit, TEXT("rn%23s: %lu"), (LPTSTR)TEXT("Enabled Drivers"), dw);
  93.     
  94.     acmMetrics(NULL, ACM_METRIC_COUNT_DISABLED, &dw);
  95.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Disabled Drivers"), dw);
  96.     acmMetrics(NULL, ACM_METRIC_COUNT_CODECS, &dw);
  97.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Total CODEC's"), dw);
  98.     acmMetrics(NULL, ACM_METRIC_COUNT_CONVERTERS, &dw);
  99.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Total Converters"), dw);
  100.     acmMetrics(NULL, ACM_METRIC_COUNT_FILTERS, &dw);
  101.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Total Filters"), dw);
  102.     acmMetrics(NULL, ACM_METRIC_COUNT_HARDWARE, &dw);
  103.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Hardware Drivers"), dw);
  104.     acmMetrics(NULL, ACM_METRIC_COUNT_LOCAL_DRIVERS, &dw);
  105.     MEditPrintF(hedit, TEXT("rn%23s: %lu"), (LPTSTR)TEXT("Enabled Local Drivers"), dw);
  106.     
  107.     acmMetrics(NULL, ACM_METRIC_COUNT_LOCAL_DISABLED, &dw);
  108.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Disabled Local Drivers"), dw);
  109.     acmMetrics(NULL, ACM_METRIC_COUNT_LOCAL_CODECS, &dw);
  110.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Total Local CODEC's"), dw);
  111.     acmMetrics(NULL, ACM_METRIC_COUNT_LOCAL_CONVERTERS, &dw);
  112.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Total Local Converters"), dw);
  113.     acmMetrics(NULL, ACM_METRIC_COUNT_LOCAL_FILTERS, &dw);
  114.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Total Local Filters"), dw);
  115.     acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT, &dw);
  116.     MEditPrintF(hedit, TEXT("rn%23s: %lu"), (LPTSTR)TEXT("Max Format Bytes"), dw);
  117.     acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FILTER, &dw);
  118.     MEditPrintF(hedit, TEXT("%23s: %lu"), (LPTSTR)TEXT("Max Filter Bytes"), dw);
  119.     return (TRUE);
  120. } // AcmAppDisplaySystemInfo()
  121. //--------------------------------------------------------------------------;
  122. //  
  123. //  BOOL AcmAppSystemInfoDlgProc
  124. //  
  125. //  Description:
  126. //  
  127. //  
  128. //  Arguments:
  129. //      HWND hwnd:
  130. //  
  131. //      UINT uMsg:
  132. //  
  133. //      WPARAM wParam:
  134. //  
  135. //      LPARAM lParam:
  136. //  
  137. //  Return (BOOL):
  138. //  
  139. //--------------------------------------------------------------------------;
  140. BOOL FNEXPORT AcmAppSystemInfoDlgProc
  141. (
  142.     HWND                    hwnd,
  143.     UINT                    uMsg,
  144.     WPARAM                  wParam,
  145.     LPARAM                  lParam
  146. )
  147. {
  148.     HWND                hedit;
  149.     UINT                uId;
  150.     switch (uMsg)
  151.     {
  152.         case WM_INITDIALOG:
  153.             hedit = GetDlgItem(hwnd, IDD_AADETAILS_EDIT_DETAILS);
  154.             SetWindowFont(hedit, ghfontApp, FALSE);
  155.             //
  156.             //  clear the display
  157.             //
  158.             AppHourGlass(TRUE);
  159.             SetWindowRedraw(hedit, FALSE);
  160.             MEditPrintF(hedit, NULL);
  161.             AcmAppDisplaySystemInfo(hedit);
  162.             Edit_SetSel(hedit, (WPARAM)0, (LPARAM)0);
  163.             SetWindowRedraw(hedit, TRUE);
  164.             AppHourGlass(FALSE);
  165.             return (TRUE);
  166.         case WM_COMMAND:
  167.             uId = GET_WM_COMMAND_ID(wParam, lParam);
  168.             if ((IDOK == uId) || (IDCANCEL == uId))
  169.             {
  170.                 EndDialog(hwnd, (IDOK == uId));
  171.             }
  172.             break;
  173.     }
  174.     return (FALSE);
  175. } // AcmAppSystemInfoDlgProc()