summaryrefslogtreecommitdiff
path: root/vendor/windows-sys/src/Windows/Win32/UI/Input
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/windows-sys/src/Windows/Win32/UI/Input')
-rw-r--r--vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs1802
-rw-r--r--vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs987
-rw-r--r--vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs219
-rw-r--r--vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs134
-rw-r--r--vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs182
-rw-r--r--vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs302
6 files changed, 3626 insertions, 0 deletions
diff --git a/vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs b/vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs
new file mode 100644
index 0000000..0013288
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs
@@ -0,0 +1,1802 @@
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmAssociateContext(param0 : super::super::super::Foundation:: HWND, param1 : super::super::super::Globalization:: HIMC) -> super::super::super::Globalization:: HIMC);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmAssociateContextEx(param0 : super::super::super::Foundation:: HWND, param1 : super::super::super::Globalization:: HIMC, param2 : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmConfigureIMEA(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Foundation:: HWND, param2 : u32, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmConfigureIMEW(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Foundation:: HWND, param2 : u32, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmCreateContext() -> super::super::super::Globalization:: HIMC);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmCreateIMCC(param0 : u32) -> super::super::super::Globalization:: HIMCC);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmCreateSoftKeyboard(param0 : u32, param1 : super::super::super::Foundation:: HWND, param2 : i32, param3 : i32) -> super::super::super::Foundation:: HWND);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmDestroyContext(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmDestroyIMCC(param0 : super::super::super::Globalization:: HIMCC) -> super::super::super::Globalization:: HIMCC);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDestroySoftKeyboard(param0 : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDisableIME(param0 : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDisableLegacyIME() -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDisableTextFrameService(idthread : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmEnumInputContext(idthread : u32, lpfn : IMCENUMPROC, lparam : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmEnumRegisterWordA(param0 : super::super::TextServices:: HKL, param1 : REGISTERWORDENUMPROCA, lpszreading : ::windows_sys::core::PCSTR, param3 : u32, lpszregister : ::windows_sys::core::PCSTR, param5 : *mut ::core::ffi::c_void) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmEnumRegisterWordW(param0 : super::super::TextServices:: HKL, param1 : REGISTERWORDENUMPROCW, lpszreading : ::windows_sys::core::PCWSTR, param3 : u32, lpszregister : ::windows_sys::core::PCWSTR, param5 : *mut ::core::ffi::c_void) -> u32);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmEscapeA(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, param2 : IME_ESCAPE, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: LRESULT);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmEscapeW(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, param2 : IME_ESCAPE, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: LRESULT);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGenerateMessage(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListA(param0 : super::super::super::Globalization:: HIMC, deindex : u32, lpcandlist : *mut CANDIDATELIST, dwbuflen : u32) -> u32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListCountA(param0 : super::super::super::Globalization:: HIMC, lpdwlistcount : *mut u32) -> u32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListCountW(param0 : super::super::super::Globalization:: HIMC, lpdwlistcount : *mut u32) -> u32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListW(param0 : super::super::super::Globalization:: HIMC, deindex : u32, lpcandlist : *mut CANDIDATELIST, dwbuflen : u32) -> u32);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetCandidateWindow(param0 : super::super::super::Globalization:: HIMC, param1 : u32, lpcandidate : *mut CANDIDATEFORM) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetCompositionFontA(param0 : super::super::super::Globalization:: HIMC, lplf : *mut super::super::super::Graphics::Gdi:: LOGFONTA) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetCompositionFontW(param0 : super::super::super::Globalization:: HIMC, lplf : *mut super::super::super::Graphics::Gdi:: LOGFONTW) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCompositionStringA(param0 : super::super::super::Globalization:: HIMC, param1 : IME_COMPOSITION_STRING, lpbuf : *mut ::core::ffi::c_void, dwbuflen : u32) -> i32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCompositionStringW(param0 : super::super::super::Globalization:: HIMC, param1 : IME_COMPOSITION_STRING, lpbuf : *mut ::core::ffi::c_void, dwbuflen : u32) -> i32);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetCompositionWindow(param0 : super::super::super::Globalization:: HIMC, lpcompform : *mut COMPOSITIONFORM) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetContext(param0 : super::super::super::Foundation:: HWND) -> super::super::super::Globalization:: HIMC);
+#[cfg(all(feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmGetConversionListA(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, lpsrc : ::windows_sys::core::PCSTR, lpdst : *mut CANDIDATELIST, dwbuflen : u32, uflag : GET_CONVERSION_LIST_FLAG) -> u32);
+#[cfg(all(feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmGetConversionListW(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, lpsrc : ::windows_sys::core::PCWSTR, lpdst : *mut CANDIDATELIST, dwbuflen : u32, uflag : GET_CONVERSION_LIST_FLAG) -> u32);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetConversionStatus(param0 : super::super::super::Globalization:: HIMC, lpfdwconversion : *mut IME_CONVERSION_MODE, lpfdwsentence : *mut IME_SENTENCE_MODE) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmGetDefaultIMEWnd(param0 : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetDescriptionA(param0 : super::super::TextServices:: HKL, lpszdescription : ::windows_sys::core::PSTR, ubuflen : u32) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetDescriptionW(param0 : super::super::TextServices:: HKL, lpszdescription : ::windows_sys::core::PWSTR, ubuflen : u32) -> u32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetGuideLineA(param0 : super::super::super::Globalization:: HIMC, dwindex : GET_GUIDE_LINE_TYPE, lpbuf : ::windows_sys::core::PSTR, dwbuflen : u32) -> u32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetGuideLineW(param0 : super::super::super::Globalization:: HIMC, dwindex : GET_GUIDE_LINE_TYPE, lpbuf : ::windows_sys::core::PWSTR, dwbuflen : u32) -> u32);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmGetHotKey(param0 : u32, lpumodifiers : *mut u32, lpuvkey : *mut u32, phkl : *mut super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetIMCCLockCount(param0 : super::super::super::Globalization:: HIMCC) -> u32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetIMCCSize(param0 : super::super::super::Globalization:: HIMCC) -> u32);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetIMCLockCount(param0 : super::super::super::Globalization:: HIMC) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetIMEFileNameA(param0 : super::super::TextServices:: HKL, lpszfilename : ::windows_sys::core::PSTR, ubuflen : u32) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetIMEFileNameW(param0 : super::super::TextServices:: HKL, lpszfilename : ::windows_sys::core::PWSTR, ubuflen : u32) -> u32);
+#[cfg(all(feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetImeMenuItemsA(param0 : super::super::super::Globalization:: HIMC, param1 : u32, param2 : u32, lpimeparentmenu : *mut IMEMENUITEMINFOA, lpimemenu : *mut IMEMENUITEMINFOA, dwsize : u32) -> u32);
+#[cfg(all(feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetImeMenuItemsW(param0 : super::super::super::Globalization:: HIMC, param1 : u32, param2 : u32, lpimeparentmenu : *mut IMEMENUITEMINFOW, lpimemenu : *mut IMEMENUITEMINFOW, dwsize : u32) -> u32);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetOpenStatus(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetProperty(param0 : super::super::TextServices:: HKL, param1 : u32) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetRegisterWordStyleA(param0 : super::super::TextServices:: HKL, nitem : u32, lpstylebuf : *mut STYLEBUFA) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetRegisterWordStyleW(param0 : super::super::TextServices:: HKL, nitem : u32, lpstylebuf : *mut STYLEBUFW) -> u32);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetStatusWindowPos(param0 : super::super::super::Globalization:: HIMC, lpptpos : *mut super::super::super::Foundation:: POINT) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmGetVirtualKey(param0 : super::super::super::Foundation:: HWND) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmInstallIMEA(lpszimefilename : ::windows_sys::core::PCSTR, lpszlayouttext : ::windows_sys::core::PCSTR) -> super::super::TextServices:: HKL);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmInstallIMEW(lpszimefilename : ::windows_sys::core::PCWSTR, lpszlayouttext : ::windows_sys::core::PCWSTR) -> super::super::TextServices:: HKL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmIsIME(param0 : super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmIsUIMessageA(param0 : super::super::super::Foundation:: HWND, param1 : u32, param2 : super::super::super::Foundation:: WPARAM, param3 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmIsUIMessageW(param0 : super::super::super::Foundation:: HWND, param1 : u32, param2 : super::super::super::Foundation:: WPARAM, param3 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmLockIMC(param0 : super::super::super::Globalization:: HIMC) -> *mut INPUTCONTEXT);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmLockIMCC(param0 : super::super::super::Globalization:: HIMCC) -> *mut ::core::ffi::c_void);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmNotifyIME(param0 : super::super::super::Globalization:: HIMC, dwaction : NOTIFY_IME_ACTION, dwindex : NOTIFY_IME_INDEX, dwvalue : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Globalization")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmReSizeIMCC(param0 : super::super::super::Globalization:: HIMCC, param1 : u32) -> super::super::super::Globalization:: HIMCC);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmRegisterWordA(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCSTR, param2 : u32, lpszregister : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmRegisterWordW(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCWSTR, param2 : u32, lpszregister : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmReleaseContext(param0 : super::super::super::Foundation:: HWND, param1 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmRequestMessageA(param0 : super::super::super::Globalization:: HIMC, param1 : super::super::super::Foundation:: WPARAM, param2 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: LRESULT);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmRequestMessageW(param0 : super::super::super::Globalization:: HIMC, param1 : super::super::super::Foundation:: WPARAM, param2 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: LRESULT);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCandidateWindow(param0 : super::super::super::Globalization:: HIMC, lpcandidate : *const CANDIDATEFORM) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmSetCompositionFontA(param0 : super::super::super::Globalization:: HIMC, lplf : *const super::super::super::Graphics::Gdi:: LOGFONTA) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmSetCompositionFontW(param0 : super::super::super::Globalization:: HIMC, lplf : *const super::super::super::Graphics::Gdi:: LOGFONTW) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCompositionStringA(param0 : super::super::super::Globalization:: HIMC, dwindex : SET_COMPOSITION_STRING_TYPE, lpcomp : *const ::core::ffi::c_void, dwcomplen : u32, lpread : *const ::core::ffi::c_void, dwreadlen : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCompositionStringW(param0 : super::super::super::Globalization:: HIMC, dwindex : SET_COMPOSITION_STRING_TYPE, lpcomp : *const ::core::ffi::c_void, dwcomplen : u32, lpread : *const ::core::ffi::c_void, dwreadlen : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCompositionWindow(param0 : super::super::super::Globalization:: HIMC, lpcompform : *const COMPOSITIONFORM) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetConversionStatus(param0 : super::super::super::Globalization:: HIMC, param1 : IME_CONVERSION_MODE, param2 : IME_SENTENCE_MODE) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmSetHotKey(param0 : u32, param1 : u32, param2 : u32, param3 : super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetOpenStatus(param0 : super::super::super::Globalization:: HIMC, param1 : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetStatusWindowPos(param0 : super::super::super::Globalization:: HIMC, lpptpos : *const super::super::super::Foundation:: POINT) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmShowSoftKeyboard(param0 : super::super::super::Foundation:: HWND, param1 : i32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmSimulateHotKey(param0 : super::super::super::Foundation:: HWND, param1 : IME_HOTKEY_IDENTIFIER) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmUnlockIMC(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmUnlockIMCC(param0 : super::super::super::Globalization:: HIMCC) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmUnregisterWordA(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCSTR, param2 : u32, lpszunregister : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmUnregisterWordW(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCWSTR, param2 : u32, lpszunregister : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL);
+pub type IActiveIME = *mut ::core::ffi::c_void;
+pub type IActiveIME2 = *mut ::core::ffi::c_void;
+pub type IActiveIMMApp = *mut ::core::ffi::c_void;
+pub type IActiveIMMIME = *mut ::core::ffi::c_void;
+pub type IActiveIMMMessagePumpOwner = *mut ::core::ffi::c_void;
+pub type IActiveIMMRegistrar = *mut ::core::ffi::c_void;
+pub type IEnumInputContext = *mut ::core::ffi::c_void;
+pub type IEnumRegisterWordA = *mut ::core::ffi::c_void;
+pub type IEnumRegisterWordW = *mut ::core::ffi::c_void;
+pub type IFEClassFactory = *mut ::core::ffi::c_void;
+pub type IFECommon = *mut ::core::ffi::c_void;
+pub type IFEDictionary = *mut ::core::ffi::c_void;
+pub type IFELanguage = *mut ::core::ffi::c_void;
+pub type IImePad = *mut ::core::ffi::c_void;
+pub type IImePadApplet = *mut ::core::ffi::c_void;
+pub type IImePlugInDictDictionaryList = *mut ::core::ffi::c_void;
+pub type IImeSpecifyApplets = *mut ::core::ffi::c_void;
+pub const ATTR_CONVERTED: u32 = 2u32;
+pub const ATTR_FIXEDCONVERTED: u32 = 5u32;
+pub const ATTR_INPUT: u32 = 0u32;
+pub const ATTR_INPUT_ERROR: u32 = 4u32;
+pub const ATTR_TARGET_CONVERTED: u32 = 1u32;
+pub const ATTR_TARGET_NOTCONVERTED: u32 = 3u32;
+pub const CATID_MSIME_IImePadApplet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7566cad1_4ec9_4478_9fe9_8ed766619edf);
+pub const CATID_MSIME_IImePadApplet1000: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe081e1d6_2389_43cb_b66f_609f823d9f9c);
+pub const CATID_MSIME_IImePadApplet1200: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa47fb5fc_7d15_4223_a789_b781bf9ae667);
+pub const CATID_MSIME_IImePadApplet900: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfaae51bf_5e5b_4a1d_8de1_17c1d9e1728d);
+pub const CATID_MSIME_IImePadApplet_VER7: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a0f8e31_c3ee_11d1_afef_00805f0c8b6d);
+pub const CATID_MSIME_IImePadApplet_VER80: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56f7a792_fef1_11d3_8463_00c04f7a06e5);
+pub const CATID_MSIME_IImePadApplet_VER81: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x656520b0_bb88_11d4_84c0_00c04f7a06e5);
+pub const CActiveIMM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4955dd33_b159_11d0_8fcf_00aa006bcc59);
+pub const CFS_CANDIDATEPOS: u32 = 64u32;
+pub const CFS_DEFAULT: u32 = 0u32;
+pub const CFS_EXCLUDE: u32 = 128u32;
+pub const CFS_FORCE_POSITION: u32 = 32u32;
+pub const CFS_POINT: u32 = 2u32;
+pub const CFS_RECT: u32 = 1u32;
+pub const CHARINFO_APPLETID_MASK: u32 = 4278190080u32;
+pub const CHARINFO_CHARID_MASK: u32 = 65535u32;
+pub const CHARINFO_FEID_MASK: u32 = 15728640u32;
+pub const CLSID_ImePlugInDictDictionaryList_CHS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7bf0129b_5bef_4de4_9b0b_5edb66ac2fa6);
+pub const CLSID_ImePlugInDictDictionaryList_JPN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4fe2776b_b0f9_4396_b5fc_e9d4cf1ec195);
+pub const CLSID_VERSION_DEPENDENT_MSIME_JAPANESE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a91029e_aa49_471b_aee7_7d332785660d);
+pub const CPS_CANCEL: NOTIFY_IME_INDEX = 4u32;
+pub const CPS_COMPLETE: NOTIFY_IME_INDEX = 1u32;
+pub const CPS_CONVERT: NOTIFY_IME_INDEX = 2u32;
+pub const CPS_REVERT: NOTIFY_IME_INDEX = 3u32;
+pub const CS_INSERTCHAR: u32 = 8192u32;
+pub const CS_NOMOVECARET: u32 = 16384u32;
+pub const E_LARGEINPUT: u32 = 51u32;
+pub const E_NOCAND: u32 = 48u32;
+pub const E_NOTENOUGH_BUFFER: u32 = 49u32;
+pub const E_NOTENOUGH_WDD: u32 = 50u32;
+pub const FEID_CHINESE_HONGKONG: u32 = 3u32;
+pub const FEID_CHINESE_SIMPLIFIED: u32 = 2u32;
+pub const FEID_CHINESE_SINGAPORE: u32 = 4u32;
+pub const FEID_CHINESE_TRADITIONAL: u32 = 1u32;
+pub const FEID_JAPANESE: u32 = 5u32;
+pub const FEID_KOREAN: u32 = 6u32;
+pub const FEID_KOREAN_JOHAB: u32 = 7u32;
+pub const FEID_NONE: u32 = 0u32;
+pub const FELANG_CLMN_FIXD: u32 = 32u32;
+pub const FELANG_CLMN_FIXR: u32 = 16u32;
+pub const FELANG_CLMN_NOPBREAK: u32 = 8u32;
+pub const FELANG_CLMN_NOWBREAK: u32 = 2u32;
+pub const FELANG_CLMN_PBREAK: u32 = 4u32;
+pub const FELANG_CLMN_WBREAK: u32 = 1u32;
+pub const FELANG_CMODE_AUTOMATIC: u32 = 134217728u32;
+pub const FELANG_CMODE_BESTFIRST: u32 = 16384u32;
+pub const FELANG_CMODE_BOPOMOFO: u32 = 64u32;
+pub const FELANG_CMODE_CONVERSATION: u32 = 536870912u32;
+pub const FELANG_CMODE_FULLWIDTHOUT: u32 = 32u32;
+pub const FELANG_CMODE_HALFWIDTHOUT: u32 = 16u32;
+pub const FELANG_CMODE_HANGUL: u32 = 128u32;
+pub const FELANG_CMODE_HIRAGANAOUT: u32 = 0u32;
+pub const FELANG_CMODE_KATAKANAOUT: u32 = 8u32;
+pub const FELANG_CMODE_MERGECAND: u32 = 4096u32;
+pub const FELANG_CMODE_MONORUBY: u32 = 2u32;
+pub const FELANG_CMODE_NAME: u32 = 268435456u32;
+pub const FELANG_CMODE_NOINVISIBLECHAR: u32 = 1073741824u32;
+pub const FELANG_CMODE_NONE: u32 = 16777216u32;
+pub const FELANG_CMODE_NOPRUNING: u32 = 4u32;
+pub const FELANG_CMODE_PHRASEPREDICT: u32 = 268435456u32;
+pub const FELANG_CMODE_PINYIN: u32 = 256u32;
+pub const FELANG_CMODE_PLAURALCLAUSE: u32 = 33554432u32;
+pub const FELANG_CMODE_PRECONV: u32 = 512u32;
+pub const FELANG_CMODE_RADICAL: u32 = 1024u32;
+pub const FELANG_CMODE_ROMAN: u32 = 8192u32;
+pub const FELANG_CMODE_SINGLECONVERT: u32 = 67108864u32;
+pub const FELANG_CMODE_UNKNOWNREADING: u32 = 2048u32;
+pub const FELANG_CMODE_USENOREVWORDS: u32 = 32768u32;
+pub const FELANG_INVALD_PO: u32 = 65535u32;
+pub const FELANG_REQ_CONV: u32 = 65536u32;
+pub const FELANG_REQ_RECONV: u32 = 131072u32;
+pub const FELANG_REQ_REV: u32 = 196608u32;
+pub const FID_MSIME_KMS_DEL_KEYLIST: u32 = 4u32;
+pub const FID_MSIME_KMS_FUNCDESC: u32 = 9u32;
+pub const FID_MSIME_KMS_GETMAP: u32 = 6u32;
+pub const FID_MSIME_KMS_GETMAPFAST: u32 = 11u32;
+pub const FID_MSIME_KMS_GETMAPSEAMLESS: u32 = 10u32;
+pub const FID_MSIME_KMS_INIT: u32 = 2u32;
+pub const FID_MSIME_KMS_INVOKE: u32 = 7u32;
+pub const FID_MSIME_KMS_NOTIFY: u32 = 5u32;
+pub const FID_MSIME_KMS_SETMAP: u32 = 8u32;
+pub const FID_MSIME_KMS_TERM: u32 = 3u32;
+pub const FID_MSIME_KMS_VERSION: u32 = 1u32;
+pub const FID_MSIME_VERSION: u32 = 0u32;
+pub const FID_RECONVERT_VERSION: u32 = 268435456u32;
+pub const GCL_CONVERSION: GET_CONVERSION_LIST_FLAG = 1u32;
+pub const GCL_REVERSECONVERSION: GET_CONVERSION_LIST_FLAG = 2u32;
+pub const GCL_REVERSE_LENGTH: GET_CONVERSION_LIST_FLAG = 3u32;
+pub const GCSEX_CANCELRECONVERT: u32 = 268435456u32;
+pub const GCS_COMPATTR: IME_COMPOSITION_STRING = 16u32;
+pub const GCS_COMPCLAUSE: IME_COMPOSITION_STRING = 32u32;
+pub const GCS_COMPREADATTR: IME_COMPOSITION_STRING = 2u32;
+pub const GCS_COMPREADCLAUSE: IME_COMPOSITION_STRING = 4u32;
+pub const GCS_COMPREADSTR: IME_COMPOSITION_STRING = 1u32;
+pub const GCS_COMPSTR: IME_COMPOSITION_STRING = 8u32;
+pub const GCS_CURSORPOS: IME_COMPOSITION_STRING = 128u32;
+pub const GCS_DELTASTART: IME_COMPOSITION_STRING = 256u32;
+pub const GCS_RESULTCLAUSE: IME_COMPOSITION_STRING = 4096u32;
+pub const GCS_RESULTREADCLAUSE: IME_COMPOSITION_STRING = 1024u32;
+pub const GCS_RESULTREADSTR: IME_COMPOSITION_STRING = 512u32;
+pub const GCS_RESULTSTR: IME_COMPOSITION_STRING = 2048u32;
+pub const GGL_INDEX: GET_GUIDE_LINE_TYPE = 2u32;
+pub const GGL_LEVEL: GET_GUIDE_LINE_TYPE = 1u32;
+pub const GGL_PRIVATE: GET_GUIDE_LINE_TYPE = 4u32;
+pub const GGL_STRING: GET_GUIDE_LINE_TYPE = 3u32;
+pub const GL_ID_CANNOTSAVE: u32 = 17u32;
+pub const GL_ID_CHOOSECANDIDATE: u32 = 40u32;
+pub const GL_ID_INPUTCODE: u32 = 38u32;
+pub const GL_ID_INPUTRADICAL: u32 = 37u32;
+pub const GL_ID_INPUTREADING: u32 = 36u32;
+pub const GL_ID_INPUTSYMBOL: u32 = 39u32;
+pub const GL_ID_NOCONVERT: u32 = 32u32;
+pub const GL_ID_NODICTIONARY: u32 = 16u32;
+pub const GL_ID_NOMODULE: u32 = 1u32;
+pub const GL_ID_PRIVATE_FIRST: u32 = 32768u32;
+pub const GL_ID_PRIVATE_LAST: u32 = 65535u32;
+pub const GL_ID_READINGCONFLICT: u32 = 35u32;
+pub const GL_ID_REVERSECONVERSION: u32 = 41u32;
+pub const GL_ID_TOOMANYSTROKE: u32 = 34u32;
+pub const GL_ID_TYPINGERROR: u32 = 33u32;
+pub const GL_ID_UNKNOWN: u32 = 0u32;
+pub const GL_LEVEL_ERROR: u32 = 2u32;
+pub const GL_LEVEL_FATAL: u32 = 1u32;
+pub const GL_LEVEL_INFORMATION: u32 = 4u32;
+pub const GL_LEVEL_NOGUIDELINE: u32 = 0u32;
+pub const GL_LEVEL_WARNING: u32 = 3u32;
+pub const IACE_CHILDREN: u32 = 1u32;
+pub const IACE_DEFAULT: u32 = 16u32;
+pub const IACE_IGNORENOCONTEXT: u32 = 32u32;
+pub const IFEC_S_ALREADY_DEFAULT: ::windows_sys::core::HRESULT = 291840i32;
+pub const IFED_ACTIVE_DICT: IMEFMT = 13i32;
+pub const IFED_ATOK10: IMEFMT = 15i32;
+pub const IFED_ATOK9: IMEFMT = 14i32;
+pub const IFED_E_INVALID_FORMAT: ::windows_sys::core::HRESULT = -2147192063i32;
+pub const IFED_E_NOT_FOUND: ::windows_sys::core::HRESULT = -2147192064i32;
+pub const IFED_E_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2147192057i32;
+pub const IFED_E_NOT_USER_DIC: ::windows_sys::core::HRESULT = -2147192058i32;
+pub const IFED_E_NO_ENTRY: ::windows_sys::core::HRESULT = -2147192060i32;
+pub const IFED_E_OPEN_FAILED: ::windows_sys::core::HRESULT = -2147192062i32;
+pub const IFED_E_REGISTER_DISCONNECTED: ::windows_sys::core::HRESULT = -2147192053i32;
+pub const IFED_E_REGISTER_FAILED: ::windows_sys::core::HRESULT = -2147192059i32;
+pub const IFED_E_REGISTER_ILLEGAL_POS: ::windows_sys::core::HRESULT = -2147192055i32;
+pub const IFED_E_REGISTER_IMPROPER_WORD: ::windows_sys::core::HRESULT = -2147192054i32;
+pub const IFED_E_USER_COMMENT: ::windows_sys::core::HRESULT = -2147192056i32;
+pub const IFED_E_WRITE_FAILED: ::windows_sys::core::HRESULT = -2147192061i32;
+pub const IFED_MSIME2_BIN_SYSTEM: IMEFMT = 1i32;
+pub const IFED_MSIME2_BIN_USER: IMEFMT = 2i32;
+pub const IFED_MSIME2_TEXT_USER: IMEFMT = 3i32;
+pub const IFED_MSIME95_BIN_SYSTEM: IMEFMT = 4i32;
+pub const IFED_MSIME95_BIN_USER: IMEFMT = 5i32;
+pub const IFED_MSIME95_TEXT_USER: IMEFMT = 6i32;
+pub const IFED_MSIME97_BIN_SYSTEM: IMEFMT = 7i32;
+pub const IFED_MSIME97_BIN_USER: IMEFMT = 8i32;
+pub const IFED_MSIME97_TEXT_USER: IMEFMT = 9i32;
+pub const IFED_MSIME98_BIN_SYSTEM: IMEFMT = 10i32;
+pub const IFED_MSIME98_BIN_USER: IMEFMT = 11i32;
+pub const IFED_MSIME98_SYSTEM_CE: IMEFMT = 20i32;
+pub const IFED_MSIME98_TEXT_USER: IMEFMT = 12i32;
+pub const IFED_MSIME_BIN_SYSTEM: IMEFMT = 21i32;
+pub const IFED_MSIME_BIN_USER: IMEFMT = 22i32;
+pub const IFED_MSIME_TEXT_USER: IMEFMT = 23i32;
+pub const IFED_NEC_AI_: IMEFMT = 16i32;
+pub const IFED_PIME2_BIN_STANDARD_SYSTEM: IMEFMT = 26i32;
+pub const IFED_PIME2_BIN_SYSTEM: IMEFMT = 25i32;
+pub const IFED_PIME2_BIN_USER: IMEFMT = 24i32;
+pub const IFED_POS_ADJECTIVE: u32 = 4u32;
+pub const IFED_POS_ADJECTIVE_VERB: u32 = 8u32;
+pub const IFED_POS_ADNOUN: u32 = 32u32;
+pub const IFED_POS_ADVERB: u32 = 16u32;
+pub const IFED_POS_AFFIX: u32 = 1536u32;
+pub const IFED_POS_ALL: u32 = 131071u32;
+pub const IFED_POS_AUXILIARY_VERB: u32 = 32768u32;
+pub const IFED_POS_CONJUNCTION: u32 = 64u32;
+pub const IFED_POS_DEPENDENT: u32 = 114688u32;
+pub const IFED_POS_IDIOMS: u32 = 4096u32;
+pub const IFED_POS_INDEPENDENT: u32 = 255u32;
+pub const IFED_POS_INFLECTIONALSUFFIX: u32 = 256u32;
+pub const IFED_POS_INTERJECTION: u32 = 128u32;
+pub const IFED_POS_NONE: u32 = 0u32;
+pub const IFED_POS_NOUN: u32 = 1u32;
+pub const IFED_POS_PARTICLE: u32 = 16384u32;
+pub const IFED_POS_PREFIX: u32 = 512u32;
+pub const IFED_POS_SUB_VERB: u32 = 65536u32;
+pub const IFED_POS_SUFFIX: u32 = 1024u32;
+pub const IFED_POS_SYMBOLS: u32 = 8192u32;
+pub const IFED_POS_TANKANJI: u32 = 2048u32;
+pub const IFED_POS_VERB: u32 = 2u32;
+pub const IFED_REG_ALL: u32 = 7u32;
+pub const IFED_REG_AUTO: u32 = 2u32;
+pub const IFED_REG_DEL: IMEREG = 2i32;
+pub const IFED_REG_GRAMMAR: u32 = 4u32;
+pub const IFED_REG_HEAD: IMEREG = 0i32;
+pub const IFED_REG_NONE: u32 = 0u32;
+pub const IFED_REG_TAIL: IMEREG = 1i32;
+pub const IFED_REG_USER: u32 = 1u32;
+pub const IFED_REL_ALL: IMEREL = 24i32;
+pub const IFED_REL_DE: IMEREL = 5i32;
+pub const IFED_REL_FUKU_YOUGEN: IMEREL = 12i32;
+pub const IFED_REL_GA: IMEREL = 2i32;
+pub const IFED_REL_HE: IMEREL = 9i32;
+pub const IFED_REL_IDEOM: IMEREL = 11i32;
+pub const IFED_REL_KARA: IMEREL = 7i32;
+pub const IFED_REL_KEIDOU1_YOUGEN: IMEREL = 14i32;
+pub const IFED_REL_KEIDOU2_YOUGEN: IMEREL = 15i32;
+pub const IFED_REL_KEIYOU_TARU_YOUGEN: IMEREL = 21i32;
+pub const IFED_REL_KEIYOU_TO_YOUGEN: IMEREL = 20i32;
+pub const IFED_REL_KEIYOU_YOUGEN: IMEREL = 13i32;
+pub const IFED_REL_MADE: IMEREL = 8i32;
+pub const IFED_REL_NI: IMEREL = 4i32;
+pub const IFED_REL_NO: IMEREL = 1i32;
+pub const IFED_REL_NONE: IMEREL = 0i32;
+pub const IFED_REL_RENSOU: IMEREL = 19i32;
+pub const IFED_REL_RENTAI_MEI: IMEREL = 18i32;
+pub const IFED_REL_TAIGEN: IMEREL = 16i32;
+pub const IFED_REL_TO: IMEREL = 10i32;
+pub const IFED_REL_UNKNOWN1: IMEREL = 22i32;
+pub const IFED_REL_UNKNOWN2: IMEREL = 23i32;
+pub const IFED_REL_WO: IMEREL = 3i32;
+pub const IFED_REL_YORI: IMEREL = 6i32;
+pub const IFED_REL_YOUGEN: IMEREL = 17i32;
+pub const IFED_SELECT_ALL: u32 = 15u32;
+pub const IFED_SELECT_COMMENT: u32 = 8u32;
+pub const IFED_SELECT_DISPLAY: u32 = 2u32;
+pub const IFED_SELECT_NONE: u32 = 0u32;
+pub const IFED_SELECT_POS: u32 = 4u32;
+pub const IFED_SELECT_READING: u32 = 1u32;
+pub const IFED_S_COMMENT_CHANGED: ::windows_sys::core::HRESULT = 291331i32;
+pub const IFED_S_EMPTY_DICTIONARY: ::windows_sys::core::HRESULT = 291329i32;
+pub const IFED_S_MORE_ENTRIES: ::windows_sys::core::HRESULT = 291328i32;
+pub const IFED_S_WORD_EXISTS: ::windows_sys::core::HRESULT = 291330i32;
+pub const IFED_TYPE_ALL: u32 = 31u32;
+pub const IFED_TYPE_ENGLISH: u32 = 16u32;
+pub const IFED_TYPE_GENERAL: u32 = 1u32;
+pub const IFED_TYPE_NAMEPLACE: u32 = 2u32;
+pub const IFED_TYPE_NONE: u32 = 0u32;
+pub const IFED_TYPE_REVERSE: u32 = 8u32;
+pub const IFED_TYPE_SPEECH: u32 = 4u32;
+pub const IFED_UCT_MAX: IMEUCT = 4i32;
+pub const IFED_UCT_NONE: IMEUCT = 0i32;
+pub const IFED_UCT_STRING_SJIS: IMEUCT = 1i32;
+pub const IFED_UCT_STRING_UNICODE: IMEUCT = 2i32;
+pub const IFED_UCT_USER_DEFINED: IMEUCT = 3i32;
+pub const IFED_UNKNOWN: IMEFMT = 0i32;
+pub const IFED_VJE_20: IMEFMT = 19i32;
+pub const IFED_WX_II: IMEFMT = 17i32;
+pub const IFED_WX_III: IMEFMT = 18i32;
+pub const IGIMIF_RIGHTMENU: u32 = 1u32;
+pub const IGIMII_CMODE: u32 = 1u32;
+pub const IGIMII_CONFIGURE: u32 = 4u32;
+pub const IGIMII_HELP: u32 = 16u32;
+pub const IGIMII_INPUTTOOLS: u32 = 64u32;
+pub const IGIMII_OTHER: u32 = 32u32;
+pub const IGIMII_SMODE: u32 = 2u32;
+pub const IGIMII_TOOLS: u32 = 8u32;
+pub const IMC_CLOSESTATUSWINDOW: u32 = 33u32;
+pub const IMC_GETCANDIDATEPOS: u32 = 7u32;
+pub const IMC_GETCOMPOSITIONFONT: u32 = 9u32;
+pub const IMC_GETCOMPOSITIONWINDOW: u32 = 11u32;
+pub const IMC_GETSOFTKBDFONT: u32 = 17u32;
+pub const IMC_GETSOFTKBDPOS: u32 = 19u32;
+pub const IMC_GETSOFTKBDSUBTYPE: u32 = 21u32;
+pub const IMC_GETSTATUSWINDOWPOS: u32 = 15u32;
+pub const IMC_OPENSTATUSWINDOW: u32 = 34u32;
+pub const IMC_SETCANDIDATEPOS: u32 = 8u32;
+pub const IMC_SETCOMPOSITIONFONT: u32 = 10u32;
+pub const IMC_SETCOMPOSITIONWINDOW: u32 = 12u32;
+pub const IMC_SETCONVERSIONMODE: u32 = 2u32;
+pub const IMC_SETOPENSTATUS: u32 = 6u32;
+pub const IMC_SETSENTENCEMODE: u32 = 4u32;
+pub const IMC_SETSOFTKBDDATA: u32 = 24u32;
+pub const IMC_SETSOFTKBDFONT: u32 = 18u32;
+pub const IMC_SETSOFTKBDPOS: u32 = 20u32;
+pub const IMC_SETSOFTKBDSUBTYPE: u32 = 22u32;
+pub const IMC_SETSTATUSWINDOWPOS: u32 = 16u32;
+pub const IMEFAREASTINFO_TYPE_COMMENT: u32 = 2u32;
+pub const IMEFAREASTINFO_TYPE_COSTTIME: u32 = 3u32;
+pub const IMEFAREASTINFO_TYPE_DEFAULT: u32 = 0u32;
+pub const IMEFAREASTINFO_TYPE_READING: u32 = 1u32;
+pub const IMEKEYCTRLMASK_ALT: u32 = 1u32;
+pub const IMEKEYCTRLMASK_CTRL: u32 = 2u32;
+pub const IMEKEYCTRLMASK_SHIFT: u32 = 4u32;
+pub const IMEKEYCTRL_DOWN: u32 = 0u32;
+pub const IMEKEYCTRL_UP: u32 = 1u32;
+pub const IMEKMS_2NDLEVEL: u32 = 4u32;
+pub const IMEKMS_CANDIDATE: u32 = 6u32;
+pub const IMEKMS_COMPOSITION: u32 = 1u32;
+pub const IMEKMS_IMEOFF: u32 = 3u32;
+pub const IMEKMS_INPTGL: u32 = 5u32;
+pub const IMEKMS_NOCOMPOSITION: u32 = 0u32;
+pub const IMEKMS_SELECTION: u32 = 2u32;
+pub const IMEKMS_TYPECAND: u32 = 7u32;
+pub const IMEMENUITEM_STRING_SIZE: u32 = 80u32;
+pub const IMEMOUSERET_NOTHANDLED: i32 = -1i32;
+pub const IMEMOUSE_LDOWN: u32 = 1u32;
+pub const IMEMOUSE_MDOWN: u32 = 4u32;
+pub const IMEMOUSE_NONE: u32 = 0u32;
+pub const IMEMOUSE_RDOWN: u32 = 2u32;
+pub const IMEMOUSE_VERSION: u32 = 255u32;
+pub const IMEMOUSE_WDOWN: u32 = 32u32;
+pub const IMEMOUSE_WUP: u32 = 16u32;
+pub const IMEPADCTRL_CARETBACKSPACE: u32 = 10u32;
+pub const IMEPADCTRL_CARETBOTTOM: u32 = 9u32;
+pub const IMEPADCTRL_CARETDELETE: u32 = 11u32;
+pub const IMEPADCTRL_CARETLEFT: u32 = 6u32;
+pub const IMEPADCTRL_CARETRIGHT: u32 = 7u32;
+pub const IMEPADCTRL_CARETSET: u32 = 5u32;
+pub const IMEPADCTRL_CARETTOP: u32 = 8u32;
+pub const IMEPADCTRL_CLEARALL: u32 = 4u32;
+pub const IMEPADCTRL_CONVERTALL: u32 = 1u32;
+pub const IMEPADCTRL_DETERMINALL: u32 = 2u32;
+pub const IMEPADCTRL_DETERMINCHAR: u32 = 3u32;
+pub const IMEPADCTRL_INSERTFULLSPACE: u32 = 14u32;
+pub const IMEPADCTRL_INSERTHALFSPACE: u32 = 15u32;
+pub const IMEPADCTRL_INSERTSPACE: u32 = 13u32;
+pub const IMEPADCTRL_OFFIME: u32 = 17u32;
+pub const IMEPADCTRL_OFFPRECONVERSION: u32 = 19u32;
+pub const IMEPADCTRL_ONIME: u32 = 16u32;
+pub const IMEPADCTRL_ONPRECONVERSION: u32 = 18u32;
+pub const IMEPADCTRL_PHONETICCANDIDATE: u32 = 20u32;
+pub const IMEPADCTRL_PHRASEDELETE: u32 = 12u32;
+pub const IMEPADREQ_CHANGESTRING: IME_PAD_REQUEST_FLAGS = 4113u32;
+pub const IMEPADREQ_CHANGESTRINGCANDIDATEINFO: u32 = 4111u32;
+pub const IMEPADREQ_CHANGESTRINGINFO: u32 = 4115u32;
+pub const IMEPADREQ_DELETESTRING: IME_PAD_REQUEST_FLAGS = 4112u32;
+pub const IMEPADREQ_FIRST: u32 = 4096u32;
+pub const IMEPADREQ_FORCEIMEPADWINDOWSHOW: IME_PAD_REQUEST_FLAGS = 4117u32;
+pub const IMEPADREQ_GETAPPLETDATA: u32 = 4106u32;
+pub const IMEPADREQ_GETAPPLETUISTYLE: IME_PAD_REQUEST_FLAGS = 4121u32;
+pub const IMEPADREQ_GETAPPLHWND: IME_PAD_REQUEST_FLAGS = 4116u32;
+pub const IMEPADREQ_GETCOMPOSITIONSTRING: IME_PAD_REQUEST_FLAGS = 4102u32;
+pub const IMEPADREQ_GETCOMPOSITIONSTRINGID: u32 = 4109u32;
+pub const IMEPADREQ_GETCOMPOSITIONSTRINGINFO: IME_PAD_REQUEST_FLAGS = 4108u32;
+pub const IMEPADREQ_GETCONVERSIONSTATUS: IME_PAD_REQUEST_FLAGS = 4126u32;
+pub const IMEPADREQ_GETCURRENTIMEINFO: IME_PAD_REQUEST_FLAGS = 4128u32;
+pub const IMEPADREQ_GETCURRENTUILANGID: u32 = 4120u32;
+pub const IMEPADREQ_GETDEFAULTUILANGID: IME_PAD_REQUEST_FLAGS = 4119u32;
+pub const IMEPADREQ_GETSELECTEDSTRING: u32 = 4103u32;
+pub const IMEPADREQ_GETVERSION: IME_PAD_REQUEST_FLAGS = 4127u32;
+pub const IMEPADREQ_INSERTITEMCANDIDATE: u32 = 4099u32;
+pub const IMEPADREQ_INSERTSTRING: IME_PAD_REQUEST_FLAGS = 4097u32;
+pub const IMEPADREQ_INSERTSTRINGCANDIDATE: u32 = 4098u32;
+pub const IMEPADREQ_INSERTSTRINGCANDIDATEINFO: u32 = 4110u32;
+pub const IMEPADREQ_INSERTSTRINGINFO: u32 = 4114u32;
+pub const IMEPADREQ_ISAPPLETACTIVE: IME_PAD_REQUEST_FLAGS = 4123u32;
+pub const IMEPADREQ_ISIMEPADWINDOWVISIBLE: IME_PAD_REQUEST_FLAGS = 4124u32;
+pub const IMEPADREQ_POSTMODALNOTIFY: IME_PAD_REQUEST_FLAGS = 4118u32;
+pub const IMEPADREQ_SENDCONTROL: IME_PAD_REQUEST_FLAGS = 4100u32;
+pub const IMEPADREQ_SENDKEYCONTROL: u32 = 4101u32;
+pub const IMEPADREQ_SETAPPLETDATA: u32 = 4105u32;
+pub const IMEPADREQ_SETAPPLETMINMAXSIZE: IME_PAD_REQUEST_FLAGS = 4125u32;
+pub const IMEPADREQ_SETAPPLETSIZE: IME_PAD_REQUEST_FLAGS = 4104u32;
+pub const IMEPADREQ_SETAPPLETUISTYLE: IME_PAD_REQUEST_FLAGS = 4122u32;
+pub const IMEPADREQ_SETTITLEFONT: u32 = 4107u32;
+pub const IMEPN_ACTIVATE: u32 = 257u32;
+pub const IMEPN_APPLYCAND: u32 = 267u32;
+pub const IMEPN_APPLYCANDEX: u32 = 268u32;
+pub const IMEPN_CONFIG: u32 = 264u32;
+pub const IMEPN_FIRST: u32 = 256u32;
+pub const IMEPN_HELP: u32 = 265u32;
+pub const IMEPN_HIDE: u32 = 261u32;
+pub const IMEPN_INACTIVATE: u32 = 258u32;
+pub const IMEPN_QUERYCAND: u32 = 266u32;
+pub const IMEPN_SETTINGCHANGED: u32 = 269u32;
+pub const IMEPN_SHOW: u32 = 260u32;
+pub const IMEPN_SIZECHANGED: u32 = 263u32;
+pub const IMEPN_SIZECHANGING: u32 = 262u32;
+pub const IMEPN_USER: u32 = 356u32;
+pub const IMEVER_0310: u32 = 196618u32;
+pub const IMEVER_0400: u32 = 262144u32;
+pub const IME_CAND_CODE: u32 = 2u32;
+pub const IME_CAND_MEANING: u32 = 3u32;
+pub const IME_CAND_RADICAL: u32 = 4u32;
+pub const IME_CAND_READ: u32 = 1u32;
+pub const IME_CAND_STROKE: u32 = 5u32;
+pub const IME_CAND_UNKNOWN: u32 = 0u32;
+pub const IME_CHOTKEY_IME_NONIME_TOGGLE: IME_HOTKEY_IDENTIFIER = 16u32;
+pub const IME_CHOTKEY_SHAPE_TOGGLE: IME_HOTKEY_IDENTIFIER = 17u32;
+pub const IME_CHOTKEY_SYMBOL_TOGGLE: IME_HOTKEY_IDENTIFIER = 18u32;
+pub const IME_CMODE_ALPHANUMERIC: IME_CONVERSION_MODE = 0u32;
+pub const IME_CMODE_CHARCODE: IME_CONVERSION_MODE = 32u32;
+pub const IME_CMODE_CHINESE: IME_CONVERSION_MODE = 1u32;
+pub const IME_CMODE_EUDC: IME_CONVERSION_MODE = 512u32;
+pub const IME_CMODE_FIXED: IME_CONVERSION_MODE = 2048u32;
+pub const IME_CMODE_FULLSHAPE: IME_CONVERSION_MODE = 8u32;
+pub const IME_CMODE_HANGEUL: IME_CONVERSION_MODE = 1u32;
+pub const IME_CMODE_HANGUL: IME_CONVERSION_MODE = 1u32;
+pub const IME_CMODE_HANJACONVERT: IME_CONVERSION_MODE = 64u32;
+pub const IME_CMODE_JAPANESE: IME_CONVERSION_MODE = 1u32;
+pub const IME_CMODE_KATAKANA: IME_CONVERSION_MODE = 2u32;
+pub const IME_CMODE_LANGUAGE: IME_CONVERSION_MODE = 3u32;
+pub const IME_CMODE_NATIVE: IME_CONVERSION_MODE = 1u32;
+pub const IME_CMODE_NATIVESYMBOL: IME_CONVERSION_MODE = 128u32;
+pub const IME_CMODE_NOCONVERSION: IME_CONVERSION_MODE = 256u32;
+pub const IME_CMODE_RESERVED: IME_CONVERSION_MODE = 4026531840u32;
+pub const IME_CMODE_ROMAN: IME_CONVERSION_MODE = 16u32;
+pub const IME_CMODE_SOFTKBD: IME_CONVERSION_MODE = 128u32;
+pub const IME_CMODE_SYMBOL: IME_CONVERSION_MODE = 1024u32;
+pub const IME_CONFIG_GENERAL: u32 = 1u32;
+pub const IME_CONFIG_REGISTERWORD: u32 = 2u32;
+pub const IME_CONFIG_SELECTDICTIONARY: u32 = 3u32;
+pub const IME_ESC_AUTOMATA: IME_ESCAPE = 4105u32;
+pub const IME_ESC_GETHELPFILENAME: IME_ESCAPE = 4107u32;
+pub const IME_ESC_GET_EUDC_DICTIONARY: IME_ESCAPE = 4099u32;
+pub const IME_ESC_HANJA_MODE: IME_ESCAPE = 4104u32;
+pub const IME_ESC_IME_NAME: IME_ESCAPE = 4102u32;
+pub const IME_ESC_MAX_KEY: IME_ESCAPE = 4101u32;
+pub const IME_ESC_PRIVATE_FIRST: IME_ESCAPE = 2048u32;
+pub const IME_ESC_PRIVATE_HOTKEY: IME_ESCAPE = 4106u32;
+pub const IME_ESC_PRIVATE_LAST: IME_ESCAPE = 4095u32;
+pub const IME_ESC_QUERY_SUPPORT: IME_ESCAPE = 3u32;
+pub const IME_ESC_RESERVED_FIRST: IME_ESCAPE = 4u32;
+pub const IME_ESC_RESERVED_LAST: IME_ESCAPE = 2047u32;
+pub const IME_ESC_SEQUENCE_TO_INTERNAL: IME_ESCAPE = 4097u32;
+pub const IME_ESC_SET_EUDC_DICTIONARY: IME_ESCAPE = 4100u32;
+pub const IME_ESC_STRING_BUFFER_SIZE: u32 = 80u32;
+pub const IME_ESC_SYNC_HOTKEY: IME_ESCAPE = 4103u32;
+pub const IME_HOTKEY_DSWITCH_FIRST: u32 = 256u32;
+pub const IME_HOTKEY_DSWITCH_LAST: u32 = 287u32;
+pub const IME_HOTKEY_PRIVATE_FIRST: u32 = 512u32;
+pub const IME_HOTKEY_PRIVATE_LAST: u32 = 543u32;
+pub const IME_ITHOTKEY_PREVIOUS_COMPOSITION: IME_HOTKEY_IDENTIFIER = 513u32;
+pub const IME_ITHOTKEY_RECONVERTSTRING: IME_HOTKEY_IDENTIFIER = 515u32;
+pub const IME_ITHOTKEY_RESEND_RESULTSTR: IME_HOTKEY_IDENTIFIER = 512u32;
+pub const IME_ITHOTKEY_UISTYLE_TOGGLE: IME_HOTKEY_IDENTIFIER = 514u32;
+pub const IME_JHOTKEY_CLOSE_OPEN: IME_HOTKEY_IDENTIFIER = 48u32;
+pub const IME_KHOTKEY_ENGLISH: IME_HOTKEY_IDENTIFIER = 82u32;
+pub const IME_KHOTKEY_HANJACONVERT: IME_HOTKEY_IDENTIFIER = 81u32;
+pub const IME_KHOTKEY_SHAPE_TOGGLE: IME_HOTKEY_IDENTIFIER = 80u32;
+pub const IME_PROP_ACCEPT_WIDE_VKEY: u32 = 32u32;
+pub const IME_PROP_AT_CARET: u32 = 65536u32;
+pub const IME_PROP_CANDLIST_START_FROM_1: u32 = 262144u32;
+pub const IME_PROP_COMPLETE_ON_UNSELECT: u32 = 1048576u32;
+pub const IME_PROP_END_UNLOAD: u32 = 1u32;
+pub const IME_PROP_IGNORE_UPKEYS: u32 = 4u32;
+pub const IME_PROP_KBD_CHAR_FIRST: u32 = 2u32;
+pub const IME_PROP_NEED_ALTKEY: u32 = 8u32;
+pub const IME_PROP_NO_KEYS_ON_CLOSE: u32 = 16u32;
+pub const IME_PROP_SPECIAL_UI: u32 = 131072u32;
+pub const IME_PROP_UNICODE: u32 = 524288u32;
+pub const IME_REGWORD_STYLE_EUDC: u32 = 1u32;
+pub const IME_REGWORD_STYLE_USER_FIRST: u32 = 2147483648u32;
+pub const IME_REGWORD_STYLE_USER_LAST: u32 = 4294967295u32;
+pub const IME_SMODE_AUTOMATIC: IME_SENTENCE_MODE = 4u32;
+pub const IME_SMODE_CONVERSATION: IME_SENTENCE_MODE = 16u32;
+pub const IME_SMODE_NONE: IME_SENTENCE_MODE = 0u32;
+pub const IME_SMODE_PHRASEPREDICT: IME_SENTENCE_MODE = 8u32;
+pub const IME_SMODE_PLAURALCLAUSE: IME_SENTENCE_MODE = 1u32;
+pub const IME_SMODE_RESERVED: IME_SENTENCE_MODE = 61440u32;
+pub const IME_SMODE_SINGLECONVERT: IME_SENTENCE_MODE = 2u32;
+pub const IME_SYSINFO_WINLOGON: u32 = 1u32;
+pub const IME_THOTKEY_IME_NONIME_TOGGLE: IME_HOTKEY_IDENTIFIER = 112u32;
+pub const IME_THOTKEY_SHAPE_TOGGLE: IME_HOTKEY_IDENTIFIER = 113u32;
+pub const IME_THOTKEY_SYMBOL_TOGGLE: IME_HOTKEY_IDENTIFIER = 114u32;
+pub const IME_UI_CLASS_NAME_SIZE: u32 = 16u32;
+pub const IMFT_RADIOCHECK: u32 = 1u32;
+pub const IMFT_SEPARATOR: u32 = 2u32;
+pub const IMFT_SUBMENU: u32 = 4u32;
+pub const IMMGWLP_IMC: u32 = 0u32;
+pub const IMMGWL_IMC: u32 = 0u32;
+pub const IMM_ERROR_GENERAL: i32 = -2i32;
+pub const IMM_ERROR_NODATA: i32 = -1i32;
+pub const IMN_CHANGECANDIDATE: u32 = 3u32;
+pub const IMN_CLOSECANDIDATE: u32 = 4u32;
+pub const IMN_CLOSESTATUSWINDOW: u32 = 1u32;
+pub const IMN_GUIDELINE: u32 = 13u32;
+pub const IMN_OPENCANDIDATE: u32 = 5u32;
+pub const IMN_OPENSTATUSWINDOW: u32 = 2u32;
+pub const IMN_PRIVATE: u32 = 14u32;
+pub const IMN_SETCANDIDATEPOS: u32 = 9u32;
+pub const IMN_SETCOMPOSITIONFONT: u32 = 10u32;
+pub const IMN_SETCOMPOSITIONWINDOW: u32 = 11u32;
+pub const IMN_SETCONVERSIONMODE: u32 = 6u32;
+pub const IMN_SETOPENSTATUS: u32 = 8u32;
+pub const IMN_SETSENTENCEMODE: u32 = 7u32;
+pub const IMN_SETSTATUSWINDOWPOS: u32 = 12u32;
+pub const IMN_SOFTKBDDESTROYED: u32 = 17u32;
+pub const IMR_CANDIDATEWINDOW: u32 = 2u32;
+pub const IMR_COMPOSITIONFONT: u32 = 3u32;
+pub const IMR_COMPOSITIONWINDOW: u32 = 1u32;
+pub const IMR_CONFIRMRECONVERTSTRING: u32 = 5u32;
+pub const IMR_DOCUMENTFEED: u32 = 7u32;
+pub const IMR_QUERYCHARPOSITION: u32 = 6u32;
+pub const IMR_RECONVERTSTRING: u32 = 4u32;
+pub const INFOMASK_APPLY_CAND: u32 = 2u32;
+pub const INFOMASK_APPLY_CAND_EX: u32 = 4u32;
+pub const INFOMASK_BLOCK_CAND: u32 = 262144u32;
+pub const INFOMASK_HIDE_CAND: u32 = 131072u32;
+pub const INFOMASK_NONE: u32 = 0u32;
+pub const INFOMASK_QUERY_CAND: u32 = 1u32;
+pub const INFOMASK_STRING_FIX: u32 = 65536u32;
+pub const INIT_COMPFORM: u32 = 16u32;
+pub const INIT_CONVERSION: u32 = 2u32;
+pub const INIT_LOGFONT: u32 = 8u32;
+pub const INIT_SENTENCE: u32 = 4u32;
+pub const INIT_SOFTKBDPOS: u32 = 32u32;
+pub const INIT_STATUSWNDPOS: u32 = 1u32;
+pub const IPACFG_CATEGORY: i32 = 262144i32;
+pub const IPACFG_HELP: i32 = 2i32;
+pub const IPACFG_LANG: i32 = 16i32;
+pub const IPACFG_NONE: i32 = 0i32;
+pub const IPACFG_PROPERTY: i32 = 1i32;
+pub const IPACFG_TITLE: i32 = 65536i32;
+pub const IPACFG_TITLEFONTFACE: i32 = 131072i32;
+pub const IPACID_CHARLIST: u32 = 9u32;
+pub const IPACID_EPWING: u32 = 7u32;
+pub const IPACID_HANDWRITING: u32 = 2u32;
+pub const IPACID_NONE: u32 = 0u32;
+pub const IPACID_OCR: u32 = 8u32;
+pub const IPACID_RADICALSEARCH: u32 = 4u32;
+pub const IPACID_SOFTKEY: u32 = 1u32;
+pub const IPACID_STROKESEARCH: u32 = 3u32;
+pub const IPACID_SYMBOLSEARCH: u32 = 5u32;
+pub const IPACID_USER: u32 = 256u32;
+pub const IPACID_VOICE: u32 = 6u32;
+pub const IPAWS_ENABLED: i32 = 1i32;
+pub const IPAWS_HORIZONTALFIXED: i32 = 512i32;
+pub const IPAWS_MAXHEIGHTFIXED: i32 = 8192i32;
+pub const IPAWS_MAXSIZEFIXED: i32 = 12288i32;
+pub const IPAWS_MAXWIDTHFIXED: i32 = 4096i32;
+pub const IPAWS_MINHEIGHTFIXED: i32 = 131072i32;
+pub const IPAWS_MINSIZEFIXED: i32 = 196608i32;
+pub const IPAWS_MINWIDTHFIXED: i32 = 65536i32;
+pub const IPAWS_SIZEFIXED: i32 = 768i32;
+pub const IPAWS_SIZINGNOTIFY: i32 = 4i32;
+pub const IPAWS_VERTICALFIXED: i32 = 256i32;
+pub const ISC_SHOWUIALL: u32 = 3221225487u32;
+pub const ISC_SHOWUIALLCANDIDATEWINDOW: u32 = 15u32;
+pub const ISC_SHOWUICANDIDATEWINDOW: u32 = 1u32;
+pub const ISC_SHOWUICOMPOSITIONWINDOW: u32 = 2147483648u32;
+pub const ISC_SHOWUIGUIDELINE: u32 = 1073741824u32;
+pub const JPOS_1DAN: u32 = 213u32;
+pub const JPOS_4DAN_HA: u32 = 212u32;
+pub const JPOS_5DAN_AWA: u32 = 200u32;
+pub const JPOS_5DAN_AWAUON: u32 = 209u32;
+pub const JPOS_5DAN_BA: u32 = 206u32;
+pub const JPOS_5DAN_GA: u32 = 202u32;
+pub const JPOS_5DAN_KA: u32 = 201u32;
+pub const JPOS_5DAN_KASOKUON: u32 = 210u32;
+pub const JPOS_5DAN_MA: u32 = 207u32;
+pub const JPOS_5DAN_NA: u32 = 205u32;
+pub const JPOS_5DAN_RA: u32 = 208u32;
+pub const JPOS_5DAN_RAHEN: u32 = 211u32;
+pub const JPOS_5DAN_SA: u32 = 203u32;
+pub const JPOS_5DAN_TA: u32 = 204u32;
+pub const JPOS_BUPPIN: u32 = 122u32;
+pub const JPOS_CHIMEI: u32 = 109u32;
+pub const JPOS_CHIMEI_EKI: u32 = 117u32;
+pub const JPOS_CHIMEI_GUN: u32 = 112u32;
+pub const JPOS_CHIMEI_KEN: u32 = 111u32;
+pub const JPOS_CHIMEI_KU: u32 = 113u32;
+pub const JPOS_CHIMEI_KUNI: u32 = 110u32;
+pub const JPOS_CHIMEI_MACHI: u32 = 115u32;
+pub const JPOS_CHIMEI_MURA: u32 = 116u32;
+pub const JPOS_CHIMEI_SHI: u32 = 114u32;
+pub const JPOS_CLOSEBRACE: u32 = 911u32;
+pub const JPOS_DAIMEISHI: u32 = 123u32;
+pub const JPOS_DAIMEISHI_NINSHOU: u32 = 124u32;
+pub const JPOS_DAIMEISHI_SHIJI: u32 = 125u32;
+pub const JPOS_DOKURITSUGO: u32 = 903u32;
+pub const JPOS_EIJI: u32 = 906u32;
+pub const JPOS_FUKUSHI: u32 = 500u32;
+pub const JPOS_FUKUSHI_DA: u32 = 504u32;
+pub const JPOS_FUKUSHI_NANO: u32 = 503u32;
+pub const JPOS_FUKUSHI_NI: u32 = 502u32;
+pub const JPOS_FUKUSHI_SAHEN: u32 = 501u32;
+pub const JPOS_FUKUSHI_TO: u32 = 505u32;
+pub const JPOS_FUKUSHI_TOSURU: u32 = 506u32;
+pub const JPOS_FUTEIGO: u32 = 904u32;
+pub const JPOS_HUKUSIMEISHI: u32 = 104u32;
+pub const JPOS_JINMEI: u32 = 106u32;
+pub const JPOS_JINMEI_MEI: u32 = 108u32;
+pub const JPOS_JINMEI_SEI: u32 = 107u32;
+pub const JPOS_KANDOUSHI: u32 = 670u32;
+pub const JPOS_KANJI: u32 = 909u32;
+pub const JPOS_KANYOUKU: u32 = 902u32;
+pub const JPOS_KAZU: u32 = 126u32;
+pub const JPOS_KAZU_SURYOU: u32 = 127u32;
+pub const JPOS_KAZU_SUSHI: u32 = 128u32;
+pub const JPOS_KEIDOU: u32 = 400u32;
+pub const JPOS_KEIDOU_GARU: u32 = 403u32;
+pub const JPOS_KEIDOU_NO: u32 = 401u32;
+pub const JPOS_KEIDOU_TARU: u32 = 402u32;
+pub const JPOS_KEIYOU: u32 = 300u32;
+pub const JPOS_KEIYOU_GARU: u32 = 301u32;
+pub const JPOS_KEIYOU_GE: u32 = 302u32;
+pub const JPOS_KEIYOU_ME: u32 = 303u32;
+pub const JPOS_KEIYOU_U: u32 = 305u32;
+pub const JPOS_KEIYOU_YUU: u32 = 304u32;
+pub const JPOS_KENCHIKU: u32 = 121u32;
+pub const JPOS_KIGOU: u32 = 905u32;
+pub const JPOS_KURU_KI: u32 = 219u32;
+pub const JPOS_KURU_KITA: u32 = 220u32;
+pub const JPOS_KURU_KITARA: u32 = 221u32;
+pub const JPOS_KURU_KITARI: u32 = 222u32;
+pub const JPOS_KURU_KITAROU: u32 = 223u32;
+pub const JPOS_KURU_KITE: u32 = 224u32;
+pub const JPOS_KURU_KO: u32 = 226u32;
+pub const JPOS_KURU_KOI: u32 = 227u32;
+pub const JPOS_KURU_KOYOU: u32 = 228u32;
+pub const JPOS_KURU_KUREBA: u32 = 225u32;
+pub const JPOS_KUTEN: u32 = 907u32;
+pub const JPOS_MEISA_KEIDOU: u32 = 105u32;
+pub const JPOS_MEISHI_FUTSU: u32 = 100u32;
+pub const JPOS_MEISHI_KEIYOUDOUSHI: u32 = 103u32;
+pub const JPOS_MEISHI_SAHEN: u32 = 101u32;
+pub const JPOS_MEISHI_ZAHEN: u32 = 102u32;
+pub const JPOS_OPENBRACE: u32 = 910u32;
+pub const JPOS_RENTAISHI: u32 = 600u32;
+pub const JPOS_RENTAISHI_SHIJI: u32 = 601u32;
+pub const JPOS_RENYOU_SETSUBI: u32 = 826u32;
+pub const JPOS_SETSUBI: u32 = 800u32;
+pub const JPOS_SETSUBI_CHIMEI: u32 = 811u32;
+pub const JPOS_SETSUBI_CHOU: u32 = 818u32;
+pub const JPOS_SETSUBI_CHU: u32 = 804u32;
+pub const JPOS_SETSUBI_DONO: u32 = 835u32;
+pub const JPOS_SETSUBI_EKI: u32 = 821u32;
+pub const JPOS_SETSUBI_FU: u32 = 805u32;
+pub const JPOS_SETSUBI_FUKUSU: u32 = 836u32;
+pub const JPOS_SETSUBI_GUN: u32 = 814u32;
+pub const JPOS_SETSUBI_JIKAN: u32 = 829u32;
+pub const JPOS_SETSUBI_JIKANPLUS: u32 = 830u32;
+pub const JPOS_SETSUBI_JINMEI: u32 = 810u32;
+pub const JPOS_SETSUBI_JOSUSHI: u32 = 827u32;
+pub const JPOS_SETSUBI_JOSUSHIPLUS: u32 = 828u32;
+pub const JPOS_SETSUBI_KA: u32 = 803u32;
+pub const JPOS_SETSUBI_KATA: u32 = 808u32;
+pub const JPOS_SETSUBI_KEN: u32 = 813u32;
+pub const JPOS_SETSUBI_KENCHIKU: u32 = 825u32;
+pub const JPOS_SETSUBI_KU: u32 = 815u32;
+pub const JPOS_SETSUBI_KUN: u32 = 833u32;
+pub const JPOS_SETSUBI_KUNI: u32 = 812u32;
+pub const JPOS_SETSUBI_MACHI: u32 = 817u32;
+pub const JPOS_SETSUBI_MEISHIRENDAKU: u32 = 809u32;
+pub const JPOS_SETSUBI_MURA: u32 = 819u32;
+pub const JPOS_SETSUBI_RA: u32 = 838u32;
+pub const JPOS_SETSUBI_RYU: u32 = 806u32;
+pub const JPOS_SETSUBI_SAMA: u32 = 834u32;
+pub const JPOS_SETSUBI_SAN: u32 = 832u32;
+pub const JPOS_SETSUBI_SEI: u32 = 802u32;
+pub const JPOS_SETSUBI_SHAMEI: u32 = 823u32;
+pub const JPOS_SETSUBI_SHI: u32 = 816u32;
+pub const JPOS_SETSUBI_SON: u32 = 820u32;
+pub const JPOS_SETSUBI_SONOTA: u32 = 822u32;
+pub const JPOS_SETSUBI_SOSHIKI: u32 = 824u32;
+pub const JPOS_SETSUBI_TACHI: u32 = 837u32;
+pub const JPOS_SETSUBI_TEINEI: u32 = 831u32;
+pub const JPOS_SETSUBI_TEKI: u32 = 801u32;
+pub const JPOS_SETSUBI_YOU: u32 = 807u32;
+pub const JPOS_SETSUZOKUSHI: u32 = 650u32;
+pub const JPOS_SETTOU: u32 = 700u32;
+pub const JPOS_SETTOU_CHIMEI: u32 = 710u32;
+pub const JPOS_SETTOU_CHOUTAN: u32 = 707u32;
+pub const JPOS_SETTOU_DAISHOU: u32 = 705u32;
+pub const JPOS_SETTOU_FUKU: u32 = 703u32;
+pub const JPOS_SETTOU_JINMEI: u32 = 709u32;
+pub const JPOS_SETTOU_JOSUSHI: u32 = 712u32;
+pub const JPOS_SETTOU_KAKU: u32 = 701u32;
+pub const JPOS_SETTOU_KOUTEI: u32 = 706u32;
+pub const JPOS_SETTOU_MI: u32 = 704u32;
+pub const JPOS_SETTOU_SAI: u32 = 702u32;
+pub const JPOS_SETTOU_SHINKYU: u32 = 708u32;
+pub const JPOS_SETTOU_SONOTA: u32 = 711u32;
+pub const JPOS_SETTOU_TEINEI_GO: u32 = 714u32;
+pub const JPOS_SETTOU_TEINEI_O: u32 = 713u32;
+pub const JPOS_SETTOU_TEINEI_ON: u32 = 715u32;
+pub const JPOS_SHAMEI: u32 = 119u32;
+pub const JPOS_SONOTA: u32 = 118u32;
+pub const JPOS_SOSHIKI: u32 = 120u32;
+pub const JPOS_SURU_SA: u32 = 229u32;
+pub const JPOS_SURU_SE: u32 = 238u32;
+pub const JPOS_SURU_SEYO: u32 = 239u32;
+pub const JPOS_SURU_SI: u32 = 230u32;
+pub const JPOS_SURU_SIATRI: u32 = 233u32;
+pub const JPOS_SURU_SITA: u32 = 231u32;
+pub const JPOS_SURU_SITARA: u32 = 232u32;
+pub const JPOS_SURU_SITAROU: u32 = 234u32;
+pub const JPOS_SURU_SITE: u32 = 235u32;
+pub const JPOS_SURU_SIYOU: u32 = 236u32;
+pub const JPOS_SURU_SUREBA: u32 = 237u32;
+pub const JPOS_TANKANJI: u32 = 900u32;
+pub const JPOS_TANKANJI_KAO: u32 = 901u32;
+pub const JPOS_TANSHUKU: u32 = 913u32;
+pub const JPOS_TOKUSHU_KAHEN: u32 = 214u32;
+pub const JPOS_TOKUSHU_NAHEN: u32 = 218u32;
+pub const JPOS_TOKUSHU_SAHEN: u32 = 216u32;
+pub const JPOS_TOKUSHU_SAHENSURU: u32 = 215u32;
+pub const JPOS_TOKUSHU_ZAHEN: u32 = 217u32;
+pub const JPOS_TOUTEN: u32 = 908u32;
+pub const JPOS_UNDEFINED: u32 = 0u32;
+pub const JPOS_YOKUSEI: u32 = 912u32;
+pub const MAX_APPLETTITLE: u32 = 64u32;
+pub const MAX_FONTFACE: u32 = 32u32;
+pub const MODEBIASMODE_DEFAULT: u32 = 0u32;
+pub const MODEBIASMODE_DIGIT: u32 = 4u32;
+pub const MODEBIASMODE_FILENAME: u32 = 1u32;
+pub const MODEBIASMODE_READING: u32 = 2u32;
+pub const MODEBIAS_GETVALUE: u32 = 2u32;
+pub const MODEBIAS_GETVERSION: u32 = 0u32;
+pub const MODEBIAS_SETVALUE: u32 = 1u32;
+pub const MOD_IGNORE_ALL_MODIFIER: u32 = 1024u32;
+pub const MOD_LEFT: u32 = 32768u32;
+pub const MOD_ON_KEYUP: u32 = 2048u32;
+pub const MOD_RIGHT: u32 = 16384u32;
+pub const NI_CHANGECANDIDATELIST: NOTIFY_IME_ACTION = 19u32;
+pub const NI_CLOSECANDIDATE: NOTIFY_IME_ACTION = 17u32;
+pub const NI_COMPOSITIONSTR: NOTIFY_IME_ACTION = 21u32;
+pub const NI_CONTEXTUPDATED: u32 = 3u32;
+pub const NI_FINALIZECONVERSIONRESULT: u32 = 20u32;
+pub const NI_IMEMENUSELECTED: NOTIFY_IME_ACTION = 24u32;
+pub const NI_OPENCANDIDATE: NOTIFY_IME_ACTION = 16u32;
+pub const NI_SELECTCANDIDATESTR: NOTIFY_IME_ACTION = 18u32;
+pub const NI_SETCANDIDATE_PAGESIZE: NOTIFY_IME_ACTION = 23u32;
+pub const NI_SETCANDIDATE_PAGESTART: NOTIFY_IME_ACTION = 22u32;
+pub const POS_UNDEFINED: u32 = 0u32;
+pub const RECONVOPT_NONE: u32 = 0u32;
+pub const RECONVOPT_USECANCELNOTIFY: u32 = 1u32;
+pub const RWM_CHGKEYMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEChangeKeyMap");
+pub const RWM_DOCUMENTFEED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEDocumentFeed");
+pub const RWM_KEYMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEKeyMap");
+pub const RWM_MODEBIAS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEModeBias");
+pub const RWM_MOUSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEMouseOperation");
+pub const RWM_NTFYKEYMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMENotifyKeyMap");
+pub const RWM_QUERYPOSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEQueryPosition");
+pub const RWM_RECONVERT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEReconvert");
+pub const RWM_RECONVERTOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEReconvertOptions");
+pub const RWM_RECONVERTREQUEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEReconvertRequest");
+pub const RWM_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEService");
+pub const RWM_SHOWIMEPAD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEShowImePad");
+pub const RWM_UIREADY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEUIReady");
+pub const SCS_CAP_COMPSTR: u32 = 1u32;
+pub const SCS_CAP_MAKEREAD: u32 = 2u32;
+pub const SCS_CAP_SETRECONVERTSTRING: u32 = 4u32;
+pub const SCS_CHANGEATTR: SET_COMPOSITION_STRING_TYPE = 18u32;
+pub const SCS_CHANGECLAUSE: SET_COMPOSITION_STRING_TYPE = 36u32;
+pub const SCS_QUERYRECONVERTSTRING: SET_COMPOSITION_STRING_TYPE = 131072u32;
+pub const SCS_SETRECONVERTSTRING: SET_COMPOSITION_STRING_TYPE = 65536u32;
+pub const SCS_SETSTR: SET_COMPOSITION_STRING_TYPE = 9u32;
+pub const SELECT_CAP_CONVERSION: u32 = 1u32;
+pub const SELECT_CAP_SENTENCE: u32 = 2u32;
+pub const SHOWIMEPAD_CATEGORY: u32 = 1u32;
+pub const SHOWIMEPAD_DEFAULT: u32 = 0u32;
+pub const SHOWIMEPAD_GUID: u32 = 2u32;
+pub const SOFTKEYBOARD_TYPE_C1: u32 = 2u32;
+pub const SOFTKEYBOARD_TYPE_T1: u32 = 1u32;
+pub const STYLE_DESCRIPTION_SIZE: u32 = 32u32;
+pub const UI_CAP_2700: u32 = 1u32;
+pub const UI_CAP_ROT90: u32 = 2u32;
+pub const UI_CAP_ROTANY: u32 = 4u32;
+pub const UI_CAP_SOFTKBD: u32 = 65536u32;
+pub const VERSION_DOCUMENTFEED: u32 = 1u32;
+pub const VERSION_ID_CHINESE_SIMPLIFIED: u32 = 134217728u32;
+pub const VERSION_ID_CHINESE_TRADITIONAL: u32 = 67108864u32;
+pub const VERSION_ID_JAPANESE: u32 = 16777216u32;
+pub const VERSION_ID_KOREAN: u32 = 33554432u32;
+pub const VERSION_MODEBIAS: u32 = 1u32;
+pub const VERSION_MOUSE_OPERATION: u32 = 1u32;
+pub const VERSION_QUERYPOSITION: u32 = 1u32;
+pub const VERSION_RECONVERSION: u32 = 1u32;
+pub const cbCommentMax: u32 = 256u32;
+pub const szImeChina: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.China");
+pub const szImeJapan: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.Japan");
+pub const szImeKorea: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.Korea");
+pub const szImeTaiwan: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.Taiwan");
+pub const wchPrivate1: u32 = 57344u32;
+pub type GET_CONVERSION_LIST_FLAG = u32;
+pub type GET_GUIDE_LINE_TYPE = u32;
+pub type IMEFMT = i32;
+pub type IMEREG = i32;
+pub type IMEREL = i32;
+pub type IMEUCT = i32;
+pub type IME_COMPOSITION_STRING = u32;
+pub type IME_CONVERSION_MODE = u32;
+pub type IME_ESCAPE = u32;
+pub type IME_HOTKEY_IDENTIFIER = u32;
+pub type IME_PAD_REQUEST_FLAGS = u32;
+pub type IME_SENTENCE_MODE = u32;
+pub type NOTIFY_IME_ACTION = u32;
+pub type NOTIFY_IME_INDEX = u32;
+pub type SET_COMPOSITION_STRING_TYPE = u32;
+#[repr(C)]
+pub struct APPLETIDLIST {
+ pub count: i32,
+ pub pIIDList: *mut ::windows_sys::core::GUID,
+}
+impl ::core::marker::Copy for APPLETIDLIST {}
+impl ::core::clone::Clone for APPLETIDLIST {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct APPLYCANDEXPARAM {
+ pub dwSize: u32,
+ pub lpwstrDisplay: ::windows_sys::core::PWSTR,
+ pub lpwstrReading: ::windows_sys::core::PWSTR,
+ pub dwReserved: u32,
+}
+impl ::core::marker::Copy for APPLYCANDEXPARAM {}
+impl ::core::clone::Clone for APPLYCANDEXPARAM {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct CANDIDATEFORM {
+ pub dwIndex: u32,
+ pub dwStyle: u32,
+ pub ptCurrentPos: super::super::super::Foundation::POINT,
+ pub rcArea: super::super::super::Foundation::RECT,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for CANDIDATEFORM {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for CANDIDATEFORM {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct CANDIDATEINFO {
+ pub dwSize: u32,
+ pub dwCount: u32,
+ pub dwOffset: [u32; 32],
+ pub dwPrivateSize: u32,
+ pub dwPrivateOffset: u32,
+}
+impl ::core::marker::Copy for CANDIDATEINFO {}
+impl ::core::clone::Clone for CANDIDATEINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct CANDIDATELIST {
+ pub dwSize: u32,
+ pub dwStyle: u32,
+ pub dwCount: u32,
+ pub dwSelection: u32,
+ pub dwPageStart: u32,
+ pub dwPageSize: u32,
+ pub dwOffset: [u32; 1],
+}
+impl ::core::marker::Copy for CANDIDATELIST {}
+impl ::core::clone::Clone for CANDIDATELIST {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct COMPOSITIONFORM {
+ pub dwStyle: u32,
+ pub ptCurrentPos: super::super::super::Foundation::POINT,
+ pub rcArea: super::super::super::Foundation::RECT,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for COMPOSITIONFORM {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for COMPOSITIONFORM {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct COMPOSITIONSTRING {
+ pub dwSize: u32,
+ pub dwCompReadAttrLen: u32,
+ pub dwCompReadAttrOffset: u32,
+ pub dwCompReadClauseLen: u32,
+ pub dwCompReadClauseOffset: u32,
+ pub dwCompReadStrLen: u32,
+ pub dwCompReadStrOffset: u32,
+ pub dwCompAttrLen: u32,
+ pub dwCompAttrOffset: u32,
+ pub dwCompClauseLen: u32,
+ pub dwCompClauseOffset: u32,
+ pub dwCompStrLen: u32,
+ pub dwCompStrOffset: u32,
+ pub dwCursorPos: u32,
+ pub dwDeltaStart: u32,
+ pub dwResultReadClauseLen: u32,
+ pub dwResultReadClauseOffset: u32,
+ pub dwResultReadStrLen: u32,
+ pub dwResultReadStrOffset: u32,
+ pub dwResultClauseLen: u32,
+ pub dwResultClauseOffset: u32,
+ pub dwResultStrLen: u32,
+ pub dwResultStrOffset: u32,
+ pub dwPrivateSize: u32,
+ pub dwPrivateOffset: u32,
+}
+impl ::core::marker::Copy for COMPOSITIONSTRING {}
+impl ::core::clone::Clone for COMPOSITIONSTRING {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct GUIDELINE {
+ pub dwSize: u32,
+ pub dwLevel: u32,
+ pub dwIndex: u32,
+ pub dwStrLen: u32,
+ pub dwStrOffset: u32,
+ pub dwPrivateSize: u32,
+ pub dwPrivateOffset: u32,
+}
+impl ::core::marker::Copy for GUIDELINE {}
+impl ::core::clone::Clone for GUIDELINE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+pub struct IMEAPPLETCFG {
+ pub dwConfig: u32,
+ pub wchTitle: [u16; 64],
+ pub wchTitleFontFace: [u16; 32],
+ pub dwCharSet: u32,
+ pub iCategory: i32,
+ pub hIcon: super::super::WindowsAndMessaging::HICON,
+ pub langID: u16,
+ pub dummy: u16,
+ pub lReserved1: super::super::super::Foundation::LPARAM,
+}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::marker::Copy for IMEAPPLETCFG {}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::clone::Clone for IMEAPPLETCFG {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct IMEAPPLETUI {
+ pub hwnd: super::super::super::Foundation::HWND,
+ pub dwStyle: u32,
+ pub width: i32,
+ pub height: i32,
+ pub minWidth: i32,
+ pub minHeight: i32,
+ pub maxWidth: i32,
+ pub maxHeight: i32,
+ pub lReserved1: super::super::super::Foundation::LPARAM,
+ pub lReserved2: super::super::super::Foundation::LPARAM,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for IMEAPPLETUI {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for IMEAPPLETUI {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMECHARINFO {
+ pub wch: u16,
+ pub dwCharInfo: u32,
+}
+impl ::core::marker::Copy for IMECHARINFO {}
+impl ::core::clone::Clone for IMECHARINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct IMECHARPOSITION {
+ pub dwSize: u32,
+ pub dwCharPos: u32,
+ pub pt: super::super::super::Foundation::POINT,
+ pub cLineHeight: u32,
+ pub rcDocument: super::super::super::Foundation::RECT,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for IMECHARPOSITION {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for IMECHARPOSITION {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMECOMPOSITIONSTRINGINFO {
+ pub iCompStrLen: i32,
+ pub iCaretPos: i32,
+ pub iEditStart: i32,
+ pub iEditLen: i32,
+ pub iTargetStart: i32,
+ pub iTargetLen: i32,
+}
+impl ::core::marker::Copy for IMECOMPOSITIONSTRINGINFO {}
+impl ::core::clone::Clone for IMECOMPOSITIONSTRINGINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct IMEDLG {
+ pub cbIMEDLG: i32,
+ pub hwnd: super::super::super::Foundation::HWND,
+ pub lpwstrWord: ::windows_sys::core::PWSTR,
+ pub nTabId: i32,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for IMEDLG {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for IMEDLG {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct IMEDP {
+ pub wrdModifier: IMEWRD,
+ pub wrdModifiee: IMEWRD,
+ pub relID: IMEREL,
+}
+impl ::core::marker::Copy for IMEDP {}
+impl ::core::clone::Clone for IMEDP {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMEFAREASTINFO {
+ pub dwSize: u32,
+ pub dwType: u32,
+ pub dwData: [u32; 1],
+}
+impl ::core::marker::Copy for IMEFAREASTINFO {}
+impl ::core::clone::Clone for IMEFAREASTINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMEINFO {
+ pub dwPrivateDataSize: u32,
+ pub fdwProperty: u32,
+ pub fdwConversionCaps: u32,
+ pub fdwSentenceCaps: u32,
+ pub fdwUICaps: u32,
+ pub fdwSCSCaps: u32,
+ pub fdwSelectCaps: u32,
+}
+impl ::core::marker::Copy for IMEINFO {}
+impl ::core::clone::Clone for IMEINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMEITEM {
+ pub cbSize: i32,
+ pub iType: i32,
+ pub lpItemData: *mut ::core::ffi::c_void,
+}
+impl ::core::marker::Copy for IMEITEM {}
+impl ::core::clone::Clone for IMEITEM {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMEITEMCANDIDATE {
+ pub uCount: u32,
+ pub imeItem: [IMEITEM; 1],
+}
+impl ::core::marker::Copy for IMEITEMCANDIDATE {}
+impl ::core::clone::Clone for IMEITEMCANDIDATE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+#[doc = "Required features: `\"Win32_Globalization\"`"]
+#[cfg(feature = "Win32_Globalization")]
+pub struct IMEKMS {
+ pub cbSize: i32,
+ pub hIMC: super::super::super::Globalization::HIMC,
+ pub cKeyList: u32,
+ pub pKeyList: *mut IMEKMSKEY,
+}
+#[cfg(feature = "Win32_Globalization")]
+impl ::core::marker::Copy for IMEKMS {}
+#[cfg(feature = "Win32_Globalization")]
+impl ::core::clone::Clone for IMEKMS {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct IMEKMSFUNCDESC {
+ pub cbSize: i32,
+ pub idLang: u16,
+ pub dwControl: u32,
+ pub pwszDescription: [u16; 128],
+}
+impl ::core::marker::Copy for IMEKMSFUNCDESC {}
+impl ::core::clone::Clone for IMEKMSFUNCDESC {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct IMEKMSINIT {
+ pub cbSize: i32,
+ pub hWnd: super::super::super::Foundation::HWND,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for IMEKMSINIT {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for IMEKMSINIT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+#[doc = "Required features: `\"Win32_Globalization\"`"]
+#[cfg(feature = "Win32_Globalization")]
+pub struct IMEKMSINVK {
+ pub cbSize: i32,
+ pub hIMC: super::super::super::Globalization::HIMC,
+ pub dwControl: u32,
+}
+#[cfg(feature = "Win32_Globalization")]
+impl ::core::marker::Copy for IMEKMSINVK {}
+#[cfg(feature = "Win32_Globalization")]
+impl ::core::clone::Clone for IMEKMSINVK {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct IMEKMSKEY {
+ pub dwStatus: u32,
+ pub dwCompStatus: u32,
+ pub dwVKEY: u32,
+ pub Anonymous1: IMEKMSKEY_0,
+ pub Anonymous2: IMEKMSKEY_1,
+}
+impl ::core::marker::Copy for IMEKMSKEY {}
+impl ::core::clone::Clone for IMEKMSKEY {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union IMEKMSKEY_0 {
+ pub dwControl: u32,
+ pub dwNotUsed: u32,
+}
+impl ::core::marker::Copy for IMEKMSKEY_0 {}
+impl ::core::clone::Clone for IMEKMSKEY_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union IMEKMSKEY_1 {
+ pub pwszDscr: [u16; 31],
+ pub pwszNoUse: [u16; 31],
+}
+impl ::core::marker::Copy for IMEKMSKEY_1 {}
+impl ::core::clone::Clone for IMEKMSKEY_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+#[doc = "Required features: `\"Win32_Globalization\"`"]
+#[cfg(feature = "Win32_Globalization")]
+pub struct IMEKMSKMP {
+ pub cbSize: i32,
+ pub hIMC: super::super::super::Globalization::HIMC,
+ pub idLang: u16,
+ pub wVKStart: u16,
+ pub wVKEnd: u16,
+ pub cKeyList: i32,
+ pub pKeyList: *mut IMEKMSKEY,
+}
+#[cfg(feature = "Win32_Globalization")]
+impl ::core::marker::Copy for IMEKMSKMP {}
+#[cfg(feature = "Win32_Globalization")]
+impl ::core::clone::Clone for IMEKMSKMP {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+pub struct IMEKMSNTFY {
+ pub cbSize: i32,
+ pub hIMC: super::super::super::Globalization::HIMC,
+ pub fSelect: super::super::super::Foundation::BOOL,
+}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+impl ::core::marker::Copy for IMEKMSNTFY {}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+impl ::core::clone::Clone for IMEKMSNTFY {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"]
+#[cfg(feature = "Win32_Graphics_Gdi")]
+pub struct IMEMENUITEMINFOA {
+ pub cbSize: u32,
+ pub fType: u32,
+ pub fState: u32,
+ pub wID: u32,
+ pub hbmpChecked: super::super::super::Graphics::Gdi::HBITMAP,
+ pub hbmpUnchecked: super::super::super::Graphics::Gdi::HBITMAP,
+ pub dwItemData: u32,
+ pub szString: [u8; 80],
+ pub hbmpItem: super::super::super::Graphics::Gdi::HBITMAP,
+}
+#[cfg(feature = "Win32_Graphics_Gdi")]
+impl ::core::marker::Copy for IMEMENUITEMINFOA {}
+#[cfg(feature = "Win32_Graphics_Gdi")]
+impl ::core::clone::Clone for IMEMENUITEMINFOA {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"]
+#[cfg(feature = "Win32_Graphics_Gdi")]
+pub struct IMEMENUITEMINFOW {
+ pub cbSize: u32,
+ pub fType: u32,
+ pub fState: u32,
+ pub wID: u32,
+ pub hbmpChecked: super::super::super::Graphics::Gdi::HBITMAP,
+ pub hbmpUnchecked: super::super::super::Graphics::Gdi::HBITMAP,
+ pub dwItemData: u32,
+ pub szString: [u16; 80],
+ pub hbmpItem: super::super::super::Graphics::Gdi::HBITMAP,
+}
+#[cfg(feature = "Win32_Graphics_Gdi")]
+impl ::core::marker::Copy for IMEMENUITEMINFOW {}
+#[cfg(feature = "Win32_Graphics_Gdi")]
+impl ::core::clone::Clone for IMEMENUITEMINFOW {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct IMESHF {
+ pub cbShf: u16,
+ pub verDic: u16,
+ pub szTitle: [u8; 48],
+ pub szDescription: [u8; 256],
+ pub szCopyright: [u8; 128],
+}
+impl ::core::marker::Copy for IMESHF {}
+impl ::core::clone::Clone for IMESHF {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMESTRINGCANDIDATE {
+ pub uCount: u32,
+ pub lpwstr: [::windows_sys::core::PWSTR; 1],
+}
+impl ::core::marker::Copy for IMESTRINGCANDIDATE {}
+impl ::core::clone::Clone for IMESTRINGCANDIDATE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMESTRINGCANDIDATEINFO {
+ pub dwFarEastId: u32,
+ pub lpFarEastInfo: *mut IMEFAREASTINFO,
+ pub fInfoMask: u32,
+ pub iSelIndex: i32,
+ pub uCount: u32,
+ pub lpwstr: [::windows_sys::core::PWSTR; 1],
+}
+impl ::core::marker::Copy for IMESTRINGCANDIDATEINFO {}
+impl ::core::clone::Clone for IMESTRINGCANDIDATEINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct IMESTRINGINFO {
+ pub dwFarEastId: u32,
+ pub lpwstr: ::windows_sys::core::PWSTR,
+}
+impl ::core::marker::Copy for IMESTRINGINFO {}
+impl ::core::clone::Clone for IMESTRINGINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct IMEWRD {
+ pub pwchReading: ::windows_sys::core::PWSTR,
+ pub pwchDisplay: ::windows_sys::core::PWSTR,
+ pub Anonymous: IMEWRD_0,
+ pub rgulAttrs: [u32; 2],
+ pub cbComment: i32,
+ pub uct: IMEUCT,
+ pub pvComment: *mut ::core::ffi::c_void,
+}
+impl ::core::marker::Copy for IMEWRD {}
+impl ::core::clone::Clone for IMEWRD {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union IMEWRD_0 {
+ pub ulPos: u32,
+ pub Anonymous: IMEWRD_0_0,
+}
+impl ::core::marker::Copy for IMEWRD_0 {}
+impl ::core::clone::Clone for IMEWRD_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct IMEWRD_0_0 {
+ pub nPos1: u16,
+ pub nPos2: u16,
+}
+impl ::core::marker::Copy for IMEWRD_0_0 {}
+impl ::core::clone::Clone for IMEWRD_0_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+pub struct INPUTCONTEXT {
+ pub hWnd: super::super::super::Foundation::HWND,
+ pub fOpen: super::super::super::Foundation::BOOL,
+ pub ptStatusWndPos: super::super::super::Foundation::POINT,
+ pub ptSoftKbdPos: super::super::super::Foundation::POINT,
+ pub fdwConversion: u32,
+ pub fdwSentence: u32,
+ pub lfFont: INPUTCONTEXT_0,
+ pub cfCompForm: COMPOSITIONFORM,
+ pub cfCandForm: [CANDIDATEFORM; 4],
+ pub hCompStr: super::super::super::Globalization::HIMCC,
+ pub hCandInfo: super::super::super::Globalization::HIMCC,
+ pub hGuideLine: super::super::super::Globalization::HIMCC,
+ pub hPrivate: super::super::super::Globalization::HIMCC,
+ pub dwNumMsgBuf: u32,
+ pub hMsgBuf: super::super::super::Globalization::HIMCC,
+ pub fdwInit: u32,
+ pub dwReserve: [u32; 3],
+}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+impl ::core::marker::Copy for INPUTCONTEXT {}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+impl ::core::clone::Clone for INPUTCONTEXT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+pub union INPUTCONTEXT_0 {
+ pub A: super::super::super::Graphics::Gdi::LOGFONTA,
+ pub W: super::super::super::Graphics::Gdi::LOGFONTW,
+}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+impl ::core::marker::Copy for INPUTCONTEXT_0 {}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))]
+impl ::core::clone::Clone for INPUTCONTEXT_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct MORRSLT {
+ pub dwSize: u32,
+ pub pwchOutput: ::windows_sys::core::PWSTR,
+ pub cchOutput: u16,
+ pub Anonymous1: MORRSLT_0,
+ pub Anonymous2: MORRSLT_1,
+ pub pchInputPos: *mut u16,
+ pub pchOutputIdxWDD: *mut u16,
+ pub Anonymous3: MORRSLT_2,
+ pub paMonoRubyPos: *mut u16,
+ pub pWDD: *mut WDD,
+ pub cWDD: i32,
+ pub pPrivate: *mut ::core::ffi::c_void,
+ pub BLKBuff: [u16; 1],
+}
+impl ::core::marker::Copy for MORRSLT {}
+impl ::core::clone::Clone for MORRSLT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union MORRSLT_0 {
+ pub pwchRead: ::windows_sys::core::PWSTR,
+ pub pwchComp: ::windows_sys::core::PWSTR,
+}
+impl ::core::marker::Copy for MORRSLT_0 {}
+impl ::core::clone::Clone for MORRSLT_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union MORRSLT_1 {
+ pub cchRead: u16,
+ pub cchComp: u16,
+}
+impl ::core::marker::Copy for MORRSLT_1 {}
+impl ::core::clone::Clone for MORRSLT_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union MORRSLT_2 {
+ pub pchReadIdxWDD: *mut u16,
+ pub pchCompIdxWDD: *mut u16,
+}
+impl ::core::marker::Copy for MORRSLT_2 {}
+impl ::core::clone::Clone for MORRSLT_2 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct POSTBL {
+ pub nPos: u16,
+ pub szName: *mut u8,
+}
+impl ::core::marker::Copy for POSTBL {}
+impl ::core::clone::Clone for POSTBL {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct RECONVERTSTRING {
+ pub dwSize: u32,
+ pub dwVersion: u32,
+ pub dwStrLen: u32,
+ pub dwStrOffset: u32,
+ pub dwCompStrLen: u32,
+ pub dwCompStrOffset: u32,
+ pub dwTargetStrLen: u32,
+ pub dwTargetStrOffset: u32,
+}
+impl ::core::marker::Copy for RECONVERTSTRING {}
+impl ::core::clone::Clone for RECONVERTSTRING {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct REGISTERWORDA {
+ pub lpReading: ::windows_sys::core::PSTR,
+ pub lpWord: ::windows_sys::core::PSTR,
+}
+impl ::core::marker::Copy for REGISTERWORDA {}
+impl ::core::clone::Clone for REGISTERWORDA {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct REGISTERWORDW {
+ pub lpReading: ::windows_sys::core::PWSTR,
+ pub lpWord: ::windows_sys::core::PWSTR,
+}
+impl ::core::marker::Copy for REGISTERWORDW {}
+impl ::core::clone::Clone for REGISTERWORDW {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct SOFTKBDDATA {
+ pub uCount: u32,
+ pub wCode: [u16; 256],
+}
+impl ::core::marker::Copy for SOFTKBDDATA {}
+impl ::core::clone::Clone for SOFTKBDDATA {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct STYLEBUFA {
+ pub dwStyle: u32,
+ pub szDescription: [u8; 32],
+}
+impl ::core::marker::Copy for STYLEBUFA {}
+impl ::core::clone::Clone for STYLEBUFA {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct STYLEBUFW {
+ pub dwStyle: u32,
+ pub szDescription: [u16; 32],
+}
+impl ::core::marker::Copy for STYLEBUFW {}
+impl ::core::clone::Clone for STYLEBUFW {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct TRANSMSG {
+ pub message: u32,
+ pub wParam: super::super::super::Foundation::WPARAM,
+ pub lParam: super::super::super::Foundation::LPARAM,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for TRANSMSG {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for TRANSMSG {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct TRANSMSGLIST {
+ pub uMsgCount: u32,
+ pub TransMsg: [TRANSMSG; 1],
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for TRANSMSGLIST {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for TRANSMSGLIST {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub struct WDD {
+ pub wDispPos: u16,
+ pub Anonymous1: WDD_0,
+ pub cchDisp: u16,
+ pub Anonymous2: WDD_1,
+ pub WDD_nReserve1: u32,
+ pub nPos: u16,
+ pub _bitfield: u16,
+ pub pReserved: *mut ::core::ffi::c_void,
+}
+impl ::core::marker::Copy for WDD {}
+impl ::core::clone::Clone for WDD {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union WDD_0 {
+ pub wReadPos: u16,
+ pub wCompPos: u16,
+}
+impl ::core::marker::Copy for WDD_0 {}
+impl ::core::clone::Clone for WDD_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C, packed(1))]
+pub union WDD_1 {
+ pub cchRead: u16,
+ pub cchComp: u16,
+}
+impl ::core::marker::Copy for WDD_1 {}
+impl ::core::clone::Clone for WDD_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))]
+pub type IMCENUMPROC = ::core::option::Option<unsafe extern "system" fn(param0: super::super::super::Globalization::HIMC, param1: super::super::super::Foundation::LPARAM) -> super::super::super::Foundation::BOOL>;
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub type PFNLOG = ::core::option::Option<unsafe extern "system" fn(param0: *mut IMEDP, param1: ::windows_sys::core::HRESULT) -> super::super::super::Foundation::BOOL>;
+pub type REGISTERWORDENUMPROCA = ::core::option::Option<unsafe extern "system" fn(lpszreading: ::windows_sys::core::PCSTR, param1: u32, lpszstring: ::windows_sys::core::PCSTR, param3: *mut ::core::ffi::c_void) -> i32>;
+pub type REGISTERWORDENUMPROCW = ::core::option::Option<unsafe extern "system" fn(lpszreading: ::windows_sys::core::PCWSTR, param1: u32, lpszstring: ::windows_sys::core::PCWSTR, param3: *mut ::core::ffi::c_void) -> i32>;
+pub type fpCreateIFECommonInstanceType = ::core::option::Option<unsafe extern "system" fn(ppvobj: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT>;
+pub type fpCreateIFEDictionaryInstanceType = ::core::option::Option<unsafe extern "system" fn(ppvobj: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT>;
+pub type fpCreateIFELanguageInstanceType = ::core::option::Option<unsafe extern "system" fn(clsid: *const ::windows_sys::core::GUID, ppvobj: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT>;
diff --git a/vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs b/vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs
new file mode 100644
index 0000000..fd09c5d
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs
@@ -0,0 +1,987 @@
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ActivateKeyboardLayout(hkl : super::super::TextServices:: HKL, flags : ACTIVATE_KEYBOARD_LAYOUT_FLAGS) -> super::super::TextServices:: HKL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BlockInput(fblockit : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DragDetect(hwnd : super::super::super::Foundation:: HWND, pt : super::super::super::Foundation:: POINT) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableWindow(hwnd : super::super::super::Foundation:: HWND, benable : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetActiveWindow() -> super::super::super::Foundation:: HWND);
+::windows_targets::link!("user32.dll" "system" fn GetAsyncKeyState(vkey : i32) -> i16);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCapture() -> super::super::super::Foundation:: HWND);
+::windows_targets::link!("user32.dll" "system" fn GetDoubleClickTime() -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFocus() -> super::super::super::Foundation:: HWND);
+::windows_targets::link!("user32.dll" "system" fn GetKBCodePage() -> u32);
+::windows_targets::link!("user32.dll" "system" fn GetKeyNameTextA(lparam : i32, lpstring : ::windows_sys::core::PSTR, cchsize : i32) -> i32);
+::windows_targets::link!("user32.dll" "system" fn GetKeyNameTextW(lparam : i32, lpstring : ::windows_sys::core::PWSTR, cchsize : i32) -> i32);
+::windows_targets::link!("user32.dll" "system" fn GetKeyState(nvirtkey : i32) -> i16);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn GetKeyboardLayout(idthread : u32) -> super::super::TextServices:: HKL);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn GetKeyboardLayoutList(nbuff : i32, lplist : *mut super::super::TextServices:: HKL) -> i32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetKeyboardLayoutNameA(pwszklid : ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetKeyboardLayoutNameW(pwszklid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetKeyboardState(lpkeystate : *mut u8) -> super::super::super::Foundation:: BOOL);
+::windows_targets::link!("user32.dll" "system" fn GetKeyboardType(ntypeflag : i32) -> i32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLastInputInfo(plii : *mut LASTINPUTINFO) -> super::super::super::Foundation:: BOOL);
+::windows_targets::link!("user32.dll" "system" fn GetMouseMovePointsEx(cbsize : u32, lppt : *const MOUSEMOVEPOINT, lpptbuf : *mut MOUSEMOVEPOINT, nbufpoints : i32, resolution : GET_MOUSE_MOVE_POINTS_EX_RESOLUTION) -> i32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWindowEnabled(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn LoadKeyboardLayoutA(pwszklid : ::windows_sys::core::PCSTR, flags : ACTIVATE_KEYBOARD_LAYOUT_FLAGS) -> super::super::TextServices:: HKL);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn LoadKeyboardLayoutW(pwszklid : ::windows_sys::core::PCWSTR, flags : ACTIVATE_KEYBOARD_LAYOUT_FLAGS) -> super::super::TextServices:: HKL);
+::windows_targets::link!("user32.dll" "system" fn MapVirtualKeyA(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn MapVirtualKeyExA(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE, dwhkl : super::super::TextServices:: HKL) -> u32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn MapVirtualKeyExW(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE, dwhkl : super::super::TextServices:: HKL) -> u32);
+::windows_targets::link!("user32.dll" "system" fn MapVirtualKeyW(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE) -> u32);
+::windows_targets::link!("user32.dll" "system" fn OemKeyScan(woemchar : u16) -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterHotKey(hwnd : super::super::super::Foundation:: HWND, id : i32, fsmodifiers : HOT_KEY_MODIFIERS, vk : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseCapture() -> super::super::super::Foundation:: BOOL);
+::windows_targets::link!("user32.dll" "system" fn SendInput(cinputs : u32, pinputs : *const INPUT, cbsize : i32) -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetActiveWindow(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCapture(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDoubleClickTime(param0 : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFocus(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetKeyboardState(lpkeystate : *const u8) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SwapMouseButton(fswap : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL);
+::windows_targets::link!("user32.dll" "system" fn ToAscii(uvirtkey : u32, uscancode : u32, lpkeystate : *const u8, lpchar : *mut u16, uflags : u32) -> i32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ToAsciiEx(uvirtkey : u32, uscancode : u32, lpkeystate : *const u8, lpchar : *mut u16, uflags : u32, dwhkl : super::super::TextServices:: HKL) -> i32);
+::windows_targets::link!("user32.dll" "system" fn ToUnicode(wvirtkey : u32, wscancode : u32, lpkeystate : *const u8, pwszbuff : ::windows_sys::core::PWSTR, cchbuff : i32, wflags : u32) -> i32);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ToUnicodeEx(wvirtkey : u32, wscancode : u32, lpkeystate : *const u8, pwszbuff : ::windows_sys::core::PWSTR, cchbuff : i32, wflags : u32, dwhkl : super::super::TextServices:: HKL) -> i32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TrackMouseEvent(lpeventtrack : *mut TRACKMOUSEEVENT) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn UnloadKeyboardLayout(hkl : super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterHotKey(hwnd : super::super::super::Foundation:: HWND, id : i32) -> super::super::super::Foundation:: BOOL);
+::windows_targets::link!("user32.dll" "system" fn VkKeyScanA(ch : u8) -> i16);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn VkKeyScanExA(ch : u8, dwhkl : super::super::TextServices:: HKL) -> i16);
+#[cfg(feature = "Win32_UI_TextServices")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn VkKeyScanExW(ch : u16, dwhkl : super::super::TextServices:: HKL) -> i16);
+::windows_targets::link!("user32.dll" "system" fn VkKeyScanW(ch : u16) -> i16);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn _TrackMouseEvent(lpeventtrack : *mut TRACKMOUSEEVENT) -> super::super::super::Foundation:: BOOL);
+::windows_targets::link!("user32.dll" "system" fn keybd_event(bvk : u8, bscan : u8, dwflags : KEYBD_EVENT_FLAGS, dwextrainfo : usize) -> ());
+::windows_targets::link!("user32.dll" "system" fn mouse_event(dwflags : MOUSE_EVENT_FLAGS, dx : i32, dy : i32, dwdata : i32, dwextrainfo : usize) -> ());
+pub const ACUTE: u32 = 769u32;
+pub const AX_KBD_DESKTOP_TYPE: u32 = 1u32;
+pub const BREVE: u32 = 774u32;
+pub const CAPLOK: u32 = 1u32;
+pub const CAPLOKALTGR: u32 = 4u32;
+pub const CEDILLA: u32 = 807u32;
+pub const CIRCUMFLEX: u32 = 770u32;
+pub const DEC_KBD_ANSI_LAYOUT_TYPE: u32 = 1u32;
+pub const DEC_KBD_JIS_LAYOUT_TYPE: u32 = 2u32;
+pub const DIARESIS: u32 = 776u32;
+pub const DIARESIS_TONOS: u32 = 901u32;
+pub const DKF_DEAD: u32 = 1u32;
+pub const DONTCARE_BIT: u32 = 33554432u32;
+pub const DOT_ABOVE: u32 = 775u32;
+pub const DOUBLE_ACUTE: u32 = 779u32;
+pub const EXTENDED_BIT: u32 = 16777216u32;
+pub const FAKE_KEYSTROKE: u32 = 33554432u32;
+pub const FMR_KBD_JIS_TYPE: u32 = 0u32;
+pub const FMR_KBD_OASYS_TYPE: u32 = 1u32;
+pub const FMV_KBD_OASYS_TYPE: u32 = 2u32;
+pub const GMMP_USE_DISPLAY_POINTS: GET_MOUSE_MOVE_POINTS_EX_RESOLUTION = 1u32;
+pub const GMMP_USE_HIGH_RESOLUTION_POINTS: GET_MOUSE_MOVE_POINTS_EX_RESOLUTION = 2u32;
+pub const GRAVE: u32 = 768u32;
+pub const GRPSELTAP: u32 = 128u32;
+pub const HACEK: u32 = 780u32;
+pub const HOOK_ABOVE: u32 = 777u32;
+pub const INPUT_HARDWARE: INPUT_TYPE = 2u32;
+pub const INPUT_KEYBOARD: INPUT_TYPE = 1u32;
+pub const INPUT_MOUSE: INPUT_TYPE = 0u32;
+pub const KANALOK: u32 = 8u32;
+pub const KBDALT: u32 = 4u32;
+pub const KBDBASE: u32 = 0u32;
+pub const KBDCTRL: u32 = 2u32;
+pub const KBDGRPSELTAP: u32 = 128u32;
+pub const KBDKANA: u32 = 8u32;
+pub const KBDLOYA: u32 = 32u32;
+pub const KBDNLS_ALPHANUM: u32 = 5u32;
+pub const KBDNLS_CODEINPUT: u32 = 10u32;
+pub const KBDNLS_CONV_OR_NONCONV: u32 = 15u32;
+pub const KBDNLS_HELP_OR_END: u32 = 11u32;
+pub const KBDNLS_HIRAGANA: u32 = 6u32;
+pub const KBDNLS_HOME_OR_CLEAR: u32 = 12u32;
+pub const KBDNLS_INDEX_ALT: u32 = 2u32;
+pub const KBDNLS_INDEX_NORMAL: u32 = 1u32;
+pub const KBDNLS_KANAEVENT: u32 = 14u32;
+pub const KBDNLS_KANALOCK: u32 = 4u32;
+pub const KBDNLS_KATAKANA: u32 = 7u32;
+pub const KBDNLS_NOEVENT: u32 = 1u32;
+pub const KBDNLS_NULL: u32 = 0u32;
+pub const KBDNLS_NUMPAD: u32 = 13u32;
+pub const KBDNLS_ROMAN: u32 = 9u32;
+pub const KBDNLS_SBCSDBCS: u32 = 8u32;
+pub const KBDNLS_SEND_BASE_VK: u32 = 2u32;
+pub const KBDNLS_SEND_PARAM_VK: u32 = 3u32;
+pub const KBDNLS_TYPE_NORMAL: u32 = 1u32;
+pub const KBDNLS_TYPE_NULL: u32 = 0u32;
+pub const KBDNLS_TYPE_TOGGLE: u32 = 2u32;
+pub const KBDROYA: u32 = 16u32;
+pub const KBDSHIFT: u32 = 1u32;
+pub const KBDTABLE_MULTI_MAX: u32 = 8u32;
+pub const KBD_TYPE: u32 = 4u32;
+pub const KBD_VERSION: u32 = 1u32;
+pub const KEYBOARD_TYPE_GENERIC_101: u32 = 4u32;
+pub const KEYBOARD_TYPE_JAPAN: u32 = 7u32;
+pub const KEYBOARD_TYPE_KOREA: u32 = 8u32;
+pub const KEYBOARD_TYPE_UNKNOWN: u32 = 81u32;
+pub const KEYEVENTF_EXTENDEDKEY: KEYBD_EVENT_FLAGS = 1u32;
+pub const KEYEVENTF_KEYUP: KEYBD_EVENT_FLAGS = 2u32;
+pub const KEYEVENTF_SCANCODE: KEYBD_EVENT_FLAGS = 8u32;
+pub const KEYEVENTF_UNICODE: KEYBD_EVENT_FLAGS = 4u32;
+pub const KLF_ACTIVATE: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 1u32;
+pub const KLF_NOTELLSHELL: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 128u32;
+pub const KLF_REORDER: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 8u32;
+pub const KLF_REPLACELANG: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 16u32;
+pub const KLF_RESET: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 1073741824u32;
+pub const KLF_SETFORPROCESS: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 256u32;
+pub const KLF_SHIFTLOCK: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 65536u32;
+pub const KLF_SUBSTITUTE_OK: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 2u32;
+pub const KLLF_ALTGR: u32 = 1u32;
+pub const KLLF_GLOBAL_ATTRS: u32 = 2u32;
+pub const KLLF_LRM_RLM: u32 = 4u32;
+pub const KLLF_SHIFTLOCK: u32 = 2u32;
+pub const MACRON: u32 = 772u32;
+pub const MAPVK_VK_TO_CHAR: MAP_VIRTUAL_KEY_TYPE = 2u32;
+pub const MAPVK_VK_TO_VSC: MAP_VIRTUAL_KEY_TYPE = 0u32;
+pub const MAPVK_VK_TO_VSC_EX: MAP_VIRTUAL_KEY_TYPE = 4u32;
+pub const MAPVK_VSC_TO_VK: MAP_VIRTUAL_KEY_TYPE = 1u32;
+pub const MAPVK_VSC_TO_VK_EX: MAP_VIRTUAL_KEY_TYPE = 3u32;
+pub const MICROSOFT_KBD_001_TYPE: u32 = 4u32;
+pub const MICROSOFT_KBD_002_TYPE: u32 = 3u32;
+pub const MICROSOFT_KBD_101A_TYPE: u32 = 0u32;
+pub const MICROSOFT_KBD_101B_TYPE: u32 = 4u32;
+pub const MICROSOFT_KBD_101C_TYPE: u32 = 5u32;
+pub const MICROSOFT_KBD_101_TYPE: u32 = 0u32;
+pub const MICROSOFT_KBD_103_TYPE: u32 = 6u32;
+pub const MICROSOFT_KBD_106_TYPE: u32 = 2u32;
+pub const MICROSOFT_KBD_AX_TYPE: u32 = 1u32;
+pub const MICROSOFT_KBD_FUNC: u32 = 12u32;
+pub const MOD_ALT: HOT_KEY_MODIFIERS = 1u32;
+pub const MOD_CONTROL: HOT_KEY_MODIFIERS = 2u32;
+pub const MOD_NOREPEAT: HOT_KEY_MODIFIERS = 16384u32;
+pub const MOD_SHIFT: HOT_KEY_MODIFIERS = 4u32;
+pub const MOD_WIN: HOT_KEY_MODIFIERS = 8u32;
+pub const MOUSEEVENTF_ABSOLUTE: MOUSE_EVENT_FLAGS = 32768u32;
+pub const MOUSEEVENTF_HWHEEL: MOUSE_EVENT_FLAGS = 4096u32;
+pub const MOUSEEVENTF_LEFTDOWN: MOUSE_EVENT_FLAGS = 2u32;
+pub const MOUSEEVENTF_LEFTUP: MOUSE_EVENT_FLAGS = 4u32;
+pub const MOUSEEVENTF_MIDDLEDOWN: MOUSE_EVENT_FLAGS = 32u32;
+pub const MOUSEEVENTF_MIDDLEUP: MOUSE_EVENT_FLAGS = 64u32;
+pub const MOUSEEVENTF_MOVE: MOUSE_EVENT_FLAGS = 1u32;
+pub const MOUSEEVENTF_MOVE_NOCOALESCE: MOUSE_EVENT_FLAGS = 8192u32;
+pub const MOUSEEVENTF_RIGHTDOWN: MOUSE_EVENT_FLAGS = 8u32;
+pub const MOUSEEVENTF_RIGHTUP: MOUSE_EVENT_FLAGS = 16u32;
+pub const MOUSEEVENTF_VIRTUALDESK: MOUSE_EVENT_FLAGS = 16384u32;
+pub const MOUSEEVENTF_WHEEL: MOUSE_EVENT_FLAGS = 2048u32;
+pub const MOUSEEVENTF_XDOWN: MOUSE_EVENT_FLAGS = 128u32;
+pub const MOUSEEVENTF_XUP: MOUSE_EVENT_FLAGS = 256u32;
+pub const NEC_KBD_106_TYPE: u32 = 5u32;
+pub const NEC_KBD_H_MODE_TYPE: u32 = 3u32;
+pub const NEC_KBD_LAPTOP_TYPE: u32 = 4u32;
+pub const NEC_KBD_NORMAL_TYPE: u32 = 1u32;
+pub const NEC_KBD_N_MODE_TYPE: u32 = 2u32;
+pub const NLSKBD_INFO_ACCESSIBILITY_KEYMAP: u32 = 2u32;
+pub const NLSKBD_INFO_EMURATE_101_KEYBOARD: u32 = 16u32;
+pub const NLSKBD_INFO_EMURATE_106_KEYBOARD: u32 = 32u32;
+pub const NLSKBD_INFO_SEND_IME_NOTIFICATION: u32 = 1u32;
+pub const NLSKBD_OEM_AX: u32 = 1u32;
+pub const NLSKBD_OEM_DEC: u32 = 24u32;
+pub const NLSKBD_OEM_EPSON: u32 = 4u32;
+pub const NLSKBD_OEM_FUJITSU: u32 = 5u32;
+pub const NLSKBD_OEM_IBM: u32 = 7u32;
+pub const NLSKBD_OEM_MATSUSHITA: u32 = 10u32;
+pub const NLSKBD_OEM_MICROSOFT: u32 = 0u32;
+pub const NLSKBD_OEM_NEC: u32 = 13u32;
+pub const NLSKBD_OEM_TOSHIBA: u32 = 18u32;
+pub const OGONEK: u32 = 808u32;
+pub const OVERSCORE: u32 = 773u32;
+pub const RING: u32 = 778u32;
+pub const SCANCODE_ALT: u32 = 56u32;
+pub const SCANCODE_CTRL: u32 = 29u32;
+pub const SCANCODE_LSHIFT: u32 = 42u32;
+pub const SCANCODE_LWIN: u32 = 91u32;
+pub const SCANCODE_NUMPAD_FIRST: u32 = 71u32;
+pub const SCANCODE_NUMPAD_LAST: u32 = 82u32;
+pub const SCANCODE_RSHIFT: u32 = 54u32;
+pub const SCANCODE_RWIN: u32 = 92u32;
+pub const SCANCODE_THAI_LAYOUT_TOGGLE: u32 = 41u32;
+pub const SGCAPS: u32 = 2u32;
+pub const SHFT_INVALID: u32 = 15u32;
+pub const TILDE: u32 = 771u32;
+pub const TME_CANCEL: TRACKMOUSEEVENT_FLAGS = 2147483648u32;
+pub const TME_HOVER: TRACKMOUSEEVENT_FLAGS = 1u32;
+pub const TME_LEAVE: TRACKMOUSEEVENT_FLAGS = 2u32;
+pub const TME_NONCLIENT: TRACKMOUSEEVENT_FLAGS = 16u32;
+pub const TME_QUERY: TRACKMOUSEEVENT_FLAGS = 1073741824u32;
+pub const TONOS: u32 = 900u32;
+pub const TOSHIBA_KBD_DESKTOP_TYPE: u32 = 13u32;
+pub const TOSHIBA_KBD_LAPTOP_TYPE: u32 = 15u32;
+pub const UMLAUT: u32 = 776u32;
+pub const VK_0: VIRTUAL_KEY = 48u16;
+pub const VK_1: VIRTUAL_KEY = 49u16;
+pub const VK_2: VIRTUAL_KEY = 50u16;
+pub const VK_3: VIRTUAL_KEY = 51u16;
+pub const VK_4: VIRTUAL_KEY = 52u16;
+pub const VK_5: VIRTUAL_KEY = 53u16;
+pub const VK_6: VIRTUAL_KEY = 54u16;
+pub const VK_7: VIRTUAL_KEY = 55u16;
+pub const VK_8: VIRTUAL_KEY = 56u16;
+pub const VK_9: VIRTUAL_KEY = 57u16;
+pub const VK_A: VIRTUAL_KEY = 65u16;
+pub const VK_ABNT_C1: VIRTUAL_KEY = 193u16;
+pub const VK_ABNT_C2: VIRTUAL_KEY = 194u16;
+pub const VK_ACCEPT: VIRTUAL_KEY = 30u16;
+pub const VK_ADD: VIRTUAL_KEY = 107u16;
+pub const VK_APPS: VIRTUAL_KEY = 93u16;
+pub const VK_ATTN: VIRTUAL_KEY = 246u16;
+pub const VK_B: VIRTUAL_KEY = 66u16;
+pub const VK_BACK: VIRTUAL_KEY = 8u16;
+pub const VK_BROWSER_BACK: VIRTUAL_KEY = 166u16;
+pub const VK_BROWSER_FAVORITES: VIRTUAL_KEY = 171u16;
+pub const VK_BROWSER_FORWARD: VIRTUAL_KEY = 167u16;
+pub const VK_BROWSER_HOME: VIRTUAL_KEY = 172u16;
+pub const VK_BROWSER_REFRESH: VIRTUAL_KEY = 168u16;
+pub const VK_BROWSER_SEARCH: VIRTUAL_KEY = 170u16;
+pub const VK_BROWSER_STOP: VIRTUAL_KEY = 169u16;
+pub const VK_C: VIRTUAL_KEY = 67u16;
+pub const VK_CANCEL: VIRTUAL_KEY = 3u16;
+pub const VK_CAPITAL: VIRTUAL_KEY = 20u16;
+pub const VK_CLEAR: VIRTUAL_KEY = 12u16;
+pub const VK_CONTROL: VIRTUAL_KEY = 17u16;
+pub const VK_CONVERT: VIRTUAL_KEY = 28u16;
+pub const VK_CRSEL: VIRTUAL_KEY = 247u16;
+pub const VK_D: VIRTUAL_KEY = 68u16;
+pub const VK_DBE_ALPHANUMERIC: VIRTUAL_KEY = 240u16;
+pub const VK_DBE_CODEINPUT: VIRTUAL_KEY = 250u16;
+pub const VK_DBE_DBCSCHAR: VIRTUAL_KEY = 244u16;
+pub const VK_DBE_DETERMINESTRING: VIRTUAL_KEY = 252u16;
+pub const VK_DBE_ENTERDLGCONVERSIONMODE: VIRTUAL_KEY = 253u16;
+pub const VK_DBE_ENTERIMECONFIGMODE: VIRTUAL_KEY = 248u16;
+pub const VK_DBE_ENTERWORDREGISTERMODE: VIRTUAL_KEY = 247u16;
+pub const VK_DBE_FLUSHSTRING: VIRTUAL_KEY = 249u16;
+pub const VK_DBE_HIRAGANA: VIRTUAL_KEY = 242u16;
+pub const VK_DBE_KATAKANA: VIRTUAL_KEY = 241u16;
+pub const VK_DBE_NOCODEINPUT: VIRTUAL_KEY = 251u16;
+pub const VK_DBE_NOROMAN: VIRTUAL_KEY = 246u16;
+pub const VK_DBE_ROMAN: VIRTUAL_KEY = 245u16;
+pub const VK_DBE_SBCSCHAR: VIRTUAL_KEY = 243u16;
+pub const VK_DECIMAL: VIRTUAL_KEY = 110u16;
+pub const VK_DELETE: VIRTUAL_KEY = 46u16;
+pub const VK_DIVIDE: VIRTUAL_KEY = 111u16;
+pub const VK_DOWN: VIRTUAL_KEY = 40u16;
+pub const VK_E: VIRTUAL_KEY = 69u16;
+pub const VK_END: VIRTUAL_KEY = 35u16;
+pub const VK_EREOF: VIRTUAL_KEY = 249u16;
+pub const VK_ESCAPE: VIRTUAL_KEY = 27u16;
+pub const VK_EXECUTE: VIRTUAL_KEY = 43u16;
+pub const VK_EXSEL: VIRTUAL_KEY = 248u16;
+pub const VK_F: VIRTUAL_KEY = 70u16;
+pub const VK_F1: VIRTUAL_KEY = 112u16;
+pub const VK_F10: VIRTUAL_KEY = 121u16;
+pub const VK_F11: VIRTUAL_KEY = 122u16;
+pub const VK_F12: VIRTUAL_KEY = 123u16;
+pub const VK_F13: VIRTUAL_KEY = 124u16;
+pub const VK_F14: VIRTUAL_KEY = 125u16;
+pub const VK_F15: VIRTUAL_KEY = 126u16;
+pub const VK_F16: VIRTUAL_KEY = 127u16;
+pub const VK_F17: VIRTUAL_KEY = 128u16;
+pub const VK_F18: VIRTUAL_KEY = 129u16;
+pub const VK_F19: VIRTUAL_KEY = 130u16;
+pub const VK_F2: VIRTUAL_KEY = 113u16;
+pub const VK_F20: VIRTUAL_KEY = 131u16;
+pub const VK_F21: VIRTUAL_KEY = 132u16;
+pub const VK_F22: VIRTUAL_KEY = 133u16;
+pub const VK_F23: VIRTUAL_KEY = 134u16;
+pub const VK_F24: VIRTUAL_KEY = 135u16;
+pub const VK_F3: VIRTUAL_KEY = 114u16;
+pub const VK_F4: VIRTUAL_KEY = 115u16;
+pub const VK_F5: VIRTUAL_KEY = 116u16;
+pub const VK_F6: VIRTUAL_KEY = 117u16;
+pub const VK_F7: VIRTUAL_KEY = 118u16;
+pub const VK_F8: VIRTUAL_KEY = 119u16;
+pub const VK_F9: VIRTUAL_KEY = 120u16;
+pub const VK_FINAL: VIRTUAL_KEY = 24u16;
+pub const VK_G: VIRTUAL_KEY = 71u16;
+pub const VK_GAMEPAD_A: VIRTUAL_KEY = 195u16;
+pub const VK_GAMEPAD_B: VIRTUAL_KEY = 196u16;
+pub const VK_GAMEPAD_DPAD_DOWN: VIRTUAL_KEY = 204u16;
+pub const VK_GAMEPAD_DPAD_LEFT: VIRTUAL_KEY = 205u16;
+pub const VK_GAMEPAD_DPAD_RIGHT: VIRTUAL_KEY = 206u16;
+pub const VK_GAMEPAD_DPAD_UP: VIRTUAL_KEY = 203u16;
+pub const VK_GAMEPAD_LEFT_SHOULDER: VIRTUAL_KEY = 200u16;
+pub const VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON: VIRTUAL_KEY = 209u16;
+pub const VK_GAMEPAD_LEFT_THUMBSTICK_DOWN: VIRTUAL_KEY = 212u16;
+pub const VK_GAMEPAD_LEFT_THUMBSTICK_LEFT: VIRTUAL_KEY = 214u16;
+pub const VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT: VIRTUAL_KEY = 213u16;
+pub const VK_GAMEPAD_LEFT_THUMBSTICK_UP: VIRTUAL_KEY = 211u16;
+pub const VK_GAMEPAD_LEFT_TRIGGER: VIRTUAL_KEY = 201u16;
+pub const VK_GAMEPAD_MENU: VIRTUAL_KEY = 207u16;
+pub const VK_GAMEPAD_RIGHT_SHOULDER: VIRTUAL_KEY = 199u16;
+pub const VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON: VIRTUAL_KEY = 210u16;
+pub const VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN: VIRTUAL_KEY = 216u16;
+pub const VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT: VIRTUAL_KEY = 218u16;
+pub const VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT: VIRTUAL_KEY = 217u16;
+pub const VK_GAMEPAD_RIGHT_THUMBSTICK_UP: VIRTUAL_KEY = 215u16;
+pub const VK_GAMEPAD_RIGHT_TRIGGER: VIRTUAL_KEY = 202u16;
+pub const VK_GAMEPAD_VIEW: VIRTUAL_KEY = 208u16;
+pub const VK_GAMEPAD_X: VIRTUAL_KEY = 197u16;
+pub const VK_GAMEPAD_Y: VIRTUAL_KEY = 198u16;
+pub const VK_H: VIRTUAL_KEY = 72u16;
+pub const VK_HANGEUL: VIRTUAL_KEY = 21u16;
+pub const VK_HANGUL: VIRTUAL_KEY = 21u16;
+pub const VK_HANJA: VIRTUAL_KEY = 25u16;
+pub const VK_HELP: VIRTUAL_KEY = 47u16;
+pub const VK_HOME: VIRTUAL_KEY = 36u16;
+pub const VK_I: VIRTUAL_KEY = 73u16;
+pub const VK_ICO_00: VIRTUAL_KEY = 228u16;
+pub const VK_ICO_CLEAR: VIRTUAL_KEY = 230u16;
+pub const VK_ICO_HELP: VIRTUAL_KEY = 227u16;
+pub const VK_IME_OFF: VIRTUAL_KEY = 26u16;
+pub const VK_IME_ON: VIRTUAL_KEY = 22u16;
+pub const VK_INSERT: VIRTUAL_KEY = 45u16;
+pub const VK_J: VIRTUAL_KEY = 74u16;
+pub const VK_JUNJA: VIRTUAL_KEY = 23u16;
+pub const VK_K: VIRTUAL_KEY = 75u16;
+pub const VK_KANA: VIRTUAL_KEY = 21u16;
+pub const VK_KANJI: VIRTUAL_KEY = 25u16;
+pub const VK_L: VIRTUAL_KEY = 76u16;
+pub const VK_LAUNCH_APP1: VIRTUAL_KEY = 182u16;
+pub const VK_LAUNCH_APP2: VIRTUAL_KEY = 183u16;
+pub const VK_LAUNCH_MAIL: VIRTUAL_KEY = 180u16;
+pub const VK_LAUNCH_MEDIA_SELECT: VIRTUAL_KEY = 181u16;
+pub const VK_LBUTTON: VIRTUAL_KEY = 1u16;
+pub const VK_LCONTROL: VIRTUAL_KEY = 162u16;
+pub const VK_LEFT: VIRTUAL_KEY = 37u16;
+pub const VK_LMENU: VIRTUAL_KEY = 164u16;
+pub const VK_LSHIFT: VIRTUAL_KEY = 160u16;
+pub const VK_LWIN: VIRTUAL_KEY = 91u16;
+pub const VK_M: VIRTUAL_KEY = 77u16;
+pub const VK_MBUTTON: VIRTUAL_KEY = 4u16;
+pub const VK_MEDIA_NEXT_TRACK: VIRTUAL_KEY = 176u16;
+pub const VK_MEDIA_PLAY_PAUSE: VIRTUAL_KEY = 179u16;
+pub const VK_MEDIA_PREV_TRACK: VIRTUAL_KEY = 177u16;
+pub const VK_MEDIA_STOP: VIRTUAL_KEY = 178u16;
+pub const VK_MENU: VIRTUAL_KEY = 18u16;
+pub const VK_MODECHANGE: VIRTUAL_KEY = 31u16;
+pub const VK_MULTIPLY: VIRTUAL_KEY = 106u16;
+pub const VK_N: VIRTUAL_KEY = 78u16;
+pub const VK_NAVIGATION_ACCEPT: VIRTUAL_KEY = 142u16;
+pub const VK_NAVIGATION_CANCEL: VIRTUAL_KEY = 143u16;
+pub const VK_NAVIGATION_DOWN: VIRTUAL_KEY = 139u16;
+pub const VK_NAVIGATION_LEFT: VIRTUAL_KEY = 140u16;
+pub const VK_NAVIGATION_MENU: VIRTUAL_KEY = 137u16;
+pub const VK_NAVIGATION_RIGHT: VIRTUAL_KEY = 141u16;
+pub const VK_NAVIGATION_UP: VIRTUAL_KEY = 138u16;
+pub const VK_NAVIGATION_VIEW: VIRTUAL_KEY = 136u16;
+pub const VK_NEXT: VIRTUAL_KEY = 34u16;
+pub const VK_NONAME: VIRTUAL_KEY = 252u16;
+pub const VK_NONCONVERT: VIRTUAL_KEY = 29u16;
+pub const VK_NUMLOCK: VIRTUAL_KEY = 144u16;
+pub const VK_NUMPAD0: VIRTUAL_KEY = 96u16;
+pub const VK_NUMPAD1: VIRTUAL_KEY = 97u16;
+pub const VK_NUMPAD2: VIRTUAL_KEY = 98u16;
+pub const VK_NUMPAD3: VIRTUAL_KEY = 99u16;
+pub const VK_NUMPAD4: VIRTUAL_KEY = 100u16;
+pub const VK_NUMPAD5: VIRTUAL_KEY = 101u16;
+pub const VK_NUMPAD6: VIRTUAL_KEY = 102u16;
+pub const VK_NUMPAD7: VIRTUAL_KEY = 103u16;
+pub const VK_NUMPAD8: VIRTUAL_KEY = 104u16;
+pub const VK_NUMPAD9: VIRTUAL_KEY = 105u16;
+pub const VK_O: VIRTUAL_KEY = 79u16;
+pub const VK_OEM_1: VIRTUAL_KEY = 186u16;
+pub const VK_OEM_102: VIRTUAL_KEY = 226u16;
+pub const VK_OEM_2: VIRTUAL_KEY = 191u16;
+pub const VK_OEM_3: VIRTUAL_KEY = 192u16;
+pub const VK_OEM_4: VIRTUAL_KEY = 219u16;
+pub const VK_OEM_5: VIRTUAL_KEY = 220u16;
+pub const VK_OEM_6: VIRTUAL_KEY = 221u16;
+pub const VK_OEM_7: VIRTUAL_KEY = 222u16;
+pub const VK_OEM_8: VIRTUAL_KEY = 223u16;
+pub const VK_OEM_ATTN: VIRTUAL_KEY = 240u16;
+pub const VK_OEM_AUTO: VIRTUAL_KEY = 243u16;
+pub const VK_OEM_AX: VIRTUAL_KEY = 225u16;
+pub const VK_OEM_BACKTAB: VIRTUAL_KEY = 245u16;
+pub const VK_OEM_CLEAR: VIRTUAL_KEY = 254u16;
+pub const VK_OEM_COMMA: VIRTUAL_KEY = 188u16;
+pub const VK_OEM_COPY: VIRTUAL_KEY = 242u16;
+pub const VK_OEM_CUSEL: VIRTUAL_KEY = 239u16;
+pub const VK_OEM_ENLW: VIRTUAL_KEY = 244u16;
+pub const VK_OEM_FINISH: VIRTUAL_KEY = 241u16;
+pub const VK_OEM_FJ_JISHO: VIRTUAL_KEY = 146u16;
+pub const VK_OEM_FJ_LOYA: VIRTUAL_KEY = 149u16;
+pub const VK_OEM_FJ_MASSHOU: VIRTUAL_KEY = 147u16;
+pub const VK_OEM_FJ_ROYA: VIRTUAL_KEY = 150u16;
+pub const VK_OEM_FJ_TOUROKU: VIRTUAL_KEY = 148u16;
+pub const VK_OEM_JUMP: VIRTUAL_KEY = 234u16;
+pub const VK_OEM_MINUS: VIRTUAL_KEY = 189u16;
+pub const VK_OEM_NEC_EQUAL: VIRTUAL_KEY = 146u16;
+pub const VK_OEM_PA1: VIRTUAL_KEY = 235u16;
+pub const VK_OEM_PA2: VIRTUAL_KEY = 236u16;
+pub const VK_OEM_PA3: VIRTUAL_KEY = 237u16;
+pub const VK_OEM_PERIOD: VIRTUAL_KEY = 190u16;
+pub const VK_OEM_PLUS: VIRTUAL_KEY = 187u16;
+pub const VK_OEM_RESET: VIRTUAL_KEY = 233u16;
+pub const VK_OEM_WSCTRL: VIRTUAL_KEY = 238u16;
+pub const VK_P: VIRTUAL_KEY = 80u16;
+pub const VK_PA1: VIRTUAL_KEY = 253u16;
+pub const VK_PACKET: VIRTUAL_KEY = 231u16;
+pub const VK_PAUSE: VIRTUAL_KEY = 19u16;
+pub const VK_PLAY: VIRTUAL_KEY = 250u16;
+pub const VK_PRINT: VIRTUAL_KEY = 42u16;
+pub const VK_PRIOR: VIRTUAL_KEY = 33u16;
+pub const VK_PROCESSKEY: VIRTUAL_KEY = 229u16;
+pub const VK_Q: VIRTUAL_KEY = 81u16;
+pub const VK_R: VIRTUAL_KEY = 82u16;
+pub const VK_RBUTTON: VIRTUAL_KEY = 2u16;
+pub const VK_RCONTROL: VIRTUAL_KEY = 163u16;
+pub const VK_RETURN: VIRTUAL_KEY = 13u16;
+pub const VK_RIGHT: VIRTUAL_KEY = 39u16;
+pub const VK_RMENU: VIRTUAL_KEY = 165u16;
+pub const VK_RSHIFT: VIRTUAL_KEY = 161u16;
+pub const VK_RWIN: VIRTUAL_KEY = 92u16;
+pub const VK_S: VIRTUAL_KEY = 83u16;
+pub const VK_SCROLL: VIRTUAL_KEY = 145u16;
+pub const VK_SELECT: VIRTUAL_KEY = 41u16;
+pub const VK_SEPARATOR: VIRTUAL_KEY = 108u16;
+pub const VK_SHIFT: VIRTUAL_KEY = 16u16;
+pub const VK_SLEEP: VIRTUAL_KEY = 95u16;
+pub const VK_SNAPSHOT: VIRTUAL_KEY = 44u16;
+pub const VK_SPACE: VIRTUAL_KEY = 32u16;
+pub const VK_SUBTRACT: VIRTUAL_KEY = 109u16;
+pub const VK_T: VIRTUAL_KEY = 84u16;
+pub const VK_TAB: VIRTUAL_KEY = 9u16;
+pub const VK_U: VIRTUAL_KEY = 85u16;
+pub const VK_UP: VIRTUAL_KEY = 38u16;
+pub const VK_V: VIRTUAL_KEY = 86u16;
+pub const VK_VOLUME_DOWN: VIRTUAL_KEY = 174u16;
+pub const VK_VOLUME_MUTE: VIRTUAL_KEY = 173u16;
+pub const VK_VOLUME_UP: VIRTUAL_KEY = 175u16;
+pub const VK_W: VIRTUAL_KEY = 87u16;
+pub const VK_X: VIRTUAL_KEY = 88u16;
+pub const VK_XBUTTON1: VIRTUAL_KEY = 5u16;
+pub const VK_XBUTTON2: VIRTUAL_KEY = 6u16;
+pub const VK_Y: VIRTUAL_KEY = 89u16;
+pub const VK_Z: VIRTUAL_KEY = 90u16;
+pub const VK_ZOOM: VIRTUAL_KEY = 251u16;
+pub const VK__none_: VIRTUAL_KEY = 255u16;
+pub const WCH_DEAD: u32 = 61441u32;
+pub const WCH_LGTR: u32 = 61442u32;
+pub const WCH_NONE: u32 = 61440u32;
+pub const wszACUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{301}");
+pub const wszBREVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{306}");
+pub const wszCEDILLA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{327}");
+pub const wszCIRCUMFLEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{302}");
+pub const wszDIARESIS_TONOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{385}");
+pub const wszDOT_ABOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{307}");
+pub const wszDOUBLE_ACUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{30b}");
+pub const wszGRAVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{300}");
+pub const wszHACEK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{30c}");
+pub const wszHOOK_ABOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{309}");
+pub const wszMACRON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{304}");
+pub const wszOGONEK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{328}");
+pub const wszOVERSCORE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{305}");
+pub const wszRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{30a}");
+pub const wszTILDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{303}");
+pub const wszTONOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{384}");
+pub const wszUMLAUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{308}");
+pub type ACTIVATE_KEYBOARD_LAYOUT_FLAGS = u32;
+pub type GET_MOUSE_MOVE_POINTS_EX_RESOLUTION = u32;
+pub type HOT_KEY_MODIFIERS = u32;
+pub type INPUT_TYPE = u32;
+pub type KEYBD_EVENT_FLAGS = u32;
+pub type MAP_VIRTUAL_KEY_TYPE = u32;
+pub type MOUSE_EVENT_FLAGS = u32;
+pub type TRACKMOUSEEVENT_FLAGS = u32;
+pub type VIRTUAL_KEY = u16;
+#[repr(C)]
+pub struct DEADKEY {
+ pub dwBoth: u32,
+ pub wchComposed: u16,
+ pub uFlags: u16,
+}
+impl ::core::marker::Copy for DEADKEY {}
+impl ::core::clone::Clone for DEADKEY {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct HARDWAREINPUT {
+ pub uMsg: u32,
+ pub wParamL: u16,
+ pub wParamH: u16,
+}
+impl ::core::marker::Copy for HARDWAREINPUT {}
+impl ::core::clone::Clone for HARDWAREINPUT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct INPUT {
+ pub r#type: INPUT_TYPE,
+ pub Anonymous: INPUT_0,
+}
+impl ::core::marker::Copy for INPUT {}
+impl ::core::clone::Clone for INPUT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub union INPUT_0 {
+ pub mi: MOUSEINPUT,
+ pub ki: KEYBDINPUT,
+ pub hi: HARDWAREINPUT,
+}
+impl ::core::marker::Copy for INPUT_0 {}
+impl ::core::clone::Clone for INPUT_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct KBDNLSTABLES {
+ pub OEMIdentifier: u16,
+ pub LayoutInformation: u16,
+ pub NumOfVkToF: u32,
+ pub pVkToF: *mut VK_F,
+ pub NumOfMouseVKey: i32,
+ pub pusMouseVKey: *mut u16,
+}
+impl ::core::marker::Copy for KBDNLSTABLES {}
+impl ::core::clone::Clone for KBDNLSTABLES {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct KBDTABLES {
+ pub pCharModifiers: *mut MODIFIERS,
+ pub pVkToWcharTable: *mut VK_TO_WCHAR_TABLE,
+ pub pDeadKey: *mut DEADKEY,
+ pub pKeyNames: *mut VSC_LPWSTR,
+ pub pKeyNamesExt: *mut VSC_LPWSTR,
+ pub pKeyNamesDead: *mut *mut u16,
+ pub pusVSCtoVK: *mut u16,
+ pub bMaxVSCtoVK: u8,
+ pub pVSCtoVK_E0: *mut VSC_VK,
+ pub pVSCtoVK_E1: *mut VSC_VK,
+ pub fLocaleFlags: u32,
+ pub nLgMax: u8,
+ pub cbLgEntry: u8,
+ pub pLigature: *mut LIGATURE1,
+ pub dwType: u32,
+ pub dwSubType: u32,
+}
+impl ::core::marker::Copy for KBDTABLES {}
+impl ::core::clone::Clone for KBDTABLES {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct KBDTABLE_DESC {
+ pub wszDllName: [u16; 32],
+ pub dwType: u32,
+ pub dwSubType: u32,
+}
+impl ::core::marker::Copy for KBDTABLE_DESC {}
+impl ::core::clone::Clone for KBDTABLE_DESC {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct KBDTABLE_MULTI {
+ pub nTables: u32,
+ pub aKbdTables: [KBDTABLE_DESC; 8],
+}
+impl ::core::marker::Copy for KBDTABLE_MULTI {}
+impl ::core::clone::Clone for KBDTABLE_MULTI {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct KBD_TYPE_INFO {
+ pub dwVersion: u32,
+ pub dwType: u32,
+ pub dwSubType: u32,
+}
+impl ::core::marker::Copy for KBD_TYPE_INFO {}
+impl ::core::clone::Clone for KBD_TYPE_INFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct KEYBDINPUT {
+ pub wVk: VIRTUAL_KEY,
+ pub wScan: u16,
+ pub dwFlags: KEYBD_EVENT_FLAGS,
+ pub time: u32,
+ pub dwExtraInfo: usize,
+}
+impl ::core::marker::Copy for KEYBDINPUT {}
+impl ::core::clone::Clone for KEYBDINPUT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct LASTINPUTINFO {
+ pub cbSize: u32,
+ pub dwTime: u32,
+}
+impl ::core::marker::Copy for LASTINPUTINFO {}
+impl ::core::clone::Clone for LASTINPUTINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct LIGATURE1 {
+ pub VirtualKey: u8,
+ pub ModificationNumber: u16,
+ pub wch: [u16; 1],
+}
+impl ::core::marker::Copy for LIGATURE1 {}
+impl ::core::clone::Clone for LIGATURE1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct LIGATURE2 {
+ pub VirtualKey: u8,
+ pub ModificationNumber: u16,
+ pub wch: [u16; 2],
+}
+impl ::core::marker::Copy for LIGATURE2 {}
+impl ::core::clone::Clone for LIGATURE2 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct LIGATURE3 {
+ pub VirtualKey: u8,
+ pub ModificationNumber: u16,
+ pub wch: [u16; 3],
+}
+impl ::core::marker::Copy for LIGATURE3 {}
+impl ::core::clone::Clone for LIGATURE3 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct LIGATURE4 {
+ pub VirtualKey: u8,
+ pub ModificationNumber: u16,
+ pub wch: [u16; 4],
+}
+impl ::core::marker::Copy for LIGATURE4 {}
+impl ::core::clone::Clone for LIGATURE4 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct LIGATURE5 {
+ pub VirtualKey: u8,
+ pub ModificationNumber: u16,
+ pub wch: [u16; 5],
+}
+impl ::core::marker::Copy for LIGATURE5 {}
+impl ::core::clone::Clone for LIGATURE5 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct MODIFIERS {
+ pub pVkToBit: *mut VK_TO_BIT,
+ pub wMaxModBits: u16,
+ pub ModNumber: [u8; 1],
+}
+impl ::core::marker::Copy for MODIFIERS {}
+impl ::core::clone::Clone for MODIFIERS {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct MOUSEINPUT {
+ pub dx: i32,
+ pub dy: i32,
+ pub mouseData: u32,
+ pub dwFlags: MOUSE_EVENT_FLAGS,
+ pub time: u32,
+ pub dwExtraInfo: usize,
+}
+impl ::core::marker::Copy for MOUSEINPUT {}
+impl ::core::clone::Clone for MOUSEINPUT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct MOUSEMOVEPOINT {
+ pub x: i32,
+ pub y: i32,
+ pub time: u32,
+ pub dwExtraInfo: usize,
+}
+impl ::core::marker::Copy for MOUSEMOVEPOINT {}
+impl ::core::clone::Clone for MOUSEMOVEPOINT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct TRACKMOUSEEVENT {
+ pub cbSize: u32,
+ pub dwFlags: TRACKMOUSEEVENT_FLAGS,
+ pub hwndTrack: super::super::super::Foundation::HWND,
+ pub dwHoverTime: u32,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for TRACKMOUSEEVENT {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for TRACKMOUSEEVENT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_F {
+ pub Vk: u8,
+ pub NLSFEProcType: u8,
+ pub NLSFEProcCurrent: u8,
+ pub NLSFEProcSwitch: u8,
+ pub NLSFEProc: [VK_FPARAM; 8],
+ pub NLSFEProcAlt: [VK_FPARAM; 8],
+}
+impl ::core::marker::Copy for VK_F {}
+impl ::core::clone::Clone for VK_F {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_FPARAM {
+ pub NLSFEProcIndex: u8,
+ pub NLSFEProcParam: u32,
+}
+impl ::core::marker::Copy for VK_FPARAM {}
+impl ::core::clone::Clone for VK_FPARAM {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_BIT {
+ pub Vk: u8,
+ pub ModBits: u8,
+}
+impl ::core::marker::Copy for VK_TO_BIT {}
+impl ::core::clone::Clone for VK_TO_BIT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS1 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 1],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS1 {}
+impl ::core::clone::Clone for VK_TO_WCHARS1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS10 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 10],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS10 {}
+impl ::core::clone::Clone for VK_TO_WCHARS10 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS2 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 2],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS2 {}
+impl ::core::clone::Clone for VK_TO_WCHARS2 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS3 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 3],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS3 {}
+impl ::core::clone::Clone for VK_TO_WCHARS3 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS4 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 4],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS4 {}
+impl ::core::clone::Clone for VK_TO_WCHARS4 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS5 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 5],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS5 {}
+impl ::core::clone::Clone for VK_TO_WCHARS5 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS6 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 6],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS6 {}
+impl ::core::clone::Clone for VK_TO_WCHARS6 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS7 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 7],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS7 {}
+impl ::core::clone::Clone for VK_TO_WCHARS7 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS8 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 8],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS8 {}
+impl ::core::clone::Clone for VK_TO_WCHARS8 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHARS9 {
+ pub VirtualKey: u8,
+ pub Attributes: u8,
+ pub wch: [u16; 9],
+}
+impl ::core::marker::Copy for VK_TO_WCHARS9 {}
+impl ::core::clone::Clone for VK_TO_WCHARS9 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_TO_WCHAR_TABLE {
+ pub pVkToWchars: *mut VK_TO_WCHARS1,
+ pub nModifications: u8,
+ pub cbSize: u8,
+}
+impl ::core::marker::Copy for VK_TO_WCHAR_TABLE {}
+impl ::core::clone::Clone for VK_TO_WCHAR_TABLE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VK_VSC {
+ pub Vk: u8,
+ pub Vsc: u8,
+}
+impl ::core::marker::Copy for VK_VSC {}
+impl ::core::clone::Clone for VK_VSC {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VSC_LPWSTR {
+ pub vsc: u8,
+ pub pwsz: ::windows_sys::core::PWSTR,
+}
+impl ::core::marker::Copy for VSC_LPWSTR {}
+impl ::core::clone::Clone for VSC_LPWSTR {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct VSC_VK {
+ pub Vsc: u8,
+ pub Vk: u16,
+}
+impl ::core::marker::Copy for VSC_VK {}
+impl ::core::clone::Clone for VSC_VK {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs b/vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs
new file mode 100644
index 0000000..6d92e6c
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs
@@ -0,0 +1,219 @@
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableMouseInPointer(fenable : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPointerCursorId(pointerid : u32, cursorid : *mut u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDevice(device : super::super::super::Foundation:: HANDLE, pointerdevice : *mut super::super::Controls:: POINTER_DEVICE_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDeviceCursors(device : super::super::super::Foundation:: HANDLE, cursorcount : *mut u32, devicecursors : *mut super::super::Controls:: POINTER_DEVICE_CURSOR_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDeviceProperties(device : super::super::super::Foundation:: HANDLE, propertycount : *mut u32, pointerproperties : *mut super::super::Controls:: POINTER_DEVICE_PROPERTY) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPointerDeviceRects(device : super::super::super::Foundation:: HANDLE, pointerdevicerect : *mut super::super::super::Foundation:: RECT, displayrect : *mut super::super::super::Foundation:: RECT) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDevices(devicecount : *mut u32, pointerdevices : *mut super::super::Controls:: POINTER_DEVICE_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameInfo(pointerid : u32, pointercount : *mut u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameInfoHistory(pointerid : u32, entriescount : *mut u32, pointercount : *mut u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFramePenInfo(pointerid : u32, pointercount : *mut u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFramePenInfoHistory(pointerid : u32, entriescount : *mut u32, pointercount : *mut u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameTouchInfo(pointerid : u32, pointercount : *mut u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameTouchInfoHistory(pointerid : u32, entriescount : *mut u32, pointercount : *mut u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerInfo(pointerid : u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerInfoHistory(pointerid : u32, entriescount : *mut u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPointerInputTransform(pointerid : u32, historycount : u32, inputtransform : *mut INPUT_TRANSFORM) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerPenInfo(pointerid : u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerPenInfoHistory(pointerid : u32, entriescount : *mut u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerTouchInfo(pointerid : u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerTouchInfoHistory(pointerid : u32, entriescount : *mut u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerType(pointerid : u32, pointertype : *mut super::super::WindowsAndMessaging:: POINTER_INPUT_TYPE) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn GetRawPointerDeviceData(pointerid : u32, historycount : u32, propertiescount : u32, pproperties : *const super::super::Controls:: POINTER_DEVICE_PROPERTY, pvalues : *mut i32) -> super::super::super::Foundation:: BOOL);
+::windows_targets::link!("user32.dll" "system" fn GetUnpredictedMessagePos() -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeTouchInjection(maxcount : u32, dwmode : TOUCH_FEEDBACK_MODE) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn InjectSyntheticPointerInput(device : super::super::Controls:: HSYNTHETICPOINTERDEVICE, pointerinfo : *const super::super::Controls:: POINTER_TYPE_INFO, count : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn InjectTouchInput(count : u32, contacts : *const POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsMouseInPointerEnabled() -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SkipPointerFrameMessages(pointerid : u32) -> super::super::super::Foundation:: BOOL);
+pub const POINTER_CHANGE_FIFTHBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 9i32;
+pub const POINTER_CHANGE_FIFTHBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 10i32;
+pub const POINTER_CHANGE_FIRSTBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 1i32;
+pub const POINTER_CHANGE_FIRSTBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 2i32;
+pub const POINTER_CHANGE_FOURTHBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 7i32;
+pub const POINTER_CHANGE_FOURTHBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 8i32;
+pub const POINTER_CHANGE_NONE: POINTER_BUTTON_CHANGE_TYPE = 0i32;
+pub const POINTER_CHANGE_SECONDBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 3i32;
+pub const POINTER_CHANGE_SECONDBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 4i32;
+pub const POINTER_CHANGE_THIRDBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 5i32;
+pub const POINTER_CHANGE_THIRDBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 6i32;
+pub const POINTER_FLAG_CANCELED: POINTER_FLAGS = 32768u32;
+pub const POINTER_FLAG_CAPTURECHANGED: POINTER_FLAGS = 2097152u32;
+pub const POINTER_FLAG_CONFIDENCE: POINTER_FLAGS = 16384u32;
+pub const POINTER_FLAG_DOWN: POINTER_FLAGS = 65536u32;
+pub const POINTER_FLAG_FIFTHBUTTON: POINTER_FLAGS = 256u32;
+pub const POINTER_FLAG_FIRSTBUTTON: POINTER_FLAGS = 16u32;
+pub const POINTER_FLAG_FOURTHBUTTON: POINTER_FLAGS = 128u32;
+pub const POINTER_FLAG_HASTRANSFORM: POINTER_FLAGS = 4194304u32;
+pub const POINTER_FLAG_HWHEEL: POINTER_FLAGS = 1048576u32;
+pub const POINTER_FLAG_INCONTACT: POINTER_FLAGS = 4u32;
+pub const POINTER_FLAG_INRANGE: POINTER_FLAGS = 2u32;
+pub const POINTER_FLAG_NEW: POINTER_FLAGS = 1u32;
+pub const POINTER_FLAG_NONE: POINTER_FLAGS = 0u32;
+pub const POINTER_FLAG_PRIMARY: POINTER_FLAGS = 8192u32;
+pub const POINTER_FLAG_SECONDBUTTON: POINTER_FLAGS = 32u32;
+pub const POINTER_FLAG_THIRDBUTTON: POINTER_FLAGS = 64u32;
+pub const POINTER_FLAG_UP: POINTER_FLAGS = 262144u32;
+pub const POINTER_FLAG_UPDATE: POINTER_FLAGS = 131072u32;
+pub const POINTER_FLAG_WHEEL: POINTER_FLAGS = 524288u32;
+pub const TOUCH_FEEDBACK_DEFAULT: TOUCH_FEEDBACK_MODE = 1u32;
+pub const TOUCH_FEEDBACK_INDIRECT: TOUCH_FEEDBACK_MODE = 2u32;
+pub const TOUCH_FEEDBACK_NONE: TOUCH_FEEDBACK_MODE = 3u32;
+pub type POINTER_BUTTON_CHANGE_TYPE = i32;
+pub type POINTER_FLAGS = u32;
+pub type TOUCH_FEEDBACK_MODE = u32;
+#[repr(C)]
+pub struct INPUT_INJECTION_VALUE {
+ pub page: u16,
+ pub usage: u16,
+ pub value: i32,
+ pub index: u16,
+}
+impl ::core::marker::Copy for INPUT_INJECTION_VALUE {}
+impl ::core::clone::Clone for INPUT_INJECTION_VALUE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct INPUT_TRANSFORM {
+ pub Anonymous: INPUT_TRANSFORM_0,
+}
+impl ::core::marker::Copy for INPUT_TRANSFORM {}
+impl ::core::clone::Clone for INPUT_TRANSFORM {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub union INPUT_TRANSFORM_0 {
+ pub Anonymous: INPUT_TRANSFORM_0_0,
+ pub m: [f32; 16],
+}
+impl ::core::marker::Copy for INPUT_TRANSFORM_0 {}
+impl ::core::clone::Clone for INPUT_TRANSFORM_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct INPUT_TRANSFORM_0_0 {
+ pub _11: f32,
+ pub _12: f32,
+ pub _13: f32,
+ pub _14: f32,
+ pub _21: f32,
+ pub _22: f32,
+ pub _23: f32,
+ pub _24: f32,
+ pub _31: f32,
+ pub _32: f32,
+ pub _33: f32,
+ pub _34: f32,
+ pub _41: f32,
+ pub _42: f32,
+ pub _43: f32,
+ pub _44: f32,
+}
+impl ::core::marker::Copy for INPUT_TRANSFORM_0_0 {}
+impl ::core::clone::Clone for INPUT_TRANSFORM_0_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+pub struct POINTER_INFO {
+ pub pointerType: super::super::WindowsAndMessaging::POINTER_INPUT_TYPE,
+ pub pointerId: u32,
+ pub frameId: u32,
+ pub pointerFlags: POINTER_FLAGS,
+ pub sourceDevice: super::super::super::Foundation::HANDLE,
+ pub hwndTarget: super::super::super::Foundation::HWND,
+ pub ptPixelLocation: super::super::super::Foundation::POINT,
+ pub ptHimetricLocation: super::super::super::Foundation::POINT,
+ pub ptPixelLocationRaw: super::super::super::Foundation::POINT,
+ pub ptHimetricLocationRaw: super::super::super::Foundation::POINT,
+ pub dwTime: u32,
+ pub historyCount: u32,
+ pub InputData: i32,
+ pub dwKeyStates: u32,
+ pub PerformanceCount: u64,
+ pub ButtonChangeType: POINTER_BUTTON_CHANGE_TYPE,
+}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::marker::Copy for POINTER_INFO {}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::clone::Clone for POINTER_INFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+pub struct POINTER_PEN_INFO {
+ pub pointerInfo: POINTER_INFO,
+ pub penFlags: u32,
+ pub penMask: u32,
+ pub pressure: u32,
+ pub rotation: u32,
+ pub tiltX: i32,
+ pub tiltY: i32,
+}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::marker::Copy for POINTER_PEN_INFO {}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::clone::Clone for POINTER_PEN_INFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"]
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+pub struct POINTER_TOUCH_INFO {
+ pub pointerInfo: POINTER_INFO,
+ pub touchFlags: u32,
+ pub touchMask: u32,
+ pub rcContact: super::super::super::Foundation::RECT,
+ pub rcContactRaw: super::super::super::Foundation::RECT,
+ pub orientation: u32,
+ pub pressure: u32,
+}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::marker::Copy for POINTER_TOUCH_INFO {}
+#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
+impl ::core::clone::Clone for POINTER_TOUCH_INFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs b/vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs
new file mode 100644
index 0000000..5e742ae
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs
@@ -0,0 +1,134 @@
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseGestureInfoHandle(hgestureinfo : HGESTUREINFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseTouchInputHandle(htouchinput : HTOUCHINPUT) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGestureConfig(hwnd : super::super::super::Foundation:: HWND, dwreserved : u32, dwflags : u32, pcids : *const u32, pgestureconfig : *mut GESTURECONFIG, cbsize : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGestureExtraArgs(hgestureinfo : HGESTUREINFO, cbextraargs : u32, pextraargs : *mut u8) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGestureInfo(hgestureinfo : HGESTUREINFO, pgestureinfo : *mut GESTUREINFO) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTouchInputInfo(htouchinput : HTOUCHINPUT, cinputs : u32, pinputs : *mut TOUCHINPUT, cbsize : i32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsTouchWindow(hwnd : super::super::super::Foundation:: HWND, pulflags : *mut u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterTouchWindow(hwnd : super::super::super::Foundation:: HWND, ulflags : REGISTER_TOUCH_WINDOW_FLAGS) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetGestureConfig(hwnd : super::super::super::Foundation:: HWND, dwreserved : u32, cids : u32, pgestureconfig : *const GESTURECONFIG, cbsize : u32) -> super::super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterTouchWindow(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: BOOL);
+pub type IInertiaProcessor = *mut ::core::ffi::c_void;
+pub type IManipulationProcessor = *mut ::core::ffi::c_void;
+pub type _IManipulationEvents = *mut ::core::ffi::c_void;
+pub const GID_BEGIN: GESTURECONFIG_ID = 1u32;
+pub const GID_END: GESTURECONFIG_ID = 2u32;
+pub const GID_PAN: GESTURECONFIG_ID = 4u32;
+pub const GID_PRESSANDTAP: GESTURECONFIG_ID = 7u32;
+pub const GID_ROLLOVER: GESTURECONFIG_ID = 7u32;
+pub const GID_ROTATE: GESTURECONFIG_ID = 5u32;
+pub const GID_TWOFINGERTAP: GESTURECONFIG_ID = 6u32;
+pub const GID_ZOOM: GESTURECONFIG_ID = 3u32;
+pub const InertiaProcessor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabb27087_4ce0_4e58_a0cb_e24df96814be);
+pub const MANIPULATION_ALL: MANIPULATION_PROCESSOR_MANIPULATIONS = 15i32;
+pub const MANIPULATION_NONE: MANIPULATION_PROCESSOR_MANIPULATIONS = 0i32;
+pub const MANIPULATION_ROTATE: MANIPULATION_PROCESSOR_MANIPULATIONS = 8i32;
+pub const MANIPULATION_SCALE: MANIPULATION_PROCESSOR_MANIPULATIONS = 4i32;
+pub const MANIPULATION_TRANSLATE_X: MANIPULATION_PROCESSOR_MANIPULATIONS = 1i32;
+pub const MANIPULATION_TRANSLATE_Y: MANIPULATION_PROCESSOR_MANIPULATIONS = 2i32;
+pub const ManipulationProcessor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x597d4fb0_47fd_4aff_89b9_c6cfae8cf08e);
+pub const TOUCHEVENTF_DOWN: TOUCHEVENTF_FLAGS = 2u32;
+pub const TOUCHEVENTF_INRANGE: TOUCHEVENTF_FLAGS = 8u32;
+pub const TOUCHEVENTF_MOVE: TOUCHEVENTF_FLAGS = 1u32;
+pub const TOUCHEVENTF_NOCOALESCE: TOUCHEVENTF_FLAGS = 32u32;
+pub const TOUCHEVENTF_PALM: TOUCHEVENTF_FLAGS = 128u32;
+pub const TOUCHEVENTF_PEN: TOUCHEVENTF_FLAGS = 64u32;
+pub const TOUCHEVENTF_PRIMARY: TOUCHEVENTF_FLAGS = 16u32;
+pub const TOUCHEVENTF_UP: TOUCHEVENTF_FLAGS = 4u32;
+pub const TOUCHINPUTMASKF_CONTACTAREA: TOUCHINPUTMASKF_MASK = 4u32;
+pub const TOUCHINPUTMASKF_EXTRAINFO: TOUCHINPUTMASKF_MASK = 2u32;
+pub const TOUCHINPUTMASKF_TIMEFROMSYSTEM: TOUCHINPUTMASKF_MASK = 1u32;
+pub const TWF_FINETOUCH: REGISTER_TOUCH_WINDOW_FLAGS = 1u32;
+pub const TWF_WANTPALM: REGISTER_TOUCH_WINDOW_FLAGS = 2u32;
+pub type GESTURECONFIG_ID = u32;
+pub type MANIPULATION_PROCESSOR_MANIPULATIONS = i32;
+pub type REGISTER_TOUCH_WINDOW_FLAGS = u32;
+pub type TOUCHEVENTF_FLAGS = u32;
+pub type TOUCHINPUTMASKF_MASK = u32;
+#[repr(C)]
+pub struct GESTURECONFIG {
+ pub dwID: GESTURECONFIG_ID,
+ pub dwWant: u32,
+ pub dwBlock: u32,
+}
+impl ::core::marker::Copy for GESTURECONFIG {}
+impl ::core::clone::Clone for GESTURECONFIG {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct GESTUREINFO {
+ pub cbSize: u32,
+ pub dwFlags: u32,
+ pub dwID: u32,
+ pub hwndTarget: super::super::super::Foundation::HWND,
+ pub ptsLocation: super::super::super::Foundation::POINTS,
+ pub dwInstanceID: u32,
+ pub dwSequenceID: u32,
+ pub ullArguments: u64,
+ pub cbExtraArgs: u32,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for GESTUREINFO {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for GESTUREINFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct GESTURENOTIFYSTRUCT {
+ pub cbSize: u32,
+ pub dwFlags: u32,
+ pub hwndTarget: super::super::super::Foundation::HWND,
+ pub ptsLocation: super::super::super::Foundation::POINTS,
+ pub dwInstanceID: u32,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for GESTURENOTIFYSTRUCT {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for GESTURENOTIFYSTRUCT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type HGESTUREINFO = isize;
+pub type HTOUCHINPUT = isize;
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct TOUCHINPUT {
+ pub x: i32,
+ pub y: i32,
+ pub hSource: super::super::super::Foundation::HANDLE,
+ pub dwID: u32,
+ pub dwFlags: TOUCHEVENTF_FLAGS,
+ pub dwMask: TOUCHINPUTMASKF_MASK,
+ pub dwTime: u32,
+ pub dwExtraInfo: usize,
+ pub cxContact: u32,
+ pub cyContact: u32,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for TOUCHINPUT {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for TOUCHINPUT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs b/vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs
new file mode 100644
index 0000000..ff871f9
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs
@@ -0,0 +1,182 @@
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("xinput1_4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn XInputEnable(enable : super::super::super::Foundation:: BOOL) -> ());
+::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetAudioDeviceIds(dwuserindex : u32, prenderdeviceid : ::windows_sys::core::PWSTR, prendercount : *mut u32, pcapturedeviceid : ::windows_sys::core::PWSTR, pcapturecount : *mut u32) -> u32);
+::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetBatteryInformation(dwuserindex : u32, devtype : BATTERY_DEVTYPE, pbatteryinformation : *mut XINPUT_BATTERY_INFORMATION) -> u32);
+::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetCapabilities(dwuserindex : u32, dwflags : XINPUT_FLAG, pcapabilities : *mut XINPUT_CAPABILITIES) -> u32);
+::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetKeystroke(dwuserindex : u32, dwreserved : u32, pkeystroke : *mut XINPUT_KEYSTROKE) -> u32);
+::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetState(dwuserindex : u32, pstate : *mut XINPUT_STATE) -> u32);
+::windows_targets::link!("xinput1_4.dll" "system" fn XInputSetState(dwuserindex : u32, pvibration : *const XINPUT_VIBRATION) -> u32);
+pub const BATTERY_DEVTYPE_GAMEPAD: BATTERY_DEVTYPE = 0u8;
+pub const BATTERY_DEVTYPE_HEADSET: BATTERY_DEVTYPE = 1u8;
+pub const BATTERY_LEVEL_EMPTY: BATTERY_LEVEL = 0u8;
+pub const BATTERY_LEVEL_FULL: BATTERY_LEVEL = 3u8;
+pub const BATTERY_LEVEL_LOW: BATTERY_LEVEL = 1u8;
+pub const BATTERY_LEVEL_MEDIUM: BATTERY_LEVEL = 2u8;
+pub const BATTERY_TYPE_ALKALINE: BATTERY_TYPE = 2u8;
+pub const BATTERY_TYPE_DISCONNECTED: BATTERY_TYPE = 0u8;
+pub const BATTERY_TYPE_NIMH: BATTERY_TYPE = 3u8;
+pub const BATTERY_TYPE_UNKNOWN: BATTERY_TYPE = 255u8;
+pub const BATTERY_TYPE_WIRED: BATTERY_TYPE = 1u8;
+pub const VK_PAD_A: XINPUT_VIRTUAL_KEY = 22528u16;
+pub const VK_PAD_B: XINPUT_VIRTUAL_KEY = 22529u16;
+pub const VK_PAD_BACK: XINPUT_VIRTUAL_KEY = 22549u16;
+pub const VK_PAD_DPAD_DOWN: XINPUT_VIRTUAL_KEY = 22545u16;
+pub const VK_PAD_DPAD_LEFT: XINPUT_VIRTUAL_KEY = 22546u16;
+pub const VK_PAD_DPAD_RIGHT: XINPUT_VIRTUAL_KEY = 22547u16;
+pub const VK_PAD_DPAD_UP: XINPUT_VIRTUAL_KEY = 22544u16;
+pub const VK_PAD_LSHOULDER: XINPUT_VIRTUAL_KEY = 22533u16;
+pub const VK_PAD_LTHUMB_DOWN: XINPUT_VIRTUAL_KEY = 22561u16;
+pub const VK_PAD_LTHUMB_DOWNLEFT: XINPUT_VIRTUAL_KEY = 22567u16;
+pub const VK_PAD_LTHUMB_DOWNRIGHT: XINPUT_VIRTUAL_KEY = 22566u16;
+pub const VK_PAD_LTHUMB_LEFT: XINPUT_VIRTUAL_KEY = 22563u16;
+pub const VK_PAD_LTHUMB_PRESS: XINPUT_VIRTUAL_KEY = 22550u16;
+pub const VK_PAD_LTHUMB_RIGHT: XINPUT_VIRTUAL_KEY = 22562u16;
+pub const VK_PAD_LTHUMB_UP: XINPUT_VIRTUAL_KEY = 22560u16;
+pub const VK_PAD_LTHUMB_UPLEFT: XINPUT_VIRTUAL_KEY = 22564u16;
+pub const VK_PAD_LTHUMB_UPRIGHT: XINPUT_VIRTUAL_KEY = 22565u16;
+pub const VK_PAD_LTRIGGER: XINPUT_VIRTUAL_KEY = 22534u16;
+pub const VK_PAD_RSHOULDER: XINPUT_VIRTUAL_KEY = 22532u16;
+pub const VK_PAD_RTHUMB_DOWN: XINPUT_VIRTUAL_KEY = 22577u16;
+pub const VK_PAD_RTHUMB_DOWNLEFT: XINPUT_VIRTUAL_KEY = 22583u16;
+pub const VK_PAD_RTHUMB_DOWNRIGHT: XINPUT_VIRTUAL_KEY = 22582u16;
+pub const VK_PAD_RTHUMB_LEFT: XINPUT_VIRTUAL_KEY = 22579u16;
+pub const VK_PAD_RTHUMB_PRESS: XINPUT_VIRTUAL_KEY = 22551u16;
+pub const VK_PAD_RTHUMB_RIGHT: XINPUT_VIRTUAL_KEY = 22578u16;
+pub const VK_PAD_RTHUMB_UP: XINPUT_VIRTUAL_KEY = 22576u16;
+pub const VK_PAD_RTHUMB_UPLEFT: XINPUT_VIRTUAL_KEY = 22580u16;
+pub const VK_PAD_RTHUMB_UPRIGHT: XINPUT_VIRTUAL_KEY = 22581u16;
+pub const VK_PAD_RTRIGGER: XINPUT_VIRTUAL_KEY = 22535u16;
+pub const VK_PAD_START: XINPUT_VIRTUAL_KEY = 22548u16;
+pub const VK_PAD_X: XINPUT_VIRTUAL_KEY = 22530u16;
+pub const VK_PAD_Y: XINPUT_VIRTUAL_KEY = 22531u16;
+pub const XINPUT_CAPS_FFB_SUPPORTED: XINPUT_CAPABILITIES_FLAGS = 1u16;
+pub const XINPUT_CAPS_NO_NAVIGATION: XINPUT_CAPABILITIES_FLAGS = 16u16;
+pub const XINPUT_CAPS_PMD_SUPPORTED: XINPUT_CAPABILITIES_FLAGS = 8u16;
+pub const XINPUT_CAPS_VOICE_SUPPORTED: XINPUT_CAPABILITIES_FLAGS = 4u16;
+pub const XINPUT_CAPS_WIRELESS: XINPUT_CAPABILITIES_FLAGS = 2u16;
+pub const XINPUT_DEVSUBTYPE_ARCADE_PAD: XINPUT_DEVSUBTYPE = 19u8;
+pub const XINPUT_DEVSUBTYPE_ARCADE_STICK: XINPUT_DEVSUBTYPE = 3u8;
+pub const XINPUT_DEVSUBTYPE_DANCE_PAD: XINPUT_DEVSUBTYPE = 5u8;
+pub const XINPUT_DEVSUBTYPE_DRUM_KIT: XINPUT_DEVSUBTYPE = 8u8;
+pub const XINPUT_DEVSUBTYPE_FLIGHT_STICK: XINPUT_DEVSUBTYPE = 4u8;
+pub const XINPUT_DEVSUBTYPE_GAMEPAD: XINPUT_DEVSUBTYPE = 1u8;
+pub const XINPUT_DEVSUBTYPE_GUITAR: XINPUT_DEVSUBTYPE = 6u8;
+pub const XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE: XINPUT_DEVSUBTYPE = 7u8;
+pub const XINPUT_DEVSUBTYPE_GUITAR_BASS: XINPUT_DEVSUBTYPE = 11u8;
+pub const XINPUT_DEVSUBTYPE_UNKNOWN: XINPUT_DEVSUBTYPE = 0u8;
+pub const XINPUT_DEVSUBTYPE_WHEEL: XINPUT_DEVSUBTYPE = 2u8;
+pub const XINPUT_DEVTYPE_GAMEPAD: XINPUT_DEVTYPE = 1u8;
+pub const XINPUT_DLL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("xinput1_4.dll");
+pub const XINPUT_DLL_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("xinput1_4.dll");
+pub const XINPUT_DLL_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("xinput1_4.dll");
+pub const XINPUT_FLAG_ALL: XINPUT_FLAG = 0u32;
+pub const XINPUT_FLAG_GAMEPAD: XINPUT_FLAG = 1u32;
+pub const XINPUT_GAMEPAD_A: XINPUT_GAMEPAD_BUTTON_FLAGS = 4096u16;
+pub const XINPUT_GAMEPAD_B: XINPUT_GAMEPAD_BUTTON_FLAGS = 8192u16;
+pub const XINPUT_GAMEPAD_BACK: XINPUT_GAMEPAD_BUTTON_FLAGS = 32u16;
+pub const XINPUT_GAMEPAD_DPAD_DOWN: XINPUT_GAMEPAD_BUTTON_FLAGS = 2u16;
+pub const XINPUT_GAMEPAD_DPAD_LEFT: XINPUT_GAMEPAD_BUTTON_FLAGS = 4u16;
+pub const XINPUT_GAMEPAD_DPAD_RIGHT: XINPUT_GAMEPAD_BUTTON_FLAGS = 8u16;
+pub const XINPUT_GAMEPAD_DPAD_UP: XINPUT_GAMEPAD_BUTTON_FLAGS = 1u16;
+pub const XINPUT_GAMEPAD_LEFT_SHOULDER: XINPUT_GAMEPAD_BUTTON_FLAGS = 256u16;
+pub const XINPUT_GAMEPAD_LEFT_THUMB: XINPUT_GAMEPAD_BUTTON_FLAGS = 64u16;
+pub const XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE: XINPUT_GAMEPAD_BUTTON_FLAGS = 7849u16;
+pub const XINPUT_GAMEPAD_RIGHT_SHOULDER: XINPUT_GAMEPAD_BUTTON_FLAGS = 512u16;
+pub const XINPUT_GAMEPAD_RIGHT_THUMB: XINPUT_GAMEPAD_BUTTON_FLAGS = 128u16;
+pub const XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE: XINPUT_GAMEPAD_BUTTON_FLAGS = 8689u16;
+pub const XINPUT_GAMEPAD_START: XINPUT_GAMEPAD_BUTTON_FLAGS = 16u16;
+pub const XINPUT_GAMEPAD_TRIGGER_THRESHOLD: XINPUT_GAMEPAD_BUTTON_FLAGS = 30u16;
+pub const XINPUT_GAMEPAD_X: XINPUT_GAMEPAD_BUTTON_FLAGS = 16384u16;
+pub const XINPUT_GAMEPAD_Y: XINPUT_GAMEPAD_BUTTON_FLAGS = 32768u16;
+pub const XINPUT_KEYSTROKE_KEYDOWN: XINPUT_KEYSTROKE_FLAGS = 1u16;
+pub const XINPUT_KEYSTROKE_KEYUP: XINPUT_KEYSTROKE_FLAGS = 2u16;
+pub const XINPUT_KEYSTROKE_REPEAT: XINPUT_KEYSTROKE_FLAGS = 4u16;
+pub const XUSER_INDEX_ANY: u32 = 255u32;
+pub const XUSER_MAX_COUNT: u32 = 4u32;
+pub type BATTERY_DEVTYPE = u8;
+pub type BATTERY_LEVEL = u8;
+pub type BATTERY_TYPE = u8;
+pub type XINPUT_CAPABILITIES_FLAGS = u16;
+pub type XINPUT_DEVSUBTYPE = u8;
+pub type XINPUT_DEVTYPE = u8;
+pub type XINPUT_FLAG = u32;
+pub type XINPUT_GAMEPAD_BUTTON_FLAGS = u16;
+pub type XINPUT_KEYSTROKE_FLAGS = u16;
+pub type XINPUT_VIRTUAL_KEY = u16;
+#[repr(C)]
+pub struct XINPUT_BATTERY_INFORMATION {
+ pub BatteryType: BATTERY_TYPE,
+ pub BatteryLevel: BATTERY_LEVEL,
+}
+impl ::core::marker::Copy for XINPUT_BATTERY_INFORMATION {}
+impl ::core::clone::Clone for XINPUT_BATTERY_INFORMATION {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct XINPUT_CAPABILITIES {
+ pub Type: XINPUT_DEVTYPE,
+ pub SubType: XINPUT_DEVSUBTYPE,
+ pub Flags: XINPUT_CAPABILITIES_FLAGS,
+ pub Gamepad: XINPUT_GAMEPAD,
+ pub Vibration: XINPUT_VIBRATION,
+}
+impl ::core::marker::Copy for XINPUT_CAPABILITIES {}
+impl ::core::clone::Clone for XINPUT_CAPABILITIES {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct XINPUT_GAMEPAD {
+ pub wButtons: XINPUT_GAMEPAD_BUTTON_FLAGS,
+ pub bLeftTrigger: u8,
+ pub bRightTrigger: u8,
+ pub sThumbLX: i16,
+ pub sThumbLY: i16,
+ pub sThumbRX: i16,
+ pub sThumbRY: i16,
+}
+impl ::core::marker::Copy for XINPUT_GAMEPAD {}
+impl ::core::clone::Clone for XINPUT_GAMEPAD {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct XINPUT_KEYSTROKE {
+ pub VirtualKey: XINPUT_VIRTUAL_KEY,
+ pub Unicode: u16,
+ pub Flags: XINPUT_KEYSTROKE_FLAGS,
+ pub UserIndex: u8,
+ pub HidCode: u8,
+}
+impl ::core::marker::Copy for XINPUT_KEYSTROKE {}
+impl ::core::clone::Clone for XINPUT_KEYSTROKE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct XINPUT_STATE {
+ pub dwPacketNumber: u32,
+ pub Gamepad: XINPUT_GAMEPAD,
+}
+impl ::core::marker::Copy for XINPUT_STATE {}
+impl ::core::clone::Clone for XINPUT_STATE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct XINPUT_VIBRATION {
+ pub wLeftMotorSpeed: u16,
+ pub wRightMotorSpeed: u16,
+}
+impl ::core::marker::Copy for XINPUT_VIBRATION {}
+impl ::core::clone::Clone for XINPUT_VIBRATION {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs b/vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs
new file mode 100644
index 0000000..c4eec83
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs
@@ -0,0 +1,302 @@
+#[cfg(feature = "Win32_UI_Input_Ime")]
+#[doc = "Required features: `\"Win32_UI_Input_Ime\"`"]
+pub mod Ime;
+#[cfg(feature = "Win32_UI_Input_KeyboardAndMouse")]
+#[doc = "Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`"]
+pub mod KeyboardAndMouse;
+#[cfg(feature = "Win32_UI_Input_Pointer")]
+#[doc = "Required features: `\"Win32_UI_Input_Pointer\"`"]
+pub mod Pointer;
+#[cfg(feature = "Win32_UI_Input_Touch")]
+#[doc = "Required features: `\"Win32_UI_Input_Touch\"`"]
+pub mod Touch;
+#[cfg(feature = "Win32_UI_Input_XboxController")]
+#[doc = "Required features: `\"Win32_UI_Input_XboxController\"`"]
+pub mod XboxController;
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefRawInputProc(parawinput : *const *const RAWINPUT, ninput : i32, cbsizeheader : u32) -> super::super::Foundation:: LRESULT);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCIMSSM(inputmessagesource : *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentInputMessageSource(inputmessagesource : *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation:: BOOL);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputBuffer(pdata : *mut RAWINPUT, pcbsize : *mut u32, cbsizeheader : u32) -> u32);
+::windows_targets::link!("user32.dll" "system" fn GetRawInputData(hrawinput : HRAWINPUT, uicommand : RAW_INPUT_DATA_COMMAND_FLAGS, pdata : *mut ::core::ffi::c_void, pcbsize : *mut u32, cbsizeheader : u32) -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputDeviceInfoA(hdevice : super::super::Foundation:: HANDLE, uicommand : RAW_INPUT_DEVICE_INFO_COMMAND, pdata : *mut ::core::ffi::c_void, pcbsize : *mut u32) -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputDeviceInfoW(hdevice : super::super::Foundation:: HANDLE, uicommand : RAW_INPUT_DEVICE_INFO_COMMAND, pdata : *mut ::core::ffi::c_void, pcbsize : *mut u32) -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputDeviceList(prawinputdevicelist : *mut RAWINPUTDEVICELIST, puinumdevices : *mut u32, cbsize : u32) -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRegisteredRawInputDevices(prawinputdevices : *mut RAWINPUTDEVICE, puinumdevices : *mut u32, cbsize : u32) -> u32);
+#[cfg(feature = "Win32_Foundation")]
+::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterRawInputDevices(prawinputdevices : *const RAWINPUTDEVICE, uinumdevices : u32, cbsize : u32) -> super::super::Foundation:: BOOL);
+pub const IMDT_KEYBOARD: INPUT_MESSAGE_DEVICE_TYPE = 1i32;
+pub const IMDT_MOUSE: INPUT_MESSAGE_DEVICE_TYPE = 2i32;
+pub const IMDT_PEN: INPUT_MESSAGE_DEVICE_TYPE = 8i32;
+pub const IMDT_TOUCH: INPUT_MESSAGE_DEVICE_TYPE = 4i32;
+pub const IMDT_TOUCHPAD: INPUT_MESSAGE_DEVICE_TYPE = 16i32;
+pub const IMDT_UNAVAILABLE: INPUT_MESSAGE_DEVICE_TYPE = 0i32;
+pub const IMO_HARDWARE: INPUT_MESSAGE_ORIGIN_ID = 1i32;
+pub const IMO_INJECTED: INPUT_MESSAGE_ORIGIN_ID = 2i32;
+pub const IMO_SYSTEM: INPUT_MESSAGE_ORIGIN_ID = 4i32;
+pub const IMO_UNAVAILABLE: INPUT_MESSAGE_ORIGIN_ID = 0i32;
+pub const RIDEV_APPKEYS: RAWINPUTDEVICE_FLAGS = 1024u32;
+pub const RIDEV_CAPTUREMOUSE: RAWINPUTDEVICE_FLAGS = 512u32;
+pub const RIDEV_DEVNOTIFY: RAWINPUTDEVICE_FLAGS = 8192u32;
+pub const RIDEV_EXCLUDE: RAWINPUTDEVICE_FLAGS = 16u32;
+pub const RIDEV_EXINPUTSINK: RAWINPUTDEVICE_FLAGS = 4096u32;
+pub const RIDEV_INPUTSINK: RAWINPUTDEVICE_FLAGS = 256u32;
+pub const RIDEV_NOHOTKEYS: RAWINPUTDEVICE_FLAGS = 512u32;
+pub const RIDEV_NOLEGACY: RAWINPUTDEVICE_FLAGS = 48u32;
+pub const RIDEV_PAGEONLY: RAWINPUTDEVICE_FLAGS = 32u32;
+pub const RIDEV_REMOVE: RAWINPUTDEVICE_FLAGS = 1u32;
+pub const RIDI_DEVICEINFO: RAW_INPUT_DEVICE_INFO_COMMAND = 536870923u32;
+pub const RIDI_DEVICENAME: RAW_INPUT_DEVICE_INFO_COMMAND = 536870919u32;
+pub const RIDI_PREPARSEDDATA: RAW_INPUT_DEVICE_INFO_COMMAND = 536870917u32;
+pub const RID_HEADER: RAW_INPUT_DATA_COMMAND_FLAGS = 268435461u32;
+pub const RID_INPUT: RAW_INPUT_DATA_COMMAND_FLAGS = 268435459u32;
+pub const RIM_TYPEHID: RID_DEVICE_INFO_TYPE = 2u32;
+pub const RIM_TYPEKEYBOARD: RID_DEVICE_INFO_TYPE = 1u32;
+pub const RIM_TYPEMOUSE: RID_DEVICE_INFO_TYPE = 0u32;
+pub type INPUT_MESSAGE_DEVICE_TYPE = i32;
+pub type INPUT_MESSAGE_ORIGIN_ID = i32;
+pub type RAWINPUTDEVICE_FLAGS = u32;
+pub type RAW_INPUT_DATA_COMMAND_FLAGS = u32;
+pub type RAW_INPUT_DEVICE_INFO_COMMAND = u32;
+pub type RID_DEVICE_INFO_TYPE = u32;
+pub type HRAWINPUT = isize;
+#[repr(C)]
+pub struct INPUT_MESSAGE_SOURCE {
+ pub deviceType: INPUT_MESSAGE_DEVICE_TYPE,
+ pub originId: INPUT_MESSAGE_ORIGIN_ID,
+}
+impl ::core::marker::Copy for INPUT_MESSAGE_SOURCE {}
+impl ::core::clone::Clone for INPUT_MESSAGE_SOURCE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct RAWHID {
+ pub dwSizeHid: u32,
+ pub dwCount: u32,
+ pub bRawData: [u8; 1],
+}
+impl ::core::marker::Copy for RAWHID {}
+impl ::core::clone::Clone for RAWHID {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct RAWINPUT {
+ pub header: RAWINPUTHEADER,
+ pub data: RAWINPUT_0,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RAWINPUT {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RAWINPUT {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub union RAWINPUT_0 {
+ pub mouse: RAWMOUSE,
+ pub keyboard: RAWKEYBOARD,
+ pub hid: RAWHID,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RAWINPUT_0 {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RAWINPUT_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct RAWINPUTDEVICE {
+ pub usUsagePage: u16,
+ pub usUsage: u16,
+ pub dwFlags: RAWINPUTDEVICE_FLAGS,
+ pub hwndTarget: super::super::Foundation::HWND,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RAWINPUTDEVICE {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RAWINPUTDEVICE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct RAWINPUTDEVICELIST {
+ pub hDevice: super::super::Foundation::HANDLE,
+ pub dwType: RID_DEVICE_INFO_TYPE,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RAWINPUTDEVICELIST {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RAWINPUTDEVICELIST {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct RAWINPUTHEADER {
+ pub dwType: u32,
+ pub dwSize: u32,
+ pub hDevice: super::super::Foundation::HANDLE,
+ pub wParam: super::super::Foundation::WPARAM,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RAWINPUTHEADER {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RAWINPUTHEADER {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct RAWKEYBOARD {
+ pub MakeCode: u16,
+ pub Flags: u16,
+ pub Reserved: u16,
+ pub VKey: u16,
+ pub Message: u32,
+ pub ExtraInformation: u32,
+}
+impl ::core::marker::Copy for RAWKEYBOARD {}
+impl ::core::clone::Clone for RAWKEYBOARD {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct RAWMOUSE {
+ pub usFlags: u16,
+ pub Anonymous: RAWMOUSE_0,
+ pub ulRawButtons: u32,
+ pub lLastX: i32,
+ pub lLastY: i32,
+ pub ulExtraInformation: u32,
+}
+impl ::core::marker::Copy for RAWMOUSE {}
+impl ::core::clone::Clone for RAWMOUSE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub union RAWMOUSE_0 {
+ pub ulButtons: u32,
+ pub Anonymous: RAWMOUSE_0_0,
+}
+impl ::core::marker::Copy for RAWMOUSE_0 {}
+impl ::core::clone::Clone for RAWMOUSE_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct RAWMOUSE_0_0 {
+ pub usButtonFlags: u16,
+ pub usButtonData: u16,
+}
+impl ::core::marker::Copy for RAWMOUSE_0_0 {}
+impl ::core::clone::Clone for RAWMOUSE_0_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct RID_DEVICE_INFO {
+ pub cbSize: u32,
+ pub dwType: RID_DEVICE_INFO_TYPE,
+ pub Anonymous: RID_DEVICE_INFO_0,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RID_DEVICE_INFO {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RID_DEVICE_INFO {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub union RID_DEVICE_INFO_0 {
+ pub mouse: RID_DEVICE_INFO_MOUSE,
+ pub keyboard: RID_DEVICE_INFO_KEYBOARD,
+ pub hid: RID_DEVICE_INFO_HID,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RID_DEVICE_INFO_0 {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RID_DEVICE_INFO_0 {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct RID_DEVICE_INFO_HID {
+ pub dwVendorId: u32,
+ pub dwProductId: u32,
+ pub dwVersionNumber: u32,
+ pub usUsagePage: u16,
+ pub usUsage: u16,
+}
+impl ::core::marker::Copy for RID_DEVICE_INFO_HID {}
+impl ::core::clone::Clone for RID_DEVICE_INFO_HID {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+pub struct RID_DEVICE_INFO_KEYBOARD {
+ pub dwType: u32,
+ pub dwSubType: u32,
+ pub dwKeyboardMode: u32,
+ pub dwNumberOfFunctionKeys: u32,
+ pub dwNumberOfIndicators: u32,
+ pub dwNumberOfKeysTotal: u32,
+}
+impl ::core::marker::Copy for RID_DEVICE_INFO_KEYBOARD {}
+impl ::core::clone::Clone for RID_DEVICE_INFO_KEYBOARD {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "Required features: `\"Win32_Foundation\"`"]
+#[cfg(feature = "Win32_Foundation")]
+pub struct RID_DEVICE_INFO_MOUSE {
+ pub dwId: u32,
+ pub dwNumberOfButtons: u32,
+ pub dwSampleRate: u32,
+ pub fHasHorizontalWheel: super::super::Foundation::BOOL,
+}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::marker::Copy for RID_DEVICE_INFO_MOUSE {}
+#[cfg(feature = "Win32_Foundation")]
+impl ::core::clone::Clone for RID_DEVICE_INFO_MOUSE {
+ fn clone(&self) -> Self {
+ *self
+ }
+}