Annotation of mstools/samples/sdktools/perfmon/export.c, revision 1.1

1.1     ! root        1: #include "perfmon.h"
        !             2: #include <lmcons.h>
        !             3: #include <lmerr.h>
        !             4: #include <lmapibuf.h>
        !             5: #include <lmwksta.h>
        !             6: // #include <uiexport.h>
        !             7: #include <stdio.h>         // for sprintf
        !             8: #include "utils.h"
        !             9: 
        !            10: #include "perfmops.h"      // for SystemTimeDateString
        !            11: #include "fileopen.h"      // for FileGetName
        !            12: #include "fileutil.h"      // for FileRead etc
        !            13: #include "playback.h"      // for PlayingBackLog & LogPositionSystemTime
        !            14: #include "dlgs.h"          // common dialog control IDs
        !            15: #include "pmhelpid.h"      // Help IDs
        !            16: 
        !            17: 
        !            18: // This routine opens the export file and put in the header info.
        !            19: // It is used by ExportChart, ExportAlert, & ExportReport.
        !            20: INT  ExportFileOpen (HWND hWnd, HANDLE *phFile, int IntervalMSecs, LPTSTR *ppFileName)
        !            21: {
        !            22:    CHAR           TempBuff [LongTextLen] ;
        !            23:    TCHAR          UnicodeBuff [LongTextLen] ;
        !            24:    TCHAR          UnicodeBuff1 [MiscTextLen] ;
        !            25:    SYSTEMTIME     SystemTime ;
        !            26:    int            StringLen ;
        !            27:    INT            ErrCode = 0 ;
        !            28:    FLOAT          eIntervalSecs ;
        !            29: 
        !            30:    // defined and setup in status.c
        !            31:    extern TCHAR   szCurrentActivity [] ;
        !            32:    extern TCHAR   szStatusFormat [] ;
        !            33: 
        !            34:    *phFile = 0 ;
        !            35: 
        !            36:    if (!FileGetName (hWnd, IDS_EXPORTFILE, UnicodeBuff))
        !            37:       {
        !            38:       // user cancel 
        !            39:       goto Exit0 ;
        !            40:       }
        !            41: 
        !            42:    *ppFileName = StringAllocate (UnicodeBuff) ;
        !            43: 
        !            44:    // open the file..
        !            45:    if (!(*phFile = FileHandleCreate (UnicodeBuff)))
        !            46:       {
        !            47:       // can't open the file
        !            48:       ErrCode = ERR_CANT_OPEN ;
        !            49:       goto Exit0 ;
        !            50:       }
        !            51: 
        !            52: 
        !            53:    // export header
        !            54:    StringLoad (IDS_REPORT_HEADER, UnicodeBuff) ;
        !            55:    ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !            56:    StringLen = strlen (TempBuff) ;
        !            57:    ConvertUnicodeStr (&TempBuff[StringLen], LocalComputerName) ;
        !            58:    strcat (TempBuff, LineEndStr) ;
        !            59: 
        !            60:    if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !            61:       {
        !            62:       ErrCode = ERR_EXPORT_FILE ;
        !            63:       goto Exit0 ;
        !            64:       }
        !            65: 
        !            66:    // export today's date time
        !            67:    GetLocalTime (&SystemTime) ;
        !            68: 
        !            69:    StringLoad (IDS_EXPORT_DATE, UnicodeBuff) ;
        !            70:    StringLen = lstrlen (UnicodeBuff) ;
        !            71:    UnicodeBuff[StringLen] = TEXT(':') ;
        !            72:    UnicodeBuff[StringLen+1] = TEXT(' ') ;
        !            73:    SystemTimeDateString (&SystemTime, &UnicodeBuff[StringLen+2]) ;
        !            74:    ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !            75:    strcat (TempBuff, LineEndStr) ;
        !            76: 
        !            77:    if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !            78:       {
        !            79:       ErrCode = ERR_EXPORT_FILE ;
        !            80:       goto Exit0 ;
        !            81:       }
        !            82: 
        !            83:    StringLoad (IDS_EXPORT_TIME, UnicodeBuff) ;
        !            84:    StringLen = lstrlen (UnicodeBuff) ;
        !            85:    UnicodeBuff[StringLen] = TEXT(':') ;
        !            86:    UnicodeBuff[StringLen+1] = TEXT(' ') ;
        !            87:    SystemTimeTimeString (&SystemTime, &UnicodeBuff[StringLen+2]) ;
        !            88:    ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !            89:    strcat (TempBuff, LineEndStr) ;
        !            90: 
        !            91:    if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !            92:       {
        !            93:       ErrCode = ERR_EXPORT_FILE ;
        !            94:       goto Exit0 ;
        !            95:       }
        !            96: 
        !            97: 
        !            98:    // export data source
        !            99:    TSPRINTF (UnicodeBuff, szStatusFormat,
        !           100:       PlayingBackLog () ?
        !           101:       PlaybackLog.szFileTitle : szCurrentActivity) ;
        !           102:    ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !           103:    strcat (TempBuff, LineEndStr) ;
        !           104:    
        !           105:    if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !           106:       {
        !           107:       ErrCode = ERR_EXPORT_FILE ;
        !           108:       goto Exit0 ;
        !           109:       }
        !           110: 
        !           111: 
        !           112:    if (!PlayingBackLog())
        !           113:       {
        !           114:          
        !           115:       eIntervalSecs = (FLOAT)IntervalMSecs / (FLOAT) 1000.0 ;
        !           116:       StringLoad (IDS_CHARTINT_FORMAT, UnicodeBuff1) ;
        !           117:       TSPRINTF (UnicodeBuff, UnicodeBuff1, eIntervalSecs) ;
        !           118: 
        !           119:       ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !           120:       strcat (TempBuff, LineEndStr) ;
        !           121:    
        !           122:       if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !           123:          {
        !           124: 
        !           125:          ErrCode = ERR_EXPORT_FILE ;
        !           126:          goto Exit0 ;
        !           127:          }
        !           128:       }
        !           129:    else
        !           130:       {
        !           131:       // export the log start and stop date/time
        !           132:       StringLoad (IDS_START_TEXT, UnicodeBuff) ;
        !           133:       StringLen = lstrlen (UnicodeBuff) ;
        !           134:       LogPositionSystemTime (&(PlaybackLog.StartIndexPos), &SystemTime) ;
        !           135:       SystemTimeDateString (&SystemTime, &UnicodeBuff[StringLen]) ;
        !           136:       StringLen = lstrlen (UnicodeBuff) ;
        !           137:       UnicodeBuff[StringLen] = TEXT(' ') ;
        !           138:       StringLen++ ;
        !           139:       SystemTimeTimeString (&SystemTime, &UnicodeBuff[StringLen]) ;
        !           140:       ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !           141:       strcat (TempBuff, LineEndStr) ;
        !           142: 
        !           143:       if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !           144:          {
        !           145: 
        !           146:          ErrCode = ERR_EXPORT_FILE ;
        !           147:          goto Exit0 ;
        !           148:          }
        !           149: 
        !           150:       StringLoad (IDS_STOP_TEXT, UnicodeBuff) ;
        !           151:       StringLen = lstrlen (UnicodeBuff) ;
        !           152:       LogPositionSystemTime (&(PlaybackLog.StopIndexPos), &SystemTime) ;
        !           153:       SystemTimeDateString (&SystemTime, &UnicodeBuff[StringLen]) ;
        !           154:       StringLen = lstrlen (UnicodeBuff) ;
        !           155:       UnicodeBuff[StringLen] = TEXT(' ') ;
        !           156:       StringLen++ ;
        !           157:       SystemTimeTimeString (&SystemTime, &UnicodeBuff[StringLen]) ;
        !           158:       ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !           159:       strcat (TempBuff, LineEndStr) ;
        !           160: 
        !           161:       if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !           162:          {
        !           163:          ErrCode = ERR_EXPORT_FILE ;
        !           164:          goto Exit0 ;
        !           165:          }
        !           166: 
        !           167:       if (hWnd == hWndAlert)
        !           168:          {
        !           169:          eIntervalSecs = (FLOAT)IntervalMSecs / (FLOAT) 1000.0 ;
        !           170:          StringLoad (IDS_CHARTINT_FORMAT, UnicodeBuff1) ;
        !           171:          TSPRINTF (UnicodeBuff, UnicodeBuff1, eIntervalSecs) ;
        !           172: 
        !           173:          ConvertUnicodeStr (TempBuff, UnicodeBuff) ;
        !           174:          strcat (TempBuff, LineEndStr) ;
        !           175:       
        !           176:          if (!FileWrite (*phFile, TempBuff, strlen(TempBuff)))
        !           177:             {
        !           178:             ErrCode = ERR_EXPORT_FILE ;
        !           179:             goto Exit0 ;
        !           180:             }
        !           181:          }
        !           182:       
        !           183:       }
        !           184: 
        !           185:    return (0) ;
        !           186: 
        !           187: Exit0:
        !           188: 
        !           189:    return (ErrCode) ;
        !           190: 
        !           191: }  // ExportFileOpen
        !           192: 
        !           193: 
        !           194: 
        !           195: BOOL APIENTRY ExportOptionsHookProc (HWND hDlg, 
        !           196:                                      UINT iMessage, 
        !           197:                                      WPARAM wParam, 
        !           198:                                      LPARAM lParam)
        !           199: 
        !           200: {
        !           201:    BOOL           bHandled ;
        !           202: 
        !           203:    bHandled = TRUE ;
        !           204:    switch (iMessage)
        !           205:       {
        !           206:       case WM_INITDIALOG:
        !           207:          CheckRadioButton (hDlg, IDD_EXPORTCOMMAS, IDD_EXPORTTAB,
        !           208:             pDelimiter == TabStr ? IDD_EXPORTTAB : IDD_EXPORTCOMMAS ) ;
        !           209: 
        !           210:          WindowCenter (hDlg) ;
        !           211:          break ;
        !           212: 
        !           213:       case WM_COMMAND:
        !           214:          switch (wParam)
        !           215:             {  // switch
        !           216:             case IDD_EXPORTCOMMAS:
        !           217:             case IDD_EXPORTTAB:
        !           218:                // toggle between the 2 radio buttons..
        !           219:                CheckRadioButton (hDlg, IDD_EXPORTCOMMAS, IDD_EXPORTTAB,
        !           220:                   IsDlgButtonChecked (hDlg, IDD_EXPORTCOMMAS) ?
        !           221:                      IDD_EXPORTTAB : IDD_EXPORTCOMMAS ) ;
        !           222:                break ;
        !           223: 
        !           224:             case IDD_OK:
        !           225:                pDelimiter = IsDlgButtonChecked (hDlg, IDD_EXPORTCOMMAS) ?
        !           226:                   CommasStr : TabStr ;
        !           227:                bHandled = FALSE ;
        !           228: 
        !           229:                break ;
        !           230: 
        !           231:             case IDD_EXPORTHELP:
        !           232:                CallWinHelp (dwCurrentDlgID) ;
        !           233:                break ;
        !           234: 
        !           235:             default:
        !           236:                bHandled = FALSE ;
        !           237:             }  // switch
        !           238:          break;
        !           239: 
        !           240:       default:
        !           241:          bHandled = FALSE ;
        !           242:          break;            
        !           243:       }  // switch
        !           244: 
        !           245:    return (bHandled) ;
        !           246: 
        !           247: }  // ExportOptionsHookProc
        !           248: 
        !           249: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.