PrintNumber ErrorLocation Error Correction DateAdded
1 p35 It ran fine but produced pretty bad translations (not that the quality of the translations was in any way the fault of Windows!).
It ran fine but produced pretty bad translations. (Not that the quality of the translations was in any way the fault of Windows!)
7/16/2010
1 p36 Later, the kernel team released their own set of toys, known as the Windows 95 Kernel Toys. Here was the original introductory text:
Later, the kernel team released their own set of toys, known as the Windows 95 Kernel PowerToys. Here was the original introductory text: 7/16/2010
1 p37 In reality, it was I who wrote all the Kernel Toys, except for the Time Zone Editor, which came from the Windows NT Resource Kit. In reality, it was I who wrote all the Kernel PowerToys, except for the Time Zone Editor, which came from the Windows NT Resource Kit. 7/16/2010
1 p83 (The history behind the InitCommonControlsEx function is taken up later in the section “If InitCommonControls doesn’t do anything, why do you have to call it?”) (The history behind the InitCommonControls function is taken up later in the section “If InitCommonControls doesn’t do anything, why do you have to call it?”) 7/16/2010
1 p87 void UsePopupMenu(HWND hwnd, HINSTANCE hinst, LPCTSTR pszMenu) void UsePopupMenu(HWND hwnd, HINSTANCE hinst, LPCTSTR pszMenu, LPARAM lParam) 7/16/2010
1 p88 void Sample(HWND hwnd)


end of sample missing closing brace.
void Sample(HWND hwnd, LPARAM lParam)

}
7/16/2010
1 p91 This technique of invalidation can be extended to cover the case where only one section of the screen is interesting: Instead of invalidating the entire client area, invalidate only the area that you want to update, and restart the timer only if that rectangle is part of the update region. This technique of invalidation can be extended to cover the case where only one section of the window is interesting: Instead of invalidating the entire client area, invalidate only the area that you want to update, and restart the timer only if that rectangle is part of the update region. 7/16/2010
1 p97 And add the following code to WinMain before the call to CreateWindowEx:
And add the following code to WinMain before the call to CreateWindow:
7/16/2010
1 p102 RECT rcClient;
GetClientRect(hwnd, &rcClient);
RECT rc;
GetClientRect(hwnd, &rc);
7/16/2010
1 p103 To WinMain, add before the call to CreateWindowEx: To WinMain, add before the call to CreateWindow: 7/16/2010
1 p105 TextOut(hdc, ?, ?, psz, cchActual); TextOutW(hdc, ?, ?, psz, cchActual); 7/16/2010
1 p106 TextOut(hdc, 0, 0, psz, cchActual);

in both the top and bottom code segments.
TextOutW(hdc, 0, 0, psz, cchActual); 7/16/2010
1 p108 In Lines 2, 10, 21:
TextOut(hdc, 0, 0, psz, cchActual);

TextOutW(hdc, 0, 0, psz, cchActual); 7/16/2010
1 p108 if (FAILED(TextOutFL(hdc, x, y, psz, cch)) {
TextOut(hdc, x, y, psz, cch);
if (FAILED(TextOutFL(hdc, x, y, psz, cch))) {
TextOutW(hdc, x, y, psz, cch);
7/16/2010
1 p123 If so, move your second window somewhere else so that it doesn’t occupy exactly the same coordinates, or just use the CW_USEDEFAULT values to ask the window manager to choose a position for you.)
If so, move your second window somewhere else so that it doesn’t occupy exactly the same coordinates, or just use the CW_USEDEFAULT values to ask the window manager to choose a position for you. 7/16/2010
1 p158 DEFPUSHBUTTON "&Bye",IDCANCEL,"Button",WS_TABSTOP,7,4,50,14 DEFPUSHBUTTON "&Bye",IDCANCEL,7,4,50,14, WS_TABSTOP 7/16/2010
1 p160 BOOL
InitApp(void)
BOOL
HINSTANCE g_hinst;
InitApp(void)
7/16/2010
1 p163 {
InitApp();
{
g_hinst = hinst;
InitApp();
7/16/2010
1 p182 This takes the classic item template and adds the following: This takes the classic item template and adds the following changes: 7/16/2010
1 p210 EndManualModeDialog(hdlg, IDOK);
break;
case IDCANCEL:
EndManualModeDialog(hdlg, IDCANCEL);
EndManualModalDialog(hdlg, IDOK);
break;
case IDCANCEL:
EndManualModalDialog(hdlg, IDCANCEL);
7/16/2010
1 p223 AUTOCHECKBOX "&Resize images to fit
window",101,14,36,120,10

bad break
AUTOCHECKBOX "&Resize images to fit window",
101,14,36,120,10
7/16/2010
1 p232 // Change message loop
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
// Change message loop
while (GetMessage(&msg, NULL, 0, 0)) {
7/16/2010
1 p241 Most notable, NTFS records file timestamps in UTC, whereas FAT records them in local time. Most notably, NTFS records file timestamps in UTC, whereas FAT records them in local time. 7/16/2010
1 p242 This can be something as simple as a retd instruction, which is quite abundant. This can be something as simple as a ret instruction, which is quite abundant. 7/16/2010
1 p335 So if you define _UNICODE, _tcslen will map to wcslen rather than strlen, for example. If you define _UNICODE, _tcslen will map to wcslen rather than strlen, for example. 7/16/2010
1 p340 Many Windows information mechanisms are based on message broadcasts, among them DDE, WM_FONTCHANGE, and changes in system settings. Many Windows notification mechanisms are based on message broadcasts, among them DDE, WM_FONTCHANGE, and changes in system settings. 7/16/2010
1 p357 If you’ve read that discussion or discussion from other authors, you may find the explanation below redundant; but if you find things still somewhat hazy in your mind, you may find that a fresh angle on the subject may help clarify.
If you’ve read that discussion or discussion from other authors, you may find the explanation below redundant; but if you find things still somewhat hazy in your mind, you may find that a fresh angle on the subject helps to clarify.
7/16/2010
1 p370 ...an outbound SendMessage; neither of these statements apply to posted messages.
...an outbound SendMessage; neither of these statements applies to posted messages. 7/16/2010
1 p383 Because the MessageBox function is a GUI function, it treats 8-bit character strings in the ANSI character set, which means that 0x80 x00 becomes ¤. Because the MessageBox function is a GUI function, it treats 8-bit character strings in the ANSI character set, which means that 0x80 0x00 becomes ¤. 7/16/2010
1 p424 Well, then if you wanted to make your program unkillable, you would just hand in your TerminateProcess handler! Well, then if you wanted to make your program unkillable, you would just hang in your TerminateProcess handler! 7/16/2010
1 p443 As we saw last time, drawing on Remote Desktop Connection is much slower than on a local display, because all the bitmaps need to be transferred over the network to the Remote Desktop client.
As we saw last time, drawing on a Remote Desktop Connection is much slower than on a local display, because all the bitmaps need to be transferred over the network to the Remote Desktop client.
7/16/2010
1 p456 BOOL g_fTimerRunning = FALSE;
char g_chBackground = '0';

void CALLBACK OnBackgroundTimer(HWND hwnd, UINT uMsg,
UINT_PTR idTimer, DWORD tm)
BOOL g_fTimerRunning = FALSE;
char g_chBackground = '0';
#define IDT_BACKGROUND 1”:
void CALLBACK OnBackgroundTimer(HWND hwnd, UINT uMsg,
UINT_PTR idTimer, DWORD tm)
7/16/2010
1 p460 return g_hfAntiAlias && g_hfClearType; return g_hfAntialias && g_hfClearType; 7/16/2010
1 p483 I forget which conference it was, maybe GCDC 1996. I forget which conference it was, maybe CGDC 1996. 7/16/2010