win32-def
Version:
win32 definitions for node-ffi
222 lines (212 loc) • 10.8 kB
text/typescript
// windows data types for ref module https://github.com/TooTallNate/ref
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751
import { config } from './config.js'
import { Def } from './def.enum.js'
const { _WIN64 } = config
/**
* @link https://docs.microsoft.com/en-us/windows/win32/secauthz/access-mask-format
*/
export const ACCESS_MASK: Def.int32 = Def.int32
export const ATOM: Def.uint16 = Def.uint16
export const DWORD: Def.uint32 = Def.uint32
export const ptr: Def.uint32Ptr | Def.uint64Ptr = _WIN64 ? Def.uint64Ptr : Def.uint32Ptr
export const PVOID: Def.voidPtr = Def.voidPtr
/**
* `uint32` or `uint64` used as value usage (memory address) instead of PVOID (Buffer),
* Use `HANDLE` (number) for params definition of the api,
* @see https://stackoverflow.com/questions/18266626/what-is-the-range-of-a-windows-handle-on-a-64-bits-application/29526711#29526711
*/
export const HANDLE: Def.uint32 | Def.uint64 = _WIN64 ? Def.uint64 : Def.uint32
/**
* `HANDLE_PVOID` (Buffer) can be used for definition of Struct,
*/
export const HANDLE_PVOID: Def.voidPtr = PVOID
export const LONG_PTR: Def.int32 | Def.int64 = _WIN64 ? Def.int64 : Def.int32
export const ULONG_PTR: Def.int32 | Def.int64 = _WIN64 ? Def.int64 : Def.int32
export const VOID: Def.void = Def.void
export const WCHAR: Def.uint16 = Def.uint16
export const WORD: Def.int16 = Def.int16
export const BOOL: Def.int32 = Def.int32
export const BOOLEAN: Def.bool = Def.bool
export const BYTE: Def.byte = Def.byte
export const CALLBACK: Def.uint32Ptr | Def.uint64Ptr = ptr // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633573(v=vs.85).aspx
export const CCHAR: Def.uint8 = Def.uint8
export const CHAR: Def.uint8 = Def.uint8
export const COLORREF: Def.uint32 = DWORD
// export const CONST;
export const DWORDLONG: Def.uint64 = Def.uint64
export const DWORD_PTR: Def.int32 | Def.int64 = ULONG_PTR
export const DWORD32: Def.uint32 = Def.uint32
export const DWORD64: Def.uint64 = Def.uint64
export const FLOAT: Def.float = Def.float
export const HACCEL: Def.uint32 | Def.uint64 = HANDLE
export const HALF_PTR: Def.int16 | Def.int32 = _WIN64 ? Def.int32 : Def.int16
export const HBITMAP: Def.uint32 | Def.uint64 = HANDLE
export const HBRUSH: Def.uint32 | Def.uint64 = HANDLE
export const HCOLORSPACE: Def.uint32 | Def.uint64 = HANDLE
export const HCONV: Def.uint32 | Def.uint64 = HANDLE
export const HCONVLIST: Def.uint32 | Def.uint64 = HANDLE
export const HCURSOR: Def.uint32 | Def.uint64 = HANDLE
export const HDC: Def.uint32 | Def.uint64 = HANDLE
export const HDDEDATA: Def.uint32 | Def.uint64 = HANDLE
export const HDESK: Def.uint32 | Def.uint64 = HANDLE
export const HDROP: Def.uint32 | Def.uint64 = HANDLE
export const HDWP: Def.uint32 | Def.uint64 = HANDLE
export const HENHMETAFILE: Def.uint32 | Def.uint64 = HANDLE
export const HFILE: Def.uint32 | Def.uint64 = HANDLE
export const HFONT: Def.uint32 | Def.uint64 = HANDLE
export const HGDIOBJ: Def.uint32 | Def.uint64 = HANDLE
export const HGLOBAL: Def.uint32 | Def.uint64 = HANDLE
export const HHOOK: Def.uint32 | Def.uint64 = HANDLE
export const HICON: Def.uint32 | Def.uint64 = HANDLE
export const HINSTANCE: Def.uint32 | Def.uint64 = HANDLE
export const HKEY: Def.uint32 | Def.uint64 = HANDLE
export const HKL: Def.uint32 | Def.uint64 = HANDLE
export const HLOCAL: Def.uint32 | Def.uint64 = HANDLE
export const HMENU: Def.uint32 | Def.uint64 = HANDLE
export const HMETAFILE: Def.uint32 | Def.uint64 = HANDLE
export const HMODULE: Def.uint32 | Def.uint64 = HINSTANCE
export const HMONITOR: Def.uint32 | Def.uint64 = HANDLE
export const HPALETTE: Def.uint32 | Def.uint64 = HANDLE
export const HPEN: Def.uint32 | Def.uint64 = HANDLE
export const HRESULT: Def.long = Def.long
export const HRGN: Def.uint32 | Def.uint64 = HANDLE
export const HRSRC: Def.uint32 | Def.uint64 = HANDLE
export const HSZ: Def.uint32 | Def.uint64 = HANDLE
export const HWINEVENTHOOK: Def.uint32 | Def.uint64 = HANDLE
export const HWINSTA: Def.uint32 | Def.uint64 = HANDLE
export const HWND: Def.uint32 | Def.uint64 = HANDLE
/** A 32-bit signed integer */
export const INT: Def.int = Def.int
export const INT_PTR: Def.int32Ptr | Def.int64Ptr = _WIN64 ? Def.int64Ptr : Def.int32Ptr
export const INT8: Def.int8 = Def.int8
export const INT16: Def.int16 = Def.int16
export const INT32: Def.int32 = Def.int32
export const INT64: Def.int64 = Def.int64
export const LANGID: Def.int16 = WORD
export const LCID: Def.uint32 = DWORD
export const LCTYPE: Def.uint32 = DWORD
export const LGRPID: Def.uint32 = DWORD
export const LONG: Def.long = Def.long
export const LONGLONG: Def.longlong = Def.longlong
export const LONG32: Def.int32 = Def.int32
export const LONG64: Def.int64 = Def.int64
export const LPARAM: Def.int32 | Def.int64 = LONG_PTR
export const LPBOOL: Def.int32 = BOOL
export const LPBYTE: Def.bytePtr = Def.bytePtr
export const LPCOLORREF: Def.uint32 = DWORD
export const LPCSTR: Def.int8Ptr = Def.int8Ptr
export const LPCWSTR: Def.int16Ptr = Def.int16Ptr
export const LPCTSTR: Def.int16Ptr = Def.int16Ptr
export const LPVOID: Def.voidPtr = Def.voidPtr
export const LPCVOID: Def.voidPtr = LPVOID
export const LPDWORD: Def.uint16Ptr = Def.uint16Ptr
export const LPHANDLE: Def.int32Ptr | Def.int64Ptr = _WIN64 ? Def.int64Ptr : Def.int32Ptr
export const LPINT: Def.uint32Ptr | Def.uint64Ptr = ptr
export const LPLONG: Def.int32Ptr = Def.int32Ptr
export const LPSTR: Def.charPtr = Def.charPtr
export const LPWSTR: Def.uint16Ptr = Def.uint16Ptr
export const LPTSTR: Def.uint16Ptr = Def.uint16Ptr
export const LPWORD: Def.uint16Ptr = Def.uint16Ptr
export const LRESULT: Def.int32 | Def.int64 = LONG_PTR
export const NTSTATUS: Def.uint32 = Def.uint32
export const PBOOL: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PBOOLEAN: Def.boolPtr = Def.boolPtr
export const PBYTE: Def.bytePtr = Def.bytePtr
export const PCHAR: Def.charPtr = Def.charPtr
export const PCSTR: Def.uint8Ptr = Def.uint8Ptr
export const PCTSTR: Def.int8Ptr | Def.int16Ptr = _WIN64 ? Def.int16Ptr : Def.int8Ptr
export const PCWSTR: Def.uint16Ptr = Def.uint16Ptr
export const PDWORD: Def.uint32Ptr = Def.uint32Ptr
export const PDWORDLONG: Def.uint64Ptr = Def.uint64Ptr
export const PDWORD_PTR: Def.int32 | Def.int64 = DWORD_PTR
export const PDWORD32: Def.uint32Ptr = Def.uint32Ptr
export const PDWORD64: Def.uint64Ptr = Def.uint64Ptr
export const PFLOAT: Def.floatPtr = Def.floatPtr
export const PHALF_PTR: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PHANDLE: Def.uint32PtrPtr | Def.uint64PtrPtr = _WIN64 ? Def.uint64PtrPtr : Def.uint32PtrPtr
export const PHKEY: Def.uint32PtrPtr | Def.uint64PtrPtr = _WIN64 ? Def.uint64PtrPtr : Def.uint32PtrPtr
export const PINT: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PINT_PTR: Def.intPtrPtr = Def.intPtrPtr
export const PINT8: Def.int8Ptr = Def.int8Ptr
export const PINT16: Def.int16Ptr = Def.int16Ptr
export const PINT32: Def.int32Ptr = Def.int32Ptr
export const PINT64: Def.int64Ptr = Def.int64Ptr
export const PLCID: Def.uint32Ptr = Def.uint32Ptr
export const PLONG: Def.longPtr = Def.longPtr
export const PLONGLONG: Def.int64Ptr = Def.int64Ptr
export const PLONG_PTR: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PLONG32: Def.int32Ptr = Def.int32Ptr
export const PLONG64: Def.int64Ptr = Def.int64Ptr
// ? A 32-bit pointer. On a 32-bit system, this is a native pointer.
// On a 64-bit system, this is a truncated 64-bit pointer.
export const POINTER_32: Def.int32Ptr = _WIN64 ? Def.int32Ptr : Def.int32Ptr
// ? A 64-bit pointer. On a 64-bit system, this is a native pointer.
// On a 32-bit system, this is a sign-extended 32-bit pointer.
export const POINTER_64: Def.int32Ptr | Def.int64Ptr = _WIN64 ? Def.int64Ptr : Def.int32Ptr
export const POINTER_SIGNED: Def.uint32Ptr | Def.uint64Ptr = ptr
export const POINTER_UNSIGNED: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PSHORT: Def.int16Ptr = Def.int16Ptr
export const PSIZE_T: Def.int32 | Def.int64 = ULONG_PTR
export const PSSIZE_T: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PSTR: Def.charPtr = Def.charPtr
export const PTBYTE: Def.int16Ptr = Def.int16Ptr
export const PTCHAR: Def.uint16Ptr = Def.uint16Ptr
export const PTSTR: Def.uint16Ptr = Def.uint16Ptr
export const PUCHAR: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PUHALF_PTR: Def.uint32Ptr | Def.uint64Ptr = ptr
export const PUINT: Def.uintPtr = Def.uintPtr
export const PUINT_PTR: Def.uintPtrPtr = Def.uintPtrPtr
export const PUINT8: Def.uint8Ptr = Def.uint8Ptr
export const PUINT16: Def.uint16Ptr = Def.uint16Ptr
export const PUINT32: Def.uint32Ptr = Def.uint32Ptr
export const PUINT64: Def.uint64Ptr = Def.uint64Ptr
export const PULONG: Def.uintPtr = Def.uintPtr
export const PULONGLONG: Def.uint64Ptr = Def.uint64Ptr
export const PULONG_PTR: Def.uint64PtrPtr = Def.uint64PtrPtr
export const PULONG32: Def.uintPtr = Def.uintPtr
export const PULONG64: Def.uint64Ptr = Def.uint64Ptr
export const PUSHORT: Def.uint16Ptr = Def.uint16Ptr
export const PWCHAR: Def.uint16Ptr = Def.uint16Ptr
export const PWORD: Def.uint16Ptr = Def.uint16Ptr
export const PWSTR: Def.uint16Ptr = Def.uint16Ptr
export const QWORD: Def.uint64 = Def.uint64
export const SC_HANDLE: Def.uint32 | Def.uint64 = HANDLE
export const SC_LOCK: Def.voidPtr = LPVOID
export const SERVICE_STATUS_HANDLE: Def.uint32 | Def.uint64 = HANDLE
export const SHORT: Def.int16 = Def.int16
export const SIZE_T: Def.int32 | Def.int64 = ULONG_PTR
export const SSIZE_T: Def.int32 | Def.int64 = LONG_PTR
export const TBYTE: Def.int16 = Def.int16
export const TCHAR: Def.uint16 = Def.uint16
export const UCHAR: Def.uchar = Def.uchar
export const UHALF_PTR: Def.uint16 | Def.uint32 = _WIN64 ? Def.uint32 : Def.uint16
export const UINT: Def.uint = Def.uint
export const UINT_PTR: Def.uint32 | Def.uint64 = _WIN64 ? Def.uint64 : Def.uint32
export const UINT8: Def.uint8 = Def.uint8
export const UINT16: Def.uint16 = Def.uint16
export const UINT32: Def.uint32 = Def.uint32
export const UINT64: Def.uint64 = Def.uint64
export const ULONG: Def.uint = Def.uint
export const ULONGLONG: Def.uint64 = Def.uint64
export const ULONG32: Def.uint32 = Def.uint32
export const ULONG64: Def.uint64 = Def.uint64
export const USHORT: Def.ushort = Def.ushort
export const USN: Def.longlong = LONGLONG
// export const WINAPI;
export const WINEVENTPROC: Def.uint32Ptr | Def.uint64Ptr = ptr
export const WNDENUMPROC: Def.uint32Ptr | Def.uint64Ptr = ptr
export const WNDPROC: Def.voidPtr = Def.voidPtr
export const DLGPROC: Def.voidPtr = Def.voidPtr
/**
* Note: original be typedef UINT_PTR WPARAM;
* CALLBACK WNDCLASSEX.lpfnWndProc may pass negative number and cause process exit.
*/
export const WPARAM: Def.uint32 | Def.uint64 = UINT_PTR
// from https://koffi.dev/input
export const va_list = 'str16'
/**
* For 'str16' from https://koffi.dev/input
*/
export const WString = 'str16'
export const String = 'str'