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