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

1.1     ! root        1: /*****************************************************************************
        !             2:  *
        !             3:  *  Registry.c - This module handles requests for registry data, and
        !             4:  *               reading/writing of window placement data
        !             5:  *
        !             6:  *  Microsoft Confidential
        !             7:  *  Copyright (c) 1992-1993 Microsoft Corporation
        !             8:  *
        !             9:  *
        !            10:  ****************************************************************************/
        !            11: 
        !            12: #include <stdio.h>
        !            13: 
        !            14: #include "perfmon.h"
        !            15: #include "registry.h"
        !            16: #include "utils.h"      // for StringToWindowPlacement
        !            17: 
        !            18: static TCHAR PerfmonNamesKey[] = TEXT("SOFTWARE\\Microsoft\\PerfMon") ;
        !            19: static TCHAR WindowKeyName[] = TEXT("WindowPos") ;
        !            20: 
        !            21: VOID LoadLineGraphSettings(PGRAPHSTRUCT lgraph)
        !            22: {
        !            23:    lgraph->gMaxValues = DEFAULT_MAX_VALUES;
        !            24:    lgraph->gOptions.bLegendChecked = DEFAULT_F_DISPLAY_LEGEND;
        !            25:    lgraph->gOptions.bLabelsChecked = DEFAULT_F_DISPLAY_CALIBRATION;
        !            26: 
        !            27:    return;
        !            28: }
        !            29: 
        !            30: VOID LoadRefreshSettings(PGRAPHSTRUCT lgraph)
        !            31: {
        !            32:    lgraph->gInterval = DEF_GRAPH_INTERVAL;
        !            33:    lgraph->gOptions.eTimeInterval = (FLOAT) lgraph->gInterval / (FLOAT) 1000.0 ;
        !            34:    return;
        !            35: }
        !            36: 
        !            37: 
        !            38: BOOL LoadMainWindowPlacement (HWND hWnd)
        !            39:    {
        !            40:    WINDOWPLACEMENT   WindowPlacement ; 
        !            41:    TCHAR             szWindowPlacement [TEMP_BUF_LEN] ;
        !            42:    HKEY              hKeyNames ;
        !            43:    DWORD             Size;
        !            44:    DWORD             Type;
        !            45:    DWORD             Status;
        !            46:    
        !            47:    Status = RegOpenKeyEx(HKEY_CURRENT_USER, PerfmonNamesKey,
        !            48:       0L, KEY_READ, &hKeyNames) ;
        !            49: 
        !            50:    if (Status == ERROR_SUCCESS)
        !            51:       {
        !            52:       Size = sizeof(szWindowPlacement) ;
        !            53: 
        !            54:       Status = RegQueryValueEx(hKeyNames, WindowKeyName, NULL,
        !            55:          &Type, (LPBYTE)szWindowPlacement, &Size) ;
        !            56:       RegCloseKey (hKeyNames) ;
        !            57: 
        !            58:       if (Status == ERROR_SUCCESS)
        !            59:          {
        !            60:          StringToWindowPlacement (szWindowPlacement, &WindowPlacement) ;
        !            61:          SetWindowPlacement (hWnd, &WindowPlacement) ;
        !            62:          bPerfmonIconic = IsIconic(hWnd) ;
        !            63:          return (TRUE) ;
        !            64:          }
        !            65:       }
        !            66: 
        !            67:    if (Status != ERROR_SUCCESS)
        !            68:       {
        !            69:       // open registry failed, use Max as default
        !            70:       ShowWindow (hWnd, SW_SHOWMAXIMIZED) ;
        !            71:       return (FALSE) ;
        !            72:       }
        !            73:    }
        !            74: 
        !            75: 
        !            76: 
        !            77: BOOL SaveMainWindowPlacement (HWND hWnd)
        !            78:    {
        !            79:    WINDOWPLACEMENT   WindowPlacement ;
        !            80:    TCHAR             ObjectType [2] ;
        !            81:    TCHAR             szWindowPlacement [TEMP_BUF_LEN] ;
        !            82:    HKEY              hKeyNames = 0 ;
        !            83:    DWORD             Size ;
        !            84:    DWORD             Status ;
        !            85:    DWORD             dwDisposition ;
        !            86:  
        !            87:    ObjectType [0] = TEXT(' ') ;
        !            88:    ObjectType [1] = TEXT('\0') ;
        !            89: 
        !            90:    GetWindowPlacement (hWnd, &WindowPlacement) ;
        !            91:    WindowPlacementToString (&WindowPlacement, szWindowPlacement) ;
        !            92: 
        !            93:    // try to create it first
        !            94:    Status = RegCreateKeyEx(HKEY_CURRENT_USER, PerfmonNamesKey, 0L,
        !            95:       ObjectType, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS | KEY_WRITE,
        !            96:       NULL, &hKeyNames, &dwDisposition) ;
        !            97: 
        !            98:    // if it has been created before, then open it
        !            99:    if (dwDisposition == REG_OPENED_EXISTING_KEY)
        !           100:       {
        !           101:       Status = RegOpenKeyEx(HKEY_CURRENT_USER, PerfmonNamesKey, 0L,
        !           102:          KEY_WRITE, &hKeyNames) ;
        !           103:       }
        !           104: 
        !           105:    // we got the handle, now store the window placement data
        !           106:    if (Status == ERROR_SUCCESS)
        !           107:       {
        !           108:       Size = (lstrlen (szWindowPlacement) + 1) * sizeof (TCHAR) ;
        !           109: 
        !           110:       Status = RegSetValueEx(hKeyNames, WindowKeyName, 0,
        !           111:          REG_SZ, (LPBYTE)szWindowPlacement, Size) ;
        !           112: 
        !           113:       RegCloseKey (hKeyNames) ;
        !           114: 
        !           115:       }
        !           116: 
        !           117:    return (Status == ERROR_SUCCESS) ;
        !           118:    }
        !           119: 
        !           120: 

unix.superglobalmegacorp.com

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