Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 public static UxThemeExData Open(
     SafeThemeFileHandle themeFile, IntPtr hwnd, string classList)
 {
     return(new UxThemeExData(
                themeFile, UxThemeExNativeMethods.UxOpenThemeData(themeFile, hwnd, classList)));
 }
Ejemplo n.º 3
0
 private UxThemeExData(SafeThemeFileHandle themeFile, SafeThemeHandle theme)
 {
     this.themeFile = themeFile;
     this.theme     = theme;
 }