Added LGPL standard comment, and copyright notices where necessary.
[wine/multimedia.git] / dlls / imm32 / immddk.h
blob662a8c215d309ee54f71ba3e6c5d53153fe85d15
1 /*
2 * DDK version of imm.h - imm.h for IMM and IME.
4 * Copyright 2000 Hidenori Takeshima
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __WINE_IMMDDK_H
22 #define __WINE_IMMDDK_H
24 #include "imm.h"
26 #define NULLIMC ((HIMC)0)
28 /* offsets for WndExtra */
29 #define IMMGWL_IMC 0
30 #define IMMGWL_PRIVATE (sizeof(LONG))
32 /* INPUTCONTEXT.fdwInit */
33 #define INIT_STATUSWNDPOS 0x00000001
34 #define INIT_CONVERSION 0x00000002
35 #define INIT_SENTENCE 0x00000004
36 #define INIT_LOGFONT 0x00000008
37 #define INIT_COMPFORM 0x00000010
38 #define INIT_SOFTKBDPOS 0x00000020
40 /* IMEINFO.fdwProperty (low-order word) */
41 #define IME_PROP_END_UNLOAD 0x00000001
42 #define IME_PROP_KBD_CHAR_FIRST 0x00000002
43 #define IME_PROP_IGNORE_UPKEYS 0x00000004
44 #define IME_PROP_NEED_ALTKEY 0x00000008
45 #define IME_PROP_NO_KEYS_ON_CLOSE 0x00000010
46 /* IMEINFO.fdwProperty (high-order word) */
47 #define IME_PROP_AT_CARET 0x00010000
48 #define IME_PROP_SPECIAL_UI 0x00020000
49 #define IME_PROP_CANDLIST_START_FROM_1 0x00040000
50 #define IME_PROP_UNICODE 0x00080000
51 #define IME_PROP_COMPLETE_ON_UNSELECT 0x00100000
54 /*** IMM and IME Structures ***/
56 typedef struct tagINPUTCONTEXT {
57 HWND hWnd;
58 BOOL fOpen;
59 POINT ptStatusWndPos;
60 POINT ptSoftKbdPos;
61 DWORD fdwConversion;
62 DWORD fdwSentence;
63 union {
64 LOGFONTA A;
65 LOGFONTW W;
66 } lfFont;
67 COMPOSITIONFORM cfCompForm;
68 CANDIDATEFORM cfCandForm[4];
69 HIMCC hCompStr;
70 HIMCC hCandInfo;
71 HIMCC hGuideLine;
72 HIMCC hPrivate;
73 DWORD dwNumMsgBuf;
74 HIMCC hMsgBuf;
75 DWORD fdwInit;
76 DWORD dwReserve[3];
77 } INPUTCONTEXT, * LPINPUTCONTEXT;
79 typedef struct tagCOMPOSITIONSTRING
81 DWORD dwSize;
82 DWORD dwCompReadAttrLen;
83 DWORD dwCompReadAttrOffset;
84 DWORD dwCompReadClauseLen;
85 DWORD dwCompReadClauseOffset;
86 DWORD dwCompReadStrLen;
87 DWORD dwCompReadStrOffset;
88 DWORD dwCompAttrLen;
89 DWORD dwCompAttrOffset;
90 DWORD dwCompClauseLen;
91 DWORD dwCompClauseOffset;
92 DWORD dwCompStrLen;
93 DWORD dwCompStrOffset;
94 DWORD dwCursorPos;
95 DWORD dwDeltaStart;
96 DWORD dwResultReadClauseLen;
97 DWORD dwResultReadClauseOffset;
98 DWORD dwResultReadStrLen;
99 DWORD dwResultReadStrOffset;
100 DWORD dwResultClauseLen;
101 DWORD dwResultClauseOffset;
102 DWORD dwResultStrLen;
103 DWORD dwResultStrOffset;
104 DWORD dwPrivateSize;
105 DWORD dwPrivateOffset;
106 } COMPOSITIONSTRING, * LPCOMPOSITIONSTRING;
108 typedef struct tagCANDIDATEINFO
110 DWORD dwSize;
111 DWORD dwCount;
112 DWORD dwOffset[32];
113 DWORD dwPrivateSize;
114 DWORD dwPrivateOffset;
115 } CANDIDATEINFO, * LPCANDIDATEINFO;
117 typedef struct tagGUIDELINE
119 DWORD dwSize;
120 DWORD dwLevel;
121 DWORD dwIndex;
122 DWORD dwStrLen;
123 DWORD dwStrOffset;
124 DWORD dwPrivateSize;
125 DWORD dwPrivateOffset;
126 } GUIDELINE, * LPGUIDELINE;
130 /*** IME Management Structures ***/
132 typedef struct tagIMEINFO
134 DWORD dwPrivateDataSize;
135 DWORD fdwProperty;
136 DWORD fdwConversionCaps;
137 DWORD fdwSentenceCaps;
138 DWORD fdwUICaps;
139 DWORD fdwSCSCaps;
140 DWORD fdwSelectCaps;
141 } IMEINFO, * LPIMEINFO;
144 /*** IME Communication Structures ***/
146 typedef struct tagSOFTKBDDATA
148 UINT uCount;
149 WORD wCode[1][256];
150 } SOFTKBDDATA, * LPSOFTKBDDATA;
153 /*** IMM DDK APIs ***/
155 HWND WINAPI ImmCreateSoftKeyboard(UINT uType, HWND hwndOwner, int x, int y);
156 BOOL WINAPI ImmDestroySoftKeyboard(HWND hwndSoftKeyboard);
157 BOOL WINAPI ImmShowSoftKeyboard(HWND hwndSoftKeyboard, int nCmdShow);
159 LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC hIMC);
160 BOOL WINAPI ImmUnlockIMC(HIMC hIMC);
161 DWORD WINAPI ImmGetIMCLockCount(HIMC hIMC);
163 HIMCC WINAPI ImmCreateIMCC(DWORD dwSize);
164 HIMCC WINAPI ImmDestroyIMCC(HIMCC hIMCC);
165 LPVOID WINAPI ImmLockIMCC(HIMCC hIMCC);
166 BOOL WINAPI ImmUnlockIMCC(HIMCC hIMCC);
167 DWORD WINAPI ImmGetIMCCLockCount(HIMCC hIMCC);
168 HIMCC WINAPI ImmReSizeIMCC(HIMCC hIMCC, DWORD dwSize);
169 DWORD WINAPI ImmGetIMCCSize(HIMCC hIMCC);
172 #endif /* __WINE_IMMDDK_H */