Files
lib_WindowDarkMode/DarkModeApi.Types.pas
T
2023-04-07 11:04:43 +05:00

102 lines
3.4 KiB
ObjectPascal

unit DarkModeApi.Types;
{$IFDEF MSWINDOWS}
{$ALIGN ON}
{$MINENUMSIZE 4}
{$WEAKPACKAGEUNIT}
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Winapi.Windows;
type
TWinRoundType = (wrtDEFAULT = 0, wrtDONOTROUND = 1, wrtROUND = 2, wrtROUNDSMALL = 3);
TDwmWindowAttribute = (DWMWA_NCRENDERING_ENABLED = 1, DWMWA_NCRENDERING_POLICY, DWMWA_TRANSITIONS_FORCEDISABLED, DWMWA_ALLOW_NCPAINT, DWMWA_CAPTION_BUTTON_BOUNDS, DWMWA_NONCLIENT_RTL_LAYOUT, DWMWA_FORCE_ICONIC_REPRESENTATION, DWMWA_FLIP3D_POLICY, DWMWA_EXTENDED_FRAME_BOUNDS, DWMWA_HAS_ICONIC_BITMAP, DWMWA_DISALLOW_PEEK, DWMWA_EXCLUDED_FROM_PEEK, DWMWA_CLOAK, DWMWA_CLOAKED, DWMWA_FREEZE_REPRESENTATION, DWMWA_PASSIVE_UPDATE_MODE, DWMWA_USE_HOSTBACKDROPBRUSH, DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = 19, DWMWA_USE_IMMERSIVE_DARK_MODE = 20, DWMWA_WINDOW_CORNER_PREFERENCE = 33, DWMWA_BORDER_COLOR, DWMWA_CAPTION_COLOR, DWMWA_TEXT_COLOR, DWMWA_VISIBLE_FRAME_BORDER_THICKNESS, DWMWA_SYSTEMBACKDROP_TYPE, DWMWA_LAST);
TDWMWindowCornerPreference = (DWMWCP_DEFAULT = 0, DWMWCP_DONOTROUND = 1, DWMWCP_ROUND = 2, DWMWCP_ROUNDSMALL = 3);
TImmersiveHCCacheMode = (IHCM_USE_CACHED_VALUE, IHCM_REFRESH);
TPreferredAppMode = (DefaultMode, AllowDarkMode, ForceDarkMode, ForceLightMode, ModeMax);
TWindowCompositionAttribute = (WCA_UNDEFINED = 0, //
WCA_NCRENDERING_ENABLED = 1, //
WCA_NCRENDERING_POLICY = 2, //
WCA_TRANSITIONS_FORCEDISABLED = 3, //
WCA_ALLOW_NCPAINT = 4, //
WCA_CAPTION_BUTTON_BOUNDS = 5, //
WCA_NONCLIENT_RTL_LAYOUT = 6, //
WCA_FORCE_ICONIC_REPRESENTATION = 7, //
WCA_EXTENDED_FRAME_BOUNDS = 8, //
WCA_HAS_ICONIC_BITMAP = 9, //
WCA_THEME_ATTRIBUTES = 10, //
WCA_NCRENDERING_EXILED = 11, //
WCA_NCADORNMENTINFO = 12, //
WCA_EXCLUDED_FROM_LIVEPREVIEW = 13, //
WCA_VIDEO_OVERLAY_ACTIVE = 14, //
WCA_FORCE_ACTIVEWINDOW_APPEARANCE = 15, //
WCA_DISALLOW_PEEK = 16, //
WCA_CLOAK = 17, //
WCA_CLOAKED = 18, //
WCA_ACCENT_POLICY = 19, //
WCA_FREEZE_REPRESENTATION = 20, //
WCA_EVER_UNCLOAKED = 21, //
WCA_VISUAL_OWNER = 22, //
WCA_HOLOGRAPHIC = 23, //
WCA_EXCLUDED_FROM_DDA = 24, //
WCA_PASSIVEUPDATEMODE = 25, //
WCA_USEDARKMODECOLORS = 26, //
WCA_LAST = 27);
TWindowCompositionAttrib = TWindowCompositionAttribute;
WINDOWCOMPOSITIONATTRIBDATA = record
Attrib: TWindowCompositionAttribute;
pvData: Pointer;
cbData: SIZE_T;
end;
TWindowCompositionAttribData = WINDOWCOMPOSITIONATTRIBDATA;
PWindowCompositionAttribData = ^TWindowCompositionAttribData;
TRtlGetNtVersionNumbers = procedure(var major, minor, build: DWORD); stdcall;
TSetWindowCompositionAttribute = function(hWnd: HWND; pData: PWindowCompositionAttribData): BOOL; stdcall;
TShouldAppsUseDarkMode = function: BOOL; stdcall;
TAllowDarkModeForWindow = function(hWnd: HWND; allow: BOOL): BOOL; stdcall;
TAllowDarkModeForApp = function(allow: BOOL): BOOL; stdcall;
TRefreshImmersiveColorPolicyState = procedure; stdcall;
TIsDarkModeAllowedForWindow = function(hWnd: HWND): BOOL; stdcall;
TGetIsImmersiveColorUsingHighContrast = function(mode: TImmersiveHCCacheMode): BOOL; stdcall;
TOpenNcThemeData = function(hWnd: HWND; pszClassList: LPCWSTR): THandle; stdcall;
TShouldSystemUseDarkMode = function: BOOL; stdcall;
TSetPreferredAppMode = function(appMode: TPreferredAppMode): TPreferredAppMode; stdcall;
TIsDarkModeAllowedForApp = function: BOOL; stdcall;
implementation
{$ELSE}
interface
implementation
{$ENDIF}
end.