59 lines
1.8 KiB
C
59 lines
1.8 KiB
C
/* * * * * * * *\
|
|
REGISTRY.H -
|
|
Copyright (c) 2024 Vortesys, Brady McDermott
|
|
DESCRIPTION -
|
|
Program Manager's header file for registry related functions.
|
|
LICENSE INFORMATION -
|
|
MIT License, see LICENSE.txt in the root folder
|
|
\* * * * * * * */
|
|
|
|
/* Pragmas */
|
|
#pragma once
|
|
|
|
/* Includes */
|
|
#include <wtypes.h>
|
|
|
|
/* Defines */
|
|
#define HKEYMAXLEN 261
|
|
// Key Paths
|
|
#define WINLOGON_KEY TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon")
|
|
// #define PROGMAN_KEY TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\Program Manager")
|
|
// #define WINDOWS_KEY TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows")
|
|
#define PROGMGR_KEY TEXT("Software\\Vortesys\\Program Manager II")
|
|
// Registry configuration error values (DWORD)
|
|
#define RCE_SUCCESS 0x0000000
|
|
#define RCE_FAILURE 0x0000001
|
|
#define RCE_SETTINGS 0x0000002
|
|
#define RCE_POSITION 0x0000004
|
|
#define RCE_GROUPS 0x0000008
|
|
// Settings values (DWORD)
|
|
#define PMS_AUTOARRANGE 0x00000001
|
|
#define PMS_MINONRUN 0x00000002
|
|
#define PMS_TOPMOST 0x00000004
|
|
#define PMS_SHOWUSERNAME 0x00000008
|
|
#define PMS_SAVESETTINGS 0x00000010
|
|
|
|
/* Global Variables */
|
|
// HKEYs
|
|
extern HKEY hKeyProgramManager;
|
|
extern HKEY hkeyProgramGroups;
|
|
extern HKEY hKeySettings;
|
|
// Settings
|
|
extern BOOL bAutoArrange;
|
|
extern BOOL bMinOnRun;
|
|
extern BOOL bTopMost;
|
|
extern BOOL bShowUsername;
|
|
extern BOOL bSaveSettings;
|
|
extern RECT rcMainWindow;
|
|
|
|
/* Function Prototypes */
|
|
BOOL InitializeRegistryKeys(VOID);
|
|
BOOL IsProgMgrDefaultShell(VOID);
|
|
// Groups
|
|
DWORD RegistrySaveGroup(_In_ PGROUP pg);
|
|
// Settings
|
|
DWORD SaveConfig(_In_ BOOL bSettings, _In_ BOOL bPos, _In_ BOOL bGroups, _In_ BOOL bExit);
|
|
DWORD LoadConfig(_In_ BOOL bSettings, _In_ BOOL bPos, _In_ BOOL bGroups);
|
|
// Miscellaneous
|
|
BOOL CALLBACK SaveWindowEnumProc(HWND hWndGroup, LPARAM lParam);
|