home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / OS2IM.H < prev    next >
C/C++ Source or Header  |  1999-04-30  |  23KB  |  714 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: OS2IM.H
  4. *
  5. * OS/2 Input Method Definitions file
  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_OS2IM              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 __OS2IM__
  42. /* NOINC */
  43. #define __OS2IM__
  44. /* INC */
  45.  
  46. #define OS2IM_INCLUDED
  47.  
  48.  
  49.  
  50.  
  51. /*----------------------------------------------------------------------
  52.  *
  53.  *  Handle related Definition
  54.  *
  55.  *----------------------------------------------------------------------*/
  56.  
  57. typedef LHANDLE     HIMI;
  58. typedef HIMI      * PHIMI;
  59.  
  60.  
  61.  
  62. /*----------------------------------------------------------------------
  63.  *
  64.  *  Instance related Interface
  65.  *
  66.  *----------------------------------------------------------------------*/
  67.  
  68. APIRET APIENTRY ImAssociateInstance( HWND hwnd, HIMI himi, PHIMI phimiPrev );
  69.  
  70. APIRET APIENTRY ImCreateInstance( PHIMI phimi );
  71.  
  72. APIRET APIENTRY ImDestroyInstance( HIMI himi );
  73.  
  74. APIRET APIENTRY ImGetInstance( HWND hwnd, PHIMI phimi );
  75.  
  76. APIRET APIENTRY ImQueryDefaultIMWindow( HWND hwnd, PHWND phwnd );
  77.  
  78. APIRET APIENTRY ImReleaseInstance( HWND hwnd, HIMI himi );
  79.  
  80.  
  81.  
  82. /*----------------------------------------------------------------------
  83.  *
  84.  *  Register Word related Interface
  85.  *
  86.  *----------------------------------------------------------------------*/
  87.  
  88. typedef struct _REGISTERWORDHEADER {  /* imregw */
  89.     ULONG   cbSize;
  90.     ULONG   ulLengthReading;
  91.     ULONG   ulOffsetReading;
  92.     ULONG   ulLengthWord;
  93.     ULONG   ulOffsetWord;
  94. } REGISTERWORDHEADER;
  95. typedef REGISTERWORDHEADER * PREGISTERWORDHEADER;
  96.  
  97.  
  98.  
  99. typedef ULONG (EXPENTRY REGISTERWORDENUMPROC)(PSZ, ULONG, PSZ, PVOID );
  100.  
  101.  
  102. APIRET APIENTRY ImEnumRegisterWord( HIMI himi,
  103.                                     REGISTERWORDENUMPROC pfnEnumProc,
  104.                                     PSZ pReading,
  105.                                     ULONG ulType,
  106.                                     PSZ pRegister,
  107.                                     PVOID pData );
  108.  
  109.  
  110.     #pragma pack(1) /* force structure alignment packing */
  111.  
  112. typedef struct _WORDTYPE {  /* imwordt */
  113.     ULONG   ulType;
  114.     CHAR    szDescription[32];
  115. } WORDTYPE;
  116. typedef WORDTYPE * PWORDTYPE;
  117.  
  118.     #pragma pack()  /* restore packing to default */
  119.  
  120.  
  121. APIRET APIENTRY ImQueryRegisterWordType( HIMI himi, PULONG pulCount,
  122.                                          PWORDTYPE pWordType );
  123.  
  124.  
  125. APIRET APIENTRY ImRegisterWord( HIMI himi,
  126.                                 PSZ pszReading,
  127.                                 ULONG ulType,
  128.                                 PSZ pszRegister );
  129.  
  130. APIRET APIENTRY ImDeregisterWord( HIMI himi,
  131.                                   PSZ pszReading,
  132.                                   ULONG ulType,
  133.                                   PSZ pszDeregister );
  134.  
  135.  
  136.  
  137.  
  138.  
  139. /*----------------------------------------------------------------------
  140.  *
  141.  *  Dialog related Interface
  142.  *
  143.  *----------------------------------------------------------------------*/
  144.  
  145. APIRET APIENTRY ImShowIMEDlg( HIMI himi,
  146.                              ULONG ulDlgType,
  147.                              PREGISTERWORDHEADER pRegWord );
  148.  
  149. #define     IME_DLG_CONFIG      1
  150. #define     IME_DLG_REGWORD     2
  151. #define     IME_DLG_DICTIONARY  3
  152. #define     IME_DLG_VERSION     4
  153.  
  154.  
  155.  
  156. /*----------------------------------------------------------------------
  157.  *
  158.  *  Escape Interface
  159.  *
  160.  *----------------------------------------------------------------------*/
  161.  
  162. APIRET APIENTRY ImEscape( HIMI himi, ULONG ulEscaoe, PVOID pData );
  163.  
  164.  
  165.  
  166. /*----------------------------------------------------------------------
  167.  *
  168.  *  Candidate Window related Interface
  169.  *
  170.  *----------------------------------------------------------------------*/
  171.  
  172. typedef struct _CANDIDATELISTHEADER {     /* imcanl */
  173.     ULONG   ulSize;
  174.     ULONG   ulStyle;
  175.     ULONG   ulCount;
  176.     ULONG   ulSelection;
  177.     ULONG   ulPageStart;
  178.     ULONG   ulPageSize;
  179.     ULONG   ulTitleLen;
  180.     ULONG   ulTitleOffset;
  181.     ULONG   aulOffset[1];
  182. } CANDIDATELISTHEADER;
  183. typedef CANDIDATELISTHEADER * PCANDIDATELISTHEADER;
  184.  
  185. /* Definitions for the ulStyle */
  186. #define     CLS_UNKNOWN     0x00000000
  187. #define     CLS_READING     0x00000001
  188. #define     CLS_CODE        0x00000002
  189. #define     CLS_MEANING     0x00000003
  190. #define     CLS_RADICAL     0x00000004
  191. #define     CLS_STROKES     0x00000005
  192.  
  193.  
  194.  
  195. APIRET APIENTRY ImQueryCandidateList( HIMI himi,
  196.                                       ULONG ulIndex,
  197.                                       PCANDIDATELISTHEADER pCandidateList,
  198.                                       PULONG pulBuffer );
  199.  
  200.  
  201. typedef struct _CANDIDATEPOS {      /* imcanp */
  202.     ULONG   ulIndex;
  203.     ULONG   ulStyle;
  204.     POINTL  ptCurrentPos;
  205.     RECTL   rcArea;
  206. } CANDIDATEPOS;
  207. typedef CANDIDATEPOS * PCANDIDATEPOS;
  208.  
  209. /* Definitions for the ulStyle */
  210. #define     CPS_CANDIDATEPOS    1
  211. #define     CPS_EXCLUDE         2
  212.  
  213.  
  214. APIRET APIENTRY ImQueryCandidateWindowPos( HIMI himi,
  215.                                            PCANDIDATEPOS pCandidatePos );
  216.  
  217. APIRET APIENTRY ImSetCandidateWindowPos( HIMI himi,
  218.                                          PCANDIDATEPOS pCandidatePos );
  219.  
  220.  
  221.  
  222.  
  223. /*----------------------------------------------------------------------
  224.  *
  225.  *  Conversion Window related Interface
  226.  *
  227.  *----------------------------------------------------------------------*/
  228.  
  229. typedef struct _CONVERSIONPOS {      /* imconvp */
  230.     ULONG   ulStyle;
  231.     POINTL  ptCurrentPos;
  232.     RECTL   rcArea;
  233. } CONVERSIONPOS;
  234. typedef CONVERSIONPOS * PCONVERSIONPOS;
  235.  
  236. /* Definitions for the ulStyle */
  237. #define     CPS_DEFAULT     0x00000000
  238. #define     CPS_FORCE       0x00000001
  239. #define     CPS_POINT       0x00000002
  240. #define     CPS_RECT        0x00000004
  241.  
  242.  
  243. APIRET APIENTRY ImQueryConversionFont( HIMI himi,
  244.                                        PFATTRS pFontAttrs );
  245.  
  246. APIRET APIENTRY ImSetConversionFont( HIMI himi,
  247.                                      PFATTRS pFontAttrs );
  248.  
  249. APIRET APIENTRY ImQueryConversionFontSize( HIMI himi,
  250.                                            PSIZEF psizfxBox );
  251.  
  252. APIRET APIENTRY ImSetConversionFontSize( HIMI himi,
  253.                                          PSIZEF psizfxBox );
  254.  
  255. APIRET APIENTRY ImGetConversionString( HIMI himi, ULONG ulIndex,
  256.                                        PVOID pBuf, PULONG pulBufLen );
  257.  
  258. APIRET APIENTRY ImSetConversionString( HIMI himi, ULONG ulIndex,
  259.                                          PVOID pConv, ULONG ulConvLen,
  260.                                          PVOID pReading, ULONG ulReadingLen );
  261.  
  262. APIRET APIENTRY ImQueryConversionAngle( HIMI himi, PGRADIENTL pgradlAngle );
  263.  
  264. APIRET APIENTRY ImSetConversionAngle( HIMI himi, PGRADIENTL pgradlAngle );
  265.  
  266.  
  267. #define     IME_SCS_STRING              9
  268. #define     IME_SCS_ATTRIBUTE          18
  269. #define     IME_SCS_CLAUSEINFO         36
  270.  
  271. /* Definition for the attribute of the conversion string */
  272. #define     CP_ATTR_INPUT               0
  273. #define     CP_ATTR_TARGET_CONVERTED    1
  274. #define     CP_ATTR_CONVERTED           2
  275. #define     CP_ATTR_TARGET_NOTCONVERTED 3
  276. #define     CP_ATTR_INPUT_ERROR         4
  277.  
  278. /* Definition for the Cursor Attribute */
  279. #define     CP_CURSORATTR_INSERT        0x00000001
  280. #define     CP_CURSORATTR_INVISIBLE     0x00000002
  281.  
  282. APIRET APIENTRY ImQueryConversionWindowPos( HIMI himi,
  283.                                             PCONVERSIONPOS pConvPos );
  284.  
  285. APIRET APIENTRY ImSetConversionWindowPos( HIMI himi,
  286.                                           PCONVERSIONPOS pConvPos );
  287.  
  288.  
  289.  
  290.  
  291. /*----------------------------------------------------------------------
  292.  *
  293.  *  Result Part related Interface
  294.  *
  295.  *----------------------------------------------------------------------*/
  296.  
  297. APIRET APIENTRY ImGetResultString( HIMI himi, ULONG ulIndex,
  298.                                    PVOID pBuf, PULONG pulBufLen );
  299.  
  300.  
  301.  
  302. /*----------------------------------------------------------------------
  303.  *
  304.  *  Message Information Window related Interface
  305.  *
  306.  *----------------------------------------------------------------------*/
  307.  
  308. APIRET APIENTRY ImQueryInfoMsg( HIMI himi, ULONG ulIndex,
  309.                                      PVOID pBuf, PULONG pulBufLen );
  310.  
  311. #define     IM_ERRLEVEL_NONE                0
  312. #define     IM_ERRLEVEL_INFORMATION         1
  313. #define     IM_ERRLEVEL_WARNING             2
  314. #define     IM_ERRLEVEL_ERROR               3
  315. #define     IM_ERRLEVEL_FATAL               4
  316. #define     IM_ERRLEVEL_HELP                5
  317.  
  318. #define     IM_ERRLEVEL_LAST                IM_ERRLEVEL_HELP
  319.  
  320. #define     IM_INFOID_UNSAVABLE             1
  321. #define     IM_INFOID_NOCONVERT             2
  322. #define     IM_INFOID_NODICTIONARY          3
  323. #define     IM_INFOID_NOMODULE              4
  324. #define     IM_INFOID_INVALIDREADING        5
  325. #define     IM_INFOID_TOOMANYSTROKES        6
  326. #define     IM_INFOID_TYPINGERROR           7
  327. #define     IM_INFOID_UNDEFINED             8
  328. #define     IM_INFOID_INPUTREADING          9
  329. #define     IM_INFOID_INPUTRADICAL          10
  330. #define     IM_INFOID_INPUTCODE             11
  331. #define     IM_INFOID_SELECTCANDIDATE       12
  332. #define     IM_INFOID_REVERSECONVERSION     13
  333.  
  334. #define     IM_INFOID_LAST                  IM_INFOID_REVERSECONVERSION
  335.  
  336.  
  337.  
  338.  
  339. /*----------------------------------------------------------------------
  340.  *
  341.  *  Status Window related Interface
  342.  *
  343.  *----------------------------------------------------------------------*/
  344.  
  345. APIRET APIENTRY ImQueryStatusWindowPos( HIMI himi, PPOINTL pptPos, PSIZEL pszlSize );
  346.  
  347. APIRET APIENTRY ImSetStatusWindowPos( HIMI himi, PPOINTL pptPos );
  348.  
  349. APIRET APIENTRY ImShowStatusWindow( HIMI himi, ULONG fShow );
  350.  
  351. #define     SSW_HIDE        0
  352. #define     SSW_SHOW        1
  353.  
  354. APIRET APIENTRY ImGetStatusString( HIMI himi, ULONG ulIndex,
  355.                                    PVOID pBuf, PULONG pulBufLen );
  356.  
  357.  
  358. /*----------------------------------------------------------------------
  359.  *
  360.  *  Convert String Interface
  361.  *
  362.  *----------------------------------------------------------------------*/
  363.  
  364. APIRET APIENTRY ImConvertString( HIMI himi,
  365.                                  PSZ pSrc,
  366.                                  PCANDIDATELISTHEADER pDst,
  367.                                  PULONG pulBufLen,
  368.                                  ULONG ulFlag );
  369.  
  370. #define     CNV_NORMAL      1
  371. #define     CNV_REVERSE     2
  372. #define     CNV_READLEN     3
  373.  
  374.  
  375.  
  376. /*----------------------------------------------------------------------
  377.  *
  378.  *  Input Method Mode Interface
  379.  *
  380.  *----------------------------------------------------------------------*/
  381.  
  382. APIRET APIENTRY ImQueryIMMode( HIMI himi,
  383.                                PULONG pulInputMode,
  384.                                PULONG pulConversionMode );
  385.  
  386. APIRET APIENTRY ImSetIMMode( HIMI himi,
  387.                              ULONG ulInputMode,
  388.                              ULONG ulConversionMode );
  389.  
  390. /* input mode definition */
  391. #define     IMI_IM_NLS_ALPHANUMERIC     0x00000000
  392. #define     IMI_IM_NLS_HIRAGANA         0x00000001
  393. #define     IMI_IM_NLS_TAIWAN           0x00000001
  394. #define     IMI_IM_NLS_PRC              0x00000001
  395. #define     IMI_IM_NLS_HANGEUL          0x00000001
  396. #define     IMI_IM_NLS_KATAKANA         0x00000003
  397. #define     IMI_IM_NLS                  0x0000001F
  398.  
  399. #define     IMI_IM_WIDTH_HALF           0x00000000
  400. #define     IMI_IM_WIDTH_FULL           0x00000020
  401.  
  402. #define     IMI_IM_ROMAJI_OFF           0x00000000
  403. #define     IMI_IM_ROMAJI_ON            0x00000040
  404.  
  405. #define     IMI_IM_SYSTEMROMAJI_ENABLE     0x00000000
  406. #define     IMI_IM_SYSTEMROMAJI_DISABLE    0x00000080
  407.  
  408. #define     IMI_IM_IME_OFF              0x00000000
  409. #define     IMI_IM_IME_ON               0x00000100
  410.  
  411. #define     IMI_IM_IME_ENABLE           0x00000000
  412. #define     IMI_IM_IME_DISABLE          0x00000200
  413.  
  414. #define     IMI_IM_IME_SOFTKBD_OFF      0x00000000
  415. #define     IMI_IM_IME_SOFTKBD_ON       0x00000400
  416.  
  417. #define     IMI_IM_IME_CSYMBOL_OFF      0x00000000
  418. #define     IMI_IM_IME_CSYMBOL_ON       0x00000800
  419.  
  420. #define     IMI_IM_SOFTKBD              IMI_IM_IME_SOFTKBD_ON
  421. #define     IMI_IM_SOFTKBD_OFF          IMI_IM_IME_SOFTKBD_OFF
  422.  
  423. #define     IMI_IM_2NDCONV              0x00001000
  424. #define     IMI_IM_2NDCONV_OFF          0x00000000
  425.  
  426. /* conversion mode definition */
  427. #define     IMI_CM_NONE                 0x00000000
  428. #define     IMI_CM_PLURALCLAUSE         0x00000001
  429. #define     IMI_CM_SINGLE               0x00000002
  430. #define     IMI_CM_AUTOMATIC            0x00000004
  431. #define     IMI_CM_PREDICT              0x00000008
  432.  
  433.  
  434. typedef struct _IMMODE {    /* immode */
  435.     ULONG   ulInputMode;
  436.     ULONG   ulConversionMode;
  437. } IMMODE;
  438. typedef IMMODE * PIMMODE;
  439.  
  440.  
  441.  
  442. /*----------------------------------------------------------------------
  443.  *
  444.  *  Input Method Editor Information Interface
  445.  *
  446.  *----------------------------------------------------------------------*/
  447.  
  448. #define     IMENAMESIZE     32
  449.  
  450. typedef struct _IMEINFOHEADER {     /* imeinfhdr */
  451.     ULONG   cbSize;
  452.     CHAR    szIMEName[IMENAMESIZE];
  453.     ULONG   ulCodePageCount;
  454.     ULONG   offsetCodePage;
  455.     ULONG   ulDescriptionLen;
  456.     ULONG   offsetDescription;
  457.     ULONG   ulFlag;
  458. } IMEINFOHEADER;
  459. typedef IMEINFOHEADER * PIMEINFOHEADER;
  460.  
  461. APIRET APIENTRY ImQueryIMEInfo( ULONG ImeId, PIMEINFOHEADER pImeInfoHeader,
  462.                                 PULONG pulBufLen );
  463.  
  464.  
  465. APIRET APIENTRY ImQueryIMEProperty( HIMI himi, ULONG ulIndex, PULONG pulProp );
  466.  
  467. #define     QIP_PROPERTY        1
  468. #define     QIP_INPUTMODE       2
  469. #define     QIP_CONVERSIONMODE  3
  470. #define     QIP_UI              4
  471. #define     QIP_SETCONVSTR      5
  472. #define     QIP_SELECT          6
  473.  
  474.  
  475. #define     PRP_SPECIALUI       0x00000001
  476. #define     PRP_UNICODE         0x00000002
  477. #define     PRP_FORCEPOSITION   0x00000004
  478.  
  479. #define     UIC_270             1
  480. #define     UIC_ANGLE90         2
  481. #define     UIC_ANGLEANY        4
  482.  
  483. #define     SCSC_CONVSTR        0x00000001
  484. #define     SCSC_MAKEREAD       0x00000002
  485.  
  486. #define     SLC_INPUTMODE       0x00000001
  487. #define     SLC_CONVERSIONMODE  0x00000002
  488.  
  489.  
  490.  
  491. APIRET APIENTRY ImRequestIME( HIMI himi, ULONG ulAction,
  492.                               ULONG ulIndex, ULONG ulValue );
  493.  
  494. #define     REQ_CHANGECANDIDATELIST         1
  495. #define     REQ_HIDECANDIDATE               2
  496. #define     REQ_CONVERSIONSTRING            3
  497. #define     REQ_SHOWCANDIDATE               4
  498. #define     REQ_SELECTCANDIDATE             5
  499. #define     REQ_SETCANDIDATEPAGESIZE        6
  500. #define     REQ_SETCANDIDATEPAGESTART       7
  501.  
  502. #define     CNV_CANCEL          1
  503. #define     CNV_COMPLETE        2
  504. #define     CNV_CONVERT         3
  505. #define     CNV_REVERT          4
  506.  
  507.  
  508.  
  509. /*----------------------------------------------------------------------
  510.  *
  511.  *  Input Method Message related Interface
  512.  *
  513.  *----------------------------------------------------------------------*/
  514.  
  515. APIRET APIENTRY ImIsIMEMessage( HWND hwndIm,
  516.                                 ULONG msg,
  517.                                 MPARAM mp1,
  518.                                 MPARAM mp2,
  519.                                 PBOOL pfResult );
  520.  
  521.  
  522. #define     WM_IMECONTROL       0x00c5
  523.  
  524. #define         IMC_HIDESTATUSWINDOW            1
  525. #define         IMC_QUERYCANDIDATEPOS           2
  526. #define         IMC_QUERYCONVERSIONANGLE        3
  527. #define         IMC_QUERYCONVERSIONFONT         4
  528. #define         IMC_QUERYCONVERSIONFONTSIZE     5
  529. #define         IMC_QUERYCONVERSIONWINDOWPOS    6
  530. #define         IMC_QUERYIMMODE                 7
  531. #define         IMC_QUERYSTATUSWINDOWPOS        8
  532. #define         IMC_QUERYSTATUSWINDOWSIZE       9
  533. #define         IMC_SHOWSTATUSWINDOW            10
  534. #define         IMC_SETCANDIDATEPOS             11
  535. #define         IMC_SETCONVERSIONANGLE          12
  536. #define         IMC_SETCONVERSIONFONT           13
  537. #define         IMC_SETCONVERSIONFONTSIZE       14
  538. #define         IMC_SETCONVERSIONWINDOWPOS      15
  539. #define         IMC_SETIMMODE                   16
  540. #define         IMC_SETSTATUSWINDOWPOS          17
  541. #define         IMC_CHANGEINPUTLANG             18
  542.  
  543.  
  544. #define     WM_IMEREQUEST       0x00c6
  545.  
  546. #define         IMR_INSTANCEACTIVATE            1
  547.  
  548. #define             IMR_IA_STATUS                   0x00000001
  549. #define             IMR_IA_CONVERSION               0x00000002
  550. #define             IMR_IA_CANDIDATE                0x00000004
  551. #define             IMR_IA_INFOMSG                  0x00000008
  552. #define             IMR_IA_REGWORD                  0x00000010
  553.  
  554. #define         IMR_STATUS                      2
  555.  
  556. #define             IMR_STATUS_SHOW                 0x00000001
  557. #define             IMR_STATUS_HIDE                 0x00000002
  558. #define             IMR_STATUS_INPUTMODE            0x00000004
  559. #define             IMR_STATUS_CONVERSIONMODE       0x00000008
  560. #define             IMR_STATUS_STATUSPOS            0x00000010
  561. #define             IMR_STATUS_STRING               0x00000020
  562. #define             IMR_STATUS_STRINGATTR           0x00000040
  563. #define             IMR_STATUS_CURSORPOS            0x00000080
  564. #define             IMR_STATUS_CURSORATTR           0x00000100
  565.  
  566. #define         IMR_CONVRESULT                  3
  567.  
  568. #define             IMR_CONV_CONVERSIONSTRING       0x00000001
  569. #define             IMR_CONV_CONVERSIONATTR         0x00000002
  570. #define             IMR_CONV_CONVERSIONCLAUSE       0x00000004
  571. #define             IMR_CONV_READINGSTRING          0x00000008
  572. #define             IMR_CONV_READINGATTR            0x00000010
  573. #define             IMR_CONV_READINGCLAUSE          0x00000020
  574. #define             IMR_CONV_CURSORPOS              0x00000040
  575. #define             IMR_CONV_CURSORATTR             0x00000080
  576. #define             IMR_CONV_CHANGESTART            0x00000100
  577.  
  578. #define             IMR_CONV_INSERTCHAR             0x00000200
  579. #define             IMR_CONV_NOMOVECARET            0x00000400
  580. #define             IMR_CONV_CONVERSIONFONT         0x00000800
  581. #define             IMR_CONV_CONVERSIONPOS          0x00001000
  582.  
  583. #define             IMR_RESULT_RESULTSTRING         0x00010000
  584. #define             IMR_RESULT_RESULTATTR           0x00020000
  585. #define             IMR_RESULT_RESULTCLAUSE         0x00040000
  586. #define             IMR_RESULT_READINGSTRING        0x00080000
  587. #define             IMR_RESULT_READINGATTR          0x00100000
  588. #define             IMR_RESULT_READINGCLAUSE        0x00200000
  589.  
  590. #define         IMR_CANDIDATE                   4
  591.  
  592. #define             IMR_CANDIDATE_SHOW              0x00000001
  593. #define             IMR_CANDIDATE_HIDE              0x00000002
  594. #define             IMR_CANDIDATE_CHANGE            0x00000004
  595. #define             IMR_CANDIDATE_CANDIDATEPOS      0x00000008
  596. #define             IMR_CANDIDATE_SELECT            0x00000010
  597.  
  598. #define         IMR_INFOMSG                     5
  599.  
  600. #define             IMR_INFOMSG_ERRLEVEL            0x00000001
  601. #define             IMR_INFOMSG_ERRINDEX            0x00000002
  602. #define             IMR_INFOMSG_ERRSTR              0x00000004
  603. #define             IMR_INFOMSG_ERRTITLE            0x00000008
  604. #define             IMR_INFOMSG_PRIVATE             0x00000010
  605.  
  606. #define         IMR_REGWORD                     6
  607.  
  608. #define             IMR_REGWORD_SHOW                0x00000001
  609. #define             IMR_REGWORD_HIDE                0x00000002
  610.  
  611. #define         IMR_IMECHANGE                   7
  612.  
  613. #define         IMR_OTHERINFO                   8
  614.  
  615. #define             IMR_OTHERINFO_HWND              0x00000001
  616.  
  617. #define         IMR_CONFIG                      9
  618.  
  619. #define             IMR_CONFIG_SHOW                 0x00000001
  620. #define             IMR_CONFIG_HIDE                 0x00000002
  621.  
  622. #define         IMR_DICTIONARY                  10
  623.  
  624. #define             IMR_DICTIONARY_SHOW             0x00000001
  625. #define             IMR_DICTIONARY_HIDE             0x00000002
  626.  
  627. #define         IMR_SOFTKBD_TBLUPDATE           12              /*@ssc1*/
  628.  
  629.  
  630. #define     WM_IMENOTIFY        0x00c7
  631.  
  632. #define         IMN_STARTCONVERSION             1
  633. #define         IMN_ENDCONVERSION               2
  634. #define         IMN_CONVERSIONFULL              3
  635. #define         IMN_IMECHANGED                  4
  636.  
  637.  
  638.  
  639.  
  640. /*----------------------------------------------------------------------
  641.  *
  642.  *  Input Method Editor Registration related Interface
  643.  *
  644.  *----------------------------------------------------------------------*/
  645.  
  646.  
  647. APIRET APIENTRY ImQueryIMEList( ULONG ulCodepage,
  648.                                 PULONG aImeId,
  649.                                 PULONG pulCount );
  650.  
  651. APIRET APIENTRY ImQueryCurrentIME( HIMI himi, PULONG pImeId );
  652.  
  653. APIRET APIENTRY ImSetCurrentIME( HIMI himi,
  654.                                  ULONG ulAction,
  655.                                  ULONG ImeId );
  656.  
  657. #define     SCI_NOIME           1
  658. #define     SCI_NEXT            2
  659. #define     SCI_PREVIOUS        3
  660. #define     SCI_SETBYID         4
  661.  
  662.  
  663. APIRET APIENTRY ImQueryDefaultIME( ULONG ulCodepage, PULONG pImeId );
  664.  
  665. APIRET APIENTRY ImSetDefaultIME( ULONG ulCodepage, ULONG ImeId );
  666.  
  667.  
  668. APIRET APIENTRY ImSetIMEListOrder( ULONG ulCodepage,
  669.                                    ULONG ulAction,
  670.                                    ULONG ImeIdTarget,
  671.                                    ULONG ImeIdIndex );
  672.  
  673. #define     SLO_TOP         1
  674. #define     SLO_BOTTOM      2
  675. #define     SLO_SETAFTER    3
  676. #define     SLO_SETBEFORE   4
  677. #define     SLO_ROTATE      5
  678.  
  679. APIRET APIENTRY ImQueryIMEID( PSZ pszIMEName, PULONG pImeId );
  680.  
  681.  
  682.  
  683. /*----------------------------------------------------------------------
  684.  *
  685.  *  Input Method Editor Registration related Interface
  686.  *
  687.  *----------------------------------------------------------------------*/
  688.  
  689. APIRET APIENTRY ImQueryMsgQueueProperty( HMQ hmq, PULONG pulFlag );
  690.  
  691. APIRET APIENTRY ImSetMsgQueueProperty( HMQ hmq, ULONG ulFlag );
  692.  
  693. #define MQP_INSTANCE_PERMQ              0x00000001
  694. #define MQP_INSTANCE_PERFRAME           0x00000000
  695.  
  696.  
  697.  
  698. #endif /* __OS2IM__ */
  699.  
  700. #ifdef __cplusplus
  701.         }
  702. #endif
  703.  
  704. /* NOINC */
  705. #if __IBMC__ || __IBMCPP__
  706.    #pragma info( none )
  707.       #ifndef __CHKHDR__
  708.          #pragma info( restore )
  709.       #endif
  710.    #pragma info( restore )
  711. #endif
  712. /* INC */
  713. /**************************** end of file **********************************/
  714.