////////////////////////////////////////////////////////////////// // File : imepad_.h // Purpose : IImePadInternal interface definition // for FarEast MSIME. // // Author : ToshiaK(MSKK) // // Copyright(c) 1995-1998, Microsoft Corp. All rights reserved ////////////////////////////////////////////////////////////////// #ifndef _IME_PAD__H_ #define _IME_PAD__H_ #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #include #include #ifdef __cplusplus extern "C" { #endif ////////////////////////////////////////////////////////////////// // // IMEPADAPPLETINFO structure // #pragma pack(1) typedef struct tagIMEPADAPPLETINFO { DWORD dwSize; WCHAR wchTitle[64]; CLSID clsId; IID iid; DWORD dwCategory; DWORD dwReserved1; DWORD dwReserved2; }IMEPADAPPLETINFO, *LPIMEPADAPPLETINFO; typedef struct tagIMEPADAPPLYCANDEX { DWORD dwSize; LPWSTR lpwstrDisplay; LPWSTR lpwstrReading; DWORD dwReserved; }IMEPADAPPLYCANDEX, *LPIMEPADAPPLYCANDEX; #pragma pack() ////////////////////////////////////////////////////////////////// // // IImePadInternal's interface definition. // // //---------------------------------------------------------------- // CLSID, IID // // {963732E0-CAB2-11d1-AFF1-00805F0C8B6D} DEFINE_GUID(CLSID_IImePad, 0x963732e0, 0xcab2, 0x11d1, 0xaf, 0xf1, 0x0, 0x80, 0x5f, 0xc, 0x8b, 0x6d); // {963732E1-CAB2-11d1-AFF1-00805F0C8B6D} DEFINE_GUID(IID_IImePadInternal, 0x963732e1, 0xcab2, 0x11d1, 0xaf, 0xf1, 0x0, 0x80, 0x5f, 0xc, 0x8b, 0x6d); //---------------------------------------------------------------- // Interface Declaration // DECLARE_INTERFACE(IImePadInternal); DECLARE_INTERFACE_(IImePadInternal,IUnknown) { //--- IUnknown --- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; STDMETHOD_(ULONG, AddRef) (THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; //---- IImePadInternal ---- STDMETHOD(Initialize)(THIS_ IUnknown *lpIImeNotify, //IImeNotify Interface. LANGID imelangId, //LangageId of caller's ime. DWORD dwRes1, //Reserved area. DWORD dwRes2 //Reserved area. ) PURE; STDMETHOD(Terminate)(THIS) PURE; STDMETHOD(ShowUI) (THIS_ HWND hwndOwner, BOOL fShow) PURE; STDMETHOD(IsVisible)(THIS_ BOOL *pfVisible) PURE; STDMETHOD(Notify) (THIS_ UINT notify, WPARAM wParam, LPARAM lParam) PURE; STDMETHOD(SetIImeIPoint)(THIS_ IUnknown *lpIImeIPoint //IImeIPoint interface pointer ) PURE; STDMETHOD(GetAppletInfoList)(THIS_ DWORD dwFlag, IMEPADAPPLETINFO **lppInfo, INT *pInfoCount) PURE; STDMETHOD(ActivateApplet)(THIS_ UINT activateId, DWORD dwActivateParam, LPWSTR lpwstrAppletParam1, LPWSTR lpwstrAppletParam2) PURE; }; //---------------------------------------------------------------- //IImePadApplet category ID //---------------------------------------------------------------- #define IPACID_NONE 0x0000 #define IPACID_SOFTKEY 0x0001 #define IPACID_HANDWRITING 0x0002 #define IPACID_STROKESEARCH 0x0003 #define IPACID_RADICALSEARCH 0x0004 #define IPACID_SYMBOLSEARCH 0x0005 #define IPACID_VOICE 0x0006 #define IPACID_EPWING 0x0007 #define IPACID_OCR 0x0008 #define IPACID_USER 0x0100 ////////////////////////////////////////////////////////////////// // //Notify message for IImePadInternal::Notify() // //---------------------------------------------------------------- // Notify composition string's window rect // WPARAM wParam: no use // LPARAM lParam: LPRECT lpRect = (LPRECT)lParam; //---------------------------------------------------------------- #define IMEPADNOTIFY_RECTCHANGED 0x0001 //---------------------------------------------------------------- // Notify context's activation // WPARAM wParam: BOOL fActivate = (BOOL)wParam; // LPARAM lParam: no use //---------------------------------------------------------------- #define IMEPADNOTIFY_ACTIVATECONTEXT 0x0002 //---------------------------------------------------------------- // Notify for mode changed // WPARAM wParam: (INT) convMode = (INT)wParam; // LPARAM lParam: (INT) sentenceMode= (INT)lParam; // conversion mode and sentence mode are IME_CMODE_XX or IME_SMODE_XX //---------------------------------------------------------------- #define IMEPADNOTIFY_MODECHANGED 0x0006 //---------------------------------------------------------------- // Notify for start composition // WPARAM wParam: not defined // LPARAM lParam: not defined //---------------------------------------------------------------- #define IMEPADNOTIFY_STARTCOMPOSITION 0x0007 //---------------------------------------------------------------- // Notify for composition // WPARAM wParam: not defined // LPARAM lParam: not defined //---------------------------------------------------------------- #define IMEPADNOTIFY_COMPOSITION 0x0008 //---------------------------------------------------------------- // Notify for end composition // WPARAM wParam: not defined // LPARAM lParam: not defined //---------------------------------------------------------------- #define IMEPADNOTIFY_ENDCOMPOSITION 0x0009 //---------------------------------------------------------------- // Notify for open candidate // WPARAM wParam: not defined // LPARAM lParam: not defined //---------------------------------------------------------------- #define IMEPADNOTIFY_OPENCANDIDATE 0x000A //---------------------------------------------------------------- // Notify for close candidate // WPARAM wParam: not defined // LPARAM lParam: not defined //---------------------------------------------------------------- #define IMEPADNOTIFY_CLOSECANDIDATE 0x000B //---------------------------------------------------------------- // Notify for Candidate Applied // WPARAM wParam: dwCharId = (DWORD)wParam; // LPARAM lParam: iSelIndex = (INT)lParam; //---------------------------------------------------------------- #define IMEPADNOTIFY_APPLYCANDIDATE 0x000C //---------------------------------------------------------------- // Notify for Querying Candidate // WPARAM wParam: dwCharId = (DWORD)wParam; // LPARAM lParam: 0. not used. //---------------------------------------------------------------- #define IMEPADNOTIFY_QUERYCANDIDATE 0x000D //---------------------------------------------------------------- // Notify for Candidate Applied // WPARAM wParam: dwCharId = (DWORD)wParam; // LPARAM lParam: lpApplyCandEx = (LPIMEPADAPPLYCANDEX)lParam; //---------------------------------------------------------------- #define IMEPADNOTIFY_APPLYCANDIDATE_EX 0x000E //---------------------------------------------------------------- //Notify for Destroying ImePad's current thread window //WPARAM wParam: no use //LPARAM lParam: no use //---------------------------------------------------------------- #define IMEPADNOTIFY_ONIMEWINDOWDESTROY 0x0100 ////////////////////////////////////////////////////////////////// // // ActivateId for IImePadInternal::ActivateApplet() // //---------------------------------------------------------------- // IMEPADACTID_ACTIVATEBYCATID requests ImePad to // Activate Applet by CategoryId. // // UINT activateId: IMEPADACTID_ACTIVATEBYCATID; // LPARAM lParamActivate: IPACID_XXXX; // LPWSTR lpwstrAppletParam1: string passed to applet. // LPWSTR lpwstrAppletParam2: string passed to applet. #define IMEPADACTID_ACTIVATEBYCATID 1000 //---------------------------------------------------------------- // IMEPADACTID_ACTIVATEBYIID requests ImePad to // activate applet by Interface ID // // UINT activateId: IMEPADACTID_ACTIVATEBYIID; // DWORD dwActivateParam: (DWORD)(IID *)pIID; // LPWSTR lpwstrAppletParam1: string passed to applet. // LPWSTR lpwstrAppletParam2: string passed to applet. #define IMEPADACTID_ACTIVATEBYIID 1001 //---------------------------------------------------------------- // IMEPADACTID_ACTIVATEBYNAME requests ImePad to // activaet applet by applet's title name. // // UINT activateId: IMEPADACTID_ACTIVATEBYNAME // DWORD dwActivateParam: (DWORD)(LPWSTR)lpwstrTitle; // LPWSTR lpwstrAppletParam1: string passed to applet. // LPWSTR lpwstrAppletParam2: string passed to applet. #define IMEPADACTID_ACTIVATEBYNAME 1003 #ifdef __cplusplus }; #endif #endif //_IME_PAD__H_