Files
reactos/sdk/lib/conutils/utils.h
Hermès Bélusca-Maïto 2d07d8a7cd [CONUTILS] Improve library build interface; avoid using winuser.h; fix x64 build warnings
conutils\pager.c(658):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
conutils\outstream.c(179),(263):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
conutils\outstream.c(433):
  warning C4267: '=': conversion from 'size_t' to 'INT', possible loss of data
2026-03-28 14:11:23 +01:00

103 lines
2.1 KiB
C

/*
* PROJECT: ReactOS Console Utilities Library
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Base set of functions for loading string resources
* and message strings, and handle type identification.
* COPYRIGHT: Copyright 2017-2021 ReactOS Team
* Copyright 2017-2021 Hermes Belusca-Maito
*/
/**
* @file utils.h
* @ingroup ConUtils
*
* @brief General-purpose utility functions (wrappers around
* or reimplementations of Win32 APIs).
**/
#ifndef __UTILS_H__
#define __UTILS_H__
#pragma once
#ifndef _UNICODE
#error The ConUtils library at the moment only supports compilation with _UNICODE defined!
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Avoid including winuser.h for these definitions */
#ifndef IS_INTRESOURCE
#define IS_INTRESOURCE(i) (((ULONG_PTR)(i) >> 16) == 0)
#endif
#ifndef MAKEINTRESOURCEA
#define MAKEINTRESOURCEA(i) ((LPSTR)(ULONG_PTR)LOWORD(i))
#endif
#ifndef MAKEINTRESOURCEW
#define MAKEINTRESOURCEW(i) ((LPWSTR)(ULONG_PTR)LOWORD(i))
#endif
// #define MAKEINTRESOURCE(i) ((ULONG_PTR)((WORD)(i)))
INT
WINAPI
K32LoadStringExW(
IN HINSTANCE hInstance OPTIONAL,
IN UINT uID,
IN LANGID LanguageId,
OUT LPWSTR lpBuffer,
IN INT nBufferMax);
INT
WINAPI
K32LoadStringW(
IN HINSTANCE hInstance OPTIONAL,
IN UINT uID,
OUT LPWSTR lpBuffer,
IN INT nBufferMax);
/* Override LoadString */
#ifdef LoadString
#undef LoadString
#endif
#define LoadStringW K32LoadStringW
#if defined(UNICODE) || defined(_UNICODE)
#define LoadString LoadStringW
#else
#error The ConUtils library only supports UNICODE at the moment!
#endif // UNICODE
DWORD
WINAPI
FormatMessageSafeW(
IN DWORD dwFlags,
IN LPCVOID lpSource OPTIONAL,
IN DWORD dwMessageId,
IN DWORD dwLanguageId,
OUT LPWSTR lpBuffer,
IN DWORD nSize,
IN va_list *Arguments OPTIONAL);
LANGID
ConSetThreadUILanguage(
IN LANGID LangId OPTIONAL);
BOOL
IsTTYHandle(IN HANDLE hHandle);
BOOL
IsConsoleHandle(IN HANDLE hHandle);
// #include <wincon.h>
#ifdef __cplusplus
}
#endif
#endif /* __UTILS_H__ */
/* EOF */