You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
3.5 KiB
Python
136 lines
3.5 KiB
Python
# coding:utf-8
|
|
|
|
from ctypes import POINTER, Structure, c_int
|
|
from ctypes.wintypes import DWORD, HWND, ULONG, POINT, RECT, UINT
|
|
from enum import Enum
|
|
|
|
|
|
class WINDOWCOMPOSITIONATTRIB(Enum):
|
|
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_LAST = 23
|
|
|
|
|
|
class ACCENT_STATE(Enum):
|
|
""" Client area status enumeration class """
|
|
ACCENT_DISABLED = 0
|
|
ACCENT_ENABLE_GRADIENT = 1
|
|
ACCENT_ENABLE_TRANSPARENTGRADIENT = 2
|
|
ACCENT_ENABLE_BLURBEHIND = 3 # Aero effect
|
|
ACCENT_ENABLE_ACRYLICBLURBEHIND = 4 # Acrylic effect
|
|
ACCENT_ENABLE_HOSTBACKDROP = 5 # Mica effect
|
|
ACCENT_INVALID_STATE = 6
|
|
|
|
|
|
class ACCENT_POLICY(Structure):
|
|
""" Specific attributes of client area """
|
|
|
|
_fields_ = [
|
|
("AccentState", DWORD),
|
|
("AccentFlags", DWORD),
|
|
("GradientColor", DWORD),
|
|
("AnimationId", DWORD),
|
|
]
|
|
|
|
|
|
class WINDOWCOMPOSITIONATTRIBDATA(Structure):
|
|
_fields_ = [
|
|
("Attribute", DWORD),
|
|
# Pointer() receives any ctypes type and returns a pointer type
|
|
("Data", POINTER(ACCENT_POLICY)),
|
|
("SizeOfData", ULONG),
|
|
]
|
|
|
|
|
|
class DWMNCRENDERINGPOLICY(Enum):
|
|
DWMNCRP_USEWINDOWSTYLE = 0
|
|
DWMNCRP_DISABLED = 1
|
|
DWMNCRP_ENABLED = 2
|
|
DWMNCRP_LAS = 3
|
|
|
|
|
|
class DWMWINDOWATTRIBUTE(Enum):
|
|
DWMWA_NCRENDERING_ENABLED = 1
|
|
DWMWA_NCRENDERING_POLICY = 2
|
|
DWMWA_TRANSITIONS_FORCEDISABLED = 3
|
|
DWMWA_ALLOW_NCPAINT = 4
|
|
DWMWA_CAPTION_BUTTON_BOUNDS = 5
|
|
DWMWA_NONCLIENT_RTL_LAYOUT = 6
|
|
DWMWA_FORCE_ICONIC_REPRESENTATION = 7
|
|
DWMWA_FLIP3D_POLICY = 8
|
|
DWMWA_EXTENDED_FRAME_BOUNDS = 9
|
|
DWMWA_HAS_ICONIC_BITMAP = 10
|
|
DWMWA_DISALLOW_PEEK = 11
|
|
DWMWA_EXCLUDED_FROM_PEEK = 12
|
|
DWMWA_CLOAK = 13
|
|
DWMWA_CLOAKED = 14
|
|
DWMWA_FREEZE_REPRESENTATION = 15
|
|
DWMWA_PASSIVE_UPDATE_MODE = 16
|
|
DWMWA_USE_HOSTBACKDROPBRUSH = 17
|
|
DWMWA_USE_IMMERSIVE_DARK_MODE = 18
|
|
DWMWA_WINDOW_CORNER_PREFERENCE = 19
|
|
DWMWA_BORDER_COLOR = 20
|
|
DWMWA_CAPTION_COLOR = 21
|
|
DWMWA_TEXT_COLOR = 22
|
|
DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 23
|
|
DWMWA_LAST = 24
|
|
|
|
|
|
class MARGINS(Structure):
|
|
_fields_ = [
|
|
("cxLeftWidth", c_int),
|
|
("cxRightWidth", c_int),
|
|
("cyTopHeight", c_int),
|
|
("cyBottomHeight", c_int),
|
|
]
|
|
|
|
|
|
class MINMAXINFO(Structure):
|
|
_fields_ = [
|
|
("ptReserved", POINT),
|
|
("ptMaxSize", POINT),
|
|
("ptMaxPosition", POINT),
|
|
("ptMinTrackSize", POINT),
|
|
("ptMaxTrackSize", POINT),
|
|
]
|
|
|
|
|
|
class PWINDOWPOS(Structure):
|
|
_fields_ = [
|
|
('hWnd', HWND),
|
|
('hwndInsertAfter', HWND),
|
|
('x', c_int),
|
|
('y', c_int),
|
|
('cx', c_int),
|
|
('cy', c_int),
|
|
('flags', UINT)
|
|
]
|
|
|
|
|
|
class NCCALCSIZE_PARAMS(Structure):
|
|
_fields_ = [
|
|
('rgrc', RECT*3),
|
|
('lppos', POINTER(PWINDOWPOS))
|
|
]
|