71 lines
1.9 KiB
C++
71 lines
1.9 KiB
C++
|
/****************************************************************************
|
||
|
PAD.CPP
|
||
|
|
||
|
Owner: cslim
|
||
|
Copyright (c) 1997-1999 Microsoft Corporation
|
||
|
|
||
|
IME PAD wrapper functions
|
||
|
|
||
|
History:
|
||
|
10-APR-1999 cslim Created
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#include "precomp.h"
|
||
|
#include "cpadsvr.h"
|
||
|
#include "pad.h"
|
||
|
#include "cimecb.h"
|
||
|
|
||
|
|
||
|
BOOL BootPad(HWND hUIWnd, UINT uiType, LPARAM lParam)
|
||
|
{
|
||
|
LPCImePadSvr lpCImePadSvr;
|
||
|
HIMC hIMC;
|
||
|
IImeIPoint1* pIP;
|
||
|
INT iRet;
|
||
|
BOOL fVisible;
|
||
|
BOOL fRet = fFalse;
|
||
|
|
||
|
Dbg(DBGID_IMEPAD, TEXT("BootPad() : hUIWnd = 0x%04X, uiType = 0x%04X, lParam = 0x%08lX"), hUIWnd, uiType, lParam);
|
||
|
|
||
|
lpCImePadSvr = CImePadSvr::LoadCImePadSvr(CIMEPADSVR_SHAREDMEM);
|
||
|
|
||
|
if(lpCImePadSvr)
|
||
|
{
|
||
|
// Check if already visible state. Toggle IME Pad
|
||
|
lpCImePadSvr->IsVisible(&fVisible);
|
||
|
if (fVisible)
|
||
|
{
|
||
|
lpCImePadSvr->ShowUI(fFalse);
|
||
|
// CImePadSvr::DestroyCImePadSvr();
|
||
|
return fTrue;
|
||
|
}
|
||
|
|
||
|
iRet = lpCImePadSvr->Initialize(MAKELANGID(LANG_KOREAN, SUBLANG_DEFAULT), 0, NULL);
|
||
|
DbgAssert(iRet == 0);
|
||
|
if (iRet ==0) // Succeeded
|
||
|
{
|
||
|
hIMC = GethImcFromHwnd(hUIWnd);
|
||
|
pIP = GetImeIPoint(hIMC);
|
||
|
|
||
|
if (pIP)
|
||
|
{
|
||
|
lpCImePadSvr->SetIUnkIImeIPoint((IUnknown *)pIP);
|
||
|
lpCImePadSvr->SetIUnkIImeCallback((IUnknown *)CImeCallback::Fetch());
|
||
|
lpCImePadSvr->ShowUI(fTrue);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
DbgAssert(0);
|
||
|
return fFalse;
|
||
|
}
|
||
|
|
||
|
fRet = fTrue;
|
||
|
}
|
||
|
else
|
||
|
CImePadSvr::DestroyCImePadSvr();
|
||
|
}
|
||
|
|
||
|
return fRet;
|
||
|
}
|
||
|
|