ReactOS 0.4.15-dev-7906-g1b85a5f
charmap.c File Reference
#include "precomp.h"
#include <commctrl.h>
#include <richedit.h>
#include <winnls.h>
Include dependency graph for charmap.c:

Go to the source code of this file.

Macros

#define ID_ABOUT   0x1
 

Functions

static VOID FillCharacterSetComboList (HWND hwndCombo)
 
static VOID FillGroupByComboList (HWND hwndCombo)
 
static int CALLBACK EnumFontNames (ENUMLOGFONTEXW *lpelfe, NEWTEXTMETRICEXW *lpntme, DWORD FontType, LPARAM lParam)
 
static VOID FillFontStyleComboList (HWND hwndCombo)
 
VOID ChangeMapFont (HWND hDlg)
 
static void CopyCharacters (HWND hDlg)
 
static BYTE GetFontMetrics (HWND hWnd, HFONT hFont)
 
static VOID AddCharToSelection (HWND hDlg, WCHAR ch)
 
static void UpdateSettings (HWND hDlg)
 
VOID UpdateStatusBar (WCHAR wch)
 
static void ChangeView (HWND hWnd)
 
static INT_PTR CALLBACK CharMapDlgProc (HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
 
static INT_PTR CALLBACK AdvancedDlgProc (HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
 
static int PanelOnCreate (HWND hWnd, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK PanelWndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
static HWND InitInstance (HINSTANCE hInst)
 
INT WINAPI wWinMain (HINSTANCE hInst, HINSTANCE hPrev, LPWSTR Cmd, int iCmd)
 

Variables

HINSTANCE hInstance
 
HWND hAdvancedDlg
 
HWND hCharmapDlg
 
HWND hStatusWnd
 
HICON hSmIcon
 
HICON hBgIcon
 
SETTINGS Settings
 

Macro Definition Documentation

◆ ID_ABOUT

#define ID_ABOUT   0x1

Definition at line 17 of file charmap.c.

Function Documentation

◆ AddCharToSelection()

static VOID AddCharToSelection ( HWND  hDlg,
WCHAR  ch 
)
static

Definition at line 250 of file charmap.c.

251{
252 HWND hMap = GetDlgItem(hDlg, IDC_FONTMAP);
253 HWND hText = GetDlgItem(hDlg, IDC_TEXTBOX);
254 HFONT hFont;
255 LOGFONT lFont;
256 CHARFORMAT cf;
257
258 // Retrieve current character selected
259 if (ch == 0)
260 {
261 ch = (WCHAR) SendMessageW(hMap, FM_GETCHAR, 0, 0);
262 if (!ch)
263 return;
264 }
265
266 // Retrieve current selected font
267 hFont = (HFONT)SendMessage(hMap, FM_GETHFONT, 0, 0);
268
269 // Recover LOGFONT structure from hFont
270 if (!GetObject(hFont, sizeof(LOGFONT), &lFont))
271 return;
272
273 // Recover font properties of Richedit control
274 ZeroMemory(&cf, sizeof(cf));
275 cf.cbSize = sizeof(cf);
277
278 // Apply properties of the new font
279 cf.bCharSet = GetFontMetrics(hText, hFont);
280
281 // Update font name
282 wcscpy(cf.szFaceName, lFont.lfFaceName);
283
284 // Update font properties
286
287 // Send selected character to Richedit
288 SendMessage(hText, WM_CHAR, (WPARAM)ch, 0);
289}
#define FM_GETHFONT
Definition: precomp.h:25
#define FM_GETCHAR
Definition: precomp.h:23
#define IDC_FONTMAP
Definition: resource.h:14
#define IDC_TEXTBOX
Definition: resource.h:15
HFONT hFont
Definition: main.c:53
static BYTE GetFontMetrics(HWND hWnd, HFONT hFont)
Definition: charmap.c:232
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
#define SCF_SELECTION
Definition: richedit.h:235
#define EM_GETCHARFORMAT
Definition: richedit.h:91
#define EM_SETCHARFORMAT
Definition: richedit.h:101
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
CHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:55
#define ZeroMemory
Definition: winbase.h:1712
LONG_PTR LPARAM
Definition: windef.h:208
UINT_PTR WPARAM
Definition: windef.h:207
#define GetObject
Definition: wingdi.h:4468
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define SendMessage
Definition: winuser.h:5843
#define WM_CHAR
Definition: winuser.h:1717
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by CharMapDlgProc().

◆ AdvancedDlgProc()

static INT_PTR CALLBACK AdvancedDlgProc ( HWND  hDlg,
UINT  Message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 480 of file charmap.c.

484{
485 switch(Message)
486 {
487 case WM_INITDIALOG:
488 return TRUE;
489
490 case WM_COMMAND:
491 {
492 switch (LOWORD(wParam))
493 {
496 {
499 0, 0);
502 idx, 0);
503
505 }
506 break;
507 }
508 }
509
510 default:
511 return FALSE;
512 }
513
514 return FALSE;
515}
#define FM_SETCHARMAP
Definition: precomp.h:26
#define IDC_COMBO_CHARSET
Definition: resource.h:21
#define IDC_EDIT_UNICODE
Definition: resource.h:25
HWND hCharmapDlg
Definition: charmap.c:21
HWND hAdvancedDlg
Definition: charmap.c:20
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int idx
Definition: utils.c:41
static const WCHAR Message[]
Definition: register.c:74
#define LOWORD(l)
Definition: pedump.c:82
#define INT
Definition: polytest.cpp:20
int32_t INT
Definition: typedefs.h:58
#define HIWORD(l)
Definition: typedefs.h:247
#define WM_COMMAND
Definition: winuser.h:1740
#define WM_INITDIALOG
Definition: winuser.h:1739
#define CBN_SELCHANGE
Definition: winuser.h:1979
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define CB_GETCURSEL
Definition: winuser.h:1943

Referenced by Applet1(), MainWindowProc(), and PanelOnCreate().

◆ ChangeMapFont()

VOID ChangeMapFont ( HWND  hDlg)

Definition at line 161 of file charmap.c.

162{
163 HWND hCombo;
164 HWND hMap;
165 LPWSTR lpFontName;
166 INT Len;
167
168 hCombo = GetDlgItem(hDlg, IDC_FONTCOMBO);
169
170 Len = GetWindowTextLengthW(hCombo);
171
172 if (Len != 0)
173 {
174 lpFontName = HeapAlloc(GetProcessHeap(),
175 0,
176 (Len + 1) * sizeof(WCHAR));
177
178 if (lpFontName)
179 {
180 SendMessageW(hCombo,
182 Len + 1,
183 (LPARAM)lpFontName);
184
185 hMap = GetDlgItem(hDlg, IDC_FONTMAP);
186
187 SendMessageW(hMap,
189 0,
190 (LPARAM)lpFontName);
191 }
192
194 0,
195 lpFontName);
196 }
197}
#define FM_SETFONT
Definition: precomp.h:22
#define IDC_FONTCOMBO
Definition: resource.h:12
#define Len
Definition: deflate.h:82
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define WM_GETTEXT
Definition: winuser.h:1618
int WINAPI GetWindowTextLengthW(_In_ HWND)
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by CharMapDlgProc(), and LoadSettings().

◆ ChangeView()

static void ChangeView ( HWND  hWnd)
static

Definition at line 322 of file charmap.c.

323{
324 RECT rcCharmap;
325#ifndef REMOVE_ADVANCED
326 RECT rcAdvanced;
327#else
328 RECT rcCopy;
329#endif
330 RECT rcPanelExt;
331 RECT rcPanelInt;
332 RECT rcStatus;
333 UINT DeX, DeY;
334 LONG xPos, yPos;
336 UINT DeskTopWidth, DeskTopHeight;
337#ifdef REMOVE_ADVANCED
338 HWND hCopy;
339#endif
340
341 GetClientRect(hCharmapDlg, &rcCharmap);
342#ifndef REMOVE_ADVANCED
343 GetClientRect(hAdvancedDlg, &rcAdvanced);
344#else
346 GetClientRect(hCopy, &rcCopy);
347#endif
348 GetWindowRect(hWnd, &rcPanelExt);
349 GetClientRect(hWnd, &rcPanelInt);
350 GetClientRect(hStatusWnd, &rcStatus);
351
352 DeskTopWidth = GetSystemMetrics(SM_CXFULLSCREEN);
353 DeskTopHeight = GetSystemMetrics(SM_CYFULLSCREEN);
354
355 DeX = (rcPanelExt.right - rcPanelExt.left) - rcPanelInt.right;
356 DeY = (rcPanelExt.bottom - rcPanelExt.top) - rcPanelInt.bottom;
357
358 MoveWindow(hCharmapDlg, 0, 0, rcCharmap.right, rcCharmap.bottom, FALSE);
359#ifndef REMOVE_ADVANCED
360 MoveWindow(hAdvancedDlg, 0, rcCharmap.bottom, rcAdvanced.right, rcAdvanced.bottom, FALSE);
361 ShowWindow(hAdvancedDlg, (Settings.IsAdvancedView) ? SW_SHOW : SW_HIDE);
362#endif
363 xPos = rcPanelExt.left;
364 yPos = rcPanelExt.top;
365
366 Width = DeX + rcCharmap.right;
367 Height = DeY + rcCharmap.bottom + rcStatus.bottom;
368#ifndef REMOVE_ADVANCED
369 if (Settings.IsAdvancedView)
370 Height += rcAdvanced.bottom;
371#else
372 /* The lack of advanced button leaves an empty gap at the bottom of the window.
373 Shrink the window height a bit here to accomodate for that lost control. */
374 Height = rcCharmap.bottom + rcCopy.bottom + 10;
375#endif
376 // FIXME: This fails on multi monitor setups
377 if ((xPos + Width) > DeskTopWidth)
378 xPos = DeskTopWidth - Width;
379
380 if ((yPos + Height) > DeskTopHeight)
381 yPos = DeskTopHeight - Height;
382
384 xPos, yPos,
385 Width, Height,
386 TRUE);
387}
#define IDC_COPY
Definition: resource.h:17
HWND hWnd
Definition: settings.c:17
HWND hStatusWnd
Definition: charmap.c:22
unsigned int UINT
Definition: ndis.h:50
long LONG
Definition: pedump.c:60
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
Definition: font.h:89
_In_ HFONT _Out_ PUINT Height
Definition: font.h:88
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings
Definition: wdfdevice.h:2595
#define SW_HIDE
Definition: winuser.h:768
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define SM_CXFULLSCREEN
Definition: winuser.h:977
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define SM_CYFULLSCREEN
Definition: winuser.h:978
#define SW_SHOW
Definition: winuser.h:775
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)

Referenced by CharMapDlgProc(), and PanelOnCreate().

◆ CharMapDlgProc()

static INT_PTR CALLBACK CharMapDlgProc ( HWND  hDlg,
UINT  Message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 392 of file charmap.c.

396{
397 switch(Message)
398 {
399 case WM_INITDIALOG:
400 {
401 DWORD evMask;
402#ifdef REMOVE_ADVANCED
403 HWND hAdv;
404#endif
405
408
409 ChangeMapFont(hDlg);
410
411 // Configure Richedit control for sending notification changes.
412 evMask = SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_GETEVENTMASK, 0, 0);
413 evMask |= ENM_CHANGE;
415#ifdef REMOVE_ADVANCED
416 hAdv = GetDlgItem(hDlg, IDC_CHECK_ADVANCED);
417 ShowWindow(hAdv, SW_HIDE);
418#endif
419 return TRUE;
420 }
421
422 case WM_COMMAND:
423 {
424 switch(LOWORD(wParam))
425 {
426 case IDC_FONTMAP:
427 switch (HIWORD(wParam))
428 {
429 case FM_SETCHAR:
431 break;
432 }
433 break;
434
435 case IDC_FONTCOMBO:
437 {
438 ChangeMapFont(hDlg);
439 }
440 break;
441
442 case IDC_SELECT:
443 AddCharToSelection(hDlg, 0);
444 break;
445
446 case IDC_TEXTBOX:
447 switch (HIWORD(wParam)) {
448 case EN_CHANGE:
451 else
453 break;
454 }
455 break;
456
457 case IDC_COPY:
458 CopyCharacters(hDlg);
459 break;
460#ifndef REMOVE_ADVANCED
462 UpdateSettings(hDlg);
463 ChangeView(GetParent(hDlg));
464 break;
465#endif
466 }
467 }
468 break;
469
470 default:
471 break;
472 }
473
474 return FALSE;
475}
#define FM_SETCHAR
Definition: precomp.h:24
#define IDC_SELECT
Definition: resource.h:16
#define IDC_CHECK_ADVANCED
Definition: resource.h:26
static VOID FillFontStyleComboList(HWND hwndCombo)
Definition: charmap.c:125
VOID ChangeMapFont(HWND hDlg)
Definition: charmap.c:161
static void CopyCharacters(HWND hDlg)
Definition: charmap.c:202
static void UpdateSettings(HWND hDlg)
Definition: charmap.c:294
static VOID AddCharToSelection(HWND hDlg, WCHAR ch)
Definition: charmap.c:250
static void ChangeView(HWND hWnd)
Definition: charmap.c:322
unsigned long DWORD
Definition: ntddk_ex.h:95
#define ENM_CHANGE
Definition: richedit.h:468
#define EM_GETEVENTMASK
Definition: richedit.h:92
#define EM_SETEVENTMASK
Definition: richedit.h:102
#define GetWindowTextLength
Definition: winuser.h:5799
HWND WINAPI GetParent(_In_ HWND)
#define SendDlgItemMessage
Definition: winuser.h:5842
#define EN_CHANGE
Definition: winuser.h:2022

Referenced by PanelOnCreate().

◆ CopyCharacters()

static void CopyCharacters ( HWND  hDlg)
static

Definition at line 202 of file charmap.c.

203{
204 HWND hText = GetDlgItem(hDlg, IDC_TEXTBOX);
205 DWORD dwStart, dwEnd;
206
207 // Acquire selection limits
208 SendMessage(hText, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwEnd);
209
210 // Test if the whose text is unselected
211 if(dwStart == dwEnd) {
212
213 // Select the whole text
214 SendMessageW(hText, EM_SETSEL, 0, -1);
215
216 // Copy text
217 SendMessageW(hText, WM_COPY, 0, 0);
218
219 // Restore previous values
220 SendMessageW(hText, EM_SETSEL, (WPARAM)dwStart, (LPARAM)dwEnd);
221
222 } else {
223
224 // Copy text
225 SendMessageW(hText, WM_COPY, 0, 0);
226 }
227}
#define EM_GETSEL
Definition: winuser.h:1997
#define EM_SETSEL
Definition: winuser.h:2018
#define WM_COPY
Definition: winuser.h:1862

Referenced by CharMapDlgProc().

◆ EnumFontNames()

static int CALLBACK EnumFontNames ( ENUMLOGFONTEXW lpelfe,
NEWTEXTMETRICEXW lpntme,
DWORD  FontType,
LPARAM  lParam 
)
static

Definition at line 80 of file charmap.c.

84{
85 HWND hwndCombo = (HWND)lParam;
86 LPWSTR pszName = lpelfe->elfLogFont.lfFaceName;
87
88 /* Skip rotated font */
89 if(pszName[0] == L'@') return 1;
90
91 /* make sure font doesn't already exist in our list */
92 if(SendMessageW(hwndCombo,
94 0,
95 (LPARAM)pszName) == CB_ERR)
96 {
97 INT idx;
98 BOOL fFixed;
99 BOOL fTrueType;
100
101 /* add the font */
102 idx = (INT)SendMessageW(hwndCombo,
104 0,
105 (LPARAM)pszName);
106
107 /* record the font's attributes (Fixedwidth and Truetype) */
108 fFixed = (lpelfe->elfLogFont.lfPitchAndFamily & FIXED_PITCH) ? TRUE : FALSE;
109 fTrueType = (lpelfe->elfLogFont.lfOutPrecision == OUT_STROKE_PRECIS) ? TRUE : FALSE;
110
111 /* store this information in the list-item's userdata area */
112 SendMessageW(hwndCombo,
114 idx,
115 MAKEWPARAM(fFixed, fTrueType));
116 }
117
118 return 1;
119}
HANDLE HWND
Definition: compat.h:19
unsigned int BOOL
Definition: ntddk_ex.h:94
#define L(x)
Definition: ntvdm.h:50
LOGFONTW elfLogFont
Definition: wingdi.h:2702
BYTE lfOutPrecision
Definition: wingdi.h:1906
WCHAR lfFaceName[LF_FACESIZE]
Definition: wingdi.h:1910
BYTE lfPitchAndFamily
Definition: wingdi.h:1909
#define FIXED_PITCH
Definition: wingdi.h:444
#define OUT_STROKE_PRECIS
Definition: wingdi.h:418
#define CB_SETITEMDATA
Definition: winuser.h:1966
#define MAKEWPARAM(l, h)
Definition: winuser.h:4009
#define CB_ERR
Definition: winuser.h:2435
#define CB_FINDSTRINGEXACT
Definition: winuser.h:1940
#define CB_ADDSTRING
Definition: winuser.h:1936

Referenced by FillFontStyleComboList().

◆ FillCharacterSetComboList()

static VOID FillCharacterSetComboList ( HWND  hwndCombo)
static

Definition at line 29 of file charmap.c.

30{
31 WCHAR szCharSetText[256];
32 LPWSTR trimmedName;
33 CPINFOEXW cpInfo;
34 INT i;
35
36 if (LoadStringW(hInstance, IDS_UNICODE, szCharSetText, SIZEOF(szCharSetText)))
37 {
38 SendMessageW(hwndCombo,
40 0,
41 (LPARAM)szCharSetText);
42 }
43
44 for (i = 0; i < SIZEOF(codePages); i++)
45 {
46 if (GetCPInfoExW(codePages[i], 0, &cpInfo))
47 {
48 trimmedName = wcschr(cpInfo.CodePageName, L'(');
49 if (!trimmedName)
50 trimmedName = cpInfo.CodePageName;
51
52 SendMessageW(hwndCombo,
54 0,
55 (LPARAM)trimmedName);
56 }
57 }
58
59 SendMessageW(hwndCombo, CB_SETCURSEL, 0, 0);
60}
static const UINT codePages[]
Definition: precomp.h:29
#define IDS_UNICODE
Definition: resource.h:31
#define SIZEOF(_ar)
Definition: calc.h:97
HINSTANCE hInstance
Definition: charmap.c:19
#define wcschr
Definition: compat.h:17
BOOL WINAPI GetCPInfoExW(UINT CodePage, DWORD dwFlags, LPCPINFOEXW lpCPInfoEx)
Definition: nls.c:2093
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
WCHAR CodePageName[MAX_PATH]
Definition: winnls.h:599
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define CB_SETCURSEL
Definition: winuser.h:1961

Referenced by PanelOnCreate().

◆ FillFontStyleComboList()

static VOID FillFontStyleComboList ( HWND  hwndCombo)
static

Definition at line 125 of file charmap.c.

126{
127 HDC hdc;
128 LOGFONTW lf;
129
130 /* FIXME: for fun, draw each font in its own style */
132 SendMessageW(hwndCombo,
134 (WPARAM)hFont,
135 0);
136
137 ZeroMemory(&lf, sizeof(lf));
139
140 hdc = GetDC(hwndCombo);
141
142 /* store the list of fonts in the combo */
144 &lf,
146 (LPARAM)hwndCombo,
147 0);
148
149 ReleaseDC(hwndCombo,
150 hdc);
151
152 SendMessageW(hwndCombo,
154 0,
155 0);
156}
static int CALLBACK EnumFontNames(ENUMLOGFONTEXW *lpelfe, NEWTEXTMETRICEXW *lpntme, DWORD FontType, LPARAM lParam)
Definition: charmap.c:80
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:92
BYTE lfCharSet
Definition: dimm.idl:67
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI EnumFontFamiliesExW(_In_ HDC, _In_ PLOGFONTW, _In_ FONTENUMPROCW, _In_ LPARAM, _In_ DWORD)
FARPROC FONTENUMPROCW
Definition: wingdi.h:2897
#define DEFAULT_GUI_FONT
Definition: wingdi.h:909
#define DEFAULT_CHARSET
Definition: wingdi.h:384
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define WM_SETFONT
Definition: winuser.h:1650
HDC WINAPI GetDC(_In_opt_ HWND)

Referenced by CharMapDlgProc().

◆ FillGroupByComboList()

static VOID FillGroupByComboList ( HWND  hwndCombo)
static

Definition at line 64 of file charmap.c.

65{
66 WCHAR szAllText[256];
67
68 if (LoadStringW(hInstance, IDS_ALL, szAllText, SIZEOF(szAllText)))
69 {
70 SendMessageW(hwndCombo, CB_ADDSTRING, 0, (LPARAM)szAllText);
71 }
72
73 SendMessageW(hwndCombo, CB_SETCURSEL, 0, 0);
74}
#define IDS_ALL
Definition: resource.h:32

Referenced by PanelOnCreate().

◆ GetFontMetrics()

static BYTE GetFontMetrics ( HWND  hWnd,
HFONT  hFont 
)
static

Definition at line 232 of file charmap.c.

233{
234 TEXTMETRIC tmFont;
235 HGDIOBJ hOldObj;
236 HDC hDC;
237
238 hDC = GetDC(hWnd);
239 hOldObj = SelectObject(hDC, hFont);
240 GetTextMetrics(hDC, &tmFont);
241 SelectObject(hDC, hOldObj);
243
244 return tmFont.tmCharSet;
245}
static HDC hDC
Definition: 3dtext.c:33
BYTE tmCharSet
Definition: wingdi.h:2380
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
#define GetTextMetrics
Definition: wingdi.h:4474

Referenced by AddCharToSelection().

◆ InitInstance()

static HWND InitInstance ( HINSTANCE  hInst)
static

Definition at line 608 of file charmap.c.

609{
610 WCHAR szClass[] = L"CharMap";
611 WCHAR szTitle[256];
612 WNDCLASSEXW wc;
613 HWND hWnd;
614
616
620 16,
621 16,
622 0);
623
627 32,
628 32,
629 0);
630
631 // Create workspace
632 ZeroMemory(&wc, sizeof(wc));
633
634 wc.cbSize = sizeof(wc);
636 wc.hInstance = hInst;
637 wc.hIcon = hBgIcon;
640 wc.lpszMenuName = NULL;
641 wc.lpszClassName = szClass;
642 wc.hIconSm = hSmIcon;
643
644 RegisterClassExW(&wc);
645
647 szClass,
648 szTitle,
654 NULL,
655 NULL,
656 hInst,
657 NULL);
658
659 if (hWnd != NULL)
660 {
661 LoadSettings();
664 }
665
666 return hWnd;
667}
void LoadSettings(void)
Definition: settings.c:53
#define IDS_TITLE
Definition: resource.h:30
#define IDI_ICON
Definition: resource.h:5
static LRESULT CALLBACK PanelWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: charmap.c:575
HICON hSmIcon
Definition: charmap.c:23
HICON hBgIcon
Definition: charmap.c:24
#define NULL
Definition: types.h:112
HINSTANCE hInst
Definition: dxdiag.c:13
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
#define WS_CAPTION
Definition: pedump.c:624
#define WS_SYSMENU
Definition: pedump.c:629
#define WS_MINIMIZEBOX
Definition: pedump.c:631
LPCWSTR lpszClassName
Definition: winuser.h:3226
LPCWSTR lpszMenuName
Definition: winuser.h:3225
HBRUSH hbrBackground
Definition: winuser.h:3224
WNDPROC lpfnWndProc
Definition: winuser.h:3218
UINT cbSize
Definition: winuser.h:3216
HCURSOR hCursor
Definition: winuser.h:3223
HICON hIconSm
Definition: winuser.h:3227
HINSTANCE hInstance
Definition: winuser.h:3221
HICON hIcon
Definition: winuser.h:3222
#define NULL_BRUSH
Definition: wingdi.h:901
#define IMAGE_ICON
Definition: winuser.h:212
#define IDC_ARROW
Definition: winuser.h:687
BOOL WINAPI UpdateWindow(_In_ HWND)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
#define LoadCursor
Definition: winuser.h:5812
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4316
#define CW_USEDEFAULT
Definition: winuser.h:225
#define LoadImage
Definition: winuser.h:5815
#define MAKEINTRESOURCE
Definition: winuser.h:591

Referenced by wWinMain().

◆ PanelOnCreate()

static int PanelOnCreate ( HWND  hWnd,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 519 of file charmap.c.

520{
521 HMENU hSysMenu;
522 WCHAR lpAboutText[256];
523
526 hWnd,
528
529 // For now, the Help push button is disabled because of lacking of HTML Help support
531
532#ifndef REMOVE_ADVANCED
535 hWnd,
537
539
543#endif
545 NULL,
547 0, 0, 0, 0,
548 hWnd,
550 hInstance,
551 NULL);
552
553 // Set the status bar for multiple parts output
555
557
558 hSysMenu = GetSystemMenu(hWnd, FALSE);
559
560 if (hSysMenu != NULL)
561 {
562 if (LoadStringW(hInstance, IDS_ABOUT, lpAboutText, SIZEOF(lpAboutText)))
563 {
564 AppendMenuW(hSysMenu, MF_SEPARATOR, 0, NULL);
565 AppendMenuW(hSysMenu, MF_STRING, ID_ABOUT, lpAboutText);
566 }
567 }
568
570
571 return 0;
572}
#define IDC_COMBO_GROUPBY
Definition: resource.h:22
#define IDC_BUTTON_SEARCH
Definition: resource.h:23
#define IDS_ABOUT
Definition: resource.h:29
#define IDD_ADVANCED
Definition: resource.h:10
#define IDC_CMHELP
Definition: resource.h:13
#define IDD_CHARMAP
Definition: resource.h:7
#define IDD_STATUSBAR
Definition: resource.h:9
static INT_PTR CALLBACK AdvancedDlgProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
Definition: charmap.c:480
static VOID FillGroupByComboList(HWND hwndCombo)
Definition: charmap.c:64
static VOID FillCharacterSetComboList(HWND hwndCombo)
Definition: charmap.c:29
static INT_PTR CALLBACK CharMapDlgProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
Definition: charmap.c:392
#define ID_ABOUT
Definition: charmap.c:17
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
#define WS_CHILD
Definition: pedump.c:617
#define WS_VISIBLE
Definition: pedump.c:620
#define SB_SIMPLE
Definition: commctrl.h:1958
#define STATUSCLASSNAME
Definition: commctrl.h:1939
#define MF_STRING
Definition: winuser.h:138
#define CreateDialog
Definition: winuser.h:5749
HMENU WINAPI GetSystemMenu(_In_ HWND, _In_ BOOL)
#define CreateWindow
Definition: winuser.h:5754
HWND WINAPI SetFocus(_In_opt_ HWND)
#define MF_SEPARATOR
Definition: winuser.h:137
BOOL WINAPI AppendMenuW(_In_ HMENU, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)

Referenced by PanelWndProc().

◆ PanelWndProc()

static LRESULT CALLBACK PanelWndProc ( HWND  hWnd,
UINT  msg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 575 of file charmap.c.

576{
577 switch (msg) {
578 case WM_CREATE:
580
581 case WM_CLOSE:
583 return 0;
584
585 case WM_SIZE:
587 break;
588
589 case WM_DESTROY:
590 SaveSettings();
592 return 0;
593
594 case WM_SYSCOMMAND:
595 switch(wParam) {
596 case ID_ABOUT:
598 break;
599 }
600 break;
601
602 }
603
605}
#define msg(x)
Definition: auth_time.c:54
VOID ShowAboutDlg(HWND hWndParent)
Definition: about.c:77
void SaveSettings(void)
Definition: settings.c:115
static int PanelOnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)
Definition: charmap.c:519
#define DefWindowProc
Definition: ros2win.h:31
#define WM_CLOSE
Definition: winuser.h:1621
#define WM_SYSCOMMAND
Definition: winuser.h:1741
#define WM_CREATE
Definition: winuser.h:1608
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
#define WM_SIZE
Definition: winuser.h:1611
#define WM_DESTROY
Definition: winuser.h:1609
BOOL WINAPI DestroyWindow(_In_ HWND)

Referenced by InitInstance().

◆ UpdateSettings()

static void UpdateSettings ( HWND  hDlg)
static

Definition at line 294 of file charmap.c.

295{
296 if (hDlg == hCharmapDlg)
297 {
298 Settings.IsAdvancedView =
300
301 }
302
303 if (hDlg == hAdvancedDlg)
304 {
305 }
306}
#define BM_GETCHECK
Definition: winuser.h:1918

Referenced by CharMapDlgProc().

◆ UpdateStatusBar()

VOID UpdateStatusBar ( WCHAR  wch)

Definition at line 310 of file charmap.c.

311{
313 WCHAR szDesc[MAX_PATH];
314
315 GetUName(wch, szDesc);
316 wsprintfW(buff, L"U+%04X: %s", wch, szDesc);
318}
int WINAPI GetUName(IN WORD wCharCode, OUT LPWSTR lpBuf)
Definition: getuname.c:17
#define MAX_PATH
Definition: compat.h:34
static unsigned char buff[32768]
Definition: fatten.c:17
#define SB_SETTEXT
Definition: commctrl.h:1949
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)

◆ wWinMain()

INT WINAPI wWinMain ( HINSTANCE  hInstance,
HINSTANCE  hPrevInstance,
LPWSTR  lpCmdLine,
int  nShowCmd 
)

This file has no copyright assigned and is placed in the Public Domain. This file is part of the w64 mingw-runtime package. No warranty is given; refer to the file DISCLAIMER.PD within this package.

Definition at line 671 of file charmap.c.

675{
677 INT Ret = 1;
678 HMODULE hRichEd20;
679 MSG Msg;
680
682
683 /* Mirroring code for the titlebar */
684 switch (GetUserDefaultUILanguage())
685 {
688 break;
689
690 default:
691 break;
692 }
693
694 iccx.dwSize = sizeof(INITCOMMONCONTROLSEX);
695 iccx.dwICC = ICC_TAB_CLASSES;
697
699 {
700 hRichEd20 = LoadLibraryW(L"RICHED20.DLL");
701
702 if (hRichEd20 != NULL)
703 {
705
706 for (;;)
707 {
708 if (GetMessage(&Msg, NULL, 0, 0) <= 0)
709 {
710 Ret = Msg.wParam;
711 break;
712 }
713
714 /* NOTE: CreateDialog needs IsDialogMessage call in message loop */
716 continue;
717#ifndef REMOVE_ADVANCED
719 continue;
720#endif
721
724 }
725
726 FreeLibrary(hRichEd20);
727 }
729 }
730
731 return Ret;
732}
static HWND InitInstance(HINSTANCE hInst)
Definition: charmap.c:608
struct @1632 Msg[]
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
Definition: commctrl.c:893
#define FreeLibrary(x)
Definition: compat.h:748
#define LoadLibraryW(x)
Definition: compat.h:747
LANGID WINAPI GetUserDefaultUILanguage(void)
Definition: lang.c:816
VOID UnregisterMapClasses(HINSTANCE hInstance)
Definition: map.c:875
BOOL RegisterMapClasses(HINSTANCE hInstance)
Definition: map.c:849
struct tagINITCOMMONCONTROLSEX INITCOMMONCONTROLSEX
#define ICC_TAB_CLASSES
Definition: commctrl.h:61
#define MAKELANGID(p, s)
Definition: nls.h:15
#define LANG_HEBREW
Definition: nls.h:67
#define SUBLANG_DEFAULT
Definition: nls.h:168
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
BOOL WINAPI SetProcessDefaultLayout(DWORD dwDefaultLayout)
Definition: window.c:1719
#define LAYOUT_RTL
Definition: wingdi.h:1371
BOOL WINAPI TranslateMessage(_In_ const MSG *)
#define IsDialogMessage
Definition: winuser.h:5809
#define GetMessage
Definition: winuser.h:5790
#define DispatchMessage
Definition: winuser.h:5765

Variable Documentation

◆ hAdvancedDlg

HWND hAdvancedDlg

Definition at line 20 of file charmap.c.

Referenced by AdvancedDlgProc(), ChangeView(), PanelOnCreate(), UpdateSettings(), and wWinMain().

◆ hBgIcon

HICON hBgIcon

Definition at line 24 of file charmap.c.

Referenced by InitInstance().

◆ hCharmapDlg

HWND hCharmapDlg

◆ hInstance

HINSTANCE hInstance

Definition at line 19 of file charmap.c.

Referenced by ATL::_AtlGetStringResourceImage(), FxWmiInstanceExternal::_Create(), _GetClassAtom(), _GetClassAtomA(), _GetWndproc(), _GetWndprocA(), _RegisterClass(), _RegisterClassA(), _tWinMain(), AboutDialogProc(), add_cert_columns(), add_cert_to_list(), add_cert_to_view(), add_icon_to_control(), add_local_oid_text_to_control(), add_purpose_dlg_proc(), add_string_id_and_value_to_list(), add_string_resource_to_control(), add_string_resource_with_paraformat_to_control(), AddTextButton(), AllocAndLoadString(), ANIMATE_OpenA(), ANIMATE_OpenW(), AssertFail(), ATL::AtlGetStringResourceImage(), Bitmap::Bitmap(), cert_mgr_advanced_dlg_proc(), cert_mgr_dlg_proc(), cert_mgr_do_remove(), cert_properties_general_dlg_proc(), ChangeListViewText(), ClassTest(), ClearUserApiHook(), ATL::CAtlModule::CommonInitRegistrar(), Confirm(), ConResMsgPrintfEx(), ConResMsgPrintfExV(), ConResPagingEx(), ConResPrintfEx(), ConResPrintfExV(), ConResPutsEx(), create_listview_columns(), create_show_list(), CreateDialogIndirectParamA(), CreateDialogIndirectParamAorW(), CreateDialogIndirectParamW(), CreateDialogParamA(), CreateDialogParamTest(), CreateDialogParamW(), CreateDialogProc(), CreateEditWindow(), CreateEventDetailsCtrl(), CreateFontBoxesWindow(), CreateFontWindow(), CreateHelpDialogProc(), CreateLargeCell(), CreateListView(), CreateListViewColumns(), CreateMainWindow(), CreateMappedBitmap(), CreateMDIWindowA(), CreateMDIWindowW(), CreatePerfWindows(), CreatePropSheet(), CreateStandardProfile(), CreateStarBitmap(), CreateStatusBar(), CreateStopDependsDialog(), CreateSwitcherWindow(), CreateTestWindow(), CreateTreeListColumns(), CreateWindowExA(), CreateWindowExW(), CRYPT_FormatAltNameEntry(), CRYPT_FormatAuthorityInfoAccess(), CRYPT_FormatBasicConstraints2(), CRYPT_FormatCertIssuer(), CRYPT_FormatCRLDistPoints(), CRYPT_FormatEnhancedKeyUsage(), CRYPT_FormatHexStringWithPrefix(), CRYPT_FormatKeyUsage(), CRYPT_FormatNetscapeCertType(), CRYPT_FormatReason(), CRYPT_FormatSpcFinancialCriteria(), CRYPT_FormatUserNotice(), CryptUIDlgCertMgr(), CryptUIDlgSelectCertificateW(), CryptUIDlgSelectStoreW(), D3DTests(), DDTests(), DECLARE_INTERFACE_(), DeleteDialogProc(), device_tests(), DevInstallW(), dialog_viewproperties(), DialogBoxIndirectParamA(), DialogBoxIndirectParamAorW(), DialogBoxIndirectParamW(), DialogBoxParamA(), DialogBoxParamW(), DiskClassInstaller(), Display_InitClass(), DllMain(), DllRegisterServer(), DoCreate(), Window::DoCreateMainWnd(), DoDeleteService(), DoLoadStrings(), Window::DoRegisterClass(), DrawTextFromResource(), DuplicateIcon(), EditCurrentGlyph(), EnumJoysticks(), EnumProcessAndPrint(), error(), EventLogProperties(), ExitInstance(), explorer_main(), export_file_dlg_proc(), export_finish_dlg_proc(), export_password_mismatch(), export_private_key_dlg_proc(), export_validate_filename(), export_welcome_dlg_proc(), ExtractIconA(), ExtractIconW(), ExtractIconWrapW(), field_format_public_key(), FillCharacterSetComboList(), FillGroupByComboList(), FilterInstanceClose(), FilterInstanceCreate(), FilterInstanceGetInformation(), ForceResetUserApiHook(), FormatString(), FormatVerisignExtension(), Bitmap::FromResource(), GdipCreateBitmapFromResource(), get_cert_usages(), get_print_file_filter(), GetClassInfoA(), GetClassInfoExA(), GetClassInfoExW(), GetClassInfoW(), GetPredefinedClipboardFormatName(), GetUserDiskFreeSpace(), GPNotificationThreadProc(), if(), import_finish_dlg_proc(), import_store_dlg_proc(), import_validate_filename(), import_warning(), import_welcome_dlg_proc(), ExplorerGlobals::init(), init_columns(), init_detail_page(), init_general_page(), init_hierarchy_page(), init_oid_info(), init_preview(), InitApp(), InitApplication(), InitDialog(), InitEditGlyphWndClasses(), InitEditWindowImpl(), InitEditWnd(), InitFontBoxesWndClass(), InitFontWndClass(), Initialize(), initialize_purpose_selection(), InitializeAtlModule(), InitializeProfiles(), InitImageList(), InitInstance(), InitInstance_wave(), InitListViewImage(), InitLogo(), InitMainWindowImpl(), InitMainWnd(), InitMainWndClass(), InitPropSheetPage(), InitRecoveryPage(), InitToolbox(), InitUserApiHook(), InstallScreenSaverA(), InstallScreenSaverW(), InternetTransport_RegisterClass(), InternetTransport_UnregisterClass(), IntFindClass(), IntGetAndReferenceClass(), IntGetClassAtom(), joystick_tests(), K32LoadStringExW(), K32LoadStringW(), keyboard_tests(), LengthOfStrResource(), lineInitialize(), lineInitializeExA(), lineInitializeExW(), load_string(), LoadAcceleratorsA(), LoadAcceleratorsW(), LoadAllocStringW(), LoadAndFormatString(), LoadAndFormatStringsCat(), LoadBitmapA(), LoadBitmapW(), LoadConditionalResourceStringEx(), LoadCursorA(), LoadCursorW(), ATL::CImage::LoadFromResource(), LoadIconA(), LoadIconW(), LoadMenuA(), LoadMenuW(), LoadPopupMenu(), LoadResourceStringEx(), ATL::CStringT< BaseType, StringTraits >::LoadString(), LocalesEnumProc(), LsapGetResourceStringLengthEx(), LsapInitSids(), LsapLoadString(), LsapLoadStringEx(), LsarpLookupPrivilegeDisplayName(), MainDlgProc(), MainWndCommand(), MainWndMenuHint(), MainWndProc(), make_export_file_filter(), make_import_file_filter(), MCIWndCreateA(), MCIWndCreateW(), MenuCommand(), MessageBoxRes(), mouse_tests(), MyRegisterClass(), MyRegisterClass_wave(), NewDocSelDlgProc(), newfile_proc(), NOTEPAD_InitData(), NtUserCreateWindowEx(), NtUserGetClassInfo(), NtUserGetWOWClass(), NtUserUnregisterClass(), oid_init_localizednames(), OnCommand(), OnCommandAbout(), OnCreate(), OnInitDialog(), OnInitMainDialog(), OpenRDPConnectDialog(), OSK_WarningDlgThread(), PanelOnCreate(), paraformat_proc(), ParallelPortPropPageProvider(), pCreateToolbar(), phoneInitialize(), phoneInitializeExA(), phoneInitializeExW(), PrintAllJobs(), PrintHeader(), PrintJobDetails(), PrintMemory(), PrintResString(), promptdisk_init(), PropSheetThread(), ReadString(), RegisterBlankClass(), RegisterCheckListControl(), RegisterConWndClass(), RegisterHexEditorClass(), RegisterMapClasses(), RegisterMonitorSelectionControl(), RegisterMonthCalControl(), RegisterPreviewControl(), RegisterTestDialog(), RegisterWinPrevClass(), ResetProgressDialog(), ResourceMessageBox(), RetrieveClipboardFormatName(), RichEditOleCallback_GetContextMenu(), RtlLoadUnicodeString(), RunActionWithProgress(), RunLiveCD(), SampInitializeSAM(), SampLoadString(), SedDiscretionaryAclEditor(), SedSystemAclEditor(), SedTakeOwnership(), select_cert_dlg_proc(), select_store_dlg_proc(), SerialPortPropPageProvider(), CProgressDialog::SetAnimation(), SetServiceStatusText(), SetStartupType(), SetupControls(), SetupDiGetClassImageListExW(), SetupDiLoadClassIcon(), SetUpMDIChildWindowClass(), SetupPromptForDiskW(), ShellMessageBoxA(), ShellMessageBoxW(), ShellMessageBoxWrapW(), ShimLib_Init(), show_cert_dialog(), show_edit_cert_properties_dialog(), show_export_details(), show_export_ui(), show_import_details(), show_import_ui(), show_user_notice(), ShowAboutDlg(), ShowAudioPropertySheet(), ShowFullControlPanel(), START_TEST(), StartD3DTest(), StartDDTest(), StartWithDesktop(), STATIC_LoadIconA(), STATIC_LoadIconW(), StatusBarLoadAndFormatString(), CCharMapWindow::StatusBarLoadString(), CDeviceManager::StatusBarLoadString(), StatusBarLoadString(), taskdialog_add_control(), test_capture_4(), test_enum_feedback(), test_ime_processkey(), test_Input_unicode(), test_Input_whitebox(), test_menu_input(), test_pack_CREATESTRUCTA(), test_pack_CREATESTRUCTW(), test_pack_MSGBOXPARAMSA(), test_pack_MSGBOXPARAMSW(), test_pack_WNDCLASSA(), test_pack_WNDCLASSEXA(), test_pack_WNDCLASSEXW(), test_pack_WNDCLASSW(), TOOLBAR_AddStringA(), TOOLBAR_AddStringW(), TOOLBAR_LoadImages(), TreeListRegister(), TreeListUnregister(), TV1_AddDependantsToTree(), TV2_AddDependantsToTree(), U32LoadAccelerators(), UnInitEditGlyphWndClasses(), UninitEditWindowImpl(), UnInitFontBoxesWndClass(), UnInitFontWndClass(), UninitMainWindowImpl(), UnInitMainWndClass(), UnregisterCheckListControl(), UnregisterClassA(), UnregisterClassW(), UnRegisterConWndClass(), UnregisterHexEditorClass(), UnregisterMapClasses(), UnregisterMonitorSelectionControl(), UnregisterMonthCalControl(), UnregisterPreviewControl(), UnRegisterWinPrevClass(), UpdateServiceCount(), UpdateUsersShellFolderSettings(), User32CreateWindowEx(), UserGetClassInfo(), UserInstStubWrapperA(), UserInstStubWrapperW(), UserUnInstStubWrapperA(), UserUnInstStubWrapperW(), UserUnregisterClass(), warning(), WinMain(), and wWinMain().

◆ hSmIcon

HICON hSmIcon

Definition at line 23 of file charmap.c.

Referenced by InitInstance().

◆ hStatusWnd

◆ Settings

Definition at line 25 of file charmap.c.