xref: /reactos/dll/win32/msctf/mlng.h (revision 0c65ceca)
1 /*
2  * PROJECT:     ReactOS msctf.dll
3  * LICENSE:     LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4  * PURPOSE:     Multi-language handling of Cicero
5  * COPYRIGHT:   Copyright 2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
6  */
7 
8 #pragma once
9 
10 struct MLNGINFO
11 {
12     HKL m_hKL;
13     BOOL m_bInitDesc;
14     BOOL m_bInitIcon;
15     INT m_iIconIndex;
16     WCHAR m_szDesc[128];
17 
18     void InitDesc();
19     void InitIcon();
20 
21     INT GetIconIndex();
22     LPCWSTR GetDesc();
23     void SetDesc(LPCWSTR pszDesc);
24 };
25 
26 class CStaticIconList : public CicArray<HICON>
27 {
28 public:
29     static INT s_cx;
30     static INT s_cy;
31 
CStaticIconList()32     CStaticIconList() { }
33 
34     void Init(INT cxIcon, INT cyIcon);
35     INT AddIcon(HICON hIcon);
36     HICON ExtractIcon(INT iIcon);
37     void GetIconSize(INT *pcx, INT *pcy);
38     INT GetImageCount();
39     void RemoveAll(BOOL bNoLock);
40 };
41 
42 INT InatAddIcon(_In_ HICON hIcon);
43 HICON InatCreateIcon(_In_ LANGID LangID);
44 
45 HICON
46 InatCreateIconBySize(
47     _In_ LANGID LangID,
48     _In_ INT nWidth,
49     _In_ INT nHeight,
50     _In_ const LOGFONTW *plf);
51 
52 BOOL InatGetIconSize(_Out_ INT *pcx, _Out_ INT *pcy);
53 INT InatGetImageCount(VOID);
54 VOID InatRemoveAll(VOID);
55 
56 DWORD GetHKLSubstitute(_In_ HKL hKL);
57 HICON GetIconFromFile(_In_ INT cx, _In_ INT cy, _In_ LPCWSTR pszFileName, _In_ INT iIcon);
58 
59 VOID UninitINAT(VOID);
60