공장 이야기

Windows Mobile에서 키패드 변경

바다가소주라면- 2010. 4. 19. 14:29

_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;
}