ReactOS  0.4.13-dev-242-g611e6d7
guisettings.c File Reference
#include <consrv.h>
#include <debug.h>
#include "concfg/font.h"
#include "guiterm.h"
#include "guisettings.h"
Include dependency graph for guisettings.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

BOOL GuiConsoleReadUserSettings (IN OUT PGUI_CONSOLE_INFO TermInfo)
 
BOOL GuiConsoleWriteUserSettings (IN OUT PGUI_CONSOLE_INFO TermInfo)
 
VOID GuiConsoleGetDefaultSettings (IN OUT PGUI_CONSOLE_INFO TermInfo)
 
VOID GuiConsoleShowConsoleProperties (PGUI_CONSOLE_DATA GuiData, BOOL Defaults)
 
VOID GuiApplyUserSettings (PGUI_CONSOLE_DATA GuiData, HANDLE hClientSection)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 14 of file guisettings.c.

Function Documentation

◆ GuiApplyUserSettings()

VOID GuiApplyUserSettings ( PGUI_CONSOLE_DATA  GuiData,
HANDLE  hClientSection 
)

Definition at line 259 of file guisettings.c.

261 {
263  PCONSRV_CONSOLE Console = GuiData->Console;
264  PCONSOLE_PROCESS_DATA ProcessData;
265  HANDLE hSection = NULL;
266  SIZE_T ViewSize = 0;
267  PCONSOLE_STATE_INFO pConInfo = NULL;
268 
270 
271  /* Get the console leader process, our client */
272  ProcessData = ConSrvGetConsoleLeaderProcess(Console);
273 
274  /* Duplicate the section handle for ourselves */
276  hClientSection,
278  &hSection,
279  0, 0, DUPLICATE_SAME_ACCESS);
280  if (!NT_SUCCESS(Status))
281  {
282  DPRINT1("Error when mapping client handle, Status = 0x%08lx\n", Status);
283  goto Quit;
284  }
285 
286  /* Get a view of the shared section */
289  (PVOID*)&pConInfo,
290  0,
291  0,
292  NULL,
293  &ViewSize,
294  ViewUnmap,
295  0,
297  if (!NT_SUCCESS(Status))
298  {
299  DPRINT1("Error when mapping view of file, Status = 0x%08lx\n", Status);
300  goto Quit;
301  }
302 
303  _SEH2_TRY
304  {
305  /* Check that the section is well-sized */
306  if ( (ViewSize < sizeof(CONSOLE_STATE_INFO)) ||
307  (pConInfo->cbSize < sizeof(CONSOLE_STATE_INFO)) )
308  {
309  DPRINT1("Error: section bad-sized: sizeof(Section) < sizeof(CONSOLE_STATE_INFO)\n");
311  _SEH2_YIELD(goto Quit);
312  }
313 
314  // TODO: Check that GuiData->hWindow == pConInfo->hWnd
315 
316  /* Retrieve terminal informations */
317 
318  /* Console information */
319 #if 0 // FIXME: Things not set
322  ConInfo.HistoryNoDup = !!pConInfo->HistoryNoDup;
323  ConInfo.CodePage = pConInfo->CodePage; // Done in ConSrvApplyUserSettings
324 #endif
325 
326  /*
327  * Apply the settings
328  */
329 
330  /* Set the console informations */
331  ConSrvApplyUserSettings(Console, pConInfo);
332 
333  /* Set the terminal informations */
334 
335  /* Refresh the additional TrueType fonts cache and change the font */
337  InitFonts(GuiData,
338  pConInfo->FaceName,
339  pConInfo->FontFamily,
340  pConInfo->FontSize,
341  pConInfo->FontWeight);
342  // HACK, needed because changing font may change the size of the window
344 
345  /* Move the window to the user's values */
346  GuiData->GuiInfo.AutoPosition = !!pConInfo->AutoPosition;
347  GuiData->GuiInfo.WindowOrigin = pConInfo->WindowPosition;
348  GuiConsoleMoveWindow(GuiData);
349 
350  InvalidateRect(GuiData->hWindow, NULL, TRUE);
351 
352  /*
353  * Apply full-screen mode.
354  */
355  if (!!pConInfo->FullScreen != GuiData->GuiInfo.FullScreen)
356  {
357  SwitchFullScreen(GuiData, !!pConInfo->FullScreen);
358  }
359 
360  /*
361  * The settings are saved in the registry by console.dll itself, if needed.
362  */
363  // if (SaveSettings)
364  // {
365  // GuiConsoleWriteUserSettings(GuiInfo);
366  // }
367 
369  }
371  {
373  DPRINT1("GuiApplyUserSettings - Caught an exception, Status = 0x%08lx\n", Status);
374  }
375  _SEH2_END;
376 
377 Quit:
378  /* Finally, close the section and return */
379  if (hSection)
380  {
382  NtClose(hSection);
383  }
384 
386  return;
387 }
PCONSOLE_PROCESS_DATA NTAPI ConSrvGetConsoleLeaderProcess(IN PCONSRV_CONSOLE Console)
Definition: console.c:867
NTSTATUS NTAPI NtUnmapViewOfSection(IN HANDLE ProcessHandle, IN PVOID BaseAddress)
Definition: section.c:3780
#define TRUE
Definition: types.h:120
POINT WindowPosition
Definition: settings.h:34
LONG NTSTATUS
Definition: precomp.h:26
#define TermResizeTerminal(Console)
Definition: term.h:28
#define PCONSRV_CONSOLE
Definition: conio.h:27
_SEH2_TRY
Definition: create.c:4250
#define DUPLICATE_SAME_ACCESS
NTSTATUS NTAPI NtMapViewOfSection(IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect)
Definition: section.c:3552
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
HANDLE ProcessHandle
Definition: csrsrv.h:46
VOID ConSrvApplyUserSettings(IN PCONSOLE Console, IN PCONSOLE_STATE_INFO ConsoleInfo)
Definition: settings.c:34
smooth NULL
Definition: ftsmooth.c:416
#define NtCurrentProcess()
Definition: nt_native.h:1657
VOID SwitchFullScreen(PGUI_CONSOLE_DATA GuiData, BOOL FullScreen)
Definition: fullscreen.c:49
#define _SEH2_YIELD(STMT_)
Definition: pseh2_64.h:8
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
ULONG HistoryBufferSize
Definition: settings.h:50
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
PCSR_PROCESS Process
Definition: consrv.h:43
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
Definition: obhandle.c:3399
WCHAR FaceName[LF_FACESIZE]
Definition: settings.h:39
BOOL InitFonts(PGUI_CONSOLE_DATA GuiData, LPWSTR FaceName, ULONG FontFamily, COORD FontSize, ULONG FontWeight)
Definition: conwnd.c:510
Status
Definition: gdiplustypes.h:24
ULONG_PTR SIZE_T
Definition: typedefs.h:78
VOID RefreshTTFontCache(VOID)
Definition: font.c:515
#define STATUS_INVALID_VIEW_SIZE
Definition: ntstatus.h:254
_SEH2_END
Definition: create.c:4424
VOID GuiConsoleMoveWindow(PGUI_CONSOLE_DATA GuiData)
Definition: guiterm.c:61
ULONG NumberOfHistoryBuffers
Definition: settings.h:51
BOOLEAN NTAPI ConDrvValidateConsoleUnsafe(IN PCONSOLE Console, IN CONSOLE_STATE ExpectedState, IN BOOLEAN LockConsole)
Definition: console.c:120
PCONSOLE_STATE_INFO ConInfo
Definition: console.c:23
CConsole Console
#define DPRINT1
Definition: precomp.h:8
GUI_CONSOLE_INFO GuiInfo
Definition: conwnd.h:96
NTSTATUS NTAPI NtDuplicateObject(IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options)
Definition: obhandle.c:3407
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID _In_ ULONG_PTR _In_ SIZE_T _Inout_opt_ PLARGE_INTEGER _Inout_ PSIZE_T ViewSize
Definition: mmfuncs.h:404
PCONSRV_CONSOLE Console
Definition: conwnd.h:90
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:6
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:12
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
return STATUS_SUCCESS
Definition: btrfs.c:2745
_In_ const BITMAPINFO _In_ UINT _In_opt_ HANDLE hSection
Definition: wingdi.h:3217
#define PAGE_READWRITE
Definition: nt_native.h:1304

Referenced by ConWndProc(), and GuiConsoleWndProc().

◆ GuiConsoleGetDefaultSettings()

VOID GuiConsoleGetDefaultSettings ( IN OUT PGUI_CONSOLE_INFO  TermInfo)

Definition at line 38 of file guisettings.c.

39 {
40  /* Do nothing */
41 }

Referenced by GuiInitFrontEnd(), and GuiLoadFrontEnd().

◆ GuiConsoleReadUserSettings()

BOOL GuiConsoleReadUserSettings ( IN OUT PGUI_CONSOLE_INFO  TermInfo)

Definition at line 24 of file guisettings.c.

25 {
26  /* Do nothing */
27  return TRUE;
28 }
#define TRUE
Definition: types.h:120

Referenced by GuiConsoleGetDefaultSettings(), GuiInitFrontEnd(), and GuiLoadFrontEnd().

◆ GuiConsoleShowConsoleProperties()

VOID GuiConsoleShowConsoleProperties ( PGUI_CONSOLE_DATA  GuiData,
BOOL  Defaults 
)

pSharedInfo->InputBufferSize = 0;

Definition at line 44 of file guisettings.c.

46 {
48  PCONSRV_CONSOLE Console = GuiData->Console;
49  PCONSOLE_PROCESS_DATA ProcessData;
50  HANDLE hSection = NULL, hClientSection = NULL;
51  PVOID ThreadParameter = NULL; // Is either hClientSection or the console window handle,
52  // depending on whether we display the default settings or
53  // the settings of a particular console.
54 
55  DPRINT("GuiConsoleShowConsoleProperties entered\n");
56 
58 
59  /* Get the console leader process, our client */
61 
62  /*
63  * Be sure we effectively have a properties dialog routine (that launches
64  * the console control panel applet). It resides in kernel32.dll (client).
65  */
66  if (ProcessData->PropRoutine == NULL) goto Quit;
67 
68  /*
69  * Create a memory section to be shared with the console control panel applet
70  * in the case we are displaying the settings of a particular console.
71  * In that case the ThreadParameter is the hClientSection handle.
72  * In the case we display the default console parameters, we don't need to
73  * create a memory section. We just need to open the applet, and in this case
74  * the ThreadParameter is the parent window handle of the applet's window,
75  * that is, the console window.
76  */
77  if (!Defaults)
78  {
79  PCONSOLE_SCREEN_BUFFER ActiveBuffer = GuiData->ActiveBuffer;
80  LARGE_INTEGER SectionSize;
81  SIZE_T ViewSize = 0;
82  PCONSOLE_STATE_INFO pSharedInfo = NULL;
83 
84  /*
85  * Create a memory section to share with the applet, and map it.
86  */
87  SectionSize.QuadPart = sizeof(CONSOLE_STATE_INFO); // Standard size
88  SectionSize.QuadPart += Console->OriginalTitle.Length; // Add the length in bytes of the console title string
89 
92  NULL,
93  &SectionSize,
95  SEC_COMMIT,
96  NULL);
97  if (!NT_SUCCESS(Status))
98  {
99  DPRINT1("Error: Impossible to create a shared section, Status = 0x%08lx\n", Status);
100  goto Quit;
101  }
102 
105  (PVOID*)&pSharedInfo,
106  0,
107  0,
108  NULL,
109  &ViewSize,
110  ViewUnmap,
111  0,
113  if (!NT_SUCCESS(Status))
114  {
115  DPRINT1("Error: Impossible to map the shared section, Status = 0x%08lx\n", Status);
116  goto Quit;
117  }
118 
119 
120  /*
121  * Setup the shared console properties structure.
122  */
123 
124  /* Store the real size of the structure */
125  pSharedInfo->cbSize = SectionSize.QuadPart;
126 
127  /*
128  * When we setup the settings of a particular console, the parent window
129  * of the applet's window is the console window, and it is given via the
130  * hWnd member of the shared console info structure.
131  */
132  pSharedInfo->hWnd = GuiData->hWindow;
133 
134  /* Console information */
135  pSharedInfo->HistoryBufferSize = Console->HistoryBufferSize;
136  pSharedInfo->NumberOfHistoryBuffers = Console->NumberOfHistoryBuffers;
137  pSharedInfo->HistoryNoDup = Console->HistoryNoDup;
138  pSharedInfo->QuickEdit = Console->QuickEdit;
139  pSharedInfo->InsertMode = Console->InsertMode;
141  pSharedInfo->ScreenBufferSize = ActiveBuffer->ScreenBufferSize;
142  pSharedInfo->WindowSize = ActiveBuffer->ViewSize;
143  pSharedInfo->CursorSize = ActiveBuffer->CursorInfo.dwSize;
144  if (GetType(ActiveBuffer) == TEXTMODE_BUFFER)
145  {
147 
148  pSharedInfo->ScreenAttributes = Buffer->ScreenDefaultAttrib;
149  pSharedInfo->PopupAttributes = Buffer->PopupDefaultAttrib;
150  }
151  else // if (GetType(ActiveBuffer) == GRAPHICS_BUFFER)
152  {
153  // PGRAPHICS_SCREEN_BUFFER Buffer = (PGRAPHICS_SCREEN_BUFFER)ActiveBuffer;
154  DPRINT1("GuiConsoleShowConsoleProperties - Graphics buffer\n");
155 
156  // FIXME: Gather defaults from the registry ?
158  pSharedInfo->PopupAttributes = DEFAULT_POPUP_ATTRIB ;
159  }
160 
161  /* We display the output code page only */
162  pSharedInfo->CodePage = Console->OutputCodePage;
163 
164  /* GUI Information */
165  StringCchCopyNW(pSharedInfo->FaceName, ARRAYSIZE(pSharedInfo->FaceName),
166  GuiData->GuiInfo.FaceName, ARRAYSIZE(GuiData->GuiInfo.FaceName));
167  pSharedInfo->FontFamily = GuiData->GuiInfo.FontFamily;
168  pSharedInfo->FontSize = GuiData->GuiInfo.FontSize;
169  pSharedInfo->FontWeight = GuiData->GuiInfo.FontWeight;
170  pSharedInfo->FullScreen = GuiData->GuiInfo.FullScreen;
171  pSharedInfo->AutoPosition = GuiData->GuiInfo.AutoPosition;
172  pSharedInfo->WindowPosition = GuiData->GuiInfo.WindowOrigin;
173 
174  /* Palette */
175  RtlCopyMemory(pSharedInfo->ColorTable,
176  Console->Colors, sizeof(Console->Colors));
177 
178  /* Copy the original title of the console and null-terminate it */
179  RtlCopyMemory(pSharedInfo->ConsoleTitle,
180  Console->OriginalTitle.Buffer,
181  Console->OriginalTitle.Length);
182 
183  pSharedInfo->ConsoleTitle[Console->OriginalTitle.Length / sizeof(WCHAR)] = UNICODE_NULL;
184 
185 
186  /* Unmap the view */
187  NtUnmapViewOfSection(NtCurrentProcess(), pSharedInfo);
188 
189  /* Duplicate the section handle for the client */
191  hSection,
192  ProcessData->Process->ProcessHandle,
193  &hClientSection,
194  0, 0, DUPLICATE_SAME_ACCESS);
195  if (!NT_SUCCESS(Status))
196  {
197  DPRINT1("Error: Impossible to duplicate section handle for client, Status = 0x%08lx\n", Status);
198  goto Quit;
199  }
200 
201  /* For the settings of a particular console, use the shared client section handle as the thread parameter */
202  ThreadParameter = (PVOID)hClientSection;
203  }
204  else
205  {
206  /* For the default settings, use the console window handle as the thread parameter */
207  ThreadParameter = (PVOID)GuiData->hWindow;
208  }
209 
210  /* Start the console control panel applet */
211  _SEH2_TRY
212  {
213  HANDLE Thread = NULL;
214 
215  _SEH2_TRY
216  {
217  Thread = CreateRemoteThread(ProcessData->Process->ProcessHandle, NULL, 0,
218  ProcessData->PropRoutine,
219  ThreadParameter, 0, NULL);
220  if (NULL == Thread)
221  {
222  DPRINT1("Failed thread creation (Error: 0x%x)\n", GetLastError());
223  }
224  else
225  {
226  DPRINT("ProcessData->PropRoutine remote thread creation succeeded, ProcessId = %x, Process = 0x%p\n",
227  ProcessData->Process->ClientId.UniqueProcess, ProcessData->Process);
228  }
229  }
231  {
233  }
234  _SEH2_END;
235  }
237  {
239  DPRINT1("GuiConsoleShowConsoleProperties - Caught an exception, Status = 0x%08lx\n", Status);
240  }
241  _SEH2_END;
242 
243 Quit:
244  /* We have finished, close the section handle if any */
245  if (hSection) NtClose(hSection);
246 
248  return;
249 }
PCONSOLE_PROCESS_DATA NTAPI ConSrvGetConsoleLeaderProcess(IN PCONSRV_CONSOLE Console)
Definition: console.c:867
#define DEFAULT_SCREEN_ATTRIB
Definition: settings.c:29
STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, size_t cchToCopy)
Definition: strsafe.h:236
NTSTATUS NTAPI NtUnmapViewOfSection(IN HANDLE ProcessHandle, IN PVOID BaseAddress)
Definition: section.c:3780
#define TRUE
Definition: types.h:120
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define CloseHandle
Definition: compat.h:398
USHORT ScreenAttributes
Definition: settings.h:47
NTSTATUS NTAPI NtCreateSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtection OPTIONAL, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL)
Definition: section.c:3371
POINT WindowPosition
Definition: settings.h:34
struct _CONSOLE_STATE_INFO CONSOLE_STATE_INFO
LONG NTSTATUS
Definition: precomp.h:26
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define TEXTMODE_BUFFER
Definition: pccons.c:21
#define PCONSRV_CONSOLE
Definition: conio.h:27
HANDLE UniqueProcess
Definition: compat.h:474
_SEH2_TRY
Definition: create.c:4250
#define SECTION_ALL_ACCESS
Definition: nt_native.h:1293
#define DUPLICATE_SAME_ACCESS
#define SEC_COMMIT
Definition: mmtypes.h:99
#define UNICODE_NULL
COORD ScreenBufferSize
Definition: conio.h:87
COLORREF ColorTable[16]
Definition: settings.h:53
NTSTATUS NTAPI NtMapViewOfSection(IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect)
Definition: section.c:3552
PCONSOLE_SCREEN_BUFFER ActiveBuffer
Definition: conwnd.h:91
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
HANDLE ProcessHandle
Definition: csrsrv.h:46
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
CLIENT_ID ClientId
Definition: csrsrv.h:38
void * PVOID
Definition: retypes.h:9
#define NtCurrentProcess()
Definition: nt_native.h:1657
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
ULONG HistoryBufferSize
Definition: settings.h:50
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
PCSR_PROCESS Process
Definition: consrv.h:43
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
Definition: obhandle.c:3399
INT GetType(BOOL bLocal, LPOSVERSIONINFOEX osvi, LPSERVER_INFO_102 pBuf102)
Definition: gettype.c:129
WCHAR FaceName[LF_FACESIZE]
Definition: settings.h:39
LPTHREAD_START_ROUTINE PropRoutine
Definition: consrv.h:53
Status
Definition: gdiplustypes.h:24
ULONG_PTR SIZE_T
Definition: typedefs.h:78
#define DEFAULT_POPUP_ATTRIB
Definition: settings.c:30
_SEH2_END
Definition: create.c:4424
ULONG NumberOfHistoryBuffers
Definition: settings.h:51
BOOLEAN NTAPI ConDrvValidateConsoleUnsafe(IN PCONSOLE Console, IN CONSOLE_STATE ExpectedState, IN BOOLEAN LockConsole)
Definition: console.c:120
_SEH2_FINALLY
Definition: create.c:4395
WCHAR FaceName[LF_FACESIZE]
Definition: guisettings.h:18
WCHAR ConsoleTitle[ANYSIZE_ARRAY]
Definition: settings.h:58
CConsole Console
#define DPRINT1
Definition: precomp.h:8
GUI_CONSOLE_INFO GuiInfo
Definition: conwnd.h:96
NTSTATUS NTAPI NtDuplicateObject(IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options)
Definition: obhandle.c:3407
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID _In_ ULONG_PTR _In_ SIZE_T _Inout_opt_ PLARGE_INTEGER _Inout_ PSIZE_T ViewSize
Definition: mmfuncs.h:404
COORD ScreenBufferSize
Definition: settings.h:32
PCONSRV_CONSOLE Console
Definition: conwnd.h:90
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:6
USHORT PopupAttributes
Definition: settings.h:48
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:12
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
CONSOLE_CURSOR_INFO CursorInfo
Definition: conio.h:102
struct _TEXTMODE_SCREEN_BUFFER * PTEXTMODE_SCREEN_BUFFER
_In_ const BITMAPINFO _In_ UINT _In_opt_ HANDLE hSection
Definition: wingdi.h:3217
LONGLONG QuadPart
Definition: typedefs.h:112
#define PAGE_READWRITE
Definition: nt_native.h:1304
HANDLE WINAPI CreateRemoteThread(IN HANDLE hProcess, IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:133

Referenced by GuiConsoleHandleSysMenuCommand(), and OnCommand().

◆ GuiConsoleWriteUserSettings()

BOOL GuiConsoleWriteUserSettings ( IN OUT PGUI_CONSOLE_INFO  TermInfo)

Definition at line 31 of file guisettings.c.

32 {
33  /* Do nothing */
34  return TRUE;
35 }
#define TRUE
Definition: types.h:120

Referenced by GuiApplyUserSettings(), and GuiConsoleGetDefaultSettings().