- IO_STATUS_BLOCK IoStatusBlock;
- PCHAR Buffer;
- COORD *pCoord;
- PCHAR pText;
- NTSTATUS Status;
- ULONG i;
-
- Buffer = (CHAR*) RtlAllocateHeap(
- ProcessHeap,
- 0,
- nLength + sizeof(COORD));
- pCoord = (COORD *)Buffer;
- pText = (PCHAR)(pCoord + 1);
-
- *pCoord = dwWriteCoord;
-
- /* FIXME: use real unicode->oem conversion */
- for (i = 0; i < nLength; i++)
- pText[i] = (CHAR)lpCharacter[i];
-
- Status = NtDeviceIoControlFile(
- hConsoleOutput,
- NULL,
- NULL,
- NULL,
- &IoStatusBlock,
- IOCTL_CONSOLE_WRITE_OUTPUT_CHARACTER,
- NULL,
- 0,
- Buffer,
- nLength + sizeof(COORD));
-
- RtlFreeHeap(
- ProcessHeap,
- 0,
- Buffer);
- if (!NT_SUCCESS(Status))
- return FALSE;
-
- *lpNumberOfCharsWritten = IoStatusBlock.Information;
- return TRUE;
+ IO_STATUS_BLOCK IoStatusBlock;
+ PCHAR Buffer;
+ COORD *pCoord;
+ PCHAR pText;
+ NTSTATUS Status;
+ ULONG i;
+
+ Buffer = (CHAR*)RtlAllocateHeap(ProcessHeap,
+ 0,
+ nLength + sizeof(COORD));
+ pCoord = (COORD *)Buffer;
+ pText = (PCHAR)(pCoord + 1);
+
+ *pCoord = dwWriteCoord;
+
+ /* FIXME: use real unicode->oem conversion */
+ for (i = 0; i < nLength; i++)
+ pText[i] = (CHAR)lpCharacter[i];
+
+ Status = NtDeviceIoControlFile(hConsoleOutput,
+ NULL,
+ NULL,
+ NULL,
+ &IoStatusBlock,
+ IOCTL_CONSOLE_WRITE_OUTPUT_CHARACTER,
+ NULL,
+ 0,
+ Buffer,
+ nLength + sizeof(COORD));
+
+ RtlFreeHeap(ProcessHeap, 0, Buffer);
+ if (!NT_SUCCESS(Status))
+ return FALSE;
+
+ *lpNumberOfCharsWritten = IoStatusBlock.Information;
+ return TRUE;