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

📄 winuser.pas

📁 详细Windows API大全有关知识以及相关问题
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{******************************************************************}
{                                                       	   }
{       Borland Delphi Runtime Library                  	   }
{       Windows User API interface unit                            }
{ 								   }
{ Portions created by Microsoft are 				   }
{ Copyright (C) 1995-1999 Microsoft Corporation. 		   }
{ All Rights Reserved. 						   }
{ 								   }
{ The original file is: winuser.h, released June 2000. 	           }
{ The original Pascal code is: WinUser.pas, released December 2000 }
{ The initial developer of the Pascal code is Marcel van Brakel    }
{ (brakelm@bart.nl).                      			   }
{ 								   }
{ Portions created by Marcel van Brakel are			   }
{ Copyright (C) 1999 Marcel van Brakel.				   }
{ 								   }
{ Obtained through:                               	           }
{ Joint Endeavour of Delphi Innovators (Project JEDI)              }
{								   }
{ You may retrieve the latest version of this file at the Project  }
{ JEDI home page, located at http://delphi-jedi.org                }
{								   }
{ The contents of this file are used with permission, subject to   }
{ the Mozilla Public License Version 1.1 (the "License"); you may  }
{ not use this file except in compliance with the License. You may }
{ obtain a copy of the License at                                  }
{ http://www.mozilla.org/MPL/MPL-1.1.html 	                   }
{                                                                  }
{ Software distributed under the License is distributed on an 	   }
{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or   }
{ implied. See the License for the specific language governing     }
{ rights and limitations under the License. 			   }
{ 								   }
{******************************************************************}

unit WinUser;

{$WEAKPACKAGEUNIT}

{$HPPEMIT ''}
{$HPPEMIT '#include "WinUser.h"'}
{$HPPEMIT ''}

{$I WINDEFINES.INC}

interface

uses
  WinBase, WinGDI, WinNT, WinType;

const
  UINT_MAX = UINT($FFFFFFFF); // from limits.h TODO
  {$EXTERNALSYM UINT_MAX}

type
  HDWP = HANDLE;
  {$EXTERNALSYM HDWP}

  MENUTEMPLATEA = Pointer;
  {$EXTERNALSYM MENUTEMPLATEA}
  MENUTEMPLATEW = Pointer;
  {$EXTERNALSYM MENUTEMPLATEW}

{$IFDEF UNICODE}
  MENUTEMPLATE = MENUTEMPLATEW;
  {$EXTERNALSYM MENUTEMPLATE}
{$ELSE}
  MENUTEMPLATE = MENUTEMPLATEA;
  {$EXTERNALSYM MENUTEMPLATE}
{$ENDIF}

  LPMENUTEMPLATEA = PVOID;
  {$EXTERNALSYM LPMENUTEMPLATEA}
  LPMENUTEMPLATEW = PVOID;
  {$EXTERNALSYM LPMENUTEMPLATEW}
{$IFDEF UNICODE}
  LPMENUTEMPLATE = LPMENUTEMPLATEW;
  {$EXTERNALSYM LPMENUTEMPLATE}
{$ELSE}
  LPMENUTEMPLATE = LPMENUTEMPLATEA;
  {$EXTERNALSYM LPMENUTEMPLATE}
{$ENDIF}

  WNDPROC = function (hWnd: HWND; uMsg: UINT; lParam: WPARAM; wParam: LPARAM): LRESULT;
  {$EXTERNALSYM WNDPROC}

  DLGPROC = function (hwndDlg: HWND; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): INT_PTR; stdcall;
  {$EXTERNALSYM DLGPROC}
  TIMERPROC = procedure (hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD); stdcall;
  {$EXTERNALSYM TIMERPROC}
  GRAYSTRINGPROC = function (hdc: HDC; lpData: LPARAM; cchData: Integer): BOOL; stdcall;
  {$EXTERNALSYM GRAYSTRINGPROC}
  WNDENUMPROC = function (hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
  {$EXTERNALSYM WNDENUMPROC}
  HOOKPROC = function (nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  {$EXTERNALSYM HOOKPROC}
  SENDASYNCPROC = procedure (hwnd: HWND; uMsg: UINT; dwData: ULONG_PTR; lResult: LRESULT); stdcall;
  {$EXTERNALSYM SENDASYNCPROC}

  PROPENUMPROCA = function (hwnd: HWND; lpszString: LPCSTR; hData: HANDLE): BOOL; stdcall;
  {$EXTERNALSYM PROPENUMPROCA}
  PROPENUMPROCW = function (hwnd: HWND; lpszString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
  {$EXTERNALSYM PROPENUMPROCW}

  PROPENUMPROCEXA = function (hwnd: HWND; lpszString: LPSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  {$EXTERNALSYM PROPENUMPROCEXA}
  PROPENUMPROCEXW = function (hwnd: HWND; lpszString: LPWSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  {$EXTERNALSYM PROPENUMPROCEXW}

  EDITWORDBREAKPROCA = function (lpch: LPSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  {$EXTERNALSYM EDITWORDBREAKPROCA}
  EDITWORDBREAKPROCW = function (lpch: LPWSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  {$EXTERNALSYM EDITWORDBREAKPROCW}

  DRAWSTATEPROC = function (hdc: HDC; lData: LPARAM; wData: WPARAM; cx, cy: Integer): BOOL; stdcall;
  {$EXTERNALSYM DRAWSTATEPROC}

{$IFDEF UNICODE}

  PROPENUMPROC = PROPENUMPROCW;
  {$EXTERNALSYM PROPENUMPROC}
  PROPENUMPROCEX = PROPENUMPROCEXW;
  {$EXTERNALSYM PROPENUMPROCEX}
  EDITWORDBREAKPROC = EDITWORDBREAKPROCW;
  {$EXTERNALSYM EDITWORDBREAKPROC}

{$ELSE}

  PROPENUMPROC = PROPENUMPROCA;
  {$EXTERNALSYM PROPENUMPROC}
  PROPENUMPROCEX = PROPENUMPROCEXA;
  {$EXTERNALSYM PROPENUMPROCEX}
  EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
  {$EXTERNALSYM EDITWORDBREAKPROC}

{$ENDIF}

  NAMEENUMPROCA = function (lpstr: LPSTR; lParam: LPARAM): BOOL; stdcall;
  {$EXTERNALSYM NAMEENUMPROCA}
  NAMEENUMPROCW = function (lpstr: LPWSTR; lParam: LPARAM): BOOL; stdcall;
  {$EXTERNALSYM NAMEENUMPROCW}

  WINSTAENUMPROCA = NAMEENUMPROCA;
  {$EXTERNALSYM WINSTAENUMPROCA}
  DESKTOPENUMPROCA = NAMEENUMPROCA;
  {$EXTERNALSYM DESKTOPENUMPROCA}
  WINSTAENUMPROCW = NAMEENUMPROCW;
  {$EXTERNALSYM WINSTAENUMPROCW}
  DESKTOPENUMPROCW = NAMEENUMPROCW;
  {$EXTERNALSYM DESKTOPENUMPROCW}

{$IFDEF UNICODE}

  WINSTAENUMPROC = WINSTAENUMPROCW;
  {$EXTERNALSYM WINSTAENUMPROC}
  DESKTOPENUMPROC = DESKTOPENUMPROCW;
  {$EXTERNALSYM DESKTOPENUMPROC}

{$ELSE}

  WINSTAENUMPROC = WINSTAENUMPROCA;
  {$EXTERNALSYM WINSTAENUMPROC}
  DESKTOPENUMPROC = DESKTOPENUMPROCA;
  {$EXTERNALSYM DESKTOPENUMPROC}

{$ENDIF}

function IS_INTRESOURCE(wInteger: WORD): BOOL;
{$EXTERNALSYM IS_INTRESOURCE}

type
  MAKEINTRESOURCEA = LPSTR;
  {$EXTERNALSYM MAKEINTRESOURCEA}
  MAKEINTRESOURCEW = LPWSTR;
  {$EXTERNALSYM MAKEINTRESOURCEW}
{$IFDEF UNICODE}
  MAKEINTRESOURCE = MAKEINTRESOURCEW;
  {$EXTERNALSYM MAKEINTRESOURCE}
{$ELSE}
  MAKEINTRESOURCE = MAKEINTRESOURCEA;
  {$EXTERNALSYM MAKEINTRESOURCE}
{$ENDIF}

//
// Predefined Resource Types
//

const
  RT_CURSOR       = MAKEINTRESOURCE(1);
  {$EXTERNALSYM RT_CURSOR}
  RT_BITMAP       = MAKEINTRESOURCE(2);
  {$EXTERNALSYM RT_BITMAP}
  RT_ICON         = MAKEINTRESOURCE(3);
  {$EXTERNALSYM RT_ICON}
  RT_MENU         = MAKEINTRESOURCE(4);
  {$EXTERNALSYM RT_MENU}
  RT_DIALOG       = MAKEINTRESOURCE(5);
  {$EXTERNALSYM RT_DIALOG}
  RT_STRING       = MAKEINTRESOURCE(6);
  {$EXTERNALSYM RT_STRING}
  RT_FONTDIR      = MAKEINTRESOURCE(7);
  {$EXTERNALSYM RT_FONTDIR}
  RT_FONT         = MAKEINTRESOURCE(8);
  {$EXTERNALSYM RT_FONT}
  RT_ACCELERATOR  = MAKEINTRESOURCE(9);
  {$EXTERNALSYM RT_ACCELERATOR}
  RT_RCDATA       = MAKEINTRESOURCE(10);
  {$EXTERNALSYM RT_RCDATA}
  RT_MESSAGETABLE = MAKEINTRESOURCE(11);
  {$EXTERNALSYM RT_MESSAGETABLE}

  DIFFERENCE = 11;
  {$EXTERNALSYM DIFFERENCE}

  RT_GROUP_CURSOR = MAKEINTRESOURCE(ULONG_PTR(RT_CURSOR) + DIFFERENCE);
  {$EXTERNALSYM RT_GROUP_CURSOR}
  RT_GROUP_ICON = MAKEINTRESOURCE(ULONG_PTR(RT_ICON) + DIFFERENCE);
  {$EXTERNALSYM RT_GROUP_ICON}
  RT_VERSION    = MAKEINTRESOURCE(16);
  {$EXTERNALSYM RT_VERSION}
  RT_DLGINCLUDE = MAKEINTRESOURCE(17);
  {$EXTERNALSYM RT_DLGINCLUDE}
  RT_PLUGPLAY   = MAKEINTRESOURCE(19);
  {$EXTERNALSYM RT_PLUGPLAY}
  RT_VXD        = MAKEINTRESOURCE(20);
  {$EXTERNALSYM RT_VXD}
  RT_ANICURSOR  = MAKEINTRESOURCE(21);
  {$EXTERNALSYM RT_ANICURSOR}
  RT_ANIICON    = MAKEINTRESOURCE(22);
  {$EXTERNALSYM RT_ANIICON}
  RT_HTML       = MAKEINTRESOURCE(23);
  {$EXTERNALSYM RT_HTML}

type
  va_list = PChar;
  {$EXTERNALSYM va_list}

function wvsprintfA(Output: LPSTR; Format: LPCSTR; arglist: va_list): Integer; stdcall;
{$EXTERNALSYM wvsprintfA}
function wvsprintfW(Output: LPWSTR; Format: LPCWSTR; arglist: va_list): Integer; stdcall;
{$EXTERNALSYM wvsprintfW}

{$IFDEF UNICODE}
function wvsprintf(Output: LPWSTR; Format: LPCWSTR; arglist: va_list): Integer; stdcall;
{$EXTERNALSYM wvsprintf}
{$ELSE}
function wvsprintf(Output: LPSTR; Format: LPCSTR; arglist: va_list): Integer; stdcall;
{$EXTERNALSYM wvsprintf}
{$ENDIF}

function wsprintfA(Output: LPSTR; Format: LPCSTR): Integer; stdcall;
{$EXTERNALSYM wsprintfA}
function wsprintfW(Output: LPWSTR; Format: LPCWSTR): Integer; stdcall;
{$EXTERNALSYM wsprintfW}

{$IFDEF UNICODE}
function wsprintf(Output: LPWSTR; Format: LPCWSTR): Integer; stdcall;
{$EXTERNALSYM wsprintf}
{$ELSE}
function wsprintf(Output: LPSTR; Format: LPCSTR): Integer; stdcall;
{$EXTERNALSYM wsprintf}
{$ENDIF}

//
// SPI_SETDESKWALLPAPER defined constants
//

const
  SETWALLPAPER_DEFAULT = LPWSTR(-1);
  {$EXTERNALSYM SETWALLPAPER_DEFAULT}

//
// Scroll Bar Constants
//

  SB_HORZ = 0;
  {$EXTERNALSYM SB_HORZ}
  SB_VERT = 1;
  {$EXTERNALSYM SB_VERT}
  SB_CTL  = 2;
  {$EXTERNALSYM SB_CTL}
  SB_BOTH = 3;
  {$EXTERNALSYM SB_BOTH}

//
// Scroll Bar Commands
//

  SB_LINEUP        = 0;
  {$EXTERNALSYM SB_LINEUP}
  SB_LINELEFT      = 0;
  {$EXTERNALSYM SB_LINELEFT}
  SB_LINEDOWN      = 1;
  {$EXTERNALSYM SB_LINEDOWN}
  SB_LINERIGHT     = 1;
  {$EXTERNALSYM SB_LINERIGHT}
  SB_PAGEUP        = 2;
  {$EXTERNALSYM SB_PAGEUP}
  SB_PAGELEFT      = 2;
  {$EXTERNALSYM SB_PAGELEFT}
  SB_PAGEDOWN      = 3;
  {$EXTERNALSYM SB_PAGEDOWN}
  SB_PAGERIGHT     = 3;
  {$EXTERNALSYM SB_PAGERIGHT}
  SB_THUMBPOSITION = 4;
  {$EXTERNALSYM SB_THUMBPOSITION}
  SB_THUMBTRACK    = 5;
  {$EXTERNALSYM SB_THUMBTRACK}
  SB_TOP           = 6;
  {$EXTERNALSYM SB_TOP}
  SB_LEFT          = 6;
  {$EXTERNALSYM SB_LEFT}
  SB_BOTTOM        = 7;
  {$EXTERNALSYM SB_BOTTOM}
  SB_RIGHT         = 7;
  {$EXTERNALSYM SB_RIGHT}
  SB_ENDSCROLL     = 8;
  {$EXTERNALSYM SB_ENDSCROLL}

//
// ShowWindow() Commands
//

  SW_HIDE            = 0;
  {$EXTERNALSYM SW_HIDE}
  SW_SHOWNORMAL      = 1;
  {$EXTERNALSYM SW_SHOWNORMAL}
  SW_NORMAL          = 1;
  {$EXTERNALSYM SW_NORMAL}
  SW_SHOWMINIMIZED   = 2;
  {$EXTERNALSYM SW_SHOWMINIMIZED}
  SW_SHOWMAXIMIZED   = 3;
  {$EXTERNALSYM SW_SHOWMAXIMIZED}
  SW_MAXIMIZE        = 3;
  {$EXTERNALSYM SW_MAXIMIZE}
  SW_SHOWNOACTIVATE  = 4;
  {$EXTERNALSYM SW_SHOWNOACTIVATE}
  SW_SHOW            = 5;
  {$EXTERNALSYM SW_SHOW}
  SW_MINIMIZE        = 6;
  {$EXTERNALSYM SW_MINIMIZE}
  SW_SHOWMINNOACTIVE = 7;
  {$EXTERNALSYM SW_SHOWMINNOACTIVE}
  SW_SHOWNA          = 8;
  {$EXTERNALSYM SW_SHOWNA}
  SW_RESTORE         = 9;
  {$EXTERNALSYM SW_RESTORE}
  SW_SHOWDEFAULT     = 10;
  {$EXTERNALSYM SW_SHOWDEFAULT}
  SW_FORCEMINIMIZE   = 11;
  {$EXTERNALSYM SW_FORCEMINIMIZE}
  SW_MAX             = 11;
  {$EXTERNALSYM SW_MAX}

//
// Old ShowWindow() Commands
//

  HIDE_WINDOW         = 0;
  {$EXTERNALSYM HIDE_WINDOW}
  SHOW_OPENWINDOW     = 1;
  {$EXTERNALSYM SHOW_OPENWINDOW}
  SHOW_ICONWINDOW     = 2;
  {$EXTERNALSYM SHOW_ICONWINDOW}
  SHOW_FULLSCREEN     = 3;
  {$EXTERNALSYM SHOW_FULLSCREEN}
  SHOW_OPENNOACTIVATE = 4;
  {$EXTERNALSYM SHOW_OPENNOACTIVATE}

//
// Identifiers for the WM_SHOWWINDOW message
//

  SW_PARENTCLOSING = 1;
  {$EXTERNALSYM SW_PARENTCLOSING}
  SW_OTHERZOOM     = 2;
  {$EXTERNALSYM SW_OTHERZOOM}
  SW_PARENTOPENING = 3;
  {$EXTERNALSYM SW_PARENTOPENING}
  SW_OTHERUNZOOM   = 4;
  {$EXTERNALSYM SW_OTHERUNZOOM}

//
// AnimateWindow() Commands
//

  AW_HOR_POSITIVE = $00000001;
  {$EXTERNALSYM AW_HOR_POSITIVE}
  AW_HOR_NEGATIVE = $00000002;
  {$EXTERNALSYM AW_HOR_NEGATIVE}
  AW_VER_POSITIVE = $00000004;
  {$EXTERNALSYM AW_VER_POSITIVE}
  AW_VER_NEGATIVE = $00000008;
  {$EXTERNALSYM AW_VER_NEGATIVE}
  AW_CENTER       = $00000010;
  {$EXTERNALSYM AW_CENTER}
  AW_HIDE         = $00010000;
  {$EXTERNALSYM AW_HIDE}
  AW_ACTIVATE     = $00020000;
  {$EXTERNALSYM AW_ACTIVATE}
  AW_SLIDE        = $00040000;
  {$EXTERNALSYM AW_SLIDE}
  AW_BLEND        = $00080000;
  {$EXTERNALSYM AW_BLEND}

//
// WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
//

  KF_EXTENDED = $0100;
  {$EXTERNALSYM KF_EXTENDED}
  KF_DLGMODE  = $0800;
  {$EXTERNALSYM KF_DLGMODE}
  KF_MENUMODE = $1000;
  {$EXTERNALSYM KF_MENUMODE}
  KF_ALTDOWN  = $2000;
  {$EXTERNALSYM KF_ALTDOWN}
  KF_REPEAT   = $4000;
  {$EXTERNALSYM KF_REPEAT}
  KF_UP       = $8000;
  {$EXTERNALSYM KF_UP}

//
// Virtual Keys, Standard Set
//

  VK_LBUTTON = $01;
  {$EXTERNALSYM VK_LBUTTON}
  VK_RBUTTON = $02;
  {$EXTERNALSYM VK_RBUTTON}
  VK_CANCEL  = $03;
  {$EXTERNALSYM VK_CANCEL}
  VK_MBUTTON = $04; // NOT contiguous with L & RBUTTON
  {$EXTERNALSYM VK_MBUTTON}

  VK_XBUTTON1 = $05; // NOT contiguous with L & RBUTTON
  {$EXTERNALSYM VK_XBUTTON1}
  VK_XBUTTON2 = $06; // NOT contiguous with L & RBUTTON
  {$EXTERNALSYM VK_XBUTTON2}

//
// 0x07 : unassigned
//

  VK_BACK = $08;
  {$EXTERNALSYM VK_BACK}
  VK_TAB  = $09;
  {$EXTERNALSYM VK_TAB}

//
// 0x0A - 0x0B : reserved
//

  VK_CLEAR  = $0C;
  {$EXTERNALSYM VK_CLEAR}
  VK_RETURN = $0D;
  {$EXTERNALSYM VK_RETURN}

  VK_SHIFT   = $10;
  {$EXTERNALSYM VK_SHIFT}
  VK_CONTROL = $11;
  {$EXTERNALSYM VK_CONTROL}
  VK_MENU    = $12;
  {$EXTERNALSYM VK_MENU}
  VK_PAUSE   = $13;
  {$EXTERNALSYM VK_PAUSE}
  VK_CAPITAL = $14;
  {$EXTERNALSYM VK_CAPITAL}

  VK_KANA    = $15;
  {$EXTERNALSYM VK_KANA}

⌨️ 快捷键说明

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