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.
78 lines
2.3 KiB
78 lines
2.3 KiB
/****************************************************************************
|
|
funcprv.cpp : CFunctionProvider class implementation
|
|
|
|
History:
|
|
15-NOV-1999 CSLim Created
|
|
****************************************************************************/
|
|
|
|
#include "private.h"
|
|
#include "globals.h"
|
|
#include "common.h"
|
|
#include "korimx.h"
|
|
#include "funcprv.h"
|
|
#include "fnrecon.h"
|
|
#include "fnconfig.h"
|
|
#include "helpers.h"
|
|
#include "immxutil.h"
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CFunctionProvider
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CFunctionProvider::CFunctionProvider
|
|
|
|
Ctor
|
|
---------------------------------------------------------------------------*/
|
|
CFunctionProvider::CFunctionProvider(CKorIMX *pime) : CFunctionProviderBase(pime->GetTID())
|
|
{
|
|
Init(CLSID_KorIMX, L"Kor TFX");
|
|
_pime = pime;
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CFunctionProvider::GetFunction
|
|
|
|
Get Fuction object
|
|
---------------------------------------------------------------------------*/
|
|
STDAPI CFunctionProvider::GetFunction(REFGUID rguid, REFIID riid, IUnknown **ppunk)
|
|
{
|
|
*ppunk = NULL;
|
|
|
|
if (!IsEqualIID(rguid, GUID_NULL))
|
|
return E_NOINTERFACE;
|
|
|
|
if (IsEqualIID(riid, IID_ITfFnReconversion))
|
|
{
|
|
// ITfFnReconversion is used for correction. Through this function, the
|
|
// applications can get the simple alternative lists or ask the function to show
|
|
// the alternative list UI.
|
|
*ppunk = new CFnReconversion(_pime, this);
|
|
}
|
|
else if (IsEqualIID(riid, IID_ITfFnConfigure))
|
|
{
|
|
CFnConfigure *pconfig = new CFnConfigure(this);
|
|
*ppunk = SAFECAST(pconfig, ITfFnConfigure *);
|
|
}
|
|
else if (IsEqualIID(riid, IID_ITfFnConfigureRegisterWord))
|
|
{
|
|
CFnConfigure *pconfig = new CFnConfigure(this);
|
|
*ppunk = SAFECAST(pconfig, ITfFnConfigureRegisterWord *);
|
|
}
|
|
else if (IsEqualIID(riid, IID_ITfFnShowHelp))
|
|
{
|
|
CFnShowHelp *phelp = new CFnShowHelp(this);
|
|
*ppunk = SAFECAST(phelp, ITfFnShowHelp *);
|
|
}
|
|
|
|
if (*ppunk)
|
|
return S_OK;
|
|
|
|
return E_NOINTERFACE;
|
|
}
|
|
|
|
|