diff fuhtark_test/include/ddk/imm.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/ddk/imm.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2007 CodeWeavers, Aric Stewart
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _DDKIMM_H_
+#define _DDKIMM_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _tagINPUTCONTEXT {
+    HWND                hWnd;
+    BOOL                fOpen;
+    POINT               ptStatusWndPos;
+    POINT               ptSoftKbdPos;
+    DWORD               fdwConversion;
+    DWORD               fdwSentence;
+    union   {
+        LOGFONTA        A;
+        LOGFONTW        W;
+    } lfFont;
+    COMPOSITIONFORM     cfCompForm;
+    CANDIDATEFORM       cfCandForm[4];
+    HIMCC               hCompStr;
+    HIMCC               hCandInfo;
+    HIMCC               hGuideLine;
+    HIMCC               hPrivate;
+    DWORD               dwNumMsgBuf;
+    HIMCC               hMsgBuf;
+    DWORD               fdwInit;
+    DWORD               dwReserve[3];
+} INPUTCONTEXT, *LPINPUTCONTEXT;
+
+typedef struct _tagIMEINFO {
+    DWORD       dwPrivateDataSize;
+    DWORD       fdwProperty;
+    DWORD       fdwConversionCaps;
+    DWORD       fdwSentenceCaps;
+    DWORD       fdwUICaps;
+    DWORD       fdwSCSCaps;
+    DWORD       fdwSelectCaps;
+} IMEINFO, *LPIMEINFO;
+
+typedef struct tagCOMPOSITIONSTRING {
+    DWORD dwSize;
+    DWORD dwCompReadAttrLen;
+    DWORD dwCompReadAttrOffset;
+    DWORD dwCompReadClauseLen;
+    DWORD dwCompReadClauseOffset;
+    DWORD dwCompReadStrLen;
+    DWORD dwCompReadStrOffset;
+    DWORD dwCompAttrLen;
+    DWORD dwCompAttrOffset;
+    DWORD dwCompClauseLen;
+    DWORD dwCompClauseOffset;
+    DWORD dwCompStrLen;
+    DWORD dwCompStrOffset;
+    DWORD dwCursorPos;
+    DWORD dwDeltaStart;
+    DWORD dwResultReadClauseLen;
+    DWORD dwResultReadClauseOffset;
+    DWORD dwResultReadStrLen;
+    DWORD dwResultReadStrOffset;
+    DWORD dwResultClauseLen;
+    DWORD dwResultClauseOffset;
+    DWORD dwResultStrLen;
+    DWORD dwResultStrOffset;
+    DWORD dwPrivateSize;
+    DWORD dwPrivateOffset;
+} COMPOSITIONSTRING, *LPCOMPOSITIONSTRING;
+
+typedef struct tagGUIDELINE {
+    DWORD dwSize;
+    DWORD dwLevel;
+    DWORD dwIndex;
+    DWORD dwStrLen;
+    DWORD dwStrOffset;
+    DWORD dwPrivateSize;
+    DWORD dwPrivateOffset;
+} GUIDELINE, *LPGUIDELINE;
+
+typedef struct tagCANDIDATEINFO {
+    DWORD               dwSize;
+    DWORD               dwCount;
+    DWORD               dwOffset[32];
+    DWORD               dwPrivateSize;
+    DWORD               dwPrivateOffset;
+} CANDIDATEINFO, *LPCANDIDATEINFO;
+
+LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC);
+BOOL  WINAPI ImmUnlockIMC(HIMC);
+DWORD WINAPI ImmGetIMCLockCount(HIMC);
+HIMCC  WINAPI ImmCreateIMCC(DWORD);
+HIMCC  WINAPI ImmDestroyIMCC(HIMCC);
+LPVOID WINAPI ImmLockIMCC(HIMCC);
+BOOL   WINAPI ImmUnlockIMCC(HIMCC);
+DWORD  WINAPI ImmGetIMCCLockCount(HIMCC);
+HIMCC  WINAPI ImmReSizeIMCC(HIMCC, DWORD);
+DWORD  WINAPI ImmGetIMCCSize(HIMCC);
+
+#define IMMGWL_IMC                      0
+#define IMMGWL_PRIVATE                  (sizeof(LONG))
+
+/* IME Property bits */
+#define IME_PROP_END_UNLOAD             0x0001
+#define IME_PROP_KBD_CHAR_FIRST         0x0002
+#define IME_PROP_IGNORE_UPKEYS          0x0004
+#define IME_PROP_NEED_ALTKEY            0x0008
+#define IME_PROP_NO_KEYS_ON_CLOSE       0x0010
+
+/* for NI_CONTEXTUPDATED */
+#define IMC_SETCONVERSIONMODE           0x0002
+#define IMC_SETSENTENCEMODE             0x0004
+#define IMC_SETOPENSTATUS               0x0006
+
+/* dwAction for ImmNotifyIME */
+#define NI_CONTEXTUPDATED               0x0003
+#define NI_OPENCANDIDATE                0x0010
+#define NI_CLOSECANDIDATE               0x0011
+#define NI_SELECTCANDIDATESTR           0x0012
+#define NI_CHANGECANDIDATELIST          0x0013
+#define NI_FINALIZECONVERSIONRESULT     0x0014
+#define NI_COMPOSITIONSTR               0x0015
+#define NI_SETCANDIDATE_PAGESTART       0x0016
+#define NI_SETCANDIDATE_PAGESIZE        0x0017
+#define NI_IMEMENUSELECTED              0x0018
+
+BOOL WINAPI ImmGenerateMessage(HIMC);
+LRESULT WINAPI ImmRequestMessageA(HIMC, WPARAM, LPARAM);
+LRESULT WINAPI ImmRequestMessageW(HIMC, WPARAM, LPARAM);
+#define ImmRequestMessage WINELIB_NAME_AW(ImmRequestMessage);
+BOOL WINAPI ImmTranslateMessage(HWND, UINT, WPARAM, LPARAM);
+HWND WINAPI ImmCreateSoftKeyboard(UINT, UINT, int, int);
+BOOL WINAPI ImmDestroySoftKeyboard(HWND);
+BOOL WINAPI ImmShowSoftKeyboard(HWND, int);
+
+BOOL WINAPI ImeInquire(LPIMEINFO, LPWSTR, LPCWSTR lpszOptions);
+BOOL WINAPI ImeConfigure (HKL, HWND, DWORD, LPVOID);
+DWORD WINAPI ImeConversionList(HIMC, LPCWSTR, LPCANDIDATELIST,DWORD,UINT);
+BOOL WINAPI ImeDestroy(UINT);
+LRESULT WINAPI ImeEscape(HIMC, UINT, LPVOID);
+BOOL WINAPI ImeProcessKey(HIMC, UINT, LPARAM, CONST LPBYTE);
+BOOL WINAPI ImeSelect(HIMC, BOOL);
+BOOL WINAPI ImeSetActiveContext(HIMC, BOOL);
+UINT WINAPI ImeToAsciiEx(UINT, UINT, CONST LPBYTE, LPDWORD, UINT, HIMC);
+BOOL WINAPI NotifyIME(HIMC, DWORD, DWORD, DWORD);
+BOOL WINAPI ImeRegisterWord(LPCWSTR, DWORD, LPCWSTR);
+BOOL WINAPI ImeUnregisterWord(LPCWSTR, DWORD, LPCWSTR);
+UINT WINAPI ImeGetRegisterWordStyle(UINT, LPSTYLEBUFW);
+UINT WINAPI ImeEnumRegisterWord(REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID);
+BOOL WINAPI ImeSetCompositionString(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD);
+DWORD WINAPI ImeGetImeMenuItems(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif  /* _DDKIMM_H_ */