# frozen_string_literal: true
module Fiddle
# Adds Windows type aliases to the including class for use with
# Fiddle::Importer.
#
# The aliases added are:
# * ATOM
# * BOOL
# * BYTE
# * DWORD
# * DWORD32
# * DWORD64
# * HANDLE
# * HDC
# * HINSTANCE
# * HWND
# * LPCSTR
# * LPSTR
# * PBYTE
# * PDWORD
# * PHANDLE
# * PVOID
# * PWORD
# * UCHAR
# * UINT
# * ULONG
# * WORD
module Win32Types
def included(m) # :nodoc:
# https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types
m.module_eval{
typealias "ATOM", "WORD"
typealias "BOOL", "int"
typealias "BYTE", "unsigned char"
typealias "DWORD", "unsigned long"
typealias "DWORD32", "uint32_t"
typealias "DWORD64", "uint64_t"
typealias "HANDLE", "PVOID"
typealias "HDC", "HANDLE"
typealias "HINSTANCE", "HANDLE"
typealias "HWND", "HANDLE"
typealias "LPCSTR", "const char *"
typealias "LPSTR", "char *"
typealias "PBYTE", "BYTE *"
typealias "PDWORD", "DWORD *"
typealias "PHANDLE", "HANDLE *"
typealias "PVOID", "void *"
typealias "PWORD", "WORD *"
typealias "UCHAR", "unsigned char"
typealias "UINT", "unsigned int"
typealias "ULONG", "unsigned long"
typealias "WORD", "unsigned short"
}
end
module_function :included
end
# Adds basic type aliases to the including class for use with Fiddle::Importer.
#
# The aliases added are +uint+ and +u_int+ (unsigned int) and
# +ulong+ and +u_long+ (unsigned long)
module BasicTypes
def included(m) # :nodoc:
m.module_eval{
typealias "uint", "unsigned int"
typealias "u_int", "unsigned int"
typealias "ulong", "unsigned long"
typealias "u_long", "unsigned long"
}
end
module_function :included
end
end