private void SetNativeTheme(SafeThemeFileHandle newTheme) { var oldTheme = theme; if (newTheme != null && !newTheme.IsInvalid && !newTheme.IsClosed) { UxThemeExNativeMethods.UxOverrideTheme(newTheme).ThrowIfFailed(); UxThemeExNativeMethods.UxHook().ThrowIfFailed(); theme = newTheme; } else { theme = null; UxThemeExNativeMethods.UxUnhook().ThrowIfFailed(); UxThemeExNativeMethods.UxOverrideTheme(SafeThemeFileHandle.Zero).ThrowIfFailed(); } oldTheme?.Dispose(); }
public static UxThemeExData Open( SafeThemeFileHandle themeFile, IntPtr hwnd, string classList) { return(new UxThemeExData( themeFile, UxThemeExNativeMethods.UxOpenThemeData(themeFile, hwnd, classList))); }
private UxThemeExData(SafeThemeFileHandle themeFile, SafeThemeHandle theme) { this.themeFile = themeFile; this.theme = theme; }