ABOUT ME

Today
Yesterday
Total
  • 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;
    }

    '공장 이야기' 카테고리의 다른 글

    Windows Mobile에서 Mouse Hook...  (0) 2010.08.13
    Process Kill  (0) 2010.04.22
    SIP 제어...  (0) 2010.01.22
    Stack fault 와 Stack overflow  (0) 2009.12.15
    아 지롤 같은 Data Abort...  (0) 2009.11.23
Designed by Tistory.