ScrollConsoleScreenBuffer function Null safety kernel32

int ScrollConsoleScreenBuffer(
  1. int hConsoleOutput,
  2. Pointer<SMALL_RECT> lpScrollRectangle,
  3. Pointer<SMALL_RECT> lpClipRectangle,
  4. COORD dwDestinationOrigin,
  5. Pointer<CHAR_INFO> lpFill
)

Moves a block of data in a screen buffer. The effects of the move can be limited by specifying a clipping rectangle, so the contents of the console screen buffer outside the clipping rectangle are unchanged.

BOOL WINAPI ScrollConsoleScreenBufferW(
  _In_           HANDLE     hConsoleOutput,
  _In_     const SMALL_RECT *lpScrollRectangle,
  _In_opt_ const SMALL_RECT *lpClipRectangle,
  _In_           COORD      dwDestinationOrigin,
  _In_     const CHAR_INFO  *lpFill
);

Implementation

int ScrollConsoleScreenBuffer(
    int hConsoleOutput,
    Pointer<SMALL_RECT> lpScrollRectangle,
    Pointer<SMALL_RECT> lpClipRectangle,
    COORD dwDestinationOrigin,
    Pointer<CHAR_INFO> lpFill) {
  final _ScrollConsoleScreenBuffer = _kernel32.lookupFunction<
      Int32 Function(
          IntPtr hConsoleOutput,
          Pointer<SMALL_RECT> lpScrollRectangle,
          Pointer<SMALL_RECT> lpClipRectangle,
          COORD dwDestinationOrigin,
          Pointer<CHAR_INFO> lpFill),
      int Function(
          int hConsoleOutput,
          Pointer<SMALL_RECT> lpScrollRectangle,
          Pointer<SMALL_RECT> lpClipRectangle,
          COORD dwDestinationOrigin,
          Pointer<CHAR_INFO> lpFill)>('ScrollConsoleScreenBufferW');
  return _ScrollConsoleScreenBuffer(hConsoleOutput, lpScrollRectangle,
      lpClipRectangle, dwDestinationOrigin, lpFill);
}