#![allow(non_camel_case_types)]
use std::ffi;
pub type BYTE = ffi::c_uchar;
pub type CHAR = ffi::c_char;
pub type WCHAR = ffi::c_ushort;
pub type SHORT = ffi::c_short;
pub type USHORT = ffi::c_ushort;
pub type INT = ffi::c_int;
pub type UINT = ffi::c_uint;
pub type LONG = ffi::c_long;
pub type ULONG = ffi::c_ulong;
pub type BOOL = ffi::c_int;
pub type BOOLEAN = ffi::c_uchar;
pub type FLOAT = ffi::c_float;
pub type DOUBLE = ffi::c_double;
pub type WORD = ffi::c_ushort;
pub type DWORD = ffi::c_ulong;
pub type SIZE_T = usize;
pub type SSIZE_T = isize;
pub type ATOM = ffi::c_ushort;
pub type PVOID = *mut ffi::c_void;
pub type LPVOID = *mut ffi::c_void;
pub type LPCVOID = *const ffi::c_void;
pub type DWORD_PTR = usize;
pub type LONG_PTR = isize;
pub type ULONG_PTR = usize;
pub type INT_PTR = isize;
pub type UINT_PTR = usize;
#[cfg(target_pointer_width = "32")]
pub type HALF_PTR = ffi::c_short;
#[cfg(target_pointer_width = "64")]
pub type HALF_PTR = ffi::c_int;
#[cfg(target_pointer_width = "32")]
pub type UHALF_PTR = ffi::c_ushort;
#[cfg(target_pointer_width = "64")]
pub type UHALF_PTR = ffi::c_uint;
pub type PCSTR = *const ffi::c_char;
pub type LPCSTR = *const ffi::c_char;
pub type LPWSTR = *mut WCHAR;
pub type LPCWSTR = *const WCHAR;
pub type HANDLE = *const ffi::c_void;
pub type HACCEL = *const ffi::c_void;
pub type HBITMAP = *const ffi::c_void;
pub type HBRUSH = *const ffi::c_void;
pub type HCOLORSPACE = *const ffi::c_void;
pub type HCONV = *const ffi::c_void;
pub type HCONVLIST = *const ffi::c_void;
pub type HICON = *const ffi::c_void;
pub type HCURSOR = *const ffi::c_void;
pub type HDC = *const ffi::c_void;
pub type HDDEDATA = *const ffi::c_void;
pub type HDESK = *const ffi::c_void;
pub type HDROP = *const ffi::c_void;
pub type HDWP = *const ffi::c_void;
pub type HENHMETAFILE = *const ffi::c_void;
pub type HFILE = *const ffi::c_void;
pub type HFONT = *const ffi::c_void;
pub type HGDIOBJ = *const ffi::c_void;
pub type HGLOBAL = *const ffi::c_void;
pub type HHOOL = *const ffi::c_void;
pub type HINSTANCE = *const ffi::c_void;
pub type HKEY = *const ffi::c_void;
pub type HKL = *const ffi::c_void;
pub type HLOCAL = *const ffi::c_void;
pub type HMENU = *const ffi::c_void;
pub type HMETAFILE = *const ffi::c_void;
pub type HMODULE = *const ffi::c_void;
pub type HMONITOR = *const ffi::c_void;
pub type HPALETTE = *const ffi::c_void;
pub type HPEN = *const ffi::c_void;
pub type HRESULT = *const ffi::c_void;
pub type HRGN = *const ffi::c_void;
pub type HRSRC = *const ffi::c_void;
pub type HSZ = *const ffi::c_void;
pub type HWINSTA = *const ffi::c_void;
pub type HWND = *const ffi::c_void;
pub type LPARAM = LONG_PTR;
pub type WPARAM = UINT_PTR;
pub type WNDPROC = Option<unsafe extern "system" fn(HWND, UINT, WPARAM, LPARAM) -> LRESULT>;
pub type DLGPROC = Option<unsafe extern "system" fn(HWND, UINT, WPARAM, LPARAM) -> INT_PTR>;
pub type TIMERPROC = Option<unsafe extern "system" fn(HWND, UINT, UINT_PTR, DWORD)>;
pub type LRESULT = LONG_PTR;