int main( ) { return SystemAdd( 1, 2 ); }
PPERFSYSTEM GetComputer ( HDLG hDlg, WORD wControlID, BOOL bWarn, PPERFDATA *ppPerfData, PPERFSYSTEM *ppSystemFirst ) /* Effect: Attempt to set the current computer to the one in the hWndComputers dialog edit box. If this computer system can be found, load the objects, etc. for the computer and set pSystem and ppPerfdata to the values for this system. */ { // GetComputer TCHAR szComputer [MAX_SYSTEM_NAME_LENGTH + 1] ; PPERFSYSTEM pSystem; TCHAR tempBuffer [LongTextLen] ; DWORD dwBufferSize = 0; LPTSTR pBuffer = NULL ; DWORD dwLastError; DialogText (hDlg, wControlID, szComputer) ; // If necessary, add the system to the lists for this view. pSystem = SystemGet (*ppSystemFirst, szComputer) ; if (!pSystem) { pSystem = SystemAdd (ppSystemFirst, szComputer, hDlg) ; } if (!pSystem && bWarn) { dwLastError = GetLastError(); EditSetModified (GetDlgItem(hDlg, wControlID), FALSE) ; // unable to get specified computer so set to: // the first computer in the system list if present // -- or -- // set he local machine if not. pSystem = *ppSystemFirst; // set to first in list if (pSystem == NULL) { // this would mean the user can't access the local // system since normally that would be the first one // so the machine name will be restored to the // local machine (for lack of a better one) but the // system won't be added unless they want to explicitly DialogSetString (hDlg, wControlID, LocalComputerName) ; } else { // set to name in system structure DialogSetString (hDlg, wControlID, pSystem->sysName); } if (dwLastError != ERROR_ACCESS_DENIED) { DlgErrorBox (hDlg, ERR_COMPUTERNOTFOUND) ; } else { // the appropriate error message has already been displayed } SetFocus (DialogControl(hDlg, wControlID)) ; } if (pSystem) { if (PlayingBackLog ()) { *ppPerfData = LogDataFromPosition (pSystem, &(PlaybackLog.StartIndexPos)) ; } else { if (pSystem->lpszValue) { // save the previous lpszValue string before // SetSystemValueNameToGlobal screw it up dwBufferSize = MemorySize (pSystem->lpszValue) ; if (dwBufferSize <= sizeof(tempBuffer)) { pBuffer = tempBuffer ; } else { pBuffer = MemoryAllocate (dwBufferSize) ; } memcpy (pBuffer, pSystem->lpszValue, dwBufferSize) ; } SetSystemValueNameToGlobal (pSystem); UpdateSystemData (pSystem, ppPerfData) ; if (pSystem->lpszValue) { // retore the previous lpszValue string memcpy (pSystem->lpszValue, pBuffer, dwBufferSize) ; if (pBuffer != tempBuffer) { MemoryFree (pBuffer) ; } } } } return (pSystem) ; } // GetComputer