home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 39 / IOPROG_39.ISO / SOFT / sdkjava40.exe / data1.cab / fg_Samples / Samples / Profiler / jviewprf / dllmain.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-04  |  2.4 KB  |  125 lines

  1. // dllmain.cpp
  2. //
  3. // (C) Copyright 1995 - 1999 Microsoft Corporation.  All rights reserved.
  4. //
  5.  
  6. #include "project.hpp"
  7. #pragma hdrstop
  8.  
  9. #include <stdio.h>
  10.  
  11. #include "jviewprf.hpp"
  12. #include "resource.h"
  13.  
  14. // main.cpp
  15. extern BOOL g_fErrorMessageDisplayed;
  16.  
  17.  
  18. //------------------------------------------------------------------------
  19.  
  20.  
  21. HINSTANCE g_hInst = NULL;
  22.  
  23.  
  24. BOOL WINAPI DllMain (HINSTANCE hInst, ULONG reason, LPVOID reserved)
  25. {
  26.     g_hInst = hInst;
  27.  
  28.     switch (reason)
  29.     {
  30.     case DLL_PROCESS_ATTACH:
  31.         DisableThreadLibraryCalls(hInst);
  32.         break;
  33.  
  34.     case DLL_PROCESS_DETACH:
  35.         if (g_EventMonitor)
  36.             g_EventMonitor->ShutdownWorker(FALSE);
  37.         break;
  38.     }
  39.  
  40.     return TRUE;
  41. }
  42.  
  43.  
  44. //------------------------------------------------------------------------
  45.  
  46.  
  47. IJVIEWProfiler * __stdcall JVIEWPRF_CreateProfilerProcName ()
  48. {
  49.     return new EventMonitor();
  50. }
  51.  
  52.  
  53. //------------------------------------------------------------------------
  54.  
  55.  
  56. VOID DisplayMessage (JVIEWDisplayClass type, UINT id, va_list va)
  57. {
  58.     CHAR fmt[1024];
  59.  
  60.     if (g_pJVIEW->LoadResourceString(g_hInst, id, fmt, sizeof(fmt)))
  61.     {
  62.         CHAR buf[1024];
  63.  
  64.         g_pJVIEW->vsnprintf(buf, sizeof(buf), fmt, va);
  65.  
  66.         if (g_pJVIEW->DisplayString(type, buf) && type == JDC_ERROR)
  67.             g_fErrorMessageDisplayed = TRUE;
  68.     }
  69. }
  70.  
  71.  
  72. VOID WriteOutputFloat (DWORD flags, double value)
  73. {
  74.     CHAR buf[128];
  75.  
  76.     sprintf(buf, "%g", value);
  77.  
  78.     WriteOutputEx(flags, NULL, buf);
  79. }
  80.  
  81.  
  82. VOID WriteOutputFixedFloat (DWORD flags, double value, int precision)
  83. {
  84.     CHAR fmt[] = "%.0f";
  85.     CHAR buf[128];
  86.  
  87.     fmt[2] += precision;
  88.  
  89.     sprintf(buf, fmt, value);
  90.  
  91.     WriteOutputEx(flags, NULL, buf);
  92. }
  93.  
  94.  
  95. VOID WriteOutputColumnUINT64 (DWORD flags, ULONG ColumnWidth, unsigned __int64 value)
  96. {
  97.     CHAR buf[128];
  98.  
  99.     sprintf(buf, "%I64u", value);
  100.  
  101.     WriteOutputColumnString(flags, ColumnWidth, buf);
  102. }
  103.  
  104.  
  105. //------------------------------------------------------------------------
  106.  
  107.  
  108. VOID DisplayUsage ()
  109. {
  110.     CHAR buf[2048];
  111.  
  112.     for (unsigned i = IDS_USAGE; ; i++)
  113.     {
  114.         if (!g_pJVIEW->LoadResourceString(g_hInst, i, buf, sizeof(buf)))
  115.             break;
  116.  
  117.         if (buf[0] == '~')
  118.             break;
  119.  
  120.         if (FAILED(g_pJVIEW->DisplayString(JDC_INFORMATION, buf)))
  121.             break;
  122.     }
  123. }
  124.  
  125.