Annotation of mstools/samples/sdktools/perfmon/registry.c, revision 1.1.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.