home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / header45.zip / os2ime.h < prev    next >
C/C++ Source or Header  |  1999-04-30  |  27KB  |  799 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: OS2IME.H
  4. *
  5. * OS/2 Input Method Definitions file for IME Developer
  6. *
  7. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  8. *
  9. * ===========================================================================
  10. *
  11. * The folowing symbols are used in this file for conditional sections.
  12. *
  13. *   #define:                To include:
  14. *
  15. *   INCL_OS2IME             input method
  16. *
  17. * ===========================================================================
  18. *
  19. * Comments at the end of each typedef line give the name tags used in
  20. * the assembler include version of this file.
  21. *
  22. * The assembler include version of this file excludes lines between NOINC
  23. * and INC comments.
  24. *
  25. \***************************************************************************/
  26.  
  27. /* NOINC */
  28. #if __IBMC__ || __IBMCPP__
  29.    #pragma info( none )
  30.       #ifndef __CHKHDR__
  31.          #pragma info( none )
  32.       #endif
  33.    #pragma info( restore )
  34. #endif
  35. /* INC */
  36.  
  37. #ifdef __cplusplus
  38.       extern "C" {
  39. #endif
  40.  
  41. #ifndef __OS2IME__
  42. /* NOINC */
  43. #define __OS2IME__
  44. /* INC */
  45.  
  46. #define OS2IME_INCLUDED
  47.  
  48.  
  49.  
  50. /*----------------------------------------------------------------------
  51.  *
  52.  *  Handle related Definition
  53.  *
  54.  *----------------------------------------------------------------------*/
  55.  
  56. typedef LHANDLE     HIMIP;
  57. typedef HIMIP     * PHIMIP;
  58.  
  59.  
  60.  
  61.  
  62. /*----------------------------------------------------------------------
  63.  *
  64.  *  Input Method Instance Definition
  65.  *
  66.  *----------------------------------------------------------------------*/
  67.  
  68.     #pragma pack(1) /* force structure alignment packing */
  69.  
  70. typedef struct _IMINSTANCE  {   /* iminst */
  71.  
  72.     /* Size of this structure */
  73.     ULONG           ulSize;
  74.  
  75.     /* Information related to the client application */
  76.     ULONG           ulSessionType;
  77.     HWND            hwnd;
  78.     ULONG           ulSessionID;
  79.     ULONG           ulClientInfo;
  80.     ULONG           ulCodepage;
  81.  
  82.     /* Status part */
  83.     HIMIP           himipStatus;
  84.     ULONG           ulInputMode;
  85.     ULONG           ulConversionMode;
  86.     POINTL          ptlStatusPos;
  87.     SIZEL           slStatusSize;
  88.  
  89.     /* Conversion part */
  90.     HIMIP           himipConversion;
  91.     FATTRS          faConversionWindow;
  92.     GRADIENTL       gradlConversionWindow;  /* include os2.h with INCL_GPIPRIMITIVES */
  93.                                             /* to validate GRADIENTL definition */
  94.     SIZEF           sfCharBox;
  95.     CONVERSIONPOS   cpConversionPos;
  96.  
  97.     /* Result part */
  98.     HIMIP           himipResult;
  99.  
  100.     /* Candidate part */
  101.     HIMIP           himipCandidate;
  102.     CANDIDATEPOS    cpCandidatePos;
  103.  
  104.     /* Information message part */
  105.     HIMIP           himipInfoMsg;
  106.  
  107.     /* Register word part */
  108.     HIMIP           himipRegWord;
  109.  
  110.     /* Private part */
  111.     HIMIP           himipPrivate;
  112.  
  113. } IMINSTANCE;
  114. typedef IMINSTANCE * PIMINSTANCE;
  115.  
  116.     #pragma pack()  /* restore packing to default */
  117.  
  118.  
  119. /*----- bit definition of ulClientInfo -----*/
  120.  
  121. #define     IMI_CI_PMCALLABLE           0x00000001
  122.  
  123.  
  124.  
  125.  
  126. /*----------------------------------------------------------------------
  127.  *
  128.  *  Status Part Definition
  129.  *
  130.  *----------------------------------------------------------------------*/
  131.  
  132. typedef struct _STATUSSTRINGHEADER {    /* imstatus */
  133.  
  134.     ULONG   ulSize;
  135.  
  136.     ULONG   ulStringLen;
  137.     ULONG   ulStringOffset;
  138.     ULONG   ulStringAttrOffset;
  139.  
  140.     ULONG   ulCursorPos;
  141.     ULONG   ulCursorAttr;
  142.  
  143. } STATUSSTRINGHEADER;
  144. typedef STATUSSTRINGHEADER * PSTATUSSTRINGHEADER;
  145.  
  146. /* StringAttr definition */
  147.  
  148. #define     SP_STRING_REVERSED          0x01
  149. #define     SP_STRING_UNDERSCORE        0x02
  150. #define     SP_STRING_BACKCOLOR         0x04
  151. #define     SP_STRING_FORECOLOR         0x08
  152. #define     SP_STRING_SEPARATOR         0x10
  153.  
  154. /* CursorAttr definition */
  155.  
  156. #define     SP_CSR_INSERT               0x00000001
  157. #define     SP_CSR_INVISIBLE            0x00000002
  158.  
  159.  
  160.  
  161. /*----------------------------------------------------------------------
  162.  *
  163.  *  Conversion Part Definition
  164.  *
  165.  *----------------------------------------------------------------------*/
  166.  
  167. typedef struct _CONVERSIONSTRINGHEADER {    /*imconv */
  168.  
  169.     ULONG   ulSize;
  170.  
  171.     ULONG   ulReadingAttrLen;
  172.     ULONG   ulReadingAttrOffset;
  173.     ULONG   ulReadingClauseLen;
  174.     ULONG   ulReadingClauseOffset;
  175.     ULONG   ulReadingStringLen;
  176.     ULONG   ulReadingStringOffset;
  177.  
  178.     ULONG   ulConversionAttrLen;
  179.     ULONG   ulConversionAttrOffset;
  180.     ULONG   ulConversionClauseLen;
  181.     ULONG   ulConversionClauseOffset;
  182.     ULONG   ulConversionStringLen;
  183.     ULONG   ulConversionStringOffset;
  184.  
  185.     ULONG   ulCursorPos;
  186.     ULONG   ulCursorAttr;
  187.  
  188.     ULONG   ulChangeStart;
  189.  
  190. } CONVERSIONSTRINGHEADER;
  191. typedef CONVERSIONSTRINGHEADER * PCONVERSIONSTRINGHEADER;
  192.  
  193.  
  194.  
  195. /*----------------------------------------------------------------------
  196.  *
  197.  *  Result Part Definition
  198.  *
  199.  *----------------------------------------------------------------------*/
  200.  
  201. typedef struct _RESULTSTRINGHEADER  {   /* imreslt */
  202.  
  203.     ULONG   ulSize;
  204.  
  205.     ULONG   ulReadingAttrLen;
  206.     ULONG   ulReadingAttrOffset;
  207.     ULONG   ulReadingClauseLen;
  208.     ULONG   ulReadingClauseOffset;
  209.     ULONG   ulReadingStringLen;
  210.     ULONG   ulReadingStringOffset;
  211.  
  212.     ULONG   ulResultAttrLen;
  213.     ULONG   ulResultAttrOffset;
  214.     ULONG   ulResultClauseLen;
  215.     ULONG   ulResultClauseOffset;
  216.     ULONG   ulResultStringLen;
  217.     ULONG   ulResultStringOffset;
  218.  
  219. } RESULTSTRINGHEADER;
  220. typedef RESULTSTRINGHEADER * PRESULTSTRINGHEADER;
  221.  
  222.  
  223.  
  224. /*----------------------------------------------------------------------
  225.  *
  226.  *  Candidate Part Definition
  227.  *
  228.  *----------------------------------------------------------------------*/
  229.  
  230. typedef struct _CANDIDATEINFOHEADER {   /* imcandinfo */
  231.  
  232.     ULONG   ulSize;
  233.     ULONG   ulCount;
  234.     ULONG   ulListOffset[32];
  235.     ULONG   ulPrivateSize;
  236.     ULONG   ulPrivateOffset;
  237.  
  238. } CANDIDATEINFOHEADER;
  239. typedef CANDIDATEINFOHEADER * PCANDIDATEINFOHEADER;
  240.  
  241.  
  242.  
  243.  
  244. /*----------------------------------------------------------------------
  245.  *
  246.  *  Information Message Part Definition
  247.  *
  248.  *----------------------------------------------------------------------*/
  249.  
  250. typedef struct _INFOMSGHEADER {     /* iminfomsg */
  251.  
  252.     ULONG   ulSize;
  253.     ULONG   ulErrorLevel;
  254.     ULONG   ulTypeID;
  255.     ULONG   ulTitleLen;
  256.     ULONG   ulTitleOffset;
  257.     ULONG   ulStringLen;
  258.     ULONG   ulStringOffset;
  259.     ULONG   ulPrivateLen;
  260.     ULONG   ulPrivateOffset;
  261.  
  262. } INFOMSGHEADER;
  263. typedef INFOMSGHEADER * PINFOMSGHEADER;
  264.  
  265.  
  266.  
  267.  
  268. /*----------------------------------------------------------------------
  269.  *
  270.  *  pre-defined Part Window Class Definition
  271.  *
  272.  *----------------------------------------------------------------------*/
  273.  
  274. #define WC_IME_IME          "WC_IME_IME"   // till actual number is assigned
  275. #define WC_IME_STATUS       "WC_IME_STATUS"   // till actual number is assigned
  276. #define WC_IME_CONVERSION   "WC_IME_CONVERSION"   // till actual number is assigned
  277. #define WC_IME_CANDIDATE    "WC_IME_CANDIDATE"   // till actual number is assigned
  278. #define WC_IME_INFOMSG      "WC_IME_INFOMSG"   // till actual number is assigned
  279. #define WC_IME_REGWORD      "WC_IME_REGWORD"   // till actual number is assigned
  280.  
  281.  
  282.  
  283. /*----------------------------------------------------------------------
  284.  *
  285.  *  pre-defined Conversion Part Window Class Related Definition
  286.  *
  287.  *----------------------------------------------------------------------*/
  288.  
  289. typedef struct _CONVCLR { /* convclr */
  290.     ULONG ulAttr;
  291.     COLOR cFore;
  292.     COLOR cBack;
  293. } CONVCLR;
  294. typedef CONVCLR * PCONVCLR;
  295.  
  296. typedef struct _CONVERSIONDATA { /* conversiondata */
  297.     USHORT  usSize;
  298.     ULONG   ulCount;
  299.     CONVCLR aConvClr[1];
  300. } CONVERSIONDATA;
  301. typedef CONVERSIONDATA * PCONVERSIONDATA;
  302.  
  303.  
  304.  
  305. /*----------------------------------------------------------------------
  306.  *
  307.  *  pre-defined Candidate Part Window Class Related Definition
  308.  *
  309.  *----------------------------------------------------------------------*/
  310.  
  311. typedef VOID ( * EXPENTRY PFNMOUNOTIFY )( HIMI himi,
  312.                                           ULONG ulMsg,
  313.                                           ULONG ulCandIndex );
  314.  
  315. #define CI_PREVPAGE                 0xfffffffe
  316. #define CI_NEXTPAGE                 0xffffffff
  317.  
  318.  
  319. typedef struct _CANDCTLDATA { /* candctldata */
  320.     USHORT  usSize;
  321.     ULONG   ulCtlFlag;
  322.     PFNMOUNOTIFY pfnMouseNotify;
  323. } CANDCTLDATA;
  324. typedef CANDCTLDATA * PCANDCTLDATA;
  325.  
  326. #define CCD_MOUSENOTIFYENTRY        0x00000001
  327.  
  328.  
  329.  
  330.  
  331. /*----------------------------------------------------------------------
  332.  *
  333.  *  WinQueryWindowULong indices for Input Method Editor Window
  334.  *
  335.  *----------------------------------------------------------------------*/
  336.  
  337. #define QWL_IMEW_HIMI               0
  338. #define QWL_IMEW_PRIVATE            4
  339. #define QWL_IMEW_HWNDSTATUS         8
  340. #define QWL_IMEW_HWNDCONVERSION     12
  341. #define QWL_IMEW_HWNDCANDIDATE      16
  342. #define QWL_IMEW_HWNDINFOMSG        20
  343. #define QWL_IMEW_HWNDREGWORD        24
  344.  
  345.  
  346.  
  347.  
  348. /*----------------------------------------------------------------------
  349.  *
  350.  *  WInDefImeWindowProc
  351.  *
  352.  *----------------------------------------------------------------------*/
  353.  
  354. MRESULT APIENTRY WinDefImeWindowProc( HWND hwnd,
  355.                                       ULONG msg,
  356.                                       MPARAM mp1,
  357.                                       MPARAM mp2 );
  358.  
  359.  
  360.  
  361. /*----------------------------------------------------------------------
  362.  *
  363.  *  WInDefImePartProc
  364.  *
  365.  *----------------------------------------------------------------------*/
  366.  
  367. MRESULT APIENTRY WinDefImePartProc( HWND hwnd,
  368.                                     ULONG msg,
  369.                                     MPARAM mp1,
  370.                                     MPARAM mp2 );
  371.  
  372.  
  373.  
  374. /*----------------------------------------------------------------------
  375.  *
  376.  *  IME Exported Entries
  377.  *
  378.  *----------------------------------------------------------------------*/
  379.  
  380.     #pragma pack(1) /* force structure alignment packing */
  381.  
  382. typedef struct _IMEINIT {   /* imeinit */
  383.  
  384.     ULONG   ulIMVersion;
  385.     ULONG   ulIMEVersion;
  386.     ULONG   ulIMECaps;
  387.     ULONG   ulConversionCaps;
  388.     ULONG   ulInputCaps;
  389.     CHAR    chClassName[256];
  390.     CHAR    chWndProcName[256];
  391.     UCHAR   chSoftKbdStr[95];                   //T400
  392.     UCHAR   chImeModeText[17];                  //T400
  393.  
  394. } IMEINIT;
  395. typedef IMEINIT * PIMEINIT;
  396.  
  397.     #pragma pack()  /* restore packing to default */
  398.  
  399. #define     IME_CAPS_NONE                       0x00000000
  400. #define     IME_CAPS_PROVIDEUI                  0x00000001
  401. #define     IME_CAPS_PRIVATEUI                  0x00000002
  402. #define     IME_CAPS_SCREENSWITCHABLE           0x00000004
  403. #define     IME_CAPS_ACCEPTCONVERSIONSTRING     0x00000008
  404. #define     IME_CAPS_PROVIDEREADINGSTRING       0x00000010
  405. #define     IME_CAPS_INHERITINPUTMODE           0x00000020
  406. #define     IME_CAPS_INHERITCONVERSIONMODE      0x00000040
  407. #define     IME_CAPS_UNICODE                    0x00000080
  408.  
  409.  
  410. APIRET APIENTRY ImeInitialize( PIMEINIT pimeinit );
  411.  
  412. APIRET APIENTRY ImeTerminate( ULONG ulReserved );
  413.  
  414. typedef struct _NOTIFYEVENT {   /* ne */
  415.     ULONG   ulEventType;
  416.     ULONG   ulInput1;
  417.     ULONG   ulInput2;
  418.     ULONG   ulInput3;
  419.     ULONG   ulOutput;
  420. } NOTIFYEVENT;
  421. typedef NOTIFYEVENT * PNOTIFYEVENT;
  422.  
  423. APIRET APIENTRY ImeNotifyEvent( HIMI hImi,
  424.                                 PNOTIFYEVENT pNotifyEvent );
  425.  
  426. #define     IME_NE_ATTACHIME                    1
  427. #define     IME_NE_FOCUS                        2
  428. #define     IME_NE_KEYEVENT                     3
  429. #define     IME_NE_INSTANCEUPDATED              4
  430.  
  431. #define         IME_NE_IU_SESSIONTYPE               0x00000001
  432. #define         IME_NE_IU_HWND                      0x00000002
  433. #define         IME_NE_IU_SESSIONID                 0x00000004
  434. #define         IME_NE_IU_CLIENTINFO                0x00000008
  435. #define         IME_NE_IU_CODEPAGE                  0x00000010
  436. #define         IME_NE_IU_INPUTMODE                 0x00000020
  437. #define         IME_NE_IU_CONVERSIONMODE            0x00000040
  438. #define         IME_NE_IU_STATUSPOS                 0x00000080
  439. #define         IME_NE_IU_CONVERSIONFONT            0x00000100
  440. #define         IME_NE_IU_CONVERSIONPOS             0x00000200
  441. #define         IME_NE_IU_CANDIDATEPOS              0x00000400
  442.  
  443. #define     IME_NE_SHOWCANDIDATE                5
  444. #define     IME_NE_SELECTCANDIDATE              6
  445. #define     IME_NE_SETTOPCANDIDATE              7
  446. #define     IME_NE_SETCANDIDATEPAGESIZE         8
  447. #define     IME_NE_CONVERSIONSTRING             9
  448.  
  449. #define         IME_NE_CS_COMPLETE                  CNV_COMPLETE
  450. #define         IME_NE_CS_CONVERT                   CNV_CONVERT
  451. #define         IME_NE_CS_REVERT                    CNV_REVERT
  452. #define         IME_NE_CS_CANCEL                    CNV_CANCEL
  453.  
  454. #define     IME_NE_SHOWSTATUSWINDOW             10
  455. #define     IME_NE_CHANGECANDIDATELIST          11
  456. #define     IME_NE_BROADCASTDATA                12
  457.  
  458.  
  459. APIRET APIENTRY ImeConvertString( HIMI hImi,
  460.                                   PSZ pszInput,
  461.                                   PCANDIDATELISTHEADER pCandidateList,
  462.                                   PULONG pulBufferLength,
  463.                                   ULONG ulFlag );
  464.  
  465. #define     ICS_CONVERSION                  1
  466. #define     ICS_REVERSECONVERSION           2
  467.  
  468.  
  469. APIRET APIENTRY ImeEscape( HIMI hImi,
  470.                            ULONG ulEscape,
  471.                            PVOID pvData );
  472.  
  473. #define     IME_ESC_RESERVED_FIRST          0x00000000
  474. #define     IME_ESC_RESERVED_LAST           0x00000FFF
  475. #define     IME_ESC_PRIVATE_FIRST           0x00001000
  476. #define     IME_ESC_PRIVATE_LAST            0x00001FFF
  477.  
  478. #define     IME_ESC_IME_NAME                IME_ESC_RESERVED_FIRST /* PRC ONLY */
  479.  
  480. APIRET APIENTRY ImeSetConversionString( HIMI hImi,
  481.                                         ULONG ulRequestType,
  482.                                         PVOID pConversionString,
  483.                                         ULONG ulConversionLength,
  484.                                         PVOID pvReadingString,
  485.                                         ULONG ulReadingLength );
  486.  
  487.  
  488. APIRET APIENTRY ImeRegisterWord( HIMI hImi,
  489.                                  PSZ pszWord,
  490.                                  PSZ pszReading,
  491.                                  ULONG ulWordType );
  492.  
  493. APIRET APIENTRY ImeDeregisterWord( HIMI hImi,
  494.                                    PSZ pszWord,
  495.                                    PSZ pszReading,
  496.                                    ULONG ulWordType );
  497.  
  498. APIRET APIENTRY ImeQueryRegisterWordType( HIMI hImi,
  499.                                           PWORDTYPE paWordType,
  500.                                           PULONG pulBufferLength );
  501.  
  502. APIRET APIENTRY ImeEnumRegisterWord( HIMI hImi,
  503.                                      PSZ pszWord,
  504.                                      PSZ pszReading,
  505.                                      ULONG ulWordType,
  506.                                      REGISTERWORDENUMPROC pfnCallback,
  507.                                      PVOID pvData );
  508.  
  509.  
  510. APIRET APIENTRY ImeDialog( HIMI hImi,
  511.                            ULONG ulType,
  512.                            PREGISTERWORDHEADER pRegWord );
  513.  
  514.  
  515.     #pragma pack(1) /* force structure alignment packing */
  516.  
  517. typedef struct _REGISTERIMEHEADER {     /* imregime */
  518.     ULONG       cbSize;
  519.     ULONG       ulLangCount;
  520.     ULONG       offsetLang;
  521.     ULONG       ulDescriptionLen;
  522.     ULONG       offsetDescription;
  523.     ULONG       ulFlag;
  524. } REGISTERIMEHEADER;
  525. typedef REGISTERIMEHEADER * PREGISTERIMEHEADER;
  526.  
  527.     #pragma pack()  /* restore packing to default */
  528.  
  529.  
  530. #define     IM_REG_FLAG_DEFAULT         0x00000001
  531. #define     IM_REG_FLAG_IME16CALLABLE   0x00000002
  532.  
  533. APIRET APIENTRY ImRegisterIME( PSZ pszIMEName,
  534.                                PREGISTERIMEHEADER pRegIme,
  535.                                PULONG pImeId );
  536.  
  537. APIRET APIENTRY ImDeregisterIME( PSZ pszIMEName );
  538.  
  539.  
  540. /*----------------------------------------------------------------------
  541.  *
  542.  *  Window Message for Input Method Editor Window
  543.  *
  544.  *----------------------------------------------------------------------*/
  545.  
  546. #define WM_QUERYIMEWINDOWCAPS       0x00c8
  547.  
  548.  
  549. #define IWC_CONVERSIONANGLE         1
  550. #define IWC_CONVERSIONMARGIN        2
  551. #define IWC_FORCEPOSITION           3
  552.  
  553.  
  554.  
  555. /*----------------------------------------------------------------------
  556.  *
  557.  *  Input Method Interfaces for IME
  558.  *
  559.  *----------------------------------------------------------------------*/
  560.  
  561. APIRET APIENTRY ImRequestEvent( HIMI hImi,
  562.                                 ULONG msg,
  563.                                 ULONG mp1,
  564.                                 ULONG mp2 );
  565.  
  566.  
  567. APIRET APIENTRY ImRequestIMInstance( HIMI hImi,
  568.                                      PIMINSTANCE * ppIMInstance );
  569.  
  570. APIRET APIENTRY ImReleaseIMInstance( HIMI hImi );
  571.  
  572. APIRET APIENTRY ImQueryIMInstanceReqCount( HIMI hImi,
  573.                                            PULONG pulCount );
  574.  
  575. APIRET APIENTRY ImCreateIMIPart( ULONG ulPartSize,
  576.                                  PHIMIP phimiPart );
  577.  
  578. APIRET APIENTRY ImDestroyIMIPart( HIMIP himiPart );
  579.  
  580. APIRET APIENTRY ImQueryIMIPartSize( HIMIP himiPart,
  581.                                     PULONG pulPartSize );
  582.  
  583. APIRET APIENTRY ImRequestIMIPart( HIMIP himiPart,
  584.                                   PVOID * ppPartData );
  585.  
  586. APIRET APIENTRY ImReleaseIMIPart( HIMIP himiPart );
  587.  
  588. APIRET APIENTRY ImResizeIMIPart( HIMIP himiPart,
  589.                                  ULONG ulNewSize );
  590.  
  591. APIRET APIENTRY ImQueryIMIPartReqCount( HIMIP himiPart,
  592.                                         PULONG pulCount );
  593.  
  594. #define     IBD_RESERVED_FIRST      0x0000
  595. #define     IBD_RESERVED_LAST       0x0fff
  596. #define     IBD_PRIVATE_FIRST       0x1000
  597. #define     IBD_PRIVATE_LAST        0x1fff
  598.  
  599. typedef struct _BROADCASTDATAHEADER {   /* brddata */
  600.     ULONG   cbSize;
  601.     BYTE    bData[1];
  602. } BROADCASTDATAHEADER;
  603. typedef BROADCASTDATAHEADER * PBROADCASTDATAHEADER;
  604.  
  605. APIRET APIENTRY ImBroadcastData( PSZ pszIMEName,
  606.                                  ULONG ulIndex,
  607.                                  PBROADCASTDATAHEADER pData );
  608.  
  609.  
  610. /*----------------------------------------------------------------------
  611.  *
  612.  *  IME VKEY definitions
  613.  *
  614.  *----------------------------------------------------------------------*/
  615.  
  616. #define IMEVK_LBUTTON                    0x01
  617. #define IMEVK_RBUTTON                    0x02
  618. #define IMEVK_CANCEL                     0x03
  619. #define IMEVK_MBUTTON                    0x04
  620. #define IMEVK_BACK                       0x08
  621. #define IMEVK_TAB                        0x09
  622. #define IMEVK_CLEAR                      0x0C
  623. #define IMEVK_RETURN                     0x0D
  624. #define IMEVK_LEFTSHIFT                  0x10
  625. #define IMEVK_LEFTCONTROL                0x11
  626. #define IMEVK_MENU                       0x12
  627. #define IMEVK_PAUSE                      0x13
  628. #define IMEVK_CAPITAL                    0x14
  629. #define IMEVK_KANA                       0x15
  630. #define IMEVK_HANGEUL                    0x15
  631. #define IMEVK_JUNJA                      0x17
  632. #define IMEVK_FINAL                      0x18
  633. #define IMEVK_IMEACTIVATE                0x19
  634. #define IMEVK_HANJA                      0x19
  635. #define IMEVK_ESCAPE                     0x1B
  636. #define IMEVK_CONVERT                    0x1C
  637. #define IMEVK_NONCONVERT                 0x1D
  638. #define IMEVK_ACCEPT                     0x1E
  639. #define IMEVK_MODECHANGE                 0x1F
  640. #define IMEVK_SPACE                      0x20
  641. #define IMEVK_PRIOR                      0x21
  642. #define IMEVK_NEXT                       0x22
  643. #define IMEVK_END                        0x23
  644. #define IMEVK_HOME                       0x24
  645. #define IMEVK_LEFT                       0x25
  646. #define IMEVK_UP                         0x26
  647. #define IMEVK_RIGHT                      0x27
  648. #define IMEVK_DOWN                       0x28
  649. #define IMEVK_SELECT                     0x29
  650. #define IMEVK_PRINT                      0x2A
  651. #define IMEVK_EXECUTE                    0x2B
  652. #define IMEVK_SNAPSHOT                   0x2C
  653. #define IMEVK_INSERT                     0x2D
  654. #define IMEVK_DELETE                     0x2E
  655. #define IMEVK_HELP                       0x2F
  656. #define IMEVK_0                          0x30
  657. #define IMEVK_1                          0x31
  658. #define IMEVK_2                          0x32
  659. #define IMEVK_3                          0x33
  660. #define IMEVK_4                          0x34
  661. #define IMEVK_5                          0x35
  662. #define IMEVK_6                          0x36
  663. #define IMEVK_7                          0x37
  664. #define IMEVK_8                          0x38
  665. #define IMEVK_9                          0x39
  666. #define IMEVK_A                          0x41
  667. #define IMEVK_B                          0x42
  668. #define IMEVK_C                          0x43
  669. #define IMEVK_D                          0x44
  670. #define IMEVK_E                          0x45
  671. #define IMEVK_F                          0x46
  672. #define IMEVK_G                          0x47
  673. #define IMEVK_H                          0x48
  674. #define IMEVK_I                          0x49
  675. #define IMEVK_J                          0x4A
  676. #define IMEVK_K                          0x4B
  677. #define IMEVK_L                          0x4C
  678. #define IMEVK_M                          0x4D
  679. #define IMEVK_N                          0x4E
  680. #define IMEVK_O                          0x4F
  681. #define IMEVK_P                          0x50
  682. #define IMEVK_Q                          0x51
  683. #define IMEVK_R                          0x52
  684. #define IMEVK_S                          0x53
  685. #define IMEVK_T                          0x54
  686. #define IMEVK_U                          0x55
  687. #define IMEVK_V                          0x56
  688. #define IMEVK_W                          0x57
  689. #define IMEVK_X                          0x58
  690. #define IMEVK_Y                          0x59
  691. #define IMEVK_Z                          0x5A
  692. #define IMEVK_LWIN                       0x5B
  693. #define IMEVK_RWIN                       0x5C
  694. #define IMEVK_APPS                       0x5D
  695. #define IMEVK_NUMPAD0                    0x60
  696. #define IMEVK_NUMPAD1                    0x61
  697. #define IMEVK_NUMPAD2                    0x62
  698. #define IMEVK_NUMPAD3                    0x63
  699. #define IMEVK_NUMPAD4                    0x64
  700. #define IMEVK_NUMPAD5                    0x65
  701. #define IMEVK_NUMPAD6                    0x66
  702. #define IMEVK_NUMPAD7                    0x67
  703. #define IMEVK_NUMPAD8                    0x68
  704. #define IMEVK_NUMPAD9                    0x69
  705. #define IMEVK_MULTIPLY                   0x6A
  706. #define IMEVK_ADD                        0x6B
  707. #define IMEVK_SEPARATOR                  0x6C
  708. #define IMEVK_SUBTRACT                   0x6D
  709. #define IMEVK_DECIMAL                    0x6E
  710. #define IMEVK_DIVIDE                     0x6F
  711. #define IMEVK_F1                         0x70
  712. #define IMEVK_F2                         0x71
  713. #define IMEVK_F3                         0x72
  714. #define IMEVK_F4                         0x73
  715. #define IMEVK_F5                         0x74
  716. #define IMEVK_F6                         0x75
  717. #define IMEVK_F7                         0x76
  718. #define IMEVK_F8                         0x77
  719. #define IMEVK_F9                         0x78
  720. #define IMEVK_F10                        0x79
  721. #define IMEVK_F11                        0x7A
  722. #define IMEVK_F12                        0x7B
  723. #define IMEVK_F13                        0x7C
  724. #define IMEVK_F14                        0x7D
  725. #define IMEVK_F15                        0x7E
  726. #define IMEVK_F16                        0x7F
  727. #define IMEVK_F17                        0x80
  728. #define IMEVK_F18                        0x81
  729. #define IMEVK_F19                        0x82
  730. #define IMEVK_F20                        0x83
  731. #define IMEVK_F21                        0x84
  732. #define IMEVK_F22                        0x85
  733. #define IMEVK_F23                        0x86
  734. #define IMEVK_F24                        0x87
  735. #define IMEVK_NUMLOCK                    0x90
  736. #define IMEVK_SCROLL                     0x91
  737. #define IMEVK_OEM_SHIFT                  0x92
  738. #define IMEVK_OEM_0                      0xB9
  739. #define IMEVK_OEM_1                      0xBA
  740. #define IMEVK_OEM_PLUS                   0xBB
  741. #define IMEVK_OEM_COMMA                  0xBC
  742. #define IMEVK_OEM_MINUS                  0xBD
  743. #define IMEVK_OEM_PERIOD                 0xBE
  744. #define IMEVK_OEM_2                      0xBF
  745. #define IMEVK_OEM_3                      0xC0
  746. #define IMEVK_OEM_4                      0xDB
  747. #define IMEVK_OEM_5                      0xDC
  748. #define IMEVK_OEM_6                      0xDD
  749. #define IMEVK_OEM_7                      0xDE
  750. #define IMEVK_OEM_8                      0xDF
  751. #define IMEVK_OEM_9                      0xE0
  752. #define IMEVK_OEM_AX                     0xE1
  753. #define IMEVK_OEM_BSLASH                 0xE2
  754. #define IMEVK_PROCESSKEY                 0xE5
  755. #define IMEVK_DBE_ALPHANUMERIC           0xf0
  756. #define IMEVK_DBE_KATAKANA               0xf1
  757. #define IMEVK_DBE_HIRAGANA               0xf2
  758. #define IMEVK_DBE_SBCSCHAR               0xf3
  759. #define IMEVK_DBE_DBCSCHAR               0xf4
  760. #define IMEVK_DBE_ROMAN                  0xf5
  761. #define IMEVK_DBE_NOROMAN                0xf6
  762. #define IMEVK_DBE_ENTERWORDREGISTERMODE  0xf7
  763. #define IMEVK_DBE_ENTERIMECONFIGMODE     0xf8
  764. #define IMEVK_DBE_FLUSHSTRING            0xf9
  765. #define IMEVK_DBE_CODEINPUT              0xfa
  766. #define IMEVK_DBE_NOCODEINPUT            0xfb
  767. #define IMEVK_DBE_DETERMINESTRING        0xfc
  768. #define IMEVK_DBE_ENTERDLGCONVERSIONMODE 0xfd
  769.  
  770. #define IMEVK_LEFTALT                    0x1000
  771. #define IMEVK_RIGHTSHIFT                 0x1001
  772. #define IMEVK_RIGHTCONTROL               0x1002
  773. #define IMEVK_RIGHTALT                   0x1003
  774. #define IMEVK_SYSREQ                     0x1004
  775. #define IMEVK_ALLCANDIDATE               0x1005
  776. #define IMEVK_PREVCANDIDATE              0x1006
  777. #define IMEVK_SBCSDBCSCHAR               0x1007
  778. #define IMEVK_TSANGJYE                   0x1008
  779. #define IMEVK_PHONETIC                   0x1009
  780.  
  781. #define IMEVK_UNDEF                      0xffff
  782.  
  783. #endif /* __OS2IME__ */
  784.  
  785. #ifdef __cplusplus
  786.         }
  787. #endif
  788.  
  789. /* NOINC */
  790. #if __IBMC__ || __IBMCPP__
  791.    #pragma info( none )
  792.       #ifndef __CHKHDR__
  793.          #pragma info( restore )
  794.       #endif
  795.    #pragma info( restore )
  796. #endif
  797. /* INC */
  798. /**************************** end of file **********************************/
  799.