diff options
author | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2017-09-03 15:11:38 +0000 |
---|---|---|
committer | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2017-09-03 15:11:38 +0000 |
commit | 6ed5c127921b7f9f1b724b375cc13d348975f802 (patch) | |
tree | 36144a9da2982e168fa7144d6bbd0af2e85325fa | |
parent | 330c6090d3e459dc7d02cc48fdbdce119f5e039a (diff) | |
download | fpc-6ed5c127921b7f9f1b724b375cc13d348975f802.tar.gz |
--- Merging r36742 into '.':
U rtl/win/wininc/struct.inc
U rtl/win/wininc/unifun.inc
U rtl/win/wininc/func.inc
U rtl/win/wininc/defines.inc
U rtl/win/wininc/ascfun.inc
--- Recording mergeinfo for merge of r36742 into '.':
U .
# revisions: 36742
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/fixes_3_0@37130 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | rtl/win/wininc/ascfun.inc | 12 | ||||
-rw-r--r-- | rtl/win/wininc/defines.inc | 52 | ||||
-rw-r--r-- | rtl/win/wininc/func.inc | 39 | ||||
-rw-r--r-- | rtl/win/wininc/struct.inc | 64 | ||||
-rw-r--r-- | rtl/win/wininc/unifun.inc | 12 |
5 files changed, 177 insertions, 2 deletions
diff --git a/rtl/win/wininc/ascfun.inc b/rtl/win/wininc/ascfun.inc index db815ac8e1..6d8c0b2b1e 100644 --- a/rtl/win/wininc/ascfun.inc +++ b/rtl/win/wininc/ascfun.inc @@ -482,7 +482,17 @@ function OpenWaitableTimerA(dwDesiredAccess:DWORD;bInheritHandle:BOOL;lpTimerNam function FindFirstFileExA(lpfilename : LPCStr;fInfoLevelId:FINDEX_INFO_LEVELS ;lpFindFileData:pointer;fSearchOp : FINDEX_SEARCH_OPS;lpSearchFilter:pointer;dwAdditionalFlags:dword):Handle; stdcall; external 'kernel32' name 'FindFirstFileExA'; // winver>$0600 function FindFirstFileTransactedA(lpfilename : LPCStr;fInfoLevelId:FINDEX_INFO_LEVELS ;lpFindFileData:pointer;fSearchOp : FINDEX_SEARCH_OPS;lpSearchFilter:pointer;dwAdditionalFlags:dword;htransaction : HANDLE):Handle; stdcall; external 'kernel32' name 'FindFirstFileTransactedA'; - +// Wincon.h +function WriteConsoleInputA(hConsoleInput:HANDLE; var lpBuffer:INPUT_RECORD; nLength:DWORD; lpNumberOfEventsWritten:LPDWORD):BOOL;stdcall;external 'kernel32' name 'WriteConsoleInputA'; +function ScrollConsoleScreenBufferA(hConsoleOutput:HANDLE; var lpScrollRectangle:SMALL_RECT; var lpClipRectangle:SMALL_RECT; dwDestinationOrigin:COORD; lpFill:PCHAR_INFO):BOOL;stdcall;external 'kernel32' name 'ScrollConsoleScreenBufferA'; +function GetConsoleOriginalTitleA(lpConsoleTitle:LPSTR; nSize:DWORD):DWORD;stdcall;external 'kernel32' name 'GetConsoleOriginalTitleA'; +function AddConsoleAliasA(Source:LPSTR; Target:LPSTR; ExeName:LPSTR):BOOL;stdcall;external 'kernel32' name 'AddConsoleAliasA'; +function GetConsoleAliasA(Source:LPSTR; TargetBuffer:LPSTR; TargetBufferLength:DWORD; ExeName:LPSTR):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasA'; +function GetConsoleAliasesLengthA(ExeName:LPSTR):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasesLengthA'; +function GetConsoleAliasExesLengthA:DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasExesLengthA'; +function GetConsoleAliasesA(AliasBuffer:LPSTR; AliasBufferLength:DWORD; ExeName:LPSTR):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasesA'; +function GetConsoleAliasExesA(ExeNameBuffer:LPSTR; ExeNameBufferLength:DWORD):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasExesA'; + {$endif read_interface} diff --git a/rtl/win/wininc/defines.inc b/rtl/win/wininc/defines.inc index 7165bf3579..76c1a272c2 100644 --- a/rtl/win/wininc/defines.inc +++ b/rtl/win/wininc/defines.inc @@ -6223,6 +6223,58 @@ const MAPVK_VK_TO_VSC_EX = 4; //#endif /* WINVER >= 0x0600 */ +// +// Wincon.h +// + NLS_DBCSCHAR = $00010000; { DBCS for JPN: SBCS/DBCS mode. } + NLS_ALPHANUMERIC = $00000000; { DBCS for JPN: Alphanumeric mode. } + NLS_KATAKANA = $00020000; { DBCS for JPN: Katakana mode. } + NLS_HIRAGANA = $00040000; { DBCS for JPN: Hiragana mode. } + NLS_ROMAN = $00400000; { DBCS for JPN: Roman/Noroman mode. } + NLS_IME_CONVERSION = $00800000; { DBCS for JPN: IME conversion. } + NLS_IME_DISABLE = $20000000; { DBCS for JPN: IME enable/disable. } + + + MOUSE_WHEELED = $0004; + MOUSE_HWHEELED = $0008; + + + COMMON_LVB_LEADING_BYTE = $0100; { Leading Byte of DBCS } + COMMON_LVB_TRAILING_BYTE = $0200; { Trailing Byte of DBCS } + COMMON_LVB_GRID_HORIZONTAL = $0400; { DBCS: Grid attribute: top horizontal. } + COMMON_LVB_GRID_LVERTICAL = $0800; { DBCS: Grid attribute: left vertical. } + COMMON_LVB_GRID_RVERTICAL = $1000; { DBCS: Grid attribute: right vertical. } + COMMON_LVB_REVERSE_VIDEO = $4000; { DBCS: Reverse fore/back ground attribute. } + COMMON_LVB_UNDERSCORE = $8000; { DBCS: Underscore. } + COMMON_LVB_SBCSDBCS = $0300; { SBCS or DBCS flag. } + + HISTORY_NO_DUP_FLAG = $1; + + + CONSOLE_NO_SELECTION = $0000; + CONSOLE_SELECTION_IN_PROGRESS = $0001; { selection has begun } + CONSOLE_SELECTION_NOT_EMPTY = $0002; { non-null select rectangle } + CONSOLE_MOUSE_SELECTION = $0004; { selecting with mouse } + CONSOLE_MOUSE_DOWN = $0008; { mouse is down } + + ENABLE_INSERT_MODE = $0020; + ENABLE_QUICK_EDIT_MODE = $0040; + ENABLE_EXTENDED_FLAGS = $0080; + ENABLE_AUTO_POSITION = $0100; + ENABLE_VIRTUAL_TERMINAL_INPUT = $0200; + + ENABLE_VIRTUAL_TERMINAL_PROCESSING = $0004; + DISABLE_NEWLINE_AUTO_RETURN = $0008; + ENABLE_LVB_GRID_WORLDWIDE = $0010; + + CONSOLE_FULLSCREEN = 1; { fullscreen console } + CONSOLE_FULLSCREEN_HARDWARE = 2; { console owns the hardware } + + + CONSOLE_FULLSCREEN_MODE = 1; + CONSOLE_WINDOWED_MODE = 2; + + {$endif read_interface} {$ifdef read_implementation} diff --git a/rtl/win/wininc/func.inc b/rtl/win/wininc/func.inc index dc6afcee3a..0de11a4b02 100644 --- a/rtl/win/wininc/func.inc +++ b/rtl/win/wininc/func.inc @@ -53,7 +53,7 @@ function FreeResource(hResData:HGLOBAL):WINBOOL; external 'kernel32' name 'FreeR function LockResource(hResData:HGLOBAL):LPVOID; external 'kernel32' name 'LockResource'; {$ifdef Unknown_functions} { WARNING: function not found !!} -function WinMain(hInstance:HINST; hPrevInstance:HINST; lpCmdLine:LPSTR; nShowCmd:longint):longint; external External_library name 'WinMain'; +function WinMain(hInstance:HINST; hPrevInstance:HINST; lpCmdLine:LPSTR; nShowCmd:longint):longint; external 'kernel32' name 'WinMain'; {$endif Unknown_functions} function FreeLibrary(hLibModule:HINST):WINBOOL; external 'kernel32' name 'FreeLibrary'; procedure FreeLibraryAndExitThread(hLibModule:HMODULE; dwExitCode:DWORD); external 'kernel32' name 'FreeLibraryAndExitThread'; @@ -1292,6 +1292,28 @@ function GET_DEVICE_CHANGE_WPARAM(wParam: WPARAM): WORD; inline; function GET_DEVICE_CHANGE_LPARAM(lParam: LPARAM): WORD; inline; //#endif /* (_WIN32_WINNT >= 0x0601) */ +function CONSOLE_REAL_OUTPUT_HANDLE : HANDLE; + function CONSOLE_REAL_INPUT_HANDLE : HANDLE; + function GetConsoleScreenBufferInfoEx(hConsoleOutput:HANDLE; lpConsoleScreenBufferInfoEx:PCONSOLE_SCREEN_BUFFER_INFOEX):BOOL;stdcall;external 'kernel32' name 'GetConsoleScreenBufferInfoEx'; + function SetConsoleScreenBufferInfoEx(hConsoleOutput:HANDLE; lpConsoleScreenBufferInfoEx:PCONSOLE_SCREEN_BUFFER_INFOEX):BOOL;stdcall;external 'kernel32' name 'SetConsoleScreenBufferInfoEx'; + // function GetLargestConsoleWindowSize(hConsoleOutput:HANDLE):COORD;stdcall;external 'kernel32' name 'GetLargestConsoleWindowSize'; + function GetCurrentConsoleFont(hConsoleOutput:HANDLE; bMaximumWindow:BOOL; lpConsoleCurrentFont:PCONSOLE_FONT_INFO):BOOL;stdcall;external 'kernel32' name 'GetCurrentConsoleFont'; + function GetCurrentConsoleFontEx(hConsoleOutput:HANDLE; bMaximumWindow:BOOL; lpConsoleCurrentFontEx:PCONSOLE_FONT_INFOEX):BOOL;stdcall;external 'kernel32' name 'GetCurrentConsoleFontEx'; + function SetCurrentConsoleFontEx(hConsoleOutput:HANDLE; bMaximumWindow:BOOL; lpConsoleCurrentFontEx:PCONSOLE_FONT_INFOEX):BOOL;stdcall;external 'kernel32' name 'SetCurrentConsoleFontEx'; + function GetConsoleHistoryInfo(lpConsoleHistoryInfo:PCONSOLE_HISTORY_INFO):BOOL;stdcall;external 'kernel32' name 'GetConsoleHistoryInfo'; + function SetConsoleHistoryInfo(lpConsoleHistoryInfo:PCONSOLE_HISTORY_INFO):BOOL;stdcall;external 'kernel32' name 'SetConsoleHistoryInfo'; + function GetConsoleFontSize(hConsoleOutput:HANDLE; nFont:DWORD):COORD;stdcall;external 'kernel32' name 'GetConsoleFontSize'; + function GetConsoleSelectionInfo(lpConsoleSelectionInfo:PCONSOLE_SELECTION_INFO):BOOL;stdcall;external 'kernel32' name 'GetConsoleSelectionInfo'; + function AttachConsole(dwProcessId:DWORD):BOOL;stdcall;external 'kernel32' name 'AttachConsole'; + function ATTACH_PARENT_PROCESS : DWORD; + + + function GetConsoleDisplayMode(lpModeFlags:LPDWORD):BOOL;stdcall;external 'kernel32' name 'GetConsoleDisplayMode'; + function SetConsoleDisplayMode(hConsoleOutput:HANDLE; dwFlags:DWORD; lpNewScreenBufferDimensions:PCOORD):BOOL;stdcall;external 'kernel32' name 'SetConsoleDisplayMode'; + function GetConsoleWindow:HWND;stdcall;external 'kernel32' name 'GetConsoleWindow'; + function GetConsoleProcessList(lpdwProcessList:LPDWORD; dwProcessCount:DWORD):DWORD;stdcall;external 'kernel32' name 'GetConsoleProcessList'; + + {$endif read_interface} @@ -2435,5 +2457,20 @@ begin GET_DEVICE_CHANGE_LPARAM:=LOWORD(lParam); end; +function CONSOLE_REAL_OUTPUT_HANDLE : HANDLE; +begin + CONSOLE_REAL_OUTPUT_HANDLE:=HANDLE(-(2)); +end; + +function CONSOLE_REAL_INPUT_HANDLE : HANDLE; +begin + CONSOLE_REAL_INPUT_HANDLE:=HANDLE(-(3)); +end; + +function ATTACH_PARENT_PROCESS : DWORD; +begin + ATTACH_PARENT_PROCESS:=DWORD(-(1)); +end; + {$endif read_implementation} diff --git a/rtl/win/wininc/struct.inc b/rtl/win/wininc/struct.inc index be924e6d56..d5487d183d 100644 --- a/rtl/win/wininc/struct.inc +++ b/rtl/win/wininc/struct.inc @@ -9308,6 +9308,70 @@ type RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST; PRAWINPUTDEVICELIST = ^tagRAWINPUTDEVICELIST; //#endif /* _WIN32_WINNT >= 0x0501 */ + +// Wincon.h + + _CONSOLE_SCREEN_BUFFER_INFOEX = record + cbSize : ULONG; + dwSize : COORD; + dwCursorPosition : COORD; + wAttributes : WORD; + srWindow : SMALL_RECT; + dwMaximumWindowSize : COORD; + wPopupAttributes : WORD; + bFullscreenSupported : BOOL; + ColorTable : array[0..15] of COLORREF; + end; + CONSOLE_SCREEN_BUFFER_INFOEX = _CONSOLE_SCREEN_BUFFER_INFOEX; + PCONSOLE_SCREEN_BUFFER_INFOEX = ^_CONSOLE_SCREEN_BUFFER_INFOEX; + + + _CONSOLE_FONT_INFO = record + nFont : DWORD; + dwFontSize : COORD; + end; + CONSOLE_FONT_INFO = _CONSOLE_FONT_INFO; + PCONSOLE_FONT_INFO = ^_CONSOLE_FONT_INFO; + + _CONSOLE_FONT_INFOEX = record + cbSize : ULONG; + nFont : DWORD; + dwFontSize : COORD; + FontFamily : UINT; + FontWeight : UINT; + FaceName : array[0..(LF_FACESIZE)-1] of WCHAR; + end; + CONSOLE_FONT_INFOEX = _CONSOLE_FONT_INFOEX; + PCONSOLE_FONT_INFOEX = ^_CONSOLE_FONT_INFOEX; + + + + _CONSOLE_HISTORY_INFO = record + cbSize : UINT; + HistoryBufferSize : UINT; + NumberOfHistoryBuffers : UINT; + dwFlags : DWORD; + end; + CONSOLE_HISTORY_INFO = _CONSOLE_HISTORY_INFO; + PCONSOLE_HISTORY_INFO = ^_CONSOLE_HISTORY_INFO; + + _CONSOLE_SELECTION_INFO = record + dwFlags : DWORD; + dwSelectionAnchor : COORD; + srSelection : SMALL_RECT; + end; + CONSOLE_SELECTION_INFO = _CONSOLE_SELECTION_INFO; + PCONSOLE_SELECTION_INFO = ^_CONSOLE_SELECTION_INFO; + + _CONSOLE_READCONSOLE_CONTROL = record + nLength : ULONG; + nInitialChars : ULONG; + dwCtrlWakeupMask : ULONG; + dwControlKeyState : ULONG; + end; + CONSOLE_READCONSOLE_CONTROL = _CONSOLE_READCONSOLE_CONTROL; + PCONSOLE_READCONSOLE_CONTROL = ^_CONSOLE_READCONSOLE_CONTROL; + {$pop} {$endif read_interface} diff --git a/rtl/win/wininc/unifun.inc b/rtl/win/wininc/unifun.inc index 7473e960bd..a723d5c0a9 100644 --- a/rtl/win/wininc/unifun.inc +++ b/rtl/win/wininc/unifun.inc @@ -484,6 +484,18 @@ function FindFirstFileExW(lpfilename : LPCWStr;fInfoLevelId:FINDEX_INFO_LEVELS ; function FindFirstFileTransactedW(lpfilename : LPCWStr;fInfoLevelId:FINDEX_INFO_LEVELS ;lpFindFileData:pointer;fSearchOp : FINDEX_SEARCH_OPS;lpSearchFilter:pointer;dwAdditionalFlags:dword;htransaction : HANDLE):Handle; stdcall; external 'kernel32' name 'FindFirstFileTransactedW'; function CopyFileExW(lpExistingFileName,lpNewFileName : LPCWSTR;lpProgressRoutine:LPPROGRESS_ROUTINE;lpdata:Pointer;pbcancel:LPBOOL;dwCopyFlags:DWord):DWord; stdcall; external 'kernel32' name 'CopyFileExW'; + +function PeekConsoleInputW(hConsoleInput:HANDLE; lpBuffer:PINPUT_RECORD; nLength:DWORD; lpNumberOfEventsRead:LPDWORD):BOOL;stdcall;external 'kernel32' name 'PeekConsoleInputW'; +function WriteConsoleInputW(hConsoleInput:HANDLE; var lpBuffer:INPUT_RECORD; nLength:DWORD; lpNumberOfEventsWritten:LPDWORD):BOOL;stdcall;external 'kernel32' name 'WriteConsoleInputW'; +function ScrollConsoleScreenBufferW(hConsoleOutput:HANDLE; var lpScrollRectangle:SMALL_RECT; var lpClipRectangle:SMALL_RECT; dwDestinationOrigin:COORD; lpFill:PCHAR_INFO):BOOL;stdcall;external 'kernel32' name 'ScrollConsoleScreenBufferW'; +function GetConsoleOriginalTitleW(lpConsoleTitle:LPWSTR; nSize:DWORD):DWORD;stdcall;external 'kernel32' name 'GetConsoleOriginalTitleW'; +function AddConsoleAliasW(Source:LPWSTR; Target:LPWSTR; ExeName:LPWSTR):BOOL;stdcall;external 'kernel32' name 'AddConsoleAliasW'; +function GetConsoleAliasW(Source:LPWSTR; TargetBuffer:LPWSTR; TargetBufferLength:DWORD; ExeName:LPWSTR):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasW'; +function GetConsoleAliasesLengthW(ExeName:LPWSTR):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasesLengthW'; +function GetConsoleAliasExesLengthW:DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasExesLengthW'; +function GetConsoleAliasesW(AliasBuffer:LPWSTR; AliasBufferLength:DWORD; ExeName:LPWSTR):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasesW'; +function GetConsoleAliasExesW(ExeNameBuffer:LPWSTR; ExeNameBufferLength:DWORD):DWORD;stdcall;external 'kernel32' name 'GetConsoleAliasExesW'; + {$endif read_interface} |