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

📄 winuser.pas

📁 详细Windows API大全有关知识以及相关问题
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  {$EXTERNALSYM DESKTOP_CREATEWINDOW}
  DESKTOP_CREATEMENU      = $0004;
  {$EXTERNALSYM DESKTOP_CREATEMENU}
  DESKTOP_HOOKCONTROL     = $0008;
  {$EXTERNALSYM DESKTOP_HOOKCONTROL}
  DESKTOP_JOURNALRECORD   = $0010;
  {$EXTERNALSYM DESKTOP_JOURNALRECORD}
  DESKTOP_JOURNALPLAYBACK = $0020;
  {$EXTERNALSYM DESKTOP_JOURNALPLAYBACK}
  DESKTOP_ENUMERATE       = $0040;
  {$EXTERNALSYM DESKTOP_ENUMERATE}
  DESKTOP_WRITEOBJECTS    = $0080;
  {$EXTERNALSYM DESKTOP_WRITEOBJECTS}
  DESKTOP_SWITCHDESKTOP   = $0100;
  {$EXTERNALSYM DESKTOP_SWITCHDESKTOP}

//
// Desktop-specific control flags
//

  DF_ALLOWOTHERACCOUNTHOOK = $0001;
  {$EXTERNALSYM DF_ALLOWOTHERACCOUNTHOOK}

function CreateDesktopA(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
  dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktopA}
function CreateDesktopW(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
  dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktopW}

{$IFDEF UNICODE}
function CreateDesktop(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
  dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktop}
{$ELSE}
function CreateDesktop(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
  dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktop}
{$ENDIF}

function OpenDesktopA(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktopA}
function OpenDesktopW(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktopW}

{$IFDEF UNICODE}
function OpenDesktop(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktop}
{$ELSE}
function OpenDesktop(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktop}
{$ENDIF}

function OpenInputDesktop(dwFlags: DWORD; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenInputDesktop}

function EnumDesktopsA(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
  lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopsA}
function EnumDesktopsW(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
  lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopsW}

{$IFDEF UNICODE}
function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
  lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktops}
{$ELSE}
function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
  lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktops}
{$ENDIF}

function EnumDesktopWindows(hDesktop: HDESK; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopWindows}

function SwitchDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM SwitchDesktop}

function SetThreadDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM SetThreadDesktop}

function CloseDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM CloseDesktop}

function GetThreadDesktop(dwThreadId: DWORD): HDESK; stdcall;
{$EXTERNALSYM GetThreadDesktop}

//
// Windowstation-specific access flags
//

const
  WINSTA_ENUMDESKTOPS      = $0001;
  {$EXTERNALSYM WINSTA_ENUMDESKTOPS}
  WINSTA_READATTRIBUTES    = $0002;
  {$EXTERNALSYM WINSTA_READATTRIBUTES}
  WINSTA_ACCESSCLIPBOARD   = $0004;
  {$EXTERNALSYM WINSTA_ACCESSCLIPBOARD}
  WINSTA_CREATEDESKTOP     = $0008;
  {$EXTERNALSYM WINSTA_CREATEDESKTOP}
  WINSTA_WRITEATTRIBUTES   = $0010;
  {$EXTERNALSYM WINSTA_WRITEATTRIBUTES}
  WINSTA_ACCESSGLOBALATOMS = $0020;
  {$EXTERNALSYM WINSTA_ACCESSGLOBALATOMS}
  WINSTA_EXITWINDOWS       = $0040;
  {$EXTERNALSYM WINSTA_EXITWINDOWS}
  WINSTA_ENUMERATE         = $0100;
  {$EXTERNALSYM WINSTA_ENUMERATE}
  WINSTA_READSCREEN        = $0200;
  {$EXTERNALSYM WINSTA_READSCREEN}

//
// Windowstation-specific attribute flags
//

  WSF_VISIBLE = $0001;
  {$EXTERNALSYM WSF_VISIBLE}

function CreateWindowStationA(lpwinsta: LPCSTR; dwReserved: DWORD;
  dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStationA}
function CreateWindowStationW(lpwinsta: LPCWSTR; dwReserved: DWORD;
  dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStationW}

{$IFDEF UNICODE}
function CreateWindowStation(lpwinsta: LPCWSTR; dwReserved: DWORD;
  dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStation}
{$ELSE}
function CreateWindowStation(lpwinsta: LPCSTR; dwReserved: DWORD;
  dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStation}
{$ENDIF}

function OpenWindowStationA(lpszWinSta: LPCSTR; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStationA}
function OpenWindowStationW(lpszWinSta: LPCWSTR; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStationW}

{$IFDEF UNICODE}
function OpenWindowStation(lpszWinSta: LPCWSTR; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStation}
{$ELSE}
function OpenWindowStation(lpszWinSta: LPCSTR; fInherit: BOOL;
  dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStation}
{$ENDIF}

function EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStationsA}
function EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStationsW}

{$IFDEF UNICODE}
function EnumWindowStations(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStations}
{$ELSE}
function EnumWindowStations(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStations}
{$ENDIF}

function CloseWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
{$EXTERNALSYM CloseWindowStation}

function SetProcessWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
{$EXTERNALSYM SetProcessWindowStation}

function GetProcessWindowStation: HWINSTA; stdcall;
{$EXTERNALSYM GetProcessWindowStation}

function SetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  pSID: PSECURITY_DESCRIPTOR): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectSecurity}

function GetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  pSID: PSECURITY_DESCRIPTOR; nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectSecurity}

const
  UOI_FLAGS    = 1;
  {$EXTERNALSYM UOI_FLAGS}
  UOI_NAME     = 2;
  {$EXTERNALSYM UOI_NAME}
  UOI_TYPE     = 3;
  {$EXTERNALSYM UOI_TYPE}
  UOI_USER_SID = 4;
  {$EXTERNALSYM UOI_USER_SID}

type
  PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
  tagUSEROBJECTFLAGS = record
    fInherit: BOOL;
    fReserved: BOOL;
    dwFlags: DWORD;
  end;
  {$EXTERNALSYM tagUSEROBJECTFLAGS}
  USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
  {$EXTERNALSYM USEROBJECTFLAGS}
  TUserObjectFlags = USEROBJECTFLAGS;

function GetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformationA}
function GetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformationW}

{$IFDEF UNICODE}
function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformation}
{$ELSE}
function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformation}
{$ENDIF}

function SetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformationA}
function SetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformationW}

{$IFDEF UNICODE}
function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformation}
{$ELSE}
function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformation}
{$ENDIF}

type
  LPWNDCLASSEXA = ^WNDCLASSEXA;
  {$EXTERNALSYM LPWNDCLASSEXA}
  tagWNDCLASSEXA = record
    cbSize: UINT;
    // Win 3.x
    style: UINT;
    lpfnWndProc: WNDPROC;
    cbClsExtra: Integer;
    cbWndExtra: Integer;
    hInstance: HINSTANCE;
    hIcon: HICON;
    hCursor: HCURSOR;
    hbrBackground: HBRUSH;
    lpszMenuName: LPCSTR;
    lpszClassName: LPCSTR;
    // Win 4.0
    hIconSm: HICON;
  end;
  {$EXTERNALSYM tagWNDCLASSEXA}
  WNDCLASSEXA = tagWNDCLASSEXA;
  {$EXTERNALSYM WNDCLASSEXA}
  NPWNDCLASSEXA = ^WNDCLASSEXA;
  {$EXTERNALSYM NPWNDCLASSEXA}
  TWndClassExA = WNDCLASSEXA;
  PWndClassExA = LPWNDCLASSEXA;

  LPWNDCLASSEXW = ^WNDCLASSEXW;
  {$EXTERNALSYM LPWNDCLASSEXW}
  tagWNDCLASSEXW = record
    cbSize: UINT;
    // Win 3.x
    style: UINT;
    lpfnWndProc: WNDPROC;
    cbClsExtra: Integer;
    cbWndExtra: Integer;
    hInstance: HINSTANCE;
    hIcon: HICON;
    hCursor: HCURSOR;
    hbrBackground: HBRUSH;
    lpszMenuName: LPCWSTR;
    lpszClassName: LPCWSTR;
    // Win 4.0
    hIconSm: HICON;
  end;
  {$EXTERNALSYM tagWNDCLASSEXW}
  WNDCLASSEXW = tagWNDCLASSEXW;
  {$EXTERNALSYM WNDCLASSEXW}
  NPWNDCLASSEXW = ^WNDCLASSEXW;
  {$EXTERNALSYM NPWNDCLASSEXW}
  TWndClassExW = WNDCLASSEXW;
  PWndClassExW = LPWNDCLASSEXW;

{$IFDEF UNICODE}
  WNDCLASSEX = WNDCLASSEXW;
  {$EXTERNALSYM WNDCLASSEX}
  NPWNDCLASSEX = NPWNDCLASSEXW;
  {$EXTERNALSYM NPWNDCLASSEX}
  LPWNDCLASSEX = LPWNDCLASSEXW;
  {$EXTERNALSYM LPWNDCLASSEX}
  TWndClassEx = TWndClassExW;
  PWndClassEx = PWndClassExW;
{$ELSE}
  WNDCLASSEX = WNDCLASSEXA;
  {$EXTERNALSYM WNDCLASSEX}
  NPWNDCLASSEX = NPWNDCLASSEXA;
  {$EXTERNALSYM NPWNDCLASSEX}
  LPWNDCLASSEX = LPWNDCLASSEXA;
  {$EXTERNALSYM LPWNDCLASSEX}
  TWndClassEx = TWndClassExA;
  PWndClassEx = PWndClassExA;
{$ENDIF}

  LPWNDCLASSA = ^WNDCLASSA;
  {$EXTERNALSYM LPWNDCLASSA}
  tagWNDCLASSA = record
    style: UINT;
    lpfnWndProc: WNDPROC;
    cbClsExtra: Integer;
    cbWndExtra: Integer;
    hInstance: HINSTANCE;
    hIcon: HICON;
    hCursor: HCURSOR;
    hbrBackground: HBRUSH;
    lpszMenuName: LPCSTR;
    lpszClassName: LPCSTR;
  end;
  {$EXTERNALSYM tagWNDCLASSA}
  WNDCLASSA = tagWNDCLASSA;
  {$EXTERNALSYM WNDCLASSA}
  NPWNDCLASSA = ^WNDCLASSA;
  {$EXTERNALSYM NPWNDCLASSA}
  TWndClassA = WNDCLASSA;
  PWndClassA = LPWNDCLASSA;

  LPWNDCLASSW = ^WNDCLASSW;
  {$EXTERNALSYM LPWNDCLASSW}
  tagWNDCLASSW = record
    style: UINT;
    lpfnWndProc: WNDPROC;
    cbClsExtra: Integer;
    cbWndExtra: Integer;
    hInstance: HINSTANCE;
    hIcon: HICON;
    hCursor: HCURSOR;
    hbrBackground: HBRUSH;
    lpszMenuName: LPCWSTR;
    lpszClassName: LPCWSTR;
  end;
  {$EXTERNALSYM tagWNDCLASSW}
  WNDCLASSW = tagWNDCLASSW;
  {$EXTERNALSYM WNDCLASSW}
  NPWNDCLASSW = ^WNDCLASSW;
  {$EXTERNALSYM NPWNDCLASSW}
  TWndClassW = WNDCLASSW;
  PWndClassW = LPWNDCLASSW;

{$IFDEF UNICODE}
  WNDCLASS = WNDCLASSW;
  {$EXTERNALSYM WNDCLASS}
  NPWNDCLASS = NPWNDCLASSW;
  {$EXTERNALSYM NPWNDCLASS}
  LPWNDCLASS = LPWNDCLASSW;
  {$EXTERNALSYM LPWNDCLASS}
  TWndClass = TWndClassW;
  PWndClass = PWndClassW;
{$ELSE}
  WNDCLASS = WNDCLASSA;
  {$EXTERNALSYM WNDCLASS}
  NPWNDCLASS = NPWNDCLASSA;
  {$EXTERNALSYM NPWNDCLASS}
  LPWNDCLASS = LPWNDCLASSA;
  {$EXTERNALSYM LPWNDCLASS}
  TWndClass = TWndClassA;
  PWndClass = PWndClassA;
{$ENDIF}

//
// Message structure
//

  LPMSG = ^MSG;
  {$EXTERNALSYM LPMSG}
  tagMSG = record
    hwnd: HWND;
    message: UINT;
    wParam: WPARAM;
    lParam: LPARAM;
    time: DWORD;
    pt: POINT;
  end;
  {$EXTERNALSYM tagMSG}
  MSG = tagMSG;
  {$EXTERNALSYM MSG}
  NPMSG = ^MSG;
  {$EXTERNALSYM NPMSG}
  TMsg = MSG;
  PMsg = LPMSG;

function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
{$EXTERNALSYM MAKEWPARAM}

function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
{$EXTERNALSYM MAKELPARAM}

function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
{$EXTERNALSYM MAKELRESULT}

//
// Window field offsets for GetWindowLong()
//

const
  GWL_WNDPROC    = -4;
  {$EXTERNALSYM GWL_WNDPROC}
  GWL_HINSTANCE  = -6;
  {$EXTERNALSYM GWL_HINSTANCE}
  GWL_HWNDPARENT = -8;
  {$EXTERNALSYM GWL_HWNDPARENT}
  GWL_STYLE      = -16;
  {$EXTERNALSYM GWL_STYLE}
  GWL_EXSTYLE    = -20;
  {$EXTERNALSYM GWL_EXSTYLE}
  GWL_USERDATA   = -21;
  {$EXTERNALSYM GWL_USERDATA}
  GWL_ID         = -12;
  {$EXTERNALSYM GWL_ID}

  GWLP_WNDPROC    = -4;
  {$EXTERNALSYM GWLP_WNDPROC}
  GWLP_HINSTANCE  = -6;
  {$EXTERNALSYM GWLP_HINSTANCE}
  GWLP_HWNDPARENT = -8;
  {$EXTERNALSYM GWLP_HWNDPARENT}
  GWLP_USERDATA   = -21;
  {$EXTERNALSYM GWLP_USERDATA}
  GWLP_ID         = -12;
  {$EXTERNALSYM GWLP_ID}

//
// Class field offsets for GetClassLong()
//

  GCL_MENUNAME      = DWORD(-8);
  {$EXTERNALSYM GCL_MENUNAME}
  GCL_HBRBACKGROUND = DWORD(-10);
  {$EXTERNALSYM GCL_HBRBACKGROUND}
  GCL_HCURSOR       = DWORD(-12);
  {$EXTERNALSYM GCL_HCURSOR}
  GCL_HICON         = DWORD(-14);
  {$EXTERNALSYM GCL_HICON}
  GCL_HMODULE       = DWORD(-16);
  {$EXTERNALSYM GCL_HMODULE}
  GCL_CBWNDEXTRA    = DWORD(-18);
  {$EXTERNALSYM GCL_CBWNDEXTRA}
  GCL_CBCLSEXTRA    = DWORD(-20);
  {$EXTERNALSYM GCL_CBCLSEXTRA}
  GCL_WNDPROC       = DWORD(-24);
  {$EXTERNALSYM GCL_WNDPROC}
  GCL_STYLE         = DWORD(-26);
  {$EXTERNALSYM GCL_STYLE}
  GCW_ATOM          = DWORD(-32);
  {$EXTERNALSYM GCW_ATOM}

  GCL_HICONSM = DWORD(-34);
  {$EXTERNALSYM GCL_HICONSM}

  GCLP_MENUNAME      = DWORD(-8);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -