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.
|
|
// AttrLoc.cpp : Implementation of CMLStrAttrLocale
#include "private.h"
#ifdef NEWMLSTR
#include "attrloc.h"
/////////////////////////////////////////////////////////////////////////////
// CMLStrAttrLocale
CMLStrAttrLocale::CMLStrAttrLocale() : m_lLen(0), m_lcid(0) { }
STDMETHODIMP CMLStrAttrLocale::SetClient(IUnknown* pUnk) { return E_NOTIMPL; // CMLStrAttrLocale::SetClient()
}
STDMETHODIMP CMLStrAttrLocale::GetClient(IUnknown** ppUnk) { return E_NOTIMPL; // CMLStrAttrLocale::GetClient()
}
STDMETHODIMP CMLStrAttrLocale::QueryAttr(REFIID riid, LPARAM lParam, IUnknown** ppUnk, long* lConf) { return E_NOTIMPL; // CMLStrAttrLocale::QueryAttr()
}
STDMETHODIMP CMLStrAttrLocale::GetAttrInterface(IID* pIID, LPARAM* plParam) { return E_NOTIMPL; // CMLStrAttrLocale::GetAttrInterface()
}
STDMETHODIMP CMLStrAttrLocale::SetMLStr(long lDestPos, long lDestLen, IUnknown* pSrcMLStr, long lSrcPos, long lSrcLen) { if (pSrcMLStr) { return E_NOTIMPL; // CMLStrAttrLocale::SetMLStr()
} else { HRESULT hr = ::RegularizePosLen(m_lLen, &lDestPos, &lDestLen);
m_lLen -= lDestLen; m_lLen += lSrcLen; // Insert default
return S_OK; } }
STDMETHODIMP CMLStrAttrLocale::SetLong(long lDestPos, long lDestLen, long lValue) { ASSERT_THIS;
HRESULT hr = ::RegularizePosLen(m_lLen, &lDestPos, &lDestLen);
if (SUCCEEDED(hr) && lDestPos == 0) m_lcid = (LCID)lValue; // In this version, saves only first locale.
return hr; }
STDMETHODIMP CMLStrAttrLocale::GetLong(long lSrcPos, long lSrcLen, long* plValue, long* plActualPos, long* plActualLen) { ASSERT_THIS; ASSERT_WRITE_PTR_OR_NULL(plValue); ASSERT_WRITE_PTR_OR_NULL(plActualPos); ASSERT_WRITE_PTR_OR_NULL(plActualLen);
HRESULT hr = ::RegularizePosLen(m_lLen, &lSrcPos, &lSrcLen);
if (SUCCEEDED(hr)) { if (plValue) *plValue = (long)m_lcid; if (plActualPos) *plActualPos = lSrcPos; if (plActualLen) *plActualLen = lSrcLen; } else { if (plValue) *plValue = 0; if (plActualPos) *plActualPos = 0; if (plActualLen) *plActualLen = 0; }
return hr; }
#endif // NEWMLSTR
|