mirror of
https://github.com/reactos/reactos.git
synced 2024-09-10 12:54:51 +00:00
75 lines
1.8 KiB
C
75 lines
1.8 KiB
C
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS Console Utilities Library
|
|
* FILE: sdk/lib/conutils/pager.h
|
|
* PURPOSE: Console/terminal paging functionality.
|
|
* PROGRAMMERS: - Hermes Belusca-Maito (for the library);
|
|
* - All programmers who wrote the different console applications
|
|
* from which I took those functions and improved them.
|
|
*/
|
|
|
|
#ifndef __PAGER_H__
|
|
#define __PAGER_H__
|
|
|
|
#ifndef _UNICODE
|
|
#error The ConUtils library at the moment only supports compilation with _UNICODE defined!
|
|
#endif
|
|
|
|
|
|
// #include <wincon.h>
|
|
|
|
|
|
typedef struct _CON_PAGER
|
|
{
|
|
PCON_SCREEN Screen;
|
|
|
|
// TODO: Add more properties. Maybe those extra parameters
|
|
// of PAGE_PROMPT could go there?
|
|
|
|
/* Used to count number of lines since last pause */
|
|
DWORD LineCount;
|
|
} CON_PAGER, *PCON_PAGER;
|
|
|
|
#define INIT_CON_PAGER(pScreen) {(pScreen), 0}
|
|
|
|
#define InitializeConPager(pPager, pScreen) \
|
|
do { \
|
|
(pPager)->Screen = (pScreen); \
|
|
(pPager)->LineCount = 0; \
|
|
} while (0)
|
|
|
|
// Pager, Done, Total
|
|
typedef BOOL (__stdcall *PAGE_PROMPT)(IN PCON_PAGER, IN DWORD, IN DWORD);
|
|
|
|
BOOL
|
|
ConWritePaging(
|
|
IN PCON_PAGER Pager,
|
|
IN PAGE_PROMPT PagePrompt,
|
|
IN BOOL StartPaging,
|
|
IN PTCHAR szStr,
|
|
IN DWORD len);
|
|
|
|
BOOL
|
|
ConPutsPaging(
|
|
IN PCON_PAGER Pager,
|
|
IN PAGE_PROMPT PagePrompt,
|
|
IN BOOL StartPaging,
|
|
IN LPTSTR szStr);
|
|
|
|
BOOL
|
|
ConResPagingEx(
|
|
IN PCON_PAGER Pager,
|
|
IN PAGE_PROMPT PagePrompt,
|
|
IN BOOL StartPaging,
|
|
IN HINSTANCE hInstance OPTIONAL,
|
|
IN UINT uID);
|
|
|
|
BOOL
|
|
ConResPaging(
|
|
IN PCON_PAGER Pager,
|
|
IN PAGE_PROMPT PagePrompt,
|
|
IN BOOL StartPaging,
|
|
IN UINT uID);
|
|
|
|
#endif /* __PAGER_H__ */
|