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.
89 lines
2.3 KiB
89 lines
2.3 KiB
#include <stdafx.h>
|
|
#include "langchange.h"
|
|
#include <initguid.h>
|
|
|
|
//
|
|
// Standard IUnknown implementation
|
|
//
|
|
ULONG CLangChange::AddRef()
|
|
{
|
|
return InterlockedIncrement(&m_lRef);
|
|
}
|
|
|
|
//
|
|
// Standard IUnknown implementation
|
|
//
|
|
ULONG CLangChange::Release()
|
|
{
|
|
if (InterlockedDecrement(&m_lRef) == 0)
|
|
{
|
|
delete this;
|
|
return 0;
|
|
}
|
|
return m_lRef;
|
|
}
|
|
|
|
//
|
|
// Standard IUnknown implementation
|
|
//
|
|
STDMETHODIMP CLangChange::QueryInterface(REFIID riid, LPVOID *ppv)
|
|
{
|
|
*ppv = NULL;
|
|
|
|
SATraceFunction("CLangChange::QueryInterface");
|
|
if (IID_IUnknown==riid)
|
|
{
|
|
*ppv = (void *)(IUnknown *) this;
|
|
AddRef();
|
|
return S_OK;
|
|
}
|
|
else
|
|
{
|
|
if (IID_ISALangChange==riid)
|
|
{
|
|
*ppv = (void *)(ISALangChange *) this;
|
|
AddRef();
|
|
return S_OK;
|
|
}
|
|
}
|
|
return E_NOINTERFACE;
|
|
}
|
|
|
|
//++----------------------------------------------------------------------------
|
|
//
|
|
// Function: InformChange
|
|
//
|
|
// Synopsis: This is the method called by Loc Mgr when the language
|
|
// on the SA changes. This method informs the worker
|
|
// thread of the adapter to refresh its strings.
|
|
//
|
|
// Arguments: bstrLangDisplayName - language display name (Eg.- English)
|
|
// bstrLangISOName - Language ISO name (Eg. - en)
|
|
// ulLangID - Language ID (Eg.- US English is 0409)
|
|
//
|
|
// Returns: HRESULT - success/failure
|
|
//
|
|
// History: BalajiB Created 05/24/2000
|
|
//
|
|
// Called By; Localization Manager
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
STDMETHODIMP CLangChange::InformChange(
|
|
/*[in]*/ BSTR bstrLangDisplayName,
|
|
/*[in]*/ BSTR bstrLangISOName,
|
|
/*[in]*/ unsigned long ulLangID
|
|
)
|
|
{
|
|
BOOL fStat = FALSE;
|
|
|
|
SATracePrintf("LangName(%ws), ISOName(%ws), ID(%ld)",
|
|
bstrLangDisplayName,
|
|
bstrLangISOName,
|
|
ulLangID);
|
|
if (m_hWnd)
|
|
{
|
|
PostMessage(m_hWnd,wm_SaLocMessage,(WPARAM)0,(LPARAM)0);
|
|
}
|
|
|
|
return S_OK;
|
|
}
|