|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.