Skip to content

Commit d80fdbe

Browse files
authored
[IMM32][SDK] Refactor IMM32 and fix annotations (reactos#8071)
Fix annotations' mistakes. Improve debug output. JIRA issue: CORE-19268 - Fix some SAL annotations. - Use debugstr_a and debugstr_w for tracing strings. - Add static to some functions. - Remove APIENTRY of some functions. - Fix code formatting.
1 parent 2fd0af4 commit d80fdbe

File tree

14 files changed

+562
-269
lines changed

14 files changed

+562
-269
lines changed

sdk/include/psdk/imm.h

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -468,13 +468,13 @@ typedef struct _tagCOMPOSITIONFORM {
468468
#define SOFTKEYBOARD_TYPE_T1 0x0001 /* for Tranditional Chinese */
469469
#define SOFTKEYBOARD_TYPE_C1 0x0002 /* for Simplified Chinese */
470470

471-
HIMC WINAPI ImmAssociateContext(_In_ HWND hWnd, _In_ HIMC hIMC);
471+
HIMC WINAPI ImmAssociateContext(_In_ HWND hWnd, _In_opt_ HIMC hIMC);
472472
#if (WINVER >= 0x040A)
473-
BOOL WINAPI ImmAssociateContextEx(_In_ HWND hWnd, _In_ HIMC hIMC, _In_ DWORD dwFlags);
473+
BOOL WINAPI ImmAssociateContextEx(_In_ HWND hWnd, _In_opt_ HIMC hIMC, _In_ DWORD dwFlags);
474474
#endif
475475

476-
BOOL WINAPI ImmConfigureIMEA(_In_ HKL hKL, _In_ HWND hWnd, _In_ DWORD dwMode, _In_ LPVOID lpData);
477-
BOOL WINAPI ImmConfigureIMEW(_In_ HKL hKL, _In_ HWND hWnd, _In_ DWORD dwMode, _In_ LPVOID lpData);
476+
BOOL WINAPI ImmConfigureIMEA(_In_ HKL hKL, _In_ HWND hWnd, _In_ DWORD dwMode, _Inout_opt_ LPVOID lpData);
477+
BOOL WINAPI ImmConfigureIMEW(_In_ HKL hKL, _In_ HWND hWnd, _In_ DWORD dwMode, _Inout_opt_ LPVOID lpData);
478478
HIMC WINAPI ImmCreateContext(VOID);
479479
BOOL WINAPI ImmDestroyContext(_In_ HIMC hIMC);
480480
#if (WINVER >= 0x040A)
@@ -604,7 +604,7 @@ ImmGetConversionStatus(
604604
_Out_opt_ LPDWORD lpfdwConversion,
605605
_Out_opt_ LPDWORD lpfdwSentence);
606606

607-
HWND WINAPI ImmGetDefaultIMEWnd(_In_ HWND hWnd);
607+
HWND WINAPI ImmGetDefaultIMEWnd(_In_opt_ HWND hWnd);
608608

609609
UINT
610610
WINAPI
@@ -707,14 +707,14 @@ BOOL WINAPI ImmIsIME(_In_ HKL hKL);
707707

708708
BOOL WINAPI
709709
ImmIsUIMessageA(
710-
_In_ HWND hWndIME,
710+
_In_opt_ HWND hWndIME,
711711
_In_ UINT msg,
712712
_In_ WPARAM wParam,
713713
_In_ LPARAM lParam);
714714

715715
BOOL WINAPI
716716
ImmIsUIMessageW(
717-
_In_ HWND hWndIME,
717+
_In_opt_ HWND hWndIME,
718718
_In_ UINT msg,
719719
_In_ WPARAM wParam,
720720
_In_ LPARAM lParam);
@@ -730,17 +730,17 @@ BOOL
730730
WINAPI
731731
ImmRegisterWordA(
732732
_In_ HKL hKL,
733-
_In_ LPCSTR lpszReading,
733+
_In_opt_ LPCSTR lpszReading,
734734
_In_ DWORD dwStyle,
735-
_In_ LPCSTR lpszRegister);
735+
_In_opt_ LPCSTR lpszRegister);
736736

737737
BOOL
738738
WINAPI
739739
ImmRegisterWordW(
740740
_In_ HKL hKL,
741-
_In_ LPCWSTR lpszReading,
741+
_In_opt_ LPCWSTR lpszReading,
742742
_In_ DWORD dwStyle,
743-
_In_ LPCWSTR lpszRegister);
743+
_In_opt_ LPCWSTR lpszRegister);
744744

745745
BOOL WINAPI ImmReleaseContext(_In_ HWND hWnd, _In_ HIMC hIMC);
746746
BOOL WINAPI ImmSetCandidateWindow(_In_ HIMC hIMC, _In_ LPCANDIDATEFORM lpCandidate);
@@ -781,17 +781,17 @@ BOOL
781781
WINAPI
782782
ImmUnregisterWordA(
783783
_In_ HKL hKL,
784-
_In_ LPCSTR lpszReading,
784+
_In_opt_ LPCSTR lpszReading,
785785
_In_ DWORD dwStyle,
786-
_In_ LPCSTR lpszUnregister);
786+
_In_opt_ LPCSTR lpszUnregister);
787787

788788
BOOL
789789
WINAPI
790790
ImmUnregisterWordW(
791791
_In_ HKL hKL,
792-
_In_ LPCWSTR lpszReading,
792+
_In_opt_ LPCWSTR lpszReading,
793793
_In_ DWORD dwStyle,
794-
_In_ LPCWSTR lpszUnregister);
794+
_In_opt_ LPCWSTR lpszUnregister);
795795

796796
#ifdef UNICODE
797797
#define ImmConfigureIME ImmConfigureIMEW

sdk/include/reactos/imm32_undoc.h

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ C_ASSERT(sizeof(IMEDPI) == 0xa8);
113113
#define IMEDPI_FLAG_LOCKED 0x2
114114

115115
PIMEDPI WINAPI ImmLockImeDpi(_In_ HKL hKL);
116-
VOID WINAPI ImmUnlockImeDpi(_Inout_ PIMEDPI pImeDpi);
116+
VOID WINAPI ImmUnlockImeDpi(_Inout_opt_ PIMEDPI pImeDpi);
117117

118118
/* unconfirmed */
119119
typedef struct tagCLIENTIMC
@@ -226,12 +226,19 @@ ImmGetImeInfoEx(
226226

227227
BOOL WINAPI ImmLoadLayout(_In_ HKL hKL, _Inout_ PIMEINFOEX pImeInfoEx);
228228
DWORD WINAPI ImmGetAppCompatFlags(_In_ HIMC hIMC);
229-
BOOL WINAPI ImmSetActiveContext(_In_ HWND hwnd, _In_ HIMC hIMC, _In_ BOOL fFlag);
229+
BOOL WINAPI ImmSetActiveContext(_In_ HWND hwnd, _In_opt_ HIMC hIMC, _In_ BOOL fFlag);
230230
BOOL WINAPI ImmLoadIME(_In_ HKL hKL);
231231
DWORD WINAPI ImmProcessKey(_In_ HWND, _In_ HKL, _In_ UINT, _In_ LPARAM, _In_ DWORD);
232232
LRESULT WINAPI ImmPutImeMenuItemsIntoMappedFile(_In_ HIMC hIMC);
233233
BOOL WINAPI ImmWINNLSGetEnableStatus(_In_opt_ HWND hWnd);
234234
BOOL WINAPI ImmSetActiveContextConsoleIME(_In_ HWND hwnd, _In_ BOOL fFlag);
235+
BOOL WINAPI ImmActivateLayout(_In_ HKL hKL);
236+
BOOL WINAPI ImmFreeLayout(_In_ HKL hKL);
237+
238+
BOOL WINAPI
239+
ImmWINNLSEnableIME(
240+
_In_opt_ HWND hWnd,
241+
_In_ BOOL enable);
235242

236243
LRESULT WINAPI
237244
ImmSystemHandler(
@@ -246,6 +253,16 @@ BOOL WINAPI ImmIMPQueryIMEW(_Inout_ LPIMEPROW pImePro);
246253
BOOL WINAPI ImmIMPSetIMEA(_In_opt_ HWND hWnd, _Inout_ LPIMEPROA pImePro);
247254
BOOL WINAPI ImmIMPSetIMEW(_In_opt_ HWND hWnd, _Inout_ LPIMEPROW pImePro);
248255

256+
WORD WINAPI
257+
ImmSendIMEMessageExA(
258+
_In_ HWND hWnd,
259+
_In_ LPARAM lParam);
260+
261+
WORD WINAPI
262+
ImmSendIMEMessageExW(
263+
_In_ HWND hWnd,
264+
_In_ LPARAM lParam);
265+
249266
HRESULT WINAPI CtfAImmActivate(_Out_opt_ HINSTANCE *phinstCtfIme);
250267
HRESULT WINAPI CtfAImmDeactivate(_In_ BOOL bDestroy);
251268
BOOL WINAPI CtfAImmIsIME(_In_ HKL hKL);
@@ -274,10 +291,12 @@ CtfImmDispatchDefImeMessage(
274291
#define ImmIMPGetIME ImmIMPGetIMEW
275292
#define ImmIMPQueryIME ImmIMPQueryIMEW
276293
#define ImmIMPSetIME ImmIMPSetIMEW
294+
#define ImmSendIMEMessageEx ImmSendIMEMessageExW
277295
#else
278296
#define ImmIMPGetIME ImmIMPGetIMEA
279297
#define ImmIMPQueryIME ImmIMPQueryIMEA
280298
#define ImmIMPSetIME ImmIMPSetIMEA
299+
#define ImmSendIMEMessageEx ImmSendIMEMessageExA
281300
#endif
282301

283302
#ifdef __cplusplus

win32ss/user/imm32/candidate.c

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(imm);
1111

1212
#define ROUNDUP4(n) (((n) + 3) & ~3) /* DWORD alignment */
1313

14-
DWORD APIENTRY
14+
DWORD
1515
CandidateListWideToAnsi(const CANDIDATELIST *pWideCL, LPCANDIDATELIST pAnsiCL, DWORD dwBufLen,
1616
UINT uCodePage)
1717
{
@@ -80,8 +80,7 @@ CandidateListWideToAnsi(const CANDIDATELIST *pWideCL, LPCANDIDATELIST pAnsiCL, D
8080
return dwBufLen;
8181
}
8282

83-
// Win: InternalGetCandidateListAtoW
84-
DWORD APIENTRY
83+
DWORD
8584
CandidateListAnsiToWide(const CANDIDATELIST *pAnsiCL, LPCANDIDATELIST pWideCL, DWORD dwBufLen,
8685
UINT uCodePage)
8786
{
@@ -149,10 +148,13 @@ CandidateListAnsiToWide(const CANDIDATELIST *pAnsiCL, LPCANDIDATELIST pWideCL, D
149148
return dwBufLen;
150149
}
151150

152-
// Win: ImmGetCandidateListWorker
153-
static DWORD APIENTRY
154-
ImmGetCandidateListAW(HIMC hIMC, DWORD dwIndex, LPCANDIDATELIST lpCandList, DWORD dwBufLen,
155-
BOOL bAnsi)
151+
static DWORD
152+
ImmGetCandidateListAW(
153+
_In_ HIMC hIMC,
154+
_In_ DWORD dwIndex,
155+
_Out_writes_bytes_opt_(dwBufLen) LPCANDIDATELIST lpCandList,
156+
_In_ DWORD dwBufLen,
157+
_In_ BOOL bAnsi)
156158
{
157159
DWORD dwSize, ret = 0;
158160
UINT uCodePage;
@@ -242,9 +244,11 @@ ImmGetCandidateListAW(HIMC hIMC, DWORD dwIndex, LPCANDIDATELIST lpCandList, DWOR
242244
return ret;
243245
}
244246

245-
// Win: ImmGetCandidateListCountWorker
246-
DWORD APIENTRY
247-
ImmGetCandidateListCountAW(HIMC hIMC, LPDWORD lpdwListCount, BOOL bAnsi)
247+
static DWORD
248+
ImmGetCandidateListCountAW(
249+
_In_ HIMC hIMC,
250+
_Out_ LPDWORD lpdwListCount,
251+
_In_ BOOL bAnsi)
248252
{
249253
DWORD ret = 0, cbGot, dwIndex;
250254
PCLIENTIMC pClientImc;
@@ -341,23 +345,33 @@ ImmGetCandidateListCountAW(HIMC hIMC, LPDWORD lpdwListCount, BOOL bAnsi)
341345
* ImmGetCandidateListA (IMM32.@)
342346
*/
343347
DWORD WINAPI
344-
ImmGetCandidateListA(HIMC hIMC, DWORD dwIndex, LPCANDIDATELIST lpCandList, DWORD dwBufLen)
348+
ImmGetCandidateListA(
349+
_In_ HIMC hIMC,
350+
_In_ DWORD dwIndex,
351+
_Out_writes_bytes_opt_(dwBufLen) LPCANDIDATELIST lpCandList,
352+
_In_ DWORD dwBufLen)
345353
{
346354
return ImmGetCandidateListAW(hIMC, dwIndex, lpCandList, dwBufLen, TRUE);
347355
}
348356

349357
/***********************************************************************
350358
* ImmGetCandidateListCountA (IMM32.@)
351359
*/
352-
DWORD WINAPI ImmGetCandidateListCountA(HIMC hIMC, LPDWORD lpdwListCount)
360+
DWORD WINAPI
361+
ImmGetCandidateListCountA(
362+
_In_ HIMC hIMC,
363+
_Out_ LPDWORD lpdwListCount)
353364
{
354365
return ImmGetCandidateListCountAW(hIMC, lpdwListCount, TRUE);
355366
}
356367

357368
/***********************************************************************
358369
* ImmGetCandidateListCountW (IMM32.@)
359370
*/
360-
DWORD WINAPI ImmGetCandidateListCountW(HIMC hIMC, LPDWORD lpdwListCount)
371+
DWORD WINAPI
372+
ImmGetCandidateListCountW(
373+
_In_ HIMC hIMC,
374+
_Out_ LPDWORD lpdwListCount)
361375
{
362376
return ImmGetCandidateListCountAW(hIMC, lpdwListCount, FALSE);
363377
}
@@ -366,7 +380,11 @@ DWORD WINAPI ImmGetCandidateListCountW(HIMC hIMC, LPDWORD lpdwListCount)
366380
* ImmGetCandidateListW (IMM32.@)
367381
*/
368382
DWORD WINAPI
369-
ImmGetCandidateListW(HIMC hIMC, DWORD dwIndex, LPCANDIDATELIST lpCandList, DWORD dwBufLen)
383+
ImmGetCandidateListW(
384+
_In_ HIMC hIMC,
385+
_In_ DWORD dwIndex,
386+
_Out_writes_bytes_opt_(dwBufLen) LPCANDIDATELIST lpCandList,
387+
_In_ DWORD dwBufLen)
370388
{
371389
return ImmGetCandidateListAW(hIMC, dwIndex, lpCandList, dwBufLen, FALSE);
372390
}
@@ -375,7 +393,10 @@ ImmGetCandidateListW(HIMC hIMC, DWORD dwIndex, LPCANDIDATELIST lpCandList, DWORD
375393
* ImmGetCandidateWindow (IMM32.@)
376394
*/
377395
BOOL WINAPI
378-
ImmGetCandidateWindow(HIMC hIMC, DWORD dwIndex, LPCANDIDATEFORM lpCandidate)
396+
ImmGetCandidateWindow(
397+
_In_ HIMC hIMC,
398+
_In_ DWORD dwIndex,
399+
_Out_ LPCANDIDATEFORM lpCandidate)
379400
{
380401
BOOL ret = FALSE;
381402
LPINPUTCONTEXT pIC;
@@ -408,7 +429,10 @@ ImmGetCandidateWindow(HIMC hIMC, DWORD dwIndex, LPCANDIDATEFORM lpCandidate)
408429
/***********************************************************************
409430
* ImmSetCandidateWindow (IMM32.@)
410431
*/
411-
BOOL WINAPI ImmSetCandidateWindow(HIMC hIMC, LPCANDIDATEFORM lpCandidate)
432+
BOOL WINAPI
433+
ImmSetCandidateWindow(
434+
_In_ HIMC hIMC,
435+
_In_ LPCANDIDATEFORM lpCandidate)
412436
{
413437
HWND hWnd;
414438
LPINPUTCONTEXT pIC;

0 commit comments

Comments
 (0)