internal static void InstallHooks() { if (_hooksInstalled) { return; } var sbr = new ScrollBarRenderer(); var ttr = new ToolTipRenderer(); var tvr = new TreeViewRenderer(); _themeRenderers[sbr.HTheme] = sbr; _themeRenderers[ttr.HTheme] = ttr; _themeRenderers[tvr.HTheme] = tvr; try { (_getSysColorHook, GetSysColorOriginal) = InstallHook <GetSysColorDelegate>( "user32.dll", "GetSysColor", GetSysColor); (_getSysColorBrushHook, GetSysColorBrushOriginal) = InstallHook <GetSysColorBrushDelegate>( "user32.dll", "GetSysColorBrush", GetSysColorBrush); } catch { // If we fail, oh well, just keep the classic-mode colors then... better than nothing _getSysColorHook?.Dispose(); _getSysColorBrushHook?.Dispose(); } try { (_drawThemeBackgroundHook, DrawThemeBackgroundOriginal) = InstallHook <DrawThemeBackgroundDelegate>( "uxtheme.dll", "DrawThemeBackground", DrawThemeBackgroundHook); (_getThemeColorHook, GetThemeColorOriginal) = InstallHook <GetThemeColorDelegate>( "uxtheme.dll", "GetThemeColor", GetThemeColorHook); } catch { _drawThemeBackgroundHook?.Dispose(); _getThemeColorHook?.Dispose(); } _hooksInstalled = true; }
public UserPaintStyleApplicator(IStyleSheet styleSheet, IControlRenderer controlRenderer, StyleApplicatorOptions options = StyleApplicatorOptions.Default) : base(styleSheet, options) { this.controlRenderer = controlRenderer; toolTipRenderer = new ToolTipRenderer(styleSheet, styleRenderer); }