1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS Console Server DLL 4 * FILE: win32ss/user/winsrv/consrv/include/term.h 5 * PURPOSE: Internal Frontend Interface 6 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) 7 */ 8 9 #pragma once 10 11 /* Macros used to call functions in the TERMINAL_VTBL virtual table */ 12 13 #define TermReadStream(Console, /**/ Unicode, /**/ Buffer, ReadControl, Parameter, NumCharsToRead, NumCharsRead) \ 14 (Console)->TermIFace.Vtbl->ReadStream(&(Console)->TermIFace, /**/ (Unicode), /**/ \ 15 (Buffer), (ReadControl), (Parameter), (NumCharsToRead), (NumCharsRead)) 16 17 #define TermWriteStream(Console, ScreenBuffer, Buffer, Length, Attrib) \ 18 (Console)->TermIFace.Vtbl->WriteStream(&(Console)->TermIFace, (ScreenBuffer), (Buffer), \ 19 (Length), (Attrib)) 20 21 22 #define TermDrawRegion(Console, Region) \ 23 (Console)->TermIFace.Vtbl->DrawRegion(&(Console)->TermIFace, (Region)) 24 #define TermSetCursorInfo(Console, ScreenBuffer) \ 25 (Console)->TermIFace.Vtbl->SetCursorInfo(&(Console)->TermIFace, (ScreenBuffer)) 26 #define TermSetScreenInfo(Console, ScreenBuffer, OldCursorX, OldCursorY) \ 27 (Console)->TermIFace.Vtbl->SetScreenInfo(&(Console)->TermIFace, (ScreenBuffer), (OldCursorX), (OldCursorY)) 28 #define TermResizeTerminal(Console) \ 29 (Console)->TermIFace.Vtbl->ResizeTerminal(&(Console)->TermIFace) 30 #define TermSetActiveScreenBuffer(Console) \ 31 (Console)->TermIFace.Vtbl->SetActiveScreenBuffer(&(Console)->TermIFace) 32 #define TermReleaseScreenBuffer(Console, ScreenBuffer) \ 33 (Console)->TermIFace.Vtbl->ReleaseScreenBuffer(&(Console)->TermIFace, (ScreenBuffer)) 34 #define TermGetLargestConsoleWindowSize(Console, pSize) \ 35 (Console)->TermIFace.Vtbl->GetLargestConsoleWindowSize(&(Console)->TermIFace, (pSize)) 36 #define TermSetPalette(Console, PaletteHandle, PaletteUsage) \ 37 (Console)->TermIFace.Vtbl->SetPalette(&(Console)->TermIFace, (PaletteHandle), (PaletteUsage)) 38 #define TermSetCodePage(Console, CodePage) \ 39 (Console)->TermIFace.Vtbl->SetCodePage(&(Console)->TermIFace, (CodePage)) 40 #define TermShowMouseCursor(Console, Show) \ 41 (Console)->TermIFace.Vtbl->ShowMouseCursor(&(Console)->TermIFace, (Show)) 42 43 44 /* Macros used to call functions in the FRONTEND_VTBL virtual table */ 45 46 #define TermRefreshInternalInfo(Console) \ 47 (Console)->FrontEndIFace.Vtbl->RefreshInternalInfo(&(Console)->FrontEndIFace) 48 #define TermChangeTitle(Console) \ 49 (Console)->FrontEndIFace.Vtbl->ChangeTitle(&(Console)->FrontEndIFace) 50 #define TermChangeIcon(Console, IconHandle) \ 51 (Console)->FrontEndIFace.Vtbl->ChangeIcon(&(Console)->FrontEndIFace, (IconHandle)) 52 #define TermGetThreadConsoleDesktop(Console) \ 53 (Console)->FrontEndIFace.Vtbl->GetThreadConsoleDesktop(&(Console)->FrontEndIFace) 54 #define TermGetConsoleWindowHandle(Console) \ 55 (Console)->FrontEndIFace.Vtbl->GetConsoleWindowHandle(&(Console)->FrontEndIFace) 56 #define TermGetSelectionInfo(Console, pSelectionInfo) \ 57 (Console)->FrontEndIFace.Vtbl->GetSelectionInfo(&(Console)->FrontEndIFace, (pSelectionInfo)) 58 #define TermGetDisplayMode(Console) \ 59 (Console)->FrontEndIFace.Vtbl->GetDisplayMode(&(Console)->FrontEndIFace) 60 #define TermSetDisplayMode(Console, NewMode) \ 61 (Console)->FrontEndIFace.Vtbl->SetDisplayMode(&(Console)->FrontEndIFace, (NewMode)) 62 #define TermSetMouseCursor(Console, CursorHandle) \ 63 (Console)->FrontEndIFace.Vtbl->SetMouseCursor(&(Console)->FrontEndIFace, (CursorHandle)) 64 #define TermMenuControl(Console, CmdIdLow, CmdIdHigh) \ 65 (Console)->FrontEndIFace.Vtbl->MenuControl(&(Console)->FrontEndIFace, (CmdIdLow), (CmdIdHigh)) 66 #define TermSetMenuClose(Console, Enable) \ 67 (Console)->FrontEndIFace.Vtbl->SetMenuClose(&(Console)->FrontEndIFace, (Enable)) 68 69 /* EOF */ 70