📄 jwauxtheme.pas
字号:
// prc - (optional) rect that defines the area to be
// drawn (CHILD coordinates)
//---------------------------------------------------------------------------
function DrawThemeParentBackground(hwnd: HWND; hdc: HDC; prc: PRECT): HRESULT; stdcall;
{$EXTERNALSYM DrawThemeParentBackground}
//---------------------------------------------------------------------------
// EnableTheming() - enables or disables themeing for the current user
// in the current and future sessions.
//
// fEnable - if FALSE, disable theming & turn themes off.
// - if TRUE, enable themeing and, if user previously
// had a theme active, make it active now.
//---------------------------------------------------------------------------
function EnableTheming(fEnable: BOOL): HRESULT; stdcall;
{$EXTERNALSYM EnableTheming}
implementation
const
themelib = 'uxtheme.dll';
{$IFDEF DYNAMIC_LINK}
var
_OpenThemeData: Pointer;
function OpenThemeData;
begin
GetProcedureAddress(_OpenThemeData, themelib, 'OpenThemeData');
asm
mov esp, ebp
pop ebp
jmp [_OpenThemeData]
end;
end;
{$ELSE}
function OpenThemeData; external themelib name 'OpenThemeData';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_CloseThemeData: Pointer;
function CloseThemeData;
begin
GetProcedureAddress(_CloseThemeData, themelib, 'CloseThemeData');
asm
mov esp, ebp
pop ebp
jmp [_CloseThemeData]
end;
end;
{$ELSE}
function CloseThemeData; external themelib name 'CloseThemeData';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_DrawThemeBackground: Pointer;
function DrawThemeBackground;
begin
GetProcedureAddress(_DrawThemeBackground, themelib, 'DrawThemeBackground');
asm
mov esp, ebp
pop ebp
jmp [_DrawThemeBackground]
end;
end;
{$ELSE}
function DrawThemeBackground; external themelib name 'DrawThemeBackground';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_DrawThemeText: Pointer;
function DrawThemeText;
begin
GetProcedureAddress(_DrawThemeText, themelib, 'DrawThemeText');
asm
mov esp, ebp
pop ebp
jmp [_DrawThemeText]
end;
end;
{$ELSE}
function DrawThemeText; external themelib name 'DrawThemeText';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeBackgroundContentRect: Pointer;
function GetThemeBackgroundContentRect;
begin
GetProcedureAddress(_GetThemeBackgroundContentRect, themelib, 'GetThemeBackgroundContentRect');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeBackgroundContentRect]
end;
end;
{$ELSE}
function GetThemeBackgroundContentRect; external themelib name 'GetThemeBackgroundContentRect';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeBackgroundExtent: Pointer;
function GetThemeBackgroundExtent;
begin
GetProcedureAddress(_GetThemeBackgroundExtent, themelib, 'GetThemeBackgroundContentRect');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeBackgroundExtent]
end;
end;
{$ELSE}
function GetThemeBackgroundExtent; external themelib name 'GetThemeBackgroundContentRect';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemePartSize: Pointer;
function GetThemePartSize;
begin
GetProcedureAddress(_GetThemePartSize, themelib, 'GetThemePartSize');
asm
mov esp, ebp
pop ebp
jmp [_GetThemePartSize]
end;
end;
{$ELSE}
function GetThemePartSize; external themelib name 'GetThemePartSize';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeTextExtent: Pointer;
function GetThemeTextExtent;
begin
GetProcedureAddress(_GetThemeTextExtent, themelib, 'GetThemeTextExtent');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeTextExtent]
end;
end;
{$ELSE}
function GetThemeTextExtent; external themelib name 'GetThemeTextExtent';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeTextMetrics: Pointer;
function GetThemeTextMetrics;
begin
GetProcedureAddress(_GetThemeTextMetrics, themelib, 'GetThemeTextMetrics');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeTextMetrics]
end;
end;
{$ELSE}
function GetThemeTextMetrics; external themelib name 'GetThemeTextMetrics';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeBackgroundRegion: Pointer;
function GetThemeBackgroundRegion;
begin
GetProcedureAddress(_GetThemeBackgroundRegion, themelib, 'GetThemeBackgroundRegion');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeBackgroundRegion]
end;
end;
{$ELSE}
function GetThemeBackgroundRegion; external themelib name 'GetThemeBackgroundRegion';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_HitTestThemeBackground: Pointer;
function HitTestThemeBackground;
begin
GetProcedureAddress(_HitTestThemeBackground, themelib, 'HitTestThemeBackground');
asm
mov esp, ebp
pop ebp
jmp [_HitTestThemeBackground]
end;
end;
{$ELSE}
function HitTestThemeBackground; external themelib name 'HitTestThemeBackground';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_DrawThemeEdge: Pointer;
function DrawThemeEdge;
begin
GetProcedureAddress(_DrawThemeEdge, themelib, 'DrawThemeEdge');
asm
mov esp, ebp
pop ebp
jmp [_DrawThemeEdge]
end;
end;
{$ELSE}
function DrawThemeEdge; external themelib name 'DrawThemeEdge';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_DrawThemeIcon: Pointer;
function DrawThemeIcon;
begin
GetProcedureAddress(_DrawThemeIcon, themelib, 'DrawThemeIcon');
asm
mov esp, ebp
pop ebp
jmp [_DrawThemeIcon]
end;
end;
{$ELSE}
function DrawThemeIcon; external themelib name 'DrawThemeIcon';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_IsThemePartDefined: Pointer;
function IsThemePartDefined;
begin
GetProcedureAddress(_IsThemePartDefined, themelib, 'IsThemePartDefined');
asm
mov esp, ebp
pop ebp
jmp [_IsThemePartDefined]
end;
end;
{$ELSE}
function IsThemePartDefined; external themelib name 'IsThemePartDefined';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_IsThemeBackgroundPartialTrans: Pointer;
function IsThemeBackgroundPartiallyTransparent;
begin
GetProcedureAddress(_IsThemeBackgroundPartialTrans, themelib, 'IsThemeBackgroundPartiallyTransparent');
asm
mov esp, ebp
pop ebp
jmp [_IsThemeBackgroundPartialTrans]
end;
end;
{$ELSE}
function IsThemeBackgroundPartiallyTransparent; external themelib name 'IsThemeBackgroundPartiallyTransparent';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeColor: Pointer;
function GetThemeColor;
begin
GetProcedureAddress(_GetThemeColor, themelib, 'GetThemeColor');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeColor]
end;
end;
{$ELSE}
function GetThemeColor; external themelib name 'GetThemeColor';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeMetric: Pointer;
function GetThemeMetric;
begin
GetProcedureAddress(_GetThemeMetric, themelib, 'GetThemeMetric');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeMetric]
end;
end;
{$ELSE}
function GetThemeMetric; external themelib name 'GetThemeMetric';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeString: Pointer;
function GetThemeString;
begin
GetProcedureAddress(_GetThemeString, themelib, 'GetThemeString');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeString]
end;
end;
{$ELSE}
function GetThemeString; external themelib name 'GetThemeString';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetThemeBool: Pointer;
function GetThemeBool;
begin
GetProcedureAddress(_GetThemeBool, themelib, 'GetThemeBool');
asm
mov esp, ebp
pop ebp
jmp [_GetThemeBool]
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -