Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

globals.c

Go to the documentation of this file.
00001 /****************************** Module Header ******************************\ 00002 * Module Name: globals.c 00003 * 00004 * Copyright (c) 1985 - 1999, Microsoft Corporation 00005 * 00006 * This module contains all the server's global variables. One must be 00007 * executing on the server's context to manipulate any of these variables. 00008 * Serializing access to them is also a good idea. 00009 * 00010 * History: 00011 * 10-15-90 DarrinM Created. 00012 \***************************************************************************/ 00013 00014 #include "precomp.h" 00015 #pragma hdrstop 00016 00017 /* 00018 * Per user data is global in non-Hydra. 00019 */ 00020 DWORD gdwPUDFlags = ACCF_FIRSTTICK | PUDF_BEEP | PUDF_ANIMATE; 00021 00022 /* 00023 * Wallpaper Data. 00024 */ 00025 HBITMAP ghbmWallpaper; 00026 HPALETTE ghpalWallpaper; 00027 SIZERECT gsrcWallpaper; 00028 UINT gwWPStyle; 00029 HBITMAP ghbmDesktop; 00030 LPWSTR gpszWall; 00031 00032 /* 00033 * SafeBoot 00034 */ 00035 #if DBG 00036 DWORD gDrawVersionAlways = TRUE; 00037 #else 00038 DWORD gDrawVersionAlways = FALSE; 00039 #endif 00040 00041 /* 00042 * External drivers 00043 */ 00044 BOOL gfUnsignedDrivers; 00045 00046 /* 00047 * Full-Drag. 00048 */ 00049 HRGN ghrgnUpdateSave; 00050 int gnUpdateSave; 00051 00052 PWND gspwndAltTab; 00053 00054 PWND gspwndShouldBeForeground; 00055 00056 /* 00057 * full screen variables 00058 */ 00059 PWND gspwndScreenCapture; 00060 PWND gspwndInternalCapture; 00061 PWND gspwndFullScreen; 00062 00063 /* 00064 * pre-cached monitor for mode changes 00065 */ 00066 PMONITOR gpMonitorCached; 00067 00068 /* 00069 * logon notify window 00070 */ 00071 PWND gspwndLogonNotify; 00072 00073 /* 00074 * event used for hugn app detection 00075 */ 00076 PKEVENT gpEventHungThread; 00077 PKEVENT gpEventDiconnectDesktop; 00078 00079 /* 00080 * handle for WinSta0_DesktopSwitch event 00081 */ 00082 HANDLE ghEventSwitchDesktop; 00083 PKEVENT gpEventSwitchDesktop; 00084 00085 /* 00086 * Thread Info Variables 00087 */ 00088 PTHREADINFO gptiTasklist; 00089 PTHREADINFO gptiShutdownNotify; 00090 PTHREADINFO gptiLockUpdate; 00091 PTHREADINFO gptiForeground; 00092 PTHREADINFO gptiBlockInput; 00093 PWOWTHREADINFO gpwtiFirst; 00094 PWOWPROCESSINFO gpwpiFirstWow; 00095 00096 /* 00097 * Queue Variables 00098 */ 00099 PQ gpqForeground; 00100 PQ gpqForegroundPrev; 00101 PQ gpqCursor; 00102 00103 /* 00104 * Accessibility globals 00105 */ 00106 FILTERKEYS gFilterKeys; 00107 STICKYKEYS gStickyKeys; 00108 MOUSEKEYS gMouseKeys; 00109 ACCESSTIMEOUT gAccessTimeOut; 00110 TOGGLEKEYS gToggleKeys; 00111 SOUNDSENTRY gSoundSentry; 00112 00113 HIGHCONTRAST gHighContrast; 00114 WCHAR gHighContrastDefaultScheme[MAX_SCHEME_NAME_SIZE]; 00115 00116 /* 00117 * Fade animation globals 00118 */ 00119 FADE gfade; 00120 00121 /* 00122 * FilterKeys Support 00123 */ 00124 UINT_PTR gtmridFKActivation; 00125 UINT_PTR gtmridFKResponse; 00126 UINT_PTR gtmridFKAcceptanceDelay; 00127 int gFilterKeysState; 00128 00129 KE gFKKeyEvent; 00130 PKE gpFKKeyEvent = &gFKKeyEvent; 00131 ULONG gFKExtraInformation; 00132 int gFKNextProcIndex; 00133 00134 /* 00135 * ToggleKeys Support 00136 */ 00137 UINT_PTR gtmridToggleKeys; 00138 ULONG gTKExtraInformation; 00139 int gTKNextProcIndex; 00140 00141 /* 00142 * TimeOut Support 00143 */ 00144 UINT_PTR gtmridAccessTimeOut; 00145 00146 /* 00147 * MouseKeys Support 00148 */ 00149 WORD gwMKButtonState; 00150 WORD gwMKCurrentButton = MOUSE_BUTTON_LEFT; 00151 UINT_PTR gtmridMKMoveCursor; 00152 LONG gMKDeltaX; 00153 LONG gMKDeltaY; 00154 UINT giMouseMoveTable; 00155 00156 HWND ghwndSoundSentry; 00157 UINT_PTR gtmridSoundSentry; 00158 00159 MOUSECURSOR gMouseCursor; 00160 00161 /* 00162 * Multilingual keyboard layout support. 00163 */ 00164 PKL gspklBaseLayout; 00165 HKL gLCIDSentToShell; 00166 DWORD gSystemFS; // System font's font signature (single bit) 00167 00168 KBDLANGTOGGLE gLangToggle[] = { 00169 VK_MENU, 0, KLT_ALT, 00170 0, SCANCODE_LSHIFT, KLT_LEFTSHIFT, 00171 0, SCANCODE_RSHIFT, KLT_RIGHTSHIFT 00172 }; 00173 int gLangToggleKeyState; 00174 00175 /* 00176 * Multiple flag for hex Alt+NumPad mode. 00177 */ 00178 BYTE gfInNumpadHexInput; 00179 BOOL gfEnableHexNumpad; 00180 00181 /* 00182 * Grave accent keyboard switch for thai locales 00183 */ 00184 BOOL gbGraveKeyToggle; 00185 00186 /* 00187 * Points to currently active Keyboard Layer tables 00188 */ 00189 PKBDTABLES gpKbdTbl = &KbdTablesFallback; 00190 BYTE gSystemCPCharSet = ANSI_CHARSET; // System's input locale charset 00191 PKBDNLSTABLES gpKbdNlsTbl; 00192 DWORD gdwKeyboardAttributes; // see KLLF_SHIFTLOCK etc. 00193 00194 DWORD gtimeStartCursorHide; 00195 RECT grcCursorClip; 00196 ULONG_PTR gdwMouseMoveExtraInfo; 00197 DWORD gdwMouseMoveTimeStamp; 00198 LASTINPUT glinp; 00199 POINT gptCursorAsync; 00200 PPROCESSINFO gppiInputProvider; 00201 PPROCESSINFO gppiLockSFW; 00202 UINT guSFWLockCount; 00203 #if DBG 00204 BOOL gfDebugForegroundIgnoreDebugPort; 00205 #endif 00206 00207 /* 00208 * Cursor related Variables 00209 */ 00210 PCURSOR gpcurLogCurrent; 00211 PCURSOR gpcurPhysCurrent; 00212 RECT grcVDMCursorBounds; 00213 DWORD gdwLastAniTick; 00214 UINT_PTR gidCursorTimer; 00215 00216 PWND gspwndActivate; 00217 PWND gspwndLockUpdate; 00218 PWND gspwndMouseOwner; 00219 HWND ghwndSwitch; 00220 00221 UINT gwMouseOwnerButton; 00222 BOOL gbMouseButtonsRecentlySwapped; 00223 00224 UINT gdtMNDropDown = 400; 00225 00226 int gcountPWO; /* count of pwo WNDOBJs in gdi */ 00227 int giwndStack; 00228 int gnKeyboardSpeed = 15; 00229 int giScreenSaveTimeOutMs; 00230 00231 PBWL gpbwlList; 00232 00233 UINT gdtDblClk = 500; 00234 00235 UINT gwinOldAppHackoMaticFlags; // Flags for doing special things for 00236 // winold app 00237 /* 00238 * TrackMouseEvent related globals 00239 */ 00240 UINT gcxMouseHover; 00241 UINT gcyMouseHover; 00242 UINT gdtMouseHover; 00243 00244 CAPTIONCACHE gcachedCaptions[CCACHEDCAPTIONS]; 00245 00246 /* 00247 * list of thread attachments 00248 */ 00249 PATTACHINFO gpai; 00250 00251 PDESKTOP gpdeskRecalcQueueAttach; 00252 00253 PWND gspwndCursor; 00254 PPROCESSINFO gppiStarting; 00255 PPROCESSINFO gppiList; 00256 PPROCESSINFO gppiWantForegroundPriority; 00257 PPROCESSINFO gppiForegroundOld; 00258 00259 PW32JOB gpJobsList; 00260 00261 UINT_PTR gtmridAniCursor; 00262 PHOTKEY gphkFirst; 00263 00264 /* 00265 * NOTE -- gcHotKey has nothing to do with the hotkey list started 00266 * by gphkFirst. 00267 */ 00268 int gcHotKey; 00269 PHOTKEYSTRUCT gpHotKeyList; 00270 int gcHotKeyAlloc; 00271 00272 /* 00273 * IME HotKeys 00274 */ 00275 PIMEHOTKEYOBJ gpImeHotKeyListHeader = NULL; 00276 00277 int gMouseSpeed = 1; 00278 int gMouseThresh1 = 6; 00279 int gMouseThresh2 = 10; 00280 int gMouseSensitivityFactor = 256; 00281 int gMouseSensitivity = MOUSE_SENSITIVITY_DEFAULT; 00282 00283 UINT guDdeSendTimeout; 00284 00285 /* 00286 * !!! REVIEW !!! Take a careful look at everyone one of these globals. 00287 * In Win3, they often indicated some temporary state that would make 00288 * a critical section under Win32. 00289 */ 00290 00291 INT gnFastAltTabRows = 3; /* Rows of icons in quick switch window */ 00292 INT gnFastAltTabColumns = 7; /* Columns of icons in quick switch window */ 00293 00294 DWORD gdwThreadEndSession; /* Shutting down system? */ 00295 00296 HBRUSH ghbrHungApp; /* Brush used to redraw hung app windows. */ 00297 00298 HBITMAP ghbmBits; 00299 HBITMAP ghbmCaption; 00300 00301 int gcxCaptionFontChar; 00302 int gcyCaptionFontChar; 00303 HFONT ghSmCaptionFont; 00304 int gcxSmCaptionFontChar; 00305 int gcySmCaptionFontChar; 00306 00307 HFONT ghMenuFont; 00308 HFONT ghMenuFontDef; 00309 int gcxMenuFontChar; 00310 int gcyMenuFontChar; 00311 int gcxMenuFontOverhang; 00312 int gcyMenuFontExternLeading; 00313 int gcyMenuFontAscent; 00314 int gcyMenuScrollArrow; 00315 00316 #if DBG 00317 UINT guModalMenuStateCount; 00318 #endif 00319 00320 /* 00321 * From mnstate.c 00322 */ 00323 POPUPMENU gpopupMenu; 00324 MENUSTATE gMenuState; 00325 00326 HFONT ghStatusFont; 00327 HFONT ghIconFont; 00328 00329 /* 00330 * Cached SMWP structure 00331 */ 00332 SMWP gSMWP; 00333 00334 /* 00335 * SystemParametersInfo bit mask and DWORD array. 00336 * 00337 * Bit mask. Manipulate these values using the TestUP, SetUP and ClearUP macros. 00338 * Set the default value here by ORing the corresponding UPBOOLMask value. 00339 * Write the actual value here to make it easier to read the value stored 00340 * in the registry. OR the value even if defaulting to 0; just make sure to 00341 * preceed with a not (!) operator. 00342 * Note that this is an array of DWORDs, so if your value happens to start a new 00343 * DWORD, make sure to add a comma at the end of previous UPMask line. 00344 * 00345 * This initialization is made just for documentation and it doesn't cost anything. 00346 * The default values are actually read from the registry. 00347 */ 00348 DWORD gpdwCPUserPreferencesMask [SPI_BOOLMASKDWORDSIZE] = { 00349 !0x00000001 /* !ACTIVEWINDOWTRACKING */ 00350 | 0x00000002 /* MENUANIMATION */ 00351 | 0x00000004 /* COMBOBOXANIMATION */ 00352 | 0x00000008 /* LISTBOXSMOOTHSCROLLING */ 00353 | 0x00000010 /* GRADIENTCAPTIONS */ 00354 | !0x00000020 /* KEYBOARDCUES = MENUUNDERLINES */ 00355 | !0x00000040 /* !ACTIVEWNDTRKZORDER */ 00356 | 0x00000080 /* HOTTRACKING */ 00357 | 0x00000200 /* MENUFADE */ 00358 | 0x00000400 /* SELECTIONFADE */ 00359 | 0x00000800 /* TOOLTIPANIMATION */ 00360 | 0x00001000 /* TOOLTIPFADE */ 00361 | 0x00002000 /* CURSORSHADOW */ 00362 | 0x80000000 /* UIEFFECTS */ 00363 }; 00364 00365 00366 /* 00367 * SPI_GET/SETUSERPREFENCES. 00368 * Each SPI_UP_* define in winuser.w must have a corresponding entry here. 00369 */ 00370 PROFILEVALUEINFO gpviCPUserPreferences[1 + SPI_DWORDRANGECOUNT] = { 00371 /*Default Registry key name Registry value name */ 00372 {0, PMAP_DESKTOP, (LPCWSTR)STR_USERPREFERENCESMASK}, 00373 {200000, PMAP_DESKTOP, (LPCWSTR)STR_FOREGROUNDLOCKTIMEOUT}, 00374 {0, PMAP_DESKTOP, (LPCWSTR)STR_ACTIVEWNDTRKTIMEOUT}, 00375 {3, PMAP_DESKTOP, (LPCWSTR)STR_FOREGROUNDFLASHCOUNT}, 00376 {1, PMAP_DESKTOP, (LPCWSTR)STR_CARETWIDTH}, 00377 } ; 00378 00379 /* 00380 * Sys expunge control data. 00381 */ 00382 DWORD gdwSysExpungeMask; // hmods to be expunged 00383 DWORD gcSysExpunge; // current count of expunges performed 00384 00385 /* 00386 * System classes 00387 */ 00388 PCLS gpclsList; 00389 00390 PCURSOR gpcurFirst; 00391 00392 SYSCFGICO gasyscur[COCR_CONFIGURABLE] = { 00393 {OCR_NORMAL, STR_CURSOR_ARROW , NULL }, // OCR_ARROW_DEFAULT 00394 {OCR_IBEAM, STR_CURSOR_IBEAM , NULL }, // OCR_IBEAM_DEFAULT 00395 {OCR_WAIT, STR_CURSOR_WAIT , NULL }, // OCR_WAIT_DEFAULT 00396 {OCR_CROSS, STR_CURSOR_CROSSHAIR , NULL }, // OCR_CROSS_DEFAULT 00397 {OCR_UP, STR_CURSOR_UPARROW , NULL }, // OCR_UPARROW_DEFAULT 00398 {OCR_SIZENWSE, STR_CURSOR_SIZENWSE , NULL }, // OCR_SIZENWSE_DEFAULT 00399 {OCR_SIZENESW, STR_CURSOR_SIZENESW , NULL }, // OCR_SIZENESW_DEFAULT 00400 {OCR_SIZEWE, STR_CURSOR_SIZEWE , NULL }, // OCR_SIZEWE_DEFAULT 00401 {OCR_SIZENS, STR_CURSOR_SIZENS , NULL }, // OCR_SIZENS_DEFAULT 00402 {OCR_SIZEALL, STR_CURSOR_SIZEALL , NULL }, // OCR_SIZEALL_DEFAULT 00403 {OCR_NO, STR_CURSOR_NO , NULL }, // OCR_NO_DEFAULT 00404 {OCR_APPSTARTING, STR_CURSOR_APPSTARTING, NULL }, // OCR_APPSTARTING_DEFAULT 00405 {OCR_HELP, STR_CURSOR_HELP , NULL }, // OCR_HELP_DEFAULT 00406 {OCR_NWPEN, STR_CURSOR_NWPEN , NULL }, // OCR_NWPEN_DEFAULT 00407 {OCR_HAND, STR_CURSOR_HAND , NULL }, // OCR_HAND_DEFAULT 00408 {OCR_ICON, STR_CURSOR_ICON , NULL }, // OCR_ICON_DEFAULT 00409 }; 00410 00411 SYSCFGICO gasysico[COIC_CONFIGURABLE] = { 00412 {OIC_SAMPLE, STR_ICON_APPLICATION , NULL }, // OIC_APPLICATION_DEFAULT 00413 {OIC_WARNING, STR_ICON_HAND , NULL }, // OIC_WARNING_DEFAULT 00414 {OIC_QUES, STR_ICON_QUESTION , NULL }, // OIC_QUESTION_DEFAULT 00415 {OIC_ERROR, STR_ICON_EXCLAMATION , NULL }, // OIC_ERROR_DEFAULT 00416 {OIC_INFORMATION, STR_ICON_ASTERISK , NULL }, // OIC_INFORMATION_DEFAULT 00417 {OIC_WINLOGO, STR_ICON_WINLOGO , NULL }, // OIC_WINLOGO_DEFAULT 00418 }; 00419 00420 /* 00421 * Screen Saver Info 00422 */ 00423 PPROCESSINFO gppiScreenSaver; 00424 POINT gptSSCursor; 00425 00426 /* 00427 * Orphaned fullscreen mode changes that DDraw used to cleanup. 00428 */ 00429 PPROCESSINFO gppiFullscreen; 00430 00431 /* 00432 * accessibility byte-size data 00433 */ 00434 BYTE gLastVkDown; 00435 BYTE gBounceVk; 00436 BYTE gPhysModifierState; 00437 BYTE gCurrentModifierBit; 00438 BYTE gPrevModifierState; 00439 BYTE gLatchBits; 00440 BYTE gLockBits; 00441 BYTE gTKScanCode; 00442 BYTE gMKPreviousVk; 00443 BYTE gbMKMouseMode; 00444 00445 PSCANCODEMAP gpScancodeMap; 00446 00447 BYTE gStickyKeysLeftShiftCount; // # of consecutive left shift key presses. 00448 BYTE gStickyKeysRightShiftCount; // # of consecutive right shift key presses. 00449 00450 00451 /* 00452 * Some terminal data is global in non-Hydra. 00453 */ 00454 DWORD gdwGTERMFlags; // GTERMF_ flags 00455 PTHREADINFO gptiRit; 00456 PDESKTOP grpdeskRitInput; 00457 00458 PKEVENT gpkeMouseData; 00459 00460 /* 00461 * Video Information 00462 */ 00463 BYTE gbFullScreen = GDIFULLSCREEN; 00464 PDISPLAYINFO gpDispInfo; 00465 00466 /* 00467 * Count of available cacheDC's. This is used in determining a threshold 00468 * count of DCX_CACHE types available. 00469 */ 00470 int gnDCECount; 00471 00472 int gnRedirectedCount; 00473 00474 /* 00475 * Hung redraw list 00476 */ 00477 PVWPL gpvwplHungRedraw; 00478 00479 /* 00480 * SetWindowPos() related globals 00481 */ 00482 HRGN ghrgnInvalidSum; 00483 HRGN ghrgnVisNew; 00484 HRGN ghrgnSWP1; 00485 HRGN ghrgnValid; 00486 HRGN ghrgnValidSum; 00487 HRGN ghrgnInvalid; 00488 00489 HRGN ghrgnInv0; // Temp used by InternalInvalidate() 00490 HRGN ghrgnInv1; // Temp used by InternalInvalidate() 00491 HRGN ghrgnInv2; // Temp used by InternalInvalidate() 00492 00493 HDC ghdcMem; 00494 HDC ghdcMem2; 00495 00496 /* 00497 * DC Cache related globals 00498 */ 00499 HRGN ghrgnGDC; // Temp used by GetCacheDC et al 00500 00501 /* 00502 * SPB related globals 00503 */ 00504 HRGN ghrgnSCR; // Temp used by SpbCheckRect() 00505 HRGN ghrgnSPB1; 00506 HRGN ghrgnSPB2; 00507 00508 /* 00509 * ScrollWindow/ScrollDC related globals 00510 */ 00511 HRGN ghrgnSW; // Temps used by ScrollDC/ScrollWindow 00512 HRGN ghrgnScrl1; 00513 HRGN ghrgnScrl2; 00514 HRGN ghrgnScrlVis; 00515 HRGN ghrgnScrlSrc; 00516 HRGN ghrgnScrlDst; 00517 HRGN ghrgnScrlValid; 00518 00519 /* 00520 * General Device and Driver information 00521 */ 00522 PDEVICEINFO gpDeviceInfoList; 00523 PERESOURCE gpresDeviceInfoList; 00524 #if DBG 00525 DWORD gdwDeviceInfoListCritSecUseCount; // bumped for every enter and leave 00526 DWORD gdwInAtomicDeviceInfoListOperation; // inc/dec for BEGIN/ENDATOMICDEVICEINFOLISTCHECK 00527 #endif 00528 PDRIVER_OBJECT gpWin32kDriverObject; 00529 DWORD gnRetryReadInput; 00530 00531 /* 00532 * Mouse Information 00533 */ 00534 MOUSEEVENT gMouseEventQueue[NELEM_BUTTONQUEUE]; 00535 DWORD gdwMouseQueueHead; 00536 DWORD gdwMouseEvents; 00537 PERESOURCE gpresMouseEventQueue; 00538 int gnMice; 00539 00540 /* 00541 * Keyboard Information 00542 */ 00543 KEYBOARD_ATTRIBUTES gKeyboardInfo = { 00544 // Initial default settings: 00545 {4, 0}, // Keyboard Identifier (Type, Subtype) 00546 1, // KeyboardMode (Scancode Set 1) 00547 12, // NumberOfFunction keys 00548 3, // NumberOfIndicators (CapsLock, NumLock ScrollLock) 00549 104, // NumberOfKeysTotal 00550 0, // InputDataQueueLength 00551 {0, 0, 0}, // KeyRepeatMinimum (UnitId, Rate, Delay) 00552 {0, 0, 0}, // KeyRepeatMaximum (UnitId, Rate, Delay) 00553 }; 00554 KEYBOARD_INPUT_DATA gkei[MAXIMUM_ITEMS_READ]; 00555 KEYBOARD_INDICATOR_PARAMETERS gklp; 00556 KEYBOARD_INDICATOR_PARAMETERS gklpBootTime; 00557 KEYBOARD_TYPEMATIC_PARAMETERS gktp; 00558 int gnKeyboards; 00559 00560 /* 00561 * This is the IO Status block used for IOCTL_KEYBOARD_ICA_SCANMAP, 00562 * IOCTL_KEYBOARD_QUERY_ATTRIBUTES and IOCTL_KEYBOARD_SET_INDICATORS 00563 */ 00564 IO_STATUS_BLOCK giosbKbdControl; 00565 00566 /* 00567 * IME status for keyboard device 00568 */ 00569 KEYBOARD_IME_STATUS gKbdImeStatus; 00570 00571 /* 00572 * Async key state tables. gafAsyncKeyState holds the down bit and toggle 00573 * bit, gafAsyncKeyStateRecentDown hold the bits indicates a key has gone 00574 * down since the last read. 00575 */ 00576 BYTE gafAsyncKeyState[CBKEYSTATE]; 00577 BYTE gafAsyncKeyStateRecentDown[CBKEYSTATERECENTDOWN]; 00578 00579 /* 00580 * Raw Key state: this is the low-level async keyboard state. 00581 * (assuming Scancodes are correctly translated to Virtual Keys). It is used 00582 * for modifying and processing key events as they are received in ntinput.c 00583 * The Virtual Keys recorded here are obtained directly from the Virtual 00584 * Scancode via the awVSCtoVK[] table: no shift-state, numlock or other 00585 * conversions are applied. 00586 * This IS affected by injected keystrokes (SendInput, keybd_event) so that 00587 * on-screen-keyboards and other accessibility components work just like the 00588 * real keyboard: with the exception of the SAS (Ctrl-Alt-Del), which checks 00589 * real physically pressed modifier keys (gfsSASModifiersDown). 00590 * Left & right SHIFT, CTRL and ALT keys are distinct. (VK_RSHIFT etc.) 00591 * See also: SetRawKeyDown() etc. 00592 */ 00593 BYTE gafRawKeyState[CBKEYSTATE]; 00594 BOOLEAN gfKanaToggle; 00595 00596 DWORD gdwUpdateKeyboard; 00597 HARDERRORHANDLER gHardErrorHandler; 00598 00599 /* 00600 * WinLogon specific information: 00601 * Note: SAS modifiers are a combination of MOD_SHIFT, MOD_CONTROL, MOD_ALT 00602 * not a combination of KBDSHIFT, KBDCTRL, KBDALT (different values!) 00603 */ 00604 UINT gfsSASModifiers; // SAS modifiers 00605 UINT gfsSASModifiersDown; // SAS modifiers really physically down 00606 UINT gvkSAS; // The Secure Attention Sequence (SAS) key. 00607 00608 /* 00609 * IME status for shell and keyboard driver notification 00610 */ 00611 DWORD gdwIMEOpenStatus = 0xffffffff; 00612 DWORD gdwIMEConversionStatus = 0xffffffff; 00613 HIMC gHimcFocus = (HIMC)(INT_PTR)(INT)0xffffffff; 00614 BOOL gfIMEShowStatus; 00615 00616 00617 00618 00619 /* 00620 * The global array used by GetMouseMovePointsEx 00621 */ 00622 MOUSEMOVEPOINT gaptMouse[ MAX_MOUSEPOINTS ]; 00623 00624 /* 00625 * Index in the gaptMouse array where the next mouse point will 00626 * be written. gptInd goes circular in the gaptMouse array. 00627 * It is initialized to 1 so the first point is (0, 0) 00628 */ 00629 UINT gptInd = 1; 00630 00631 /* 00632 * We get this warning if we don't explicitly initalize gZero: 00633 * 00634 * C4132: 'gZero' : const object should be initialized 00635 * 00636 * But we can't explicitly initialize it since it is a union. So 00637 * we turn the warning off. 00638 */ 00639 #pragma warning(disable:4132) 00640 CONST ALWAYSZERO gZero; 00641 #pragma warning(default:4132) 00642 00643 PSMS gpsmsList; 00644 00645 TERMINAL gTermIO; 00646 TERMINAL gTermNOIO; 00647 00648 PWINDOWSTATION grpWinStaList; 00649 00650 /* 00651 * the logon desktop 00652 */ 00653 PDESKTOP grpdeskLogon; 00654 00655 HANDLE CsrApiPort; 00656 CONST LUID luidSystem = SYSTEM_LUID; 00657 00658 PKBDFILE gpkfList = NULL; 00659 00660 /* 00661 * gptiCurrent is used as an optimaztion for the single user critical section. 00662 * We might have to move it out if we decide to implement multiple user 00663 * critical sections. 00664 */ 00665 PTHREADINFO gptiCurrent = NULL; 00666 PTIMER gptmrFirst; 00667 PKTIMER gptmrMaster; 00668 INT gdmsNextTimer, gcmsLastTimer; 00669 BOOL gbMasterTimerSet = FALSE; 00670 00671 BOOL gbDisableAlpha = FALSE; 00672 00673 /* 00674 * This constant is the max User handles allowed in a process. It is 00675 * meant to prevent runaway apps from eating the system. It is changed 00676 * via a registry setting -- PMAP_WINDOWSM/USERProcessHandleQuota. 00677 */ 00678 LONG gUserProcessHandleQuota = INITIAL_USER_HANDLE_QUOTA; 00679 00680 /* 00681 * This global variable limits the maximum number of posted message 00682 * per thread. If the number of message posted to a thread exceeds 00683 * this value, PostMessage will fail. 00684 */ 00685 DWORD gUserPostMessageLimit = INITIAL_POSTMESSAGE_LIMIT; 00686 00687 /* 00688 * Active Accessibility - Window Events 00689 */ 00690 PEVENTHOOK gpWinEventHooks; // list of installed hooks 00691 PNOTIFY gpPendingNotifies; // FILO of outstanding notifications 00692 PNOTIFY gpLastPendingNotify; // end of above list. 00693 DWORD gdwDeferWinEvent; // Defer notification is > 0 00694 00695 /* 00696 * This is the timeout value used for callbacks to low level hook procedures 00697 */ 00698 int gnllHooksTimeout = 300; 00699 00700 00701 /* 00702 * gpusMouseVKey 00703 */ 00704 extern CONST USHORT ausMouseVKey[]; 00705 PUSHORT gpusMouseVKey = (PUSHORT) ausMouseVKey; 00706 00707 USHORT gNumLockVk = VK_NUMLOCK; 00708 USHORT gOemScrollVk = VK_SCROLL; 00709 00710 00711 00712 CONST WCHAR szNull[2] = { TEXT('\0'), TEXT('\015') }; 00713 00714 WCHAR szWindowStationDirectory[MAX_SESSION_PATH]; 00715 00716 CONST WCHAR szOneChar[] = TEXT("0"); 00717 CONST WCHAR szY[] = TEXT("Y"); 00718 CONST WCHAR szy[] = TEXT("y"); 00719 CONST WCHAR szN[] = TEXT("N"); 00720 00721 #ifdef KANJI 00722 00723 WCHAR szKanjiMenu[] = TEXT("KanjiMenu"); 00724 WCHAR szM[] = TEXT("M"); 00725 WCHAR szR[] = TEXT("R"); 00726 WCHAR szK[] = TEXT("K"); 00727 00728 #endif 00729 00730 HBRUSH ghbrWhite; 00731 HBRUSH ghbrBlack; 00732 HFONT ghFontSys; 00733 00734 HANDLE hModuleWin; // win32k.sys hmodule 00735 HANDLE hModClient; // user32.dll hModule 00736 00737 LONG TraceInitialization; 00738 00739 /* 00740 * Static DESKTOPINFO 00741 * 00742 * This is allocated in (server.c) during initialization, and is set 00743 * to the system-threads which do not have desktops. This is a temporary 00744 * measure to prevent GPF's when a thread needs to have a valid pointer to 00745 * a spdesk->pDeskInfo struct. 00746 */ 00747 DESKTOPINFO diStatic; 00748 00749 /* 00750 * DWORD incremented with each new desktop, so GDI can match display devices 00751 * with desktops appropriately. 00752 * Since at boot time there is no desktop strucutre, we can not use the 00753 * desktop itself for this purpose. 00754 */ 00755 ULONG gdwDesktopId = GW_DESKTOP_ID + 1; 00756 00757 PERESOURCE gpresUser; 00758 PFAST_MUTEX gpHandleFlagsMutex; 00759 00760 PROC gpfnwp[ICLS_MAX]; 00761 00762 #ifdef HUNGAPP_GHOSTING 00763 PKEVENT gpEventScanGhosts; 00764 ATOM gatomGhost; 00765 #endif // HUNGAPP_GHOSTING 00766 00767 ATOM gatomConsoleClass; 00768 ATOM gatomFirstPinned ; 00769 ATOM gatomLastPinned; 00770 00771 ATOM gatomMessage; 00772 ATOM gaOleMainThreadWndClass; 00773 ATOM gaFlashWState; 00774 ATOM atomCheckpointProp; 00775 ATOM atomDDETrack; 00776 ATOM atomQOS; 00777 ATOM atomDDEImp; 00778 ATOM atomWndObj; 00779 ATOM atomImeLevel; 00780 00781 ATOM atomLayer; 00782 00783 #ifdef POOL_INSTR 00784 DWORD gdwAllocCrt; // the index for the current allocation 00785 #endif // POOL_INSTR 00786 00787 UINT guiOtherWindowCreated; 00788 UINT guiOtherWindowDestroyed; 00789 UINT guiActivateShellWindow; 00790 00791 ATOM atomUSER32; 00792 00793 HANDLE gpidLogon; 00794 PEPROCESS gpepCSRSS; 00795 PEPROCESS gpepInit; 00796 00797 int giLowPowerTimeOutMs; 00798 int giPowerOffTimeOutMs; 00799 00800 /* 00801 * Security info 00802 */ 00803 00804 CONST GENERIC_MAPPING KeyMapping = {KEY_READ, KEY_WRITE, KEY_EXECUTE, KEY_ALL_ACCESS}; 00805 CONST GENERIC_MAPPING WinStaMapping = { 00806 WINSTA_ENUMDESKTOPS | WINSTA_READATTRIBUTES | WINSTA_ENUMERATE | 00807 WINSTA_READSCREEN | STANDARD_RIGHTS_READ, 00808 00809 WINSTA_ACCESSCLIPBOARD | WINSTA_CREATEDESKTOP | WINSTA_WRITEATTRIBUTES | 00810 STANDARD_RIGHTS_WRITE, 00811 00812 WINSTA_ACCESSGLOBALATOMS | WINSTA_EXITWINDOWS | STANDARD_RIGHTS_EXECUTE, 00813 00814 WINSTA_ENUMDESKTOPS | WINSTA_READATTRIBUTES | WINSTA_ENUMERATE | 00815 WINSTA_READSCREEN | WINSTA_ACCESSCLIPBOARD | WINSTA_CREATEDESKTOP | 00816 WINSTA_WRITEATTRIBUTES | WINSTA_ACCESSGLOBALATOMS | 00817 WINSTA_EXITWINDOWS | STANDARD_RIGHTS_REQUIRED 00818 }; 00819 00820 /* 00821 * desktop generic mapping 00822 */ 00823 CONST GENERIC_MAPPING DesktopMapping = { 00824 DESKTOP_READOBJECTS | DESKTOP_ENUMERATE | STANDARD_RIGHTS_READ, 00825 00826 DESKTOP_WRITEOBJECTS | DESKTOP_CREATEWINDOW | DESKTOP_CREATEMENU | 00827 DESKTOP_HOOKCONTROL | DESKTOP_JOURNALRECORD | 00828 DESKTOP_JOURNALPLAYBACK | STANDARD_RIGHTS_WRITE, 00829 00830 DESKTOP_SWITCHDESKTOP | STANDARD_RIGHTS_EXECUTE, 00831 00832 DESKTOP_READOBJECTS | DESKTOP_WRITEOBJECTS | DESKTOP_ENUMERATE | 00833 DESKTOP_CREATEWINDOW | DESKTOP_CREATEMENU | DESKTOP_HOOKCONTROL | 00834 DESKTOP_JOURNALRECORD | DESKTOP_JOURNALPLAYBACK | 00835 DESKTOP_SWITCHDESKTOP | STANDARD_RIGHTS_REQUIRED 00836 }; 00837 00838 00839 00840 /* 00841 * Pointer to shared SERVERINFO data. 00842 */ 00843 PSERVERINFO gpsi; 00844 SHAREDINFO gSharedInfo; 00845 00846 /* 00847 * Handle table globals. 00848 */ 00849 DWORD giheLast; /* index to last allocated handle entry */ 00850 00851 DWORD gdwDesktopSectionSize; 00852 DWORD gdwNOIOSectionSize; 00853 00854 #if defined (USER_PERFORMANCE) 00855 /* 00856 * To turn on performance counters, you have to set the environment variable 00857 * USER_PERFORMANCE when compiling win32k.sys 00858 */ 00859 CSSTATISTICS gCSStatistics; 00860 #endif // USER_PERFORMANCE 00861 00862 SECURITY_QUALITY_OF_SERVICE gqosDefault = { 00863 sizeof(SECURITY_QUALITY_OF_SERVICE), 00864 SecurityImpersonation, 00865 SECURITY_STATIC_TRACKING, 00866 TRUE 00867 }; 00868 00869 CONST COLORREF gargbInitial[COLOR_MAX] = { 00870 RGB(192, 192, 192), // COLOR_SCROLLBAR 00871 RGB( 58, 110, 165), // COLOR_BACKGROUND 00872 RGB(000, 000, 128), // COLOR_ACTIVECAPTION 00873 RGB(128, 128, 128), // COLOR_INACTIVECAPTION 00874 RGB(192, 192, 192), // COLOR_MENU 00875 RGB(255, 255, 255), // COLOR_WINDOW 00876 RGB(000, 000, 000), // COLOR_WINDOWFRAME 00877 RGB(000, 000, 000), // COLOR_MENUTEXT 00878 RGB(000, 000, 000), // COLOR_WINDOWTEXT 00879 RGB(255, 255, 255), // COLOR_CAPTIONTEXT 00880 RGB(192, 192, 192), // COLOR_ACTIVEBORDER 00881 RGB(192, 192, 192), // COLOR_INACTIVEBORDER 00882 RGB(128, 128, 128), // COLOR_APPWORKSPACE 00883 RGB(000, 000, 128), // COLOR_HIGHLIGHT 00884 RGB(255, 255, 255), // COLOR_HIGHLIGHTTEXT 00885 RGB(192, 192, 192), // COLOR_BTNFACE 00886 RGB(128, 128, 128), // COLOR_BTNSHADOW 00887 RGB(128, 128, 128), // COLOR_GRAYTEXT 00888 RGB(000, 000, 000), // COLOR_BTNTEXT 00889 RGB(192, 192, 192), // COLOR_INACTIVECAPTIONTEXT 00890 RGB(255, 255, 255), // COLOR_BTNHIGHLIGHT 00891 RGB(000, 000, 000), // COLOR_3DDKSHADOW 00892 RGB(223, 223, 223), // COLOR_3DLIGHT 00893 RGB(000, 000, 000), // COLOR_INFOTEXT 00894 RGB(255, 255, 225), // COLOR_INFOBK 00895 RGB(180, 180, 180), // COLOR_3DALTFACE /* unused */ 00896 RGB( 0, 0, 255), // COLOR_HOTLIGHT 00897 RGB( 16, 132, 208), // COLOR_GRADIENTACTIVECAPTION 00898 RGB(181, 181, 181) // COLOR_GRADIENTINACTIVECAPTION 00899 }; 00900 00901 POWERSTATE gPowerState; 00902 00903 00904 WCHAR gszMIN[15]; 00905 WCHAR gszMAX[15]; 00906 WCHAR gszRESUP[20]; 00907 WCHAR gszRESDOWN[20]; 00908 /* Commented out due to TandyT ... 00909 * WCHAR gszSMENU[30]; 00910 */ 00911 WCHAR gszSCLOSE[15]; 00912 WCHAR gszCAPTIONTOOLTIP[CAPTIONTOOLTIPLEN]; 00913 00914 /* 00915 * Pointer to shared SERVERINFO data. 00916 */ 00917 00918 HANDLE ghSectionShared; 00919 PVOID gpvSharedBase; 00920 00921 PWIN32HEAP gpvSharedAlloc; 00922 00923 BOOL gbVideoInitialized; 00924 00925 BOOL gbNoMorePowerCallouts; 00926 00927 BOOL gbCleanedUpResources; 00928 00929 WSINFO gWinStationInfo; 00930 00931 ULONG gSessionId; // the session id. The fisrt session has the id 0 00932 BOOL gbRemoteSession; // TRUE if win32k is for a remote session 00933 00934 PDESKTOP gspdeskDisconnect; 00935 00936 PDESKTOP gspdeskShouldBeForeground; 00937 BOOL gbDesktopLocked; 00938 BOOL gbSecureDesktop = TRUE; 00939 00940 HANDLE ghRemoteVideoChannel; 00941 HANDLE ghRemoteMouseChannel; 00942 HANDLE ghRemoteBeepChannel; 00943 PVOID gpRemoteBeepDevice; 00944 HANDLE ghRemoteKeyboardChannel; 00945 HANDLE ghRemoteThinwireChannel; 00946 CLIENTKEYBOARDTYPE gRemoteClientKeyboardType; 00947 00948 BOOL gbExitInProgress; 00949 00950 BOOL gbFreezeScreenUpdates; 00951 00952 ULONG gSetLedReceived; 00953 BOOL gbClientDoubleClickSupport; 00954 BOOL gfEnableWindowsKey = TRUE; 00955 00956 BOOL gbDisconnectHardErrorAttach; 00957 00958 PKEVENT gpevtDesktopDestroyed; 00959 00960 HDESK ghDisconnectDesk; 00961 00962 HWINSTA ghDisconnectWinSta; 00963 00964 ULONG gnShadowers; 00965 BOOL gbConnected; 00966 00967 WCHAR gstrBaseWinStationName[WINSTATIONNAME_LENGTH]; 00968 00969 PFILE_OBJECT gVideoFileObject; 00970 PFILE_OBJECT gThinwireFileObject; 00971 00972 PVOID gpThinWireCache; 00973 00974 PVOID ghKbdTblBase; 00975 ULONG guKbdTblSize; 00976 00977 DWORD gdwHydraHint; 00978 00979 DWORD gdwCanPaintDesktop; 00980 00981 /* 00982 * Used for keeping track of stub parent processes that exit too early. 00983 */ 00984 HANDLE ghCanActivateForegroundPIDs[ACTIVATE_ARRAY_SIZE]; 00985 00986 00987 DWORD gdwGuiThreads; 00988 00991 /* 00992 * The section below has debug only globals 00993 * 00994 */ 00997 /* 00998 * Debug only globals 00999 */ 01000 #if DBG 01001 01002 BOOL gbTraceHydraApi; 01003 BOOL gbTraceDesktop; 01004 BOOL gbTraceRIT; 01005 01006 DWORD gdwCritSecUseCount; // bumped for every enter and leave 01007 DWORD gdwInAtomicOperation; 01008 01009 /* 01010 * Debug Active Accessibility - ensure deferred win events are not lost 01011 */ 01012 int gnDeferredWinEvents; 01013 01014 LPCSTR gapszFNID[] = { 01015 "FNID_SCROLLBAR", 01016 "FNID_ICONTITLE", 01017 "FNID_MENU", 01018 "FNID_DEFWINDOWPROC", 01019 "FNID_HKINLPCWPEXSTRUCT", 01020 "FNID_HKINLPCWPRETEXSTRUCT", 01021 "FNID_BUTTON", 01022 "FNID_COMBOBOX", 01023 "FNID_COMBOLISTBOX", 01024 "FNID_DEFFRAMEPROC", 01025 "FNID_DEFMDICHILDPROC", 01026 "FNID_DIALOG", 01027 "FNID_EDIT", 01028 "FNID_LISTBOX", 01029 "FNID_MB_DLGPROC", 01030 "FNID_MDIACTIVATEDLGPROC", 01031 "FNID_MDICLIENT", 01032 "FNID_STATIC", 01033 "FNID_IME", 01034 "FNID_SENDMESSAGE", 01035 "FNID_UNUSED", 01036 "FNID_SENDMESSAGEFF", 01037 "FNID_SENDMESSAGEEX", 01038 "FNID_CALLWINDOWPROC", 01039 "FNID_SENDMESSAGEBSM", 01040 "FNID_SWITCH", 01041 "FNID_DESKTOP" 01042 }; 01043 01044 LPCSTR gapszMessage[] = { 01045 "WM_NULL", 01046 "WM_CREATE", 01047 "WM_DESTROY", 01048 "WM_MOVE", 01049 "WM_SIZEWAIT", 01050 "WM_SIZE", 01051 "WM_ACTIVATE", 01052 "WM_SETFOCUS", 01053 "WM_KILLFOCUS", 01054 "WM_SETVISIBLE", 01055 "WM_ENABLE", 01056 "WM_SETREDRAW", 01057 "WM_SETTEXT", 01058 "WM_GETTEXT", 01059 "WM_GETTEXTLENGTH", 01060 "WM_PAINT", 01061 01062 "WM_CLOSE", 01063 "WM_QUERYENDSESSION", 01064 "WM_QUIT", 01065 "WM_QUERYOPEN", 01066 "WM_ERASEBKGND", 01067 "WM_SYSCOLORCHANGE", 01068 "WM_ENDSESSION", 01069 "WM_SYSTEMERROR", 01070 "WM_SHOWWINDOW", 01071 "WM_CTLCOLOR", 01072 "WM_WININICHANGE", 01073 "WM_DEVMODECHANGE", 01074 "WM_ACTIVATEAPP", 01075 "WM_FONTCHANGE", 01076 "WM_TIMECHANGE", 01077 "WM_CANCELMODE", 01078 01079 "WM_SETCURSOR", 01080 "WM_MOUSEACTIVATE", 01081 "WM_CHILDACTIVATE", 01082 "WM_QUEUESYNC", 01083 "WM_GETMINMAXINFO", 01084 "fnEmpty", 01085 "WM_PAINTICON", 01086 "WM_ICONERASEBKGND", 01087 "WM_NEXTDLGCTL", 01088 "WM_ALTTABACTIVE", 01089 "WM_SPOOLERSTATUS", 01090 "WM_DRAWITEM", 01091 "WM_MEASUREITEM", 01092 "WM_DELETEITEM", 01093 "WM_VKEYTOITEM", 01094 "WM_CHARTOITEM", 01095 01096 "WM_SETFONT", 01097 "WM_GETFONT", 01098 "WM_SETHOTKEY", 01099 "WM_GETHOTKEY", 01100 "WM_FILESYSCHANGE", 01101 "WM_ISACTIVEICON", 01102 "WM_QUERYPARKICON", 01103 "WM_QUERYDRAGICON", 01104 "WM_WINHELP", 01105 "WM_COMPAREITEM", 01106 "WM_FULLSCREEN", 01107 "WM_CLIENTSHUTDOWN", 01108 "WM_DDEMLEVENT", 01109 "fnEmpty", 01110 "fnEmpty", 01111 "MM_CALCSCROLL", 01112 01113 "WM_TESTING", 01114 "WM_COMPACTING", 01115 01116 "WM_OTHERWINDOWCREATED", 01117 "WM_OTHERWINDOWDESTROYED", 01118 "WM_COMMNOTIFY", 01119 "WM_MEDIASTATUSCHANGE", 01120 "WM_WINDOWPOSCHANGING", 01121 "WM_WINDOWPOSCHANGED", 01122 01123 "WM_POWER", 01124 "WM_COPYGLOBALDATA", 01125 "WM_COPYDATA", 01126 "WM_CANCELJOURNAL", 01127 "WM_LOGONNOTIFY", 01128 "WM_KEYF1", 01129 "WM_NOTIFY", 01130 "WM_ACCESS_WINDOW", 01131 01132 "WM_INPUTLANGCHANGEREQUE", 01133 "WM_INPUTLANGCHANGE", 01134 "WM_TCARD", 01135 "WM_HELP", 01136 "WM_USERCHANGED", 01137 "WM_NOTIFYFORMAT", 01138 "fnEmpty", 01139 "fnEmpty", 01140 "fnEmpty", 01141 01142 "fnEmpty", 01143 "fnEmpty", 01144 "fnEmpty", 01145 "fnEmpty", 01146 "fnEmpty", 01147 "fnEmpty", 01148 "fnEmpty", 01149 01150 "fnEmpty", 01151 "fnEmpty", 01152 "fnEmpty", 01153 "fnEmpty", 01154 "fnEmpty", 01155 "fnEmpty", 01156 "fnEmpty", 01157 "fnEmpty", 01158 01159 "fnEmpty", 01160 "fnEmpty", 01161 "fnEmpty", 01162 "fnEmpty", 01163 01164 "fnEmpty", 01165 "fnEmpty", 01166 "fnEmpty", 01167 "fnEmpty", 01168 01169 "WM_FINALDESTROY", 01170 "fnEmpty", 01171 "WM_TASKACTIVATED", 01172 "WM_TASKDEACTIVATED", 01173 "WM_TASKCREATED", 01174 "WM_TASKDESTROYED", 01175 "WM_TASKUICHANGED", 01176 "WM_TASKVISIBLE", 01177 "WM_TASKNOTVISIBLE", 01178 "WM_SETCURSORINFO", 01179 "fnEmpty", 01180 "WM_CONTEXTMENU", 01181 "WM_STYLECHANGING", 01182 "WM_STYLECHANGED", 01183 "fnEmpty", 01184 "WM_GETICON", 01185 01186 "WM_SETICON", 01187 "WM_NCCREATE", 01188 "WM_NCDESTROY", 01189 "WM_NCCALCSIZE", 01190 01191 "WM_NCHITTEST", 01192 "WM_NCPAINT", 01193 "WM_NCACTIVATE", 01194 "WM_GETDLGCODE", 01195 01196 "WM_SYNCPAINT", 01197 "WM_SYNCTASK", 01198 01199 "fnEmpty", 01200 "WM_KLUDGEMINRECT", 01201 "fnEmpty", 01202 "fnEmpty", 01203 "fnEmpty", 01204 "fnEmpty", 01205 01206 "fnEmpty", 01207 "fnEmpty", 01208 "fnEmpty", 01209 "fnEmpty", 01210 "fnEmpty", 01211 "fnEmpty", 01212 "fnEmpty", 01213 "fnEmpty", 01214 01215 "fnEmpty", 01216 "fnEmpty", 01217 "fnEmpty", 01218 "fnEmpty", 01219 "fnEmpty", 01220 "fnEmpty", 01221 "fnEmpty", 01222 "fnEmpty", 01223 01224 "WM_NCMOUSEMOVE", 01225 "WM_NCLBUTTONDOWN", 01226 "WM_NCLBUTTONUP", 01227 "WM_NCLBUTTONDBLCLK", 01228 "WM_NCRBUTTONDOWN", 01229 "WM_NCRBUTTONUP", 01230 "WM_NCRBUTTONDBLCLK", 01231 "WM_NCMBUTTONDOWN", 01232 "WM_NCMBUTTONUP", 01233 "WM_NCMBUTTONDBLCLK", 01234 01235 "fnEmpty", 01236 "fnEmpty", 01237 "fnEmpty", 01238 "fnEmpty", 01239 "fnEmpty", 01240 "fnEmpty", 01241 01242 "EM_GETSEL", 01243 "EM_SETSEL", 01244 "EM_GETRECT", 01245 "EM_SETRECT", 01246 "EM_SETRECTNP", 01247 "EM_SCROLL", 01248 "EM_LINESCROLL", 01249 "fnEmpty", 01250 "EM_GETMODIFY", 01251 "EM_SETMODIFY", 01252 "EM_GETLINECOUNT", 01253 "EM_LINEINDEX", 01254 "EM_SETHANDLE", 01255 "EM_GETHANDLE", 01256 "EM_GETTHUMB", 01257 "fnEmpty", 01258 01259 "fnEmpty", 01260 "EM_LINELENGTH", 01261 "EM_REPLACESEL", 01262 "EM_SETFONT", 01263 "EM_GETLINE", 01264 "EM_LIMITTEXT", 01265 "EM_CANUNDO", 01266 "EM_UNDO", 01267 "EM_FMTLINES", 01268 "EM_LINEFROMCHAR", 01269 "EM_SETWORDBREAK", 01270 "EM_SETTABSTOPS", 01271 "EM_SETPASSWORDCHAR", 01272 "EM_EMPTYUNDOBUFFER", 01273 "EM_GETFIRSTVISIBLELINE", 01274 "EM_SETREADONLY", 01275 01276 "EM_SETWORDBREAKPROC", 01277 "EM_GETWORDBREAKPROC", 01278 "EM_GETPASSWORDCHAR", 01279 "EM_SETMARGINS", 01280 "EM_GETMARGINS", 01281 "EM_GETLIMITTEXT", 01282 "EM_POSFROMCHAR", 01283 "EM_CHARFROMPOS", 01284 "EM_SETIMESTATUS", 01285 01286 "EM_GETIMESTATUS", 01287 "EM_MSGMAX", 01288 "fnEmpty", 01289 "fnEmpty", 01290 "fnEmpty", 01291 "fnEmpty", 01292 "fnEmpty", 01293 01294 "SBM_SETPOS", 01295 "SBM_GETPOS", 01296 "SBM_SETRANGE", 01297 "SBM_GETRANGE", 01298 "fnEmpty", 01299 "fnEmpty", 01300 "SBM_SETRANGEREDRAW", 01301 "fnEmpty", 01302 01303 "fnEmpty", 01304 "SBM_SETSCROLLINFO", 01305 "SBM_GETSCROLLINFO", 01306 "fnEmpty", 01307 "fnEmpty", 01308 "fnEmpty", 01309 "fnEmpty", 01310 "fnEmpty", 01311 01312 "BM_GETCHECK", 01313 "BM_SETCHECK", 01314 "BM_GETSTATE", 01315 "BM_SETSTATE", 01316 "BM_SETSTYLE", 01317 "BM_CLICK", 01318 "BM_GETIMAGE", 01319 "BM_SETIMAGE", 01320 01321 "fnEmpty", 01322 "fnEmpty", 01323 "fnEmpty", 01324 "fnEmpty", 01325 "fnEmpty", 01326 "fnEmpty", 01327 "fnEmpty", 01328 "fnEmpty", 01329 01330 "WM_KEYDOWN", 01331 "WM_KEYUP", 01332 "WM_CHAR", 01333 "WM_DEADCHAR", 01334 "WM_SYSKEYDOWN", 01335 "WM_SYSKEYUP", 01336 "WM_SYSCHAR", 01337 "WM_SYSDEADCHAR", 01338 "WM_YOMICHAR", 01339 "fnEmpty", 01340 "WM_CONVERTREQUEST", 01341 "WM_CONVERTRESULT", 01342 "fnEmpty", 01343 "fnEmpty", 01344 "fnEmpty", 01345 "fnEmpty", 01346 01347 "WM_INITDIALOG", 01348 "WM_COMMAND", 01349 "WM_SYSCOMMAND", 01350 "WM_TIMER", 01351 "WM_HSCROLL", 01352 "WM_VSCROLL", 01353 "WM_INITMENU", 01354 "WM_INITMENUPOPUP", 01355 "WM_SYSTIMER", 01356 "fnEmpty", 01357 "fnEmpty", 01358 "fnEmpty", 01359 "fnEmpty", 01360 "fnEmpty", 01361 "fnEmpty", 01362 "WM_MENUSELECT", 01363 01364 "WM_MENUCHAR", 01365 "WM_ENTERIDLE", 01366 01367 "fnEmpty", 01368 "fnEmpty", 01369 "fnEmpty", 01370 "fnEmpty", 01371 "fnEmpty", 01372 "fnEmpty", 01373 01374 "fnEmpty", 01375 "fnEmpty", 01376 "fnEmpty", 01377 "fnEmpty", 01378 "fnEmpty", 01379 "fnEmpty", 01380 "fnEmpty", 01381 "fnEmpty", 01382 01383 "fnEmpty", 01384 "WM_LBTRACKPOINT", 01385 "WM_CTLCOLORMSGBOX", 01386 "WM_CTLCOLOREDIT", 01387 "WM_CTLCOLORLISTBOX", 01388 "WM_CTLCOLORBTN", 01389 "WM_CTLCOLORDLG", 01390 "WM_CTLCOLORSCROLLBAR", 01391 "WM_CTLCOLORSTATIC", 01392 "fnEmpty", 01393 01394 "fnEmpty", 01395 "fnEmpty", 01396 "fnEmpty", 01397 "fnEmpty", 01398 "fnEmpty", 01399 "fnEmpty", 01400 01401 "CB_GETEDITSEL", 01402 "CB_LIMITTEXT", 01403 "CB_SETEDITSEL", 01404 "CB_ADDSTRING", 01405 "CB_DELETESTRING", 01406 "CB_DIR", 01407 "CB_GETCOUNT", 01408 "CB_GETCURSEL", 01409 "CB_GETLBTEXT", 01410 "CB_GETLBTEXTLEN", 01411 "CB_INSERTSTRING", 01412 "CB_RESETCONTENT", 01413 "CB_FINDSTRING", 01414 "CB_SELECTSTRING", 01415 "CB_SETCURSEL", 01416 "CB_SHOWDROPDOWN", 01417 01418 "CB_GETITEMDATA", 01419 "CB_SETITEMDATA", 01420 "CB_GETDROPPEDCONTROLRECT", 01421 "CB_SETITEMHEIGHT", 01422 "CB_GETITEMHEIGHT", 01423 "CB_SETEXTENDEDUI", 01424 "CB_GETEXTENDEDUI", 01425 "CB_GETDROPPEDSTATE", 01426 "CB_FINDSTRINGEXACT", 01427 "CB_SETLOCALE", 01428 "CB_GETLOCALE", 01429 "CB_GETTOPINDEX", 01430 01431 "CB_SETTOPINDEX", 01432 "CB_GETHORIZONTALEXTENT", 01433 "CB_SETHORIZONTALEXTENT", 01434 "CB_GETDROPPEDWIDTH", 01435 01436 "CB_SETDROPPEDWIDTH", 01437 "CB_INITSTORAGE", 01438 "CB_MSGMAX", 01439 "fnEmpty", 01440 "fnEmpty", 01441 "fnEmpty", 01442 "fnEmpty", 01443 "fnEmpty", 01444 01445 "fnEmpty", 01446 "fnEmpty", 01447 "fnEmpty", 01448 "fnEmpty", 01449 "fnEmpty", 01450 "fnEmpty", 01451 "fnEmpty", 01452 "fnEmpty", 01453 01454 "STM_SETICON", 01455 "STM_GETICON", 01456 "STM_SETIMAGE", 01457 "STM_GETIMAGE", 01458 "STM_MSGMAX", 01459 "fnEmpty", 01460 "fnEmpty", 01461 "fnEmpty", 01462 01463 "fnEmpty", 01464 "fnEmpty", 01465 "fnEmpty", 01466 "fnEmpty", 01467 "fnEmpty", 01468 "fnEmpty", 01469 "fnEmpty", 01470 "fnEmpty", 01471 01472 "LB_ADDSTRING", 01473 "LB_INSERTSTRING", 01474 "LB_DELETESTRING", 01475 "fnEmpty", 01476 "LB_RESETCONTENT", 01477 "LB_SETSEL", 01478 "LB_SETCURSEL", 01479 "LB_GETSEL", 01480 "LB_GETCURSEL", 01481 "LB_GETTEXT", 01482 "LB_GETTEXTLEN", 01483 "LB_GETCOUNT", 01484 "LB_SELECTSTRING", 01485 "LB_DIR", 01486 "LB_GETTOPINDEX", 01487 "LB_FINDSTRING", 01488 01489 "LB_GETSELCOUNT", 01490 "LB_GETSELITEMS", 01491 "LB_SETTABSTOPS", 01492 "LB_GETHORIZONTALEXTENT", 01493 "LB_SETHORIZONTALEXTENT", 01494 "LB_SETCOLUMNWIDTH", 01495 "LB_ADDFILE", 01496 "LB_SETTOPINDEX", 01497 "LB_SETITEMRECT", 01498 "LB_GETITEMDATA", 01499 "LB_SETITEMDATA", 01500 "LB_SELITEMRANGE", 01501 "LB_SETANCHORINDEX", 01502 "LB_GETANCHORINDEX", 01503 "LB_SETCARETINDEX", 01504 "LB_GETCARETINDEX", 01505 01506 "LB_SETITEMHEIGHT", 01507 "LB_GETITEMHEIGHT", 01508 "LB_FINDSTRINGEXACT", 01509 "LBCB_CARETON", 01510 "LBCB_CARETOFF", 01511 "LB_SETLOCALE", 01512 "LB_GETLOCALE", 01513 "LB_SETCOUNT", 01514 01515 "LB_INITSTORAGE", 01516 01517 "LB_ITEMFROMPOINT", 01518 "LB_INSERTSTRINGUPPER", 01519 "LB_INSERTSTRINGLOWER", 01520 "LB_ADDSTRINGUPPER", 01521 "LB_ADDSTRINGLOWER", 01522 "LBCB_STARTTRACK", 01523 "LBCB_ENDTRACK", 01524 01525 "LB_MSGMAX", 01526 "fnEmpty", 01527 "fnEmpty", 01528 "fnEmpty", 01529 "fnEmpty", 01530 "fnEmpty", 01531 "fnEmpty", 01532 "fnEmpty", 01533 01534 "fnEmpty", 01535 "fnEmpty", 01536 "fnEmpty", 01537 "fnEmpty", 01538 "fnEmpty", 01539 "fnEmpty", 01540 "fnEmpty", 01541 "fnEmpty", 01542 01543 "fnEmpty", 01544 "fnEmpty", 01545 "fnEmpty", 01546 "fnEmpty", 01547 "fnEmpty", 01548 "fnEmpty", 01549 "fnEmpty", 01550 "fnEmpty", 01551 01552 "fnEmpty", 01553 "fnEmpty", 01554 "fnEmpty", 01555 "fnEmpty", 01556 "fnEmpty", 01557 "fnEmpty", 01558 "fnEmpty", 01559 "fnEmpty", 01560 01561 "fnEmpty", 01562 "fnEmpty", 01563 "fnEmpty", 01564 "fnEmpty", 01565 "fnEmpty", 01566 "fnEmpty", 01567 "fnEmpty", 01568 "fnEmpty", 01569 01570 "fnEmpty", 01571 "fnEmpty", 01572 "fnEmpty", 01573 "fnEmpty", 01574 "fnEmpty", 01575 "fnEmpty", 01576 "fnEmpty", 01577 "fnEmpty", 01578 01579 "MN_SETHMENU", 01580 "MN_GETHMENU", 01581 "MN_SIZEWINDOW", 01582 "MN_OPENHIERARCHY", 01583 "MN_CLOSEHIERARCHY", 01584 "MN_SELECTITEM", 01585 "MN_CANCELMENUS", 01586 "MN_SELECTFIRSTVALIDITEM", 01587 01588 "fnEmpty", 01589 "fnEmpty", 01590 "fnEmpty", 01591 "MN_FINDMENUWINDOWFROMPOINT", 01592 "MN_SHOWPOPUPWINDOW", 01593 "MN_BUTTONDOWN", 01594 "MN_MOUSEMOVE", 01595 "MN_BUTTONUP", 01596 "MN_SETTIMERTOOPENHIERARCHY", 01597 01598 "MN_DBLCLK", 01599 "fnEmpty", 01600 "fnEmpty", 01601 "fnEmpty", 01602 "fnEmpty", 01603 "fnEmpty", 01604 "fnEmpty", 01605 01606 "fnEmpty", 01607 "fnEmpty", 01608 "fnEmpty", 01609 "fnEmpty", 01610 "fnEmpty", 01611 "fnEmpty", 01612 "fnEmpty", 01613 "fnEmpty", 01614 01615 "WM_MOUSEMOVE", 01616 "WM_LBUTTONDOWN", 01617 "WM_LBUTTONUP", 01618 "WM_LBUTTONDBLCLK", 01619 "WM_RBUTTONDOWN", 01620 "WM_RBUTTONUP", 01621 "WM_RBUTTONDBLCLK", 01622 "WM_MBUTTONDOWN", 01623 "WM_MBUTTONUP", 01624 "WM_MBUTTONDBLCLK", 01625 "WM_MOUSEWHEEL", 01626 "WM_XBUTTONDOWN", 01627 "WM_XBUTTONUP", 01628 "WM_XBUTTONDBLCLK", 01629 "fnEmpty", 01630 "fnEmpty", 01631 01632 "WM_PARENTNOTIFY", 01633 "WM_ENTERMENULOOP", 01634 "WM_EXITMENULOOP", 01635 "WM_NEXTMENU", 01636 01637 "WM_SIZING", 01638 "WM_CAPTURECHANGED", 01639 "WM_MOVING", 01640 "fnEmpty", 01641 01642 "fnEmpty", 01643 "fnEmpty", 01644 "fnEmpty", 01645 "fnEmpty", 01646 "fnEmpty", 01647 "fnEmpty", 01648 "fnEmpty", 01649 "fnEmpty", 01650 01651 "WM_MDICREATE", 01652 "WM_MDIDESTROY", 01653 "WM_MDIACTIVATE", 01654 "WM_MDIRESTORE", 01655 "WM_MDINEXT", 01656 "WM_MDIMAXIMIZE", 01657 "WM_MDITILE", 01658 "WM_MDICASCADE", 01659 "WM_MDIICONARRANGE", 01660 "WM_MDIGETACTIVE", 01661 "WM_DROPOBJECT", 01662 "WM_QUERYDROPOBJECT", 01663 "WM_BEGINDRAG", 01664 "WM_DRAGLOOP", 01665 "WM_DRAGSELECT", 01666 "WM_DRAGMOVE", 01667 01668 "WM_MDISETMENU", 01669 "WM_ENTERSIZEMOVE", 01670 "WM_EXITSIZEMOVE", 01671 01672 "WM_DROPFILES", 01673 "WM_MDIREFRESHMENU", 01674 "fnEmpty", 01675 "fnEmpty", 01676 "fnEmpty", 01677 01678 "fnEmpty", 01679 "fnEmpty", 01680 "fnEmpty", 01681 "fnEmpty", 01682 "fnEmpty", 01683 "fnEmpty", 01684 "fnEmpty", 01685 "fnEmpty", 01686 01687 "fnEmpty", 01688 "fnEmpty", 01689 "fnEmpty", 01690 "fnEmpty", 01691 "fnEmpty", 01692 "fnEmpty", 01693 "fnEmpty", 01694 "fnEmpty", 01695 01696 "fnEmpty", 01697 "fnEmpty", 01698 "fnEmpty", 01699 "fnEmpty", 01700 "fnEmpty", 01701 "fnEmpty", 01702 "fnEmpty", 01703 "fnEmpty", 01704 01705 "fnEmpty", 01706 "fnEmpty", 01707 "fnEmpty", 01708 "fnEmpty", 01709 "fnEmpty", 01710 "fnEmpty", 01711 "fnEmpty", 01712 "fnEmpty", 01713 01714 "fnEmpty", 01715 "fnEmpty", 01716 "fnEmpty", 01717 "fnEmpty", 01718 "fnEmpty", 01719 "fnEmpty", 01720 "fnEmpty", 01721 "fnEmpty", 01722 01723 "fnEmpty", 01724 "fnEmpty", 01725 "fnEmpty", 01726 "fnEmpty", 01727 "fnEmpty", 01728 "fnEmpty", 01729 "fnEmpty", 01730 "fnEmpty", 01731 01732 "fnEmpty", 01733 "fnEmpty", 01734 "fnEmpty", 01735 "fnEmpty", 01736 "fnEmpty", 01737 "fnEmpty", 01738 "fnEmpty", 01739 "fnEmpty", 01740 01741 "fnEmpty", 01742 "fnEmpty", 01743 "fnEmpty", 01744 "fnEmpty", 01745 "fnEmpty", 01746 "fnEmpty", 01747 "fnEmpty", 01748 "fnEmpty", 01749 01750 "fnEmpty", 01751 "fnEmpty", 01752 "fnEmpty", 01753 "fnEmpty", 01754 "fnEmpty", 01755 "fnEmpty", 01756 "fnEmpty", 01757 "fnEmpty", 01758 01759 "WM_KANJIFIRST", 01760 "fnReserved", 01761 "fnReserved", 01762 "fnReserved", 01763 "fnReserved", 01764 "fnReserved", 01765 "fnReserved", 01766 "fnReserved", 01767 01768 "fnReserved", 01769 "fnReserved", 01770 "fnReserved", 01771 "fnReserved", 01772 "fnReserved", 01773 "fnReserved", 01774 "fnReserved", 01775 "fnReserved", 01776 01777 "fnReserved", 01778 "fnReserved", 01779 "fnReserved", 01780 "fnReserved", 01781 "fnReserved", 01782 "fnReserved", 01783 "fnReserved", 01784 "fnReserved", 01785 01786 "fnReserved", 01787 "fnReserved", 01788 "fnReserved", 01789 "fnReserved", 01790 "fnReserved", 01791 "fnReserved", 01792 "fnReserved", 01793 "WM_KANJILAST", 01794 01795 "fnEmpty", 01796 "fnEmpty", 01797 "fnEmpty", 01798 "fnEmpty", 01799 "fnEmpty", 01800 "fnEmpty", 01801 "fnEmpty", 01802 "fnEmpty", 01803 01804 "fnEmpty", 01805 "fnEmpty", 01806 "fnEmpty", 01807 "fnEmpty", 01808 "fnEmpty", 01809 "fnEmpty", 01810 "fnEmpty", 01811 "fnEmpty", 01812 01813 "fnEmpty", 01814 "fnEmpty", 01815 "fnEmpty", 01816 "fnEmpty", 01817 "fnEmpty", 01818 "fnEmpty", 01819 "fnEmpty", 01820 "fnEmpty", 01821 01822 "fnEmpty", 01823 "fnEmpty", 01824 "fnEmpty", 01825 "fnEmpty", 01826 "fnEmpty", 01827 "fnEmpty", 01828 "fnEmpty", 01829 "fnEmpty", 01830 01831 "fnEmpty", 01832 "fnEmpty", 01833 "fnEmpty", 01834 "fnEmpty", 01835 "fnEmpty", 01836 "fnEmpty", 01837 "fnEmpty", 01838 "fnEmpty", 01839 01840 "fnEmpty", 01841 "fnEmpty", 01842 "fnEmpty", 01843 "fnEmpty", 01844 "fnEmpty", 01845 "fnEmpty", 01846 "fnEmpty", 01847 "fnEmpty", 01848 01849 "fnEmpty", 01850 "fnEmpty", 01851 "fnEmpty", 01852 "fnEmpty", 01853 "fnEmpty", 01854 "fnEmpty", 01855 "fnEmpty", 01856 "fnEmpty", 01857 01858 "fnEmpty", 01859 "fnEmpty", 01860 "fnEmpty", 01861 "fnEmpty", 01862 "fnEmpty", 01863 "fnEmpty", 01864 "fnEmpty", 01865 "fnEmpty", 01866 01867 "fnEmpty", 01868 "fnEmpty", 01869 "fnEmpty", 01870 "fnEmpty", 01871 "fnEmpty", 01872 "fnEmpty", 01873 "fnEmpty", 01874 "fnEmpty", 01875 01876 "fnEmpty", 01877 "fnEmpty", 01878 "fnEmpty", 01879 "fnEmpty", 01880 "fnEmpty", 01881 "fnEmpty", 01882 "fnEmpty", 01883 "fnEmpty", 01884 01885 "fnEmpty", 01886 "fnEmpty", 01887 "fnEmpty", 01888 "fnEmpty", 01889 "fnEmpty", 01890 "fnEmpty", 01891 "fnEmpty", 01892 "fnEmpty", 01893 01894 "fnEmpty", 01895 "fnEmpty", 01896 "fnEmpty", 01897 "fnEmpty", 01898 "fnEmpty", 01899 "fnEmpty", 01900 "fnEmpty", 01901 "fnEmpty", 01902 01903 "WM_CUT", 01904 "WM_COPY", 01905 "WM_PASTE", 01906 "WM_CLEAR", 01907 "WM_UNDO", 01908 "WM_RENDERFORMAT", 01909 "WM_RENDERALLFORMATS", 01910 "WM_DESTROYCLIPBOARD", 01911 "WM_DRAWCLIPBOARD", 01912 "WM_PAINTCLIPBOARD", 01913 "WM_VSCROLLCLIPBOARD", 01914 "WM_SIZECLIPBOARD", 01915 "WM_ASKCBFORMATNAME", 01916 "WM_CHANGECBCHAIN", 01917 "WM_HSCROLLCLIPBOARD", 01918 "WM_QUERYNEWPALETTE", 01919 01920 "WM_PALETTEISCHANGING", 01921 "WM_PALETTECHANGED", 01922 "WM_HOTKEY", 01923 01924 "fnEmpty", 01925 "fnEmpty", 01926 "fnEmpty", 01927 "fnEmpty", 01928 "WM_PRINT", 01929 01930 "WM_PRINTCLIENT", 01931 "WM_APPCOMMAND", 01932 "fnEmpty", 01933 "fnEmpty", 01934 "fnEmpty", 01935 "fnEmpty", 01936 "fnEmpty", 01937 "fnEmpty", 01938 01939 "fnEmpty", 01940 "fnEmpty", 01941 "fnEmpty", 01942 "fnEmpty", 01943 "fnEmpty", 01944 "fnEmpty", 01945 "fnEmpty", 01946 "fnEmpty", 01947 01948 "fnEmpty", 01949 "fnEmpty", 01950 "fnEmpty", 01951 "fnEmpty", 01952 "fnEmpty", 01953 "fnEmpty", 01954 "fnEmpty", 01955 "fnEmpty", 01956 01957 "fnEmpty", 01958 "fnEmpty", 01959 "fnEmpty", 01960 "fnEmpty", 01961 "fnEmpty", 01962 "fnEmpty", 01963 "fnEmpty", 01964 "fnEmpty", 01965 01966 "fnEmpty", 01967 "fnEmpty", 01968 "fnEmpty", 01969 "fnEmpty", 01970 "fnEmpty", 01971 "fnEmpty", 01972 "fnEmpty", 01973 "fnEmpty", 01974 01975 "fnEmpty", 01976 "fnEmpty", 01977 "fnEmpty", 01978 "fnEmpty", 01979 "fnEmpty", 01980 "fnEmpty", 01981 "fnEmpty", 01982 "fnEmpty", 01983 01984 "fnEmpty", 01985 "fnEmpty", 01986 "fnEmpty", 01987 "fnEmpty", 01988 "fnEmpty", 01989 "fnEmpty", 01990 "fnEmpty", 01991 "fnEmpty", 01992 01993 "fnEmpty", 01994 "fnEmpty", 01995 "fnEmpty", 01996 "fnEmpty", 01997 "fnEmpty", 01998 "fnEmpty", 01999 "fnEmpty", 02000 "fnEmpty", 02001 02002 "fnEmpty", 02003 "fnEmpty", 02004 "fnEmpty", 02005 "fnEmpty", 02006 "fnEmpty", 02007 "fnEmpty", 02008 "fnEmpty", 02009 "fnEmpty", 02010 02011 "fnEmpty", 02012 "fnEmpty", 02013 "fnEmpty", 02014 "fnEmpty", 02015 "fnEmpty", 02016 "fnEmpty", 02017 "fnEmpty", 02018 "fnEmpty", 02019 02020 "fnEmpty", 02021 "fnEmpty", 02022 "fnEmpty", 02023 "fnEmpty", 02024 "fnEmpty", 02025 "fnEmpty", 02026 "fnEmpty", 02027 "fnEmpty", 02028 02029 "fnEmpty", 02030 "fnEmpty", 02031 "fnEmpty", 02032 "fnEmpty", 02033 "fnEmpty", 02034 "fnEmpty", 02035 "fnEmpty", 02036 "fnEmpty", 02037 02038 "fnEmpty", 02039 "fnEmpty", 02040 "fnEmpty", 02041 "fnEmpty", 02042 "fnEmpty", 02043 "fnEmpty", 02044 "fnEmpty", 02045 "fnEmpty", 02046 02047 "fnEmpty", 02048 "fnEmpty", 02049 "fnEmpty", 02050 "fnEmpty", 02051 "fnEmpty", 02052 "fnEmpty", 02053 "fnEmpty", 02054 "fnEmpty", 02055 02056 "fnEmpty", 02057 "fnEmpty", 02058 "fnEmpty", 02059 "fnEmpty", 02060 "fnEmpty", 02061 "fnEmpty", 02062 "fnEmpty", 02063 "fnEmpty", 02064 02065 "fnEmpty", 02066 "fnEmpty", 02067 "fnEmpty", 02068 "fnEmpty", 02069 "fnEmpty", 02070 "fnEmpty", 02071 "fnEmpty", 02072 "fnEmpty", 02073 02074 "fnEmpty", 02075 "fnEmpty", 02076 "fnEmpty", 02077 "fnEmpty", 02078 "fnEmpty", 02079 "fnEmpty", 02080 "fnEmpty", 02081 "fnEmpty", 02082 02083 "WM_MM_RESERVED_FIRST", 02084 "fnReserved", 02085 "fnReserved", 02086 "fnReserved", 02087 "fnReserved", 02088 "fnReserved", 02089 "fnReserved", 02090 "fnReserved", 02091 02092 "fnReserved", 02093 "fnReserved", 02094 "fnReserved", 02095 "fnReserved", 02096 "fnReserved", 02097 "fnReserved", 02098 "fnReserved", 02099 "fnReserved", 02100 02101 "fnReserved", 02102 "fnReserved", 02103 "fnReserved", 02104 "fnReserved", 02105 "fnReserved", 02106 "fnReserved", 02107 "fnReserved", 02108 "fnReserved", 02109 02110 "fnReserved", 02111 "fnReserved", 02112 "fnReserved", 02113 "fnReserved", 02114 "fnReserved", 02115 "fnReserved", 02116 "fnReserved", 02117 "fnReserved", 02118 02119 "fnReserved", 02120 "fnReserved", 02121 "fnReserved", 02122 "fnReserved", 02123 "fnReserved", 02124 "fnReserved", 02125 "fnReserved", 02126 "fnReserved", 02127 02128 "fnReserved", 02129 "fnReserved", 02130 "fnReserved", 02131 "fnReserved", 02132 "fnReserved", 02133 "fnReserved", 02134 "fnReserved", 02135 "fnReserved", 02136 02137 "fnReserved", 02138 "fnReserved", 02139 "fnReserved", 02140 "fnReserved", 02141 "fnReserved", 02142 "fnReserved", 02143 "fnReserved", 02144 "fnReserved", 02145 02146 "fnReserved", 02147 "fnReserved", 02148 "fnReserved", 02149 "fnReserved", 02150 "fnReserved", 02151 "fnReserved", 02152 "fnReserved", 02153 "WM_MM_RESERVED_LAST", 02154 02155 "WM_DDE_INITIATE", 02156 "WM_DDE_TERMINATE", 02157 "WM_DDE_ADVISE", 02158 "WM_DDE_UNADVISE", 02159 "WM_DDE_ACK", 02160 "WM_DDE_DATA", 02161 "WM_DDE_REQUEST", 02162 "WM_DDE_POKE", 02163 "WM_DDE_EXECUTE", 02164 02165 "fnEmpty", 02166 "fnEmpty", 02167 "fnEmpty", 02168 "fnEmpty", 02169 "fnEmpty", 02170 "fnEmpty", 02171 "fnEmpty", 02172 02173 "WM_CBT_RESERVED_FIRST", 02174 "fnReserved", 02175 "fnReserved", 02176 "fnReserved", 02177 "fnReserved", 02178 "fnReserved", 02179 "fnReserved", 02180 "fnReserved", 02181 02182 "fnReserved", 02183 "fnReserved", 02184 "fnReserved", 02185 "fnReserved", 02186 "fnReserved", 02187 "fnReserved", 02188 "fnReserved", 02189 "WM_CBT_RESERVED_LAST", 02190 }; 02191 02192 02193 /* 02194 * This array will keep the TL stuctures alive. Free builds allocate these on the stack and 02195 * they get overwritten on function return. 02196 * The link from the stack TL to the static TL and vice-versa is maintained using TL.ptl 02197 * ptlStack->ptl == ptlStatic and ptlStatic->ptl == ptlStack. So ptl1->ptl->ptl == ptl1. 02198 * When a ptlStatic is freed, it is linked at the head of the gFreeTLlist and the uTLCount 02199 * has TL_FREED_PATTERN added in the HIWORD. When inspecting the static TL's this pattern 02200 * will help identify an unused element 02201 * MCostea 02/22/1999 02202 */ 02203 PTL gpaThreadLocksArrays[MAX_THREAD_LOCKS_ARRAYS]; 02204 PTL gFreeTLList; 02205 int gcThreadLocksArraysAllocated; 02206 02207 #endif // DBG

Generated on Sat May 15 19:40:13 2004 for test by doxygen 1.3.7