diff --git a/PInvoke/UxTheme/UXTHEME.cs b/PInvoke/UxTheme/UXTHEME.cs index 69f614d6..420a69f1 100644 --- a/PInvoke/UxTheme/UXTHEME.cs +++ b/PInvoke/UxTheme/UXTHEME.cs @@ -1510,6 +1510,35 @@ namespace Vanara.PInvoke [PInvokeData("Uxtheme.h", MSDNShortId = "bb773397")] public static extern HRESULT GetThemeColor(HTHEME hTheme, int iPartId, int iStateId, int iPropId, out COLORREF pColor); + /// Retrieves the value of a color property. + /// + /// Type: HTHEME + /// Handle to a window's specified theme data. Use OpenThemeData to create an HTHEME. + /// + /// + /// Type: int + /// Value of type int that specifies the part that contains the color property. See Parts and States. + /// + /// + /// Type: int + /// Value of type int that specifies the state of the part. See Parts and States. + /// + /// + /// Type: int + /// Value of type int that specifies the property to retrieve. For a list of possible values, see Property Identifiers. + /// + /// + /// Type: COLORREF* + /// Pointer to a COLORREF structure that receives the color value. + /// + /// + /// Type: HRESULT + /// If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. + /// + public static HRESULT GetThemeColor(HTHEME hTheme, int iPartId, int iStateId, int iPropId, out COLORREF pColor) + where TPart : IConvertible where TState : IConvertible where TProp : IConvertible => + GetThemeColor(hTheme, Convert.ToInt32(iPartId), Convert.ToInt32(iStateId), Convert.ToInt32(iPropId), out pColor); + /// Retrieves the value for a theme property from the documentation section of the specified theme file. /// /// Type: LPCWSTR @@ -2752,6 +2781,44 @@ namespace Vanara.PInvoke [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId, int iStateId); + /// Retrieves whether the background specified by the visual style has transparent pieces or alpha-blended pieces. + /// + /// Type: HTHEME + /// Handle to a window's specified theme data. Use OpenThemeData to create an HTHEME. + /// + /// + /// Type: int + /// Value of type int that specifies the part. See Parts and States. + /// + /// + /// Type: int + /// Value of type int that specifies the state of the part. See Parts and States. + /// + /// + /// Type: BOOL + /// Returns one of the following values. + /// + /// + /// + /// Return code + /// Description + /// + /// + /// TRUE + /// The theme-specified background for a particular iPartId and iStateId has transparent pieces or alpha-blended pieces. + /// + /// + /// FALSE + /// + /// The theme-specified background for a particular iPartId and iStateId does not have transparent pieces or alpha-blended pieces. + /// + /// + /// + /// + /// + public static bool IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, TPart iPartId, TState iStateId) where TPart : IConvertible where TState : IConvertible => + IsThemeBackgroundPartiallyTransparent(hTheme, Convert.ToInt32(iPartId), Convert.ToInt32(iStateId)); + /// Reports whether a specified dialog window supports background texturing. /// /// Type: HWND @@ -2822,6 +2889,42 @@ namespace Vanara.PInvoke [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsThemePartDefined(HTHEME hTheme, int iPartId, int iStateId); + /// Retrieves whether a visual style has defined parameters for the specified part and state. + /// + /// Type: HTHEME + /// Handle to a window's specified theme data. Use OpenThemeData to create an HTHEME. + /// + /// + /// Type: int + /// Value of type int that specifies the part. See Parts and States. + /// + /// + /// Type: int + /// Currently unused. The value should be 0. + /// + /// + /// Type: BOOL + /// Returns one of the following values. + /// + /// + /// + /// Return code + /// Description + /// + /// + /// TRUE + /// The theme has defined parameters for the specified iPartId and iStateId + /// + /// + /// FALSE + /// The theme does not have defined parameters for the specified iPartId and iStateId + /// + /// + /// + /// + public static bool IsThemePartDefined(HTHEME hTheme, TPart iPartId, TState iStateId) where TPart : IConvertible where TState : IConvertible => + IsThemePartDefined(hTheme, Convert.ToInt32(iPartId), Convert.ToInt32(iStateId)); + /// Opens the theme data for a window and its associated class. /// /// Type: HWND