/*
- * @unimplemented (Undocumented)
+ * @implemented (Undocumented)
+ * @note See http://undoc.airesoft.co.uk/kernel32.dll/SetConsoleCursor.php
*/
BOOL
WINAPI
-SetConsoleCursor(DWORD Unknown0,
- DWORD Unknown1)
+SetConsoleCursor(HANDLE hConsoleOutput,
+ HCURSOR hCursor)
{
- DPRINT1("SetConsoleCursor(0x%x, 0x%x) UNIMPLEMENTED!\n", Unknown0, Unknown1);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
+ NTSTATUS Status;
+ CONSOLE_API_MESSAGE ApiMessage;
+ PCONSOLE_SETCURSOR SetCursorRequest = &ApiMessage.Data.SetCursorRequest;
+
+ SetCursorRequest->OutputHandle = hConsoleOutput;
+ SetCursorRequest->hCursor = hCursor;
+
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
+ NULL,
+ CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetCursor),
+ sizeof(CONSOLE_SETCURSOR));
+ if (!NT_SUCCESS(Status))
+ {
+ BaseSetLastNTError(Status);
+ return FALSE;
+ }
+
+ return TRUE;
}
/*
- * @unimplemented (Undocumented)
+ * @implemented (Undocumented)
+ * @note See http://undoc.airesoft.co.uk/kernel32.dll/SetConsoleMaximumWindowSize.php
+ * Does nothing, returns TRUE only. Checked on Windows Server 2003.
*/
BOOL
WINAPI
-SetConsoleMaximumWindowSize(DWORD Unknown0,
- DWORD Unknown1)
+SetConsoleMaximumWindowSize(HANDLE hConsoleOutput,
+ COORD dwMaximumSize)
{
- DPRINT1("SetConsoleMaximumWindowSize(0x%x, 0x%x) UNIMPLEMENTED!\n", Unknown0, Unknown1);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
+ DPRINT1("SetConsoleMaximumWindowSize(0x%x, {%d, %d}) does nothing\n",
+ hConsoleOutput, dwMaximumSize.X, dwMaximumSize.Y);
+ return TRUE;
}
}
/*
- * @unimplemented (Undocumented)
+ * @implemented (Undocumented)
+ * @note See http://undoc.airesoft.co.uk/kernel32.dll/ShowConsoleCursor.php
*/
-DWORD
+INT
WINAPI
-ShowConsoleCursor(DWORD Unknown0,
- DWORD Unknown1)
+ShowConsoleCursor(HANDLE hConsoleOutput,
+ BOOL bShow)
{
- DPRINT1("ShowConsoleCursor(0x%x, 0x%x) UNIMPLEMENTED!\n", Unknown0, Unknown1);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
+ CONSOLE_API_MESSAGE ApiMessage;
+ PCONSOLE_SHOWCURSOR ShowCursorRequest = &ApiMessage.Data.ShowCursorRequest;
+
+ ShowCursorRequest->OutputHandle = hConsoleOutput;
+ ShowCursorRequest->Show = bShow;
+ ShowCursorRequest->RefCount = 0;
+
+ CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
+ NULL,
+ CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepShowCursor),
+ sizeof(CONSOLE_SHOWCURSOR));
+
+ return ShowCursorRequest->RefCount;
}
CONSOLE_API_MESSAGE ApiMessage;
PCONSOLE_ALLOCCONSOLE AllocConsoleRequest = &ApiMessage.Data.AllocConsoleRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
- LPWSTR AppPath = NULL;
- SIZE_T Length = 0;
if (Parameters->ConsoleHandle)
{
sizeof(CONSOLE_START_INFO),
(PVOID*)&AllocConsoleRequest->ConsoleStartInfo);
-/** Copied from BasepInitConsole **********************************************/
- InitConsoleInfo(AllocConsoleRequest->ConsoleStartInfo);
-
- AppPath = AllocConsoleRequest->ConsoleStartInfo->AppPath;
- Length = min(MAX_PATH, Parameters->ImagePathName.Length / sizeof(WCHAR));
- wcsncpy(AppPath, Parameters->ImagePathName.Buffer, Length);
- AppPath[Length] = L'\0';
-/******************************************************************************/
+ InitConsoleInfo(AllocConsoleRequest->ConsoleStartInfo,
+ &Parameters->ImagePathName);
AllocConsoleRequest->Console = NULL;
AllocConsoleRequest->CtrlDispatcher = ConsoleControlDispatcher;
CONSOLE_API_MESSAGE ApiMessage;
/* Get the Input Code Page */
- ApiMessage.Data.ConsoleCPRequest.InputCP = TRUE;
+ ApiMessage.Data.ConsoleCPRequest.InputCP = TRUE;
+ ApiMessage.Data.ConsoleCPRequest.CodePage = 0;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetCP),
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
- if (!NT_SUCCESS(Status))
- {
- BaseSetLastNTError(Status);
- return 0;
- }
+
+ if (!NT_SUCCESS(Status)) BaseSetLastNTError(Status);
return ApiMessage.Data.ConsoleCPRequest.CodePage;
}
CONSOLE_API_MESSAGE ApiMessage;
/* Set the Input Code Page */
- ApiMessage.Data.ConsoleCPRequest.InputCP = TRUE;
+ ApiMessage.Data.ConsoleCPRequest.InputCP = TRUE;
ApiMessage.Data.ConsoleCPRequest.CodePage = wCodePageID;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetCP),
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
- if (!NT_SUCCESS(Status))
- {
- BaseSetLastNTError(Status);
- }
+
+ if (!NT_SUCCESS(Status)) BaseSetLastNTError(Status);
return NT_SUCCESS(Status);
}
CONSOLE_API_MESSAGE ApiMessage;
/* Get the Output Code Page */
- ApiMessage.Data.ConsoleCPRequest.InputCP = FALSE;
+ ApiMessage.Data.ConsoleCPRequest.InputCP = FALSE;
+ ApiMessage.Data.ConsoleCPRequest.CodePage = 0;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetCP),
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
- if (!NT_SUCCESS(Status))
- {
- BaseSetLastNTError (Status);
- return 0;
- }
+
+ if (!NT_SUCCESS(Status)) BaseSetLastNTError(Status);
return ApiMessage.Data.ConsoleCPRequest.CodePage;
}
CONSOLE_API_MESSAGE ApiMessage;
/* Set the Output Code Page */
- ApiMessage.Data.ConsoleCPRequest.InputCP = FALSE;
+ ApiMessage.Data.ConsoleCPRequest.InputCP = FALSE;
ApiMessage.Data.ConsoleCPRequest.CodePage = wCodePageID;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetCP),
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
- if (!NT_SUCCESS(Status))
- {
- BaseSetLastNTError(Status);
- }
+
+ if (!NT_SUCCESS(Status)) BaseSetLastNTError(Status);
return NT_SUCCESS(Status);
}