Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

157 lines
3.5 KiB

/*++
Copyright (c) 2001, Microsoft Corporation
Module Name:
globals.cpp
Abstract:
This file implements the global data.
Author:
Revision History:
Notes:
--*/
#include "private.h"
#include "globals.h"
#include "tls.h"
#include "ime.h"
HINSTANCE g_hInst;
const WCHAR s_szUIClassName[16] = L"MSCTFIME UI";
const WCHAR s_szCompClassName[] = L"MSCTFIME Composition";
DWORD TLS::dwTLSIndex = TLS_OUT_OF_INDEXES;
/* a94c5fd2-c471-4031-9546-709c17300cb9 */
extern const GUID GUID_COMPARTMENT_CTFIME_DIMFLAGS = {
0xa94c5fd2,
0xc471,
0x4031,
{0x95, 0x46, 0x70, 0x9c, 0x17, 0x30, 0x0c, 0xb9}
};
// {85A688F7-6DC8-4f17-A83A-B11C09CDD7BF}
extern const GUID GUID_COMPARTMENT_CTFIME_CICINPUTCONTEXT = {
0x85a688f7,
0x6dc8,
0x4f17,
{ 0xa8, 0x3a, 0xb1, 0x1c, 0x9, 0xcd, 0xd7, 0xbf }
};
CCicCriticalSectionStatic g_cs;
DECLARE_OSVER()
/////////////////////////////////////////////////////////////////////////////
// WM_MSIME_xxxx
UINT WM_MSIME_SERVICE;
UINT WM_MSIME_UIREADY;
UINT WM_MSIME_RECONVERTREQUEST;
UINT WM_MSIME_RECONVERT;
UINT WM_MSIME_DOCUMENTFEED;
UINT WM_MSIME_QUERYPOSITION;
UINT WM_MSIME_MODEBIAS;
UINT WM_MSIME_SHOWIMEPAD;
UINT WM_MSIME_MOUSE;
UINT WM_MSIME_KEYMAP;
/* friend */
BOOL IsMsImeMessage(UINT uMsg)
{
if (uMsg == WM_MSIME_SERVICE ||
uMsg == WM_MSIME_UIREADY ||
uMsg == WM_MSIME_RECONVERTREQUEST ||
uMsg == WM_MSIME_RECONVERT ||
uMsg == WM_MSIME_DOCUMENTFEED ||
uMsg == WM_MSIME_QUERYPOSITION ||
uMsg == WM_MSIME_MODEBIAS ||
uMsg == WM_MSIME_SHOWIMEPAD ||
uMsg == WM_MSIME_MOUSE ||
uMsg == WM_MSIME_KEYMAP)
return TRUE;
else
return FALSE;
}
/////////////////////////////////////////////////////////////////////////////
DWORD g_dwThreadDllMain = 0;
/////////////////////////////////////////////////////////////////////////////
DWORD g_bWinLogon = FALSE;
/////////////////////////////////////////////////////////////////////////////
HIMC GetActiveContext()
{
HWND hWnd = GetFocus();
if (hWnd == NULL)
hWnd = GetActiveWindow();
return ImmGetContext(hWnd);
}
BOOL IsVKDBEKey(UINT uVKey)
{
switch (uVKey)
{
case VK_DBE_ALPHANUMERIC:
case VK_DBE_KATAKANA:
case VK_DBE_HIRAGANA:
case VK_DBE_SBCSCHAR:
case VK_DBE_DBCSCHAR:
case VK_DBE_ROMAN:
case VK_DBE_NOROMAN:
case VK_DBE_CODEINPUT:
case VK_DBE_NOCODEINPUT:
case VK_DBE_ENTERWORDREGISTERMODE:
case VK_DBE_ENTERIMECONFIGMODE:
case VK_DBE_ENTERDLGCONVERSIONMODE:
case VK_DBE_DETERMINESTRING:
case VK_DBE_FLUSHSTRING:
case VK_CONVERT:
case VK_KANJI:
return TRUE;
}
return FALSE;
}
/////////////////////////////////////////////////////////////////////////////
typedef BYTE (*PFNRTLDLLSHUTDOWNINPROGRESS)(void);
BOOL DllShutDownInProgress()
{
BOOL fRet = FALSE;
static PFNRTLDLLSHUTDOWNINPROGRESS pfn = NULL;
if (!pfn)
{
HINSTANCE hInst;
hInst = GetSystemModuleHandle("ntdll.dll");
if (hInst)
{
pfn = (PFNRTLDLLSHUTDOWNINPROGRESS)GetProcAddress(hInst,
"RtlDllShutdownInProgress");
}
}
if (pfn)
fRet = pfn() ? TRUE : FALSE;
return fRet;
}