⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwauxtheme.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 5 页
字号:

//  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 + -