Files
mirror-processhacker/2.x/trunk/ProcessHacker/include/settings.h
T
wj32 19615a29d4 * removed memory allocation for integer pair settings
* optimized setting creation

git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3655 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2010-09-22 07:07:53 +00:00

152 lines
3.4 KiB
C

#ifndef SETTINGS_H
#define SETTINGS_H
typedef enum _PH_SETTING_TYPE
{
StringSettingType,
IntegerSettingType,
IntegerPairSettingType
} PH_SETTING_TYPE, PPH_SETTING_TYPE;
typedef struct _PH_SETTING
{
PH_SETTING_TYPE Type;
PH_STRINGREF Name;
PPH_STRING DefaultValue;
union
{
PVOID Pointer;
ULONG Integer;
PH_INTEGER_PAIR IntegerPair;
} u;
} PH_SETTING, *PPH_SETTING;
VOID PhSettingsInitialization();
VOID PhUpdateCachedSettings();
PHAPPAPI
__mayRaise ULONG PhGetIntegerSetting(
__in PWSTR Name
);
PHAPPAPI
__mayRaise PH_INTEGER_PAIR PhGetIntegerPairSetting(
__in PWSTR Name
);
PHAPPAPI
__mayRaise PPH_STRING PhGetStringSetting(
__in PWSTR Name
);
PHAPPAPI
__mayRaise VOID PhSetIntegerSetting(
__in PWSTR Name,
__in ULONG Value
);
PHAPPAPI
__mayRaise VOID PhSetIntegerPairSetting(
__in PWSTR Name,
__in PH_INTEGER_PAIR Value
);
PHAPPAPI
__mayRaise VOID PhSetStringSetting(
__in PWSTR Name,
__in PWSTR Value
);
PHAPPAPI
__mayRaise VOID PhSetStringSetting2(
__in PWSTR Name,
__in PPH_STRINGREF Value
);
VOID PhClearIgnoredSettings();
NTSTATUS PhLoadSettings(
__in PWSTR FileName
);
NTSTATUS PhSaveSettings(
__in PWSTR FileName
);
#define PHA_GET_STRING_SETTING(Name) ((PPH_STRING)PHA_DEREFERENCE(PhGetStringSetting(Name)))
// High-level settings creation
typedef struct _PH_CREATE_SETTING
{
PH_SETTING_TYPE Type;
PWSTR Name;
PWSTR DefaultValue;
} PH_SETTING_CREATE, *PPH_SETTING_CREATE;
PHAPPAPI
VOID PhAddSettings(
__in PPH_SETTING_CREATE Settings,
__in ULONG NumberOfSettings
);
// Cached settings
#undef EXT
#ifdef PH_SETTINGS_PRIVATE
#define EXT
#else
#define EXT extern
#endif
EXT ULONG PhCsCollapseServicesOnStart;
EXT ULONG PhCsHighlightingDuration;
EXT ULONG PhCsUpdateInterval;
EXT ULONG PhCsColorNew;
EXT ULONG PhCsColorRemoved;
EXT ULONG PhCsUseColorOwnProcesses;
EXT ULONG PhCsColorOwnProcesses;
EXT ULONG PhCsUseColorSystemProcesses;
EXT ULONG PhCsColorSystemProcesses;
EXT ULONG PhCsUseColorServiceProcesses;
EXT ULONG PhCsColorServiceProcesses;
EXT ULONG PhCsUseColorJobProcesses;
EXT ULONG PhCsColorJobProcesses;
EXT ULONG PhCsUseColorWow64Processes;
EXT ULONG PhCsColorWow64Processes;
EXT ULONG PhCsUseColorPosixProcesses;
EXT ULONG PhCsColorPosixProcesses;
EXT ULONG PhCsUseColorDebuggedProcesses;
EXT ULONG PhCsColorDebuggedProcesses;
EXT ULONG PhCsUseColorElevatedProcesses;
EXT ULONG PhCsColorElevatedProcesses;
EXT ULONG PhCsUseColorSuspended;
EXT ULONG PhCsColorSuspended;
EXT ULONG PhCsUseColorDotNet;
EXT ULONG PhCsColorDotNet;
EXT ULONG PhCsUseColorPacked;
EXT ULONG PhCsColorPacked;
EXT ULONG PhCsUseColorGuiThreads;
EXT ULONG PhCsColorGuiThreads;
EXT ULONG PhCsUseColorRelocatedModules;
EXT ULONG PhCsColorRelocatedModules;
EXT ULONG PhCsUseColorProtectedHandles;
EXT ULONG PhCsColorProtectedHandles;
EXT ULONG PhCsUseColorInheritHandles;
EXT ULONG PhCsColorInheritHandles;
EXT ULONG PhCsGraphShowText;
EXT ULONG PhCsColorCpuKernel;
EXT ULONG PhCsColorCpuUser;
EXT ULONG PhCsColorIoReadOther;
EXT ULONG PhCsColorIoWrite;
EXT ULONG PhCsColorPrivate;
EXT ULONG PhCsColorPhysical;
#define PH_SET_INTEGER_CACHED_SETTING(Name, Value) (PhSetIntegerSetting(L#Name, PhCs##Name = (Value)))
#endif