SIP 설정하기
BOOL SetSIPControl(HWND wndWindow, BOOL bConversion, BOOL bShow)
{
HIMC imcSip = 0;
imcSip = ::ImmGetContext(wndWindow);
if(TRUE == bConversion)
::ImmSetConversionStatus(imcSip, IME_CMODE_NATIVE, NULL);
else
::ImmSetConversionStatus(imcSip, IME_CMODE_ALPHANUMERIC, NULL);
::ImmReleaseContext(wndWindow, imcSip);
if(TRUE == bShow)
::SipShowIM(SIPF_ON);
else
::SipShowIM(SIPF_OFF);
return TRUE;
}
BOOL GetSIPState(HWND wndWindow)
{
HIMC imcSip = 0;
DWORD dwSentence = 0;
DWORD dwConversion = 0;
imcSip = ::ImmGetContext(wndWindow);
::ImmGetConversionStatus(imcSip, &dwConversion, &dwSentence);
::ImmReleaseContext(wndWindow, imcSip);
if( dwConversion & IME_CMODE_NATIVE )
return TRUE; // 한글
return FALSE; // 영문
}
정확히 말하자면 IME_CMODE_NATIVE 가 한글은 아닙니다. 말그대로 NATIVE죠.^^ 한글 OS에선 한글 자판이라는 의미 겠죠? Define 된 곳을 가보면 아래와 같습니다.
// bit field for conversion mode
#define IME_CMODE_ALPHANUMERIC 0x0000
#define IME_CMODE_NATIVE 0x0001
#define IME_CMODE_CHINESE IME_CMODE_NATIVE
// IME_CMODE_HANGEUL is old name of IME_CMODE_HANGUL. It will be gone eventually.
#define IME_CMODE_HANGEUL IME_CMODE_NATIVE
#define IME_CMODE_HANGUL IME_CMODE_NATIVE
#define IME_CMODE_JAPANESE IME_CMODE_NATIVE