2025-04-27 07:49:33 -04:00

52 lines
1.0 KiB
C++

//+---------------------------------------------------------------------------
//
// File: guidmap.cpp
//
// Contents: IActiveIMMAppEx::GetGuidAtom routines
//
//----------------------------------------------------------------------------
#include "private.h"
#include "context.h"
#include "globals.h"
#include "cdimm.h"
//
// IActiveIMMAppEx::GetGuidAtom method
//
STDMETHODIMP CActiveIMM::GetGuidAtom(HIMC hIMC, BYTE bAttr, TfGuidAtom* pGuidAtom)
{
if (pGuidAtom == NULL) {
return E_INVALIDARG;
}
*pGuidAtom = TF_INVALID_GUIDATOM;
HRESULT hr;
CActiveIMM *pActiveIMM;
if (pActiveIMM = GetTLS())
{
if (pActiveIMM->_IsRealIme(NULL))
return E_FAIL;
}
else
return E_UNEXPECTED;
DIMM_IMCLock imc(hIMC);
if (FAILED(hr=imc.GetResult())) {
return hr;
}
if (imc->m_pContext != NULL) {
return imc->m_pContext->GetGuidAtom(hIMC, bAttr, pGuidAtom);
}
return E_UNEXPECTED;
}