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.
 
 
 
 
 
 

80 lines
1.9 KiB

//
// LM Lattice Object class definition
//
#ifndef LMLATTIC_H
#define LMLATTIC_H
//
// CLMLattice
//
//
class CLMLattice : public ITfLMLattice
{
public:
// ctor / dtor
CLMLattice(CSapiIMX *p_tip, IUnknown *pResWrap);
~CLMLattice();
// IUnknown
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// ITfLMLattice
STDMETHODIMP QueryType(REFGUID refguidType, BOOL *pfSupported);
STDMETHODIMP EnumLatticeElements( DWORD dwFrameStart,
REFGUID refguidType,
IEnumTfLatticeElements **ppEnum);
private:
CComPtr<IUnknown> m_cpResWrap;
ULONG m_ulStartSRElement;
ULONG m_ulNumSRElements;
CSapiIMX *m_pTip;
LONG m_cRef;
};
//
// CEnumLatticeElements
//
class CEnumLatticeElements : public IEnumTfLatticeElements,
public CStructArray<TF_LMLATTELEMENT>
{
public:
// ctor / dtor
CEnumLatticeElements(DWORD dwFrameStart);
~CEnumLatticeElements();
// IUnknown
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// ITfEnumLatticeElements
STDMETHODIMP Clone(IEnumTfLatticeElements **ppEnum);
STDMETHODIMP Next(ULONG ulCount, TF_LMLATTELEMENT *rgsElements, ULONG *pcFetched);
STDMETHODIMP Reset();
STDMETHODIMP Skip(ULONG ulCount);
// internal APIs
HRESULT _InitFromPhrase
(
SPPHRASE *pPhrase, // pointer to a phrase object
ULONG ulStartElem, // start/num elements used in this phrase
ULONG ulNumElem // for this lattice
);
ULONG _Find(DWORD dwFrame, ULONG *pul);
private:
DWORD m_dwFrameStart;
ULONG m_ulCur;
ULONG m_ulTotal;
LONG m_cRef;
};
#endif // LMLATTIC_H