Windows Mobile에서 키패드 변경
_GetKeyPadState() - 현재 상태 구하는 넘
_KeyPadChange(int nType) - 키패드 변경 하는 넘...
그냥 바로 코드 나갑니다.
int _GetKeyPadState()
{
CLSID clsidCurrent = { 0, };
CLSID clsidDefault = { 0x8d018493, 0x3945, 0x4c6a, { 0xa3, 0xb1, 0xba, 0xba, 0xee, 0xc5, 0x68, 0xd6 } }; // MS 디폴트
CLSID clsidMoaKey = { 0x4ddfd05a, 0xae44, 0x41aa, { 0x95, 0xe9, 0x78, 0xb9, 0x84, 0x7b, 0x60, 0x37 } }; // 모아키
CLSID clsidCJI = { 0x427bcef5, 0x245b, 0x4f72, { 0x91, 0x43, 0x77, 0x3a, 0x27, 0xda, 0x35, 0x8f } }; // 천지인
CLSID clsidDioPen = { 0x92429690, 0xbe04, 0x21d0, { 0xa4, 0xf8, 0x00, 0xaa, 0x00, 0xa7, 0x49, 0xb9 } }; // 디오펜
if(FALSE == ::SipGetCurrentIM(&clsidCurrent))
return -1;
if(IsEqualCLSID(clsidCurrent, clsidDefault))
return 0;
if(IsEqualCLSID(clsidCurrent, clsidMoaKey))
return 1;
if(IsEqualCLSID(clsidCurrent, clsidCJI))
return 2;
if(IsEqualCLSID(clsidCurrent, clsidDioPen))
return 3;
return -1;
}
BOOL _KeyPadChange(int nType)
{
BOOL bResult = FALSE;
CLSID clsidDefault = { 0x8d018493, 0x3945, 0x4c6a, { 0xa3, 0xb1, 0xba, 0xba, 0xee, 0xc5, 0x68, 0xd6 } }; // MS 디폴트
CLSID clsidMoaKey = { 0x4ddfd05a, 0xae44, 0x41aa, { 0x95, 0xe9, 0x78, 0xb9, 0x84, 0x7b, 0x60, 0x37 } }; // 모아키
CLSID clsidCJI = { 0x427bcef5, 0x245b, 0x4f72, { 0x91, 0x43, 0x77, 0x3a, 0x27, 0xda, 0x35, 0x8f } }; // 천지인
CLSID clsidDioPen = { 0x92429690, 0xbe04, 0x21d0, { 0xa4, 0xf8, 0x00, 0xaa, 0x00, 0xa7, 0x49, 0xb9 } }; // 디오펜
switch(nType)
{
case 0:
bResult = ::SipSetCurrentIM(&clsidDefault);
break;
case 1:
bResult = ::SipSetCurrentIM(&clsidMoaKey);
break;
case 2:
bResult = ::SipSetCurrentIM(&clsidCJI);
break;
case 3:
bResult = ::SipSetCurrentIM(&clsidDioPen);
break;
}
return bResult;
}