|
|
/******************************************************************************
* * * imepad.h - - Interface for the Windows IMEPAD, IMEPADAPPLET * * * * Version 8.1 * * * * Copyright (c) 1995-2000, Microsoft Corp. All rights reserved. * * * ******************************************************************************/ #ifndef _IME_PAD_H_
#define _IME_PAD_H_
#include <windows.h>
#include <objbase.h>
#ifdef __cplusplus
extern "C" { #endif
//----------------------------------------------------------------
// ImePadApplet's Category ID
//----------------------------------------------------------------
// {4A0F8E31-C3EE-11d1-AFEF-00805F0C8B6D}
DEFINE_GUID(CATID_MSIME_IImePadApplet_VER7, 0x4a0f8e31, 0xc3ee, 0x11d1, 0xaf, 0xef, 0x0, 0x80, 0x5f, 0xc, 0x8b, 0x6d);
//----------------------------------------------------------------
// ImePadApplet's Category ID version 8.0.0
//----------------------------------------------------------------
// {56F7A792-FEF1-11d3-8463-00C04F7A06E5}
DEFINE_GUID(CATID_MSIME_IImePadApplet_VER80, 0x56f7a792, 0xfef1, 0x11d3, 0x84, 0x63, 0x0, 0xc0, 0x4f, 0x7a, 0x6, 0xe5);
//----------------------------------------------------------------
// ImePadApplet's Category ID version 8.1.0
//----------------------------------------------------------------
// {656520B0-BB88-11d4-84C0-00C04F7A06E5}
DEFINE_GUID(CATID_MSIME_IImePadApplet, 0x656520b0, 0xbb88, 0x11d4, 0x84, 0xc0, 0x0, 0xc0, 0x4f, 0x7a, 0x6, 0xe5);
//----------------------------------------------------------------
// Interface ID
//----------------------------------------------------------------
// {5D8E643A-C3A9-11d1-AFEF-00805F0C8B6D}
DEFINE_GUID(IID_IImePad, 0x5d8e643a, 0xc3a9, 0x11d1, 0xaf, 0xef, 0x0, 0x80, 0x5f, 0xc, 0x8b, 0x6d);
// {5D8E643B-C3A9-11d1-AFEF-00805F0C8B6D}
DEFINE_GUID(IID_IImePadApplet, 0x5d8e643b, 0xc3a9, 0x11d1, 0xaf, 0xef, 0x0, 0x80, 0x5f, 0xc, 0x8b, 0x6d);
// {5D8E643C-C3A9-11d1-AFEF-00805F0C8B6D}
DEFINE_GUID(IID_IImeSpecifyApplets, 0x5d8e643c, 0xc3a9, 0x11d1, 0xaf, 0xef, 0x0, 0x80, 0x5f, 0xc, 0x8b, 0x6d);
#ifdef _WIN64
#pragma pack(8)
#else //!_WIN64
#pragma pack(1)
#endif
typedef struct tagAPPLETIDLIST { INT count; IID *pIIDList; }APPLETIDLIST, *LPAPPLETIDLIST;
//structure for IMEPADREQ_INSERTSTRINGCANDIDATE
typedef struct tagIMESTRINGCANDIDATE { UINT uCount; LPWSTR lpwstr[1]; }IMESTRINGCANDIDATE, *LPIMESTRINGCANDIDATE;
//structure for IMEPADREQ_INSERTITEMCANDIDATE
typedef struct tagIMEITEM { INT cbSize; INT iType; LPVOID lpItemData; }IMEITEM, *LPIMEITEM;
typedef struct tagIMEITEMCANDIDATE { UINT uCount; IMEITEM imeItem[1]; }IMEITEMCANDIDATE, *LPIMEITEMCANDIDATE;
//----------------------------------------------------------------
// Character Id in FarEast
//----------------------------------------------------------------
#define FEID_NONE 0x00
#define FEID_CHINESE_TRADITIONAL 0x01
#define FEID_CHINESE_SIMPLIFIED 0x02
#define FEID_CHINESE_HONGKONG 0x03
#define FEID_CHINESE_SINGAPORE 0x04
#define FEID_JAPANESE 0x05
#define FEID_KOREAN 0x06
#define FEID_KOREAN_JOHAB 0x07
//----------------------------------------------------------------
// String with FarEast id
//----------------------------------------------------------------
typedef struct tabIMESTRINGINFO { DWORD dwFarEastId; LPWSTR lpwstr; }IMESTRINGINFO, *LPIMESTRINGINFO;
#define INFOMASK_NONE 0x00000000
#define INFOMASK_QUERY_CAND 0x00000001
#define INFOMASK_APPLY_CAND 0x00000002
#define INFOMASK_APPLY_CAND_EX 0x00000004
#define INFOMASK_STRING_FIX 0x00010000
#define INFOMASK_HIDE_CAND 0x00020000
#define INFOMASK_BLOCK_CAND 0x00040000
//----------------------------------------------------------------
//FarEast data type
//----------------------------------------------------------------
#define IMEFAREASTINFO_TYPE_DEFAULT 0
#define IMEFAREASTINFO_TYPE_READING 1
#define IMEFAREASTINFO_TYPE_COMMENT 2
#define IMEFAREASTINFO_TYPE_COSTTIME 3
//----------------------------------------------------------------
//FarEast specified data.
//----------------------------------------------------------------
typedef struct tabIMEFAREASTINFO { DWORD dwSize; //total structure size.
DWORD dwType; //Data type.
DWORD dwData[1]; //fareast spec data.
}IMEFAREASTINFO, *LPIMEFAREASTINFO;
//----------------------------------------------------------------
// String candidate info
//----------------------------------------------------------------
typedef struct tagIMESTRINGCANDIDATEINFO { DWORD dwFarEastId; LPIMEFAREASTINFO lpFarEastInfo; DWORD fInfoMask; INT iSelIndex; UINT uCount; LPWSTR lpwstr[1]; }IMESTRINGCANDIDATEINFO, *LPIMESTRINGCANDIDATEINFO;
//----------------------------------------------------------------
//Composition string's information
//----------------------------------------------------------------
typedef struct tagIMECOMPOSITIONSTRINGINFO { INT iCompStrLen; INT iCaretPos; INT iEditStart; INT iEditLen; INT iTargetStart; INT iTargetLen; }IMECOMPOSITIONSTRINGINFO, *LPIMECOMPOSITIONSTRINGINFO;
//----------------------------------------------------------------
//Composition string's each character
//----------------------------------------------------------------
typedef struct tagIMECHARINFO { WCHAR wch; DWORD dwCharInfo; }IMECHARINFO, *LPIMECHARINFO;
//----------------------------------------------------------------
//IMECHARINFO's dwCharInfo bit mask
//----------------------------------------------------------------
#define CHARINFO_APPLETID_MASK 0xFF000000
#define CHARINFO_FEID_MASK 0x00F00000
#define CHARINFO_CHARID_MASK 0x0000FFFF
#define APPLETIDFROMCHARINFO(charInfo) (((DWORD)(charInfo) & CHARINFO_APPLETID_MASK) >> 24)
#define FEIDFROMCHARINFO(charInfo) (((DWORD)(charInfo) & CHARINFO_FEID_MASK) >> 20)
#define CHARIDFROMCHARINFO(charInfo) ((DWORD)(charInfo) & CHARINFO_CHARID_MASK)
//===== IImePadApplet Configuration ===============================
#define MAX_APPLETTITLE 64
#define MAX_FONTFACE 32
typedef struct tagAPPLETCFG { DWORD dwConfig; //set combination of IPACFG_XXXX
WCHAR wchTitle[MAX_APPLETTITLE]; //set applet's title name;
WCHAR wchTitleFontFace[MAX_FONTFACE]; //set title's font face.
DWORD dwCharSet; //set character set.
INT iCategory; //set IPACID_XXXX
HICON hIcon; //set Icon Handle for ImePad Appelt's menu.
LANGID langID; //set Applet langID.
WORD dummy; LPARAM lReserved1; }IMEAPPLETCFG, *LPIMEAPPLETCFG;
//----------------------------------------------------------------
// APPLETCFG dwConfig mask
//
#define IPACFG_NONE 0x00000000L
#define IPACFG_PROPERTY 0x00000001L //Applet has property.
#define IPACFG_HELP 0x00000002L //Applet has help.
#define IPACFG_TITLE 0x00010000L //Title is set.
#define IPACFG_TITLEFONTFACE 0x00020000L //wchFontFace, dwCharSet is valid.
#define IPACFG_CATEGORY 0x00040000L //category has set.
#define IPACFG_LANG 0x00000010L //LangID has set.
//----------------------------------------------------------------
// APPLETCFG iCategory
//
#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
typedef struct tagIMEAPPLETUI { HWND hwnd; //Window handle of Applet.
DWORD dwStyle; //set combination of IPAWS_XXX.
INT width; //set Applet's initial width.
INT height; //set Applet's initial height.
INT minWidth; //set min width. Valid only IPAWS_MINSIZEFIXED style has set.
INT minHeight; //set min height. Valid only IPAWS_MINSIZEFIXED style has set.
INT maxWidth; //set max width. Valid only IPAWS_MAXSIZEFIXED style has set.
INT maxHeight; //set max height. Valid only IPAWS_MAXSIZEFIXED style has set.
LPARAM lReserved1; //reserved area.
LPARAM lReserved2; //reserved area.
}IMEAPPLETUI, *LPIMEAPPLETUI;
#pragma pack()
//Default insert position
#define IPR_DEFAULT_INSERTPOS ((WORD)0xFFFF)
//==== IImePad Request ID ==========================================
#define IMEPADREQ_FIRST 0x1000
//----------------------------------------------------------------
// IMEPADREQ_INSERTSTRING
// wParam = (WPARMA)(LPWSTR)lpwstr; //address of Unicode text string.
// lParam = 0; //not used.
//----------------------------------------------------------------
#define IMEPADREQ_INSERTSTRING (IMEPADREQ_FIRST + 1)
//----------------------------------------------------------------
// IMEPADREQ_INSERTSTRINGCANDIDATE
// wParam = (WPARAM)(LPIMESTRINGCANDIDATE)lpStrCand; //address of IMESTRINGCANDIDATE
// lParam = 0; //not used.
//----------------------------------------------------------------
#define IMEPADREQ_INSERTSTRINGCANDIDATE (IMEPADREQ_FIRST + 2)
//----------------------------------------------------------------
// IMEPADREQ_INSERTITEMCANDIDATE
// Not implemented in version 7.1.0
// wParam = 0;
// lParam = 0;
//----------------------------------------------------------------
#define IMEPADREQ_INSERTITEMCANDIDATE (IMEPADREQ_FIRST + 3)
//----------------------------------------------------------------
// IMEPADREQ_SENDCONTROL
// wParam = (WPARAM)imePadCtrl; //control code (IMEPADCTRL_XXXX)
// lParam = 0; //not used.
//----------------------------------------------------------------
#define IMEPADREQ_SENDCONTROL (IMEPADREQ_FIRST + 4)
//----------------------------------------------------------------
// IMEPADREQ_SENDKEYCONTROL
// wParam = MAKEWPARAM(ctlMask, updown);
// ctlMask is IMEKEYCTRLMASK_XXX combination
// upDown is IMEKEYCTRL_UP or DOWN
// lParam = (LPARAM)wvKey; //Virtual keycode.
//----------------------------------------------------------------
#define IMEPADREQ_SENDKEYCONTROL (IMEPADREQ_FIRST + 5)
//----------------------------------------------------------------
// IMEPADREQ_GETCOMPOSITIONSTRING
// wParam = (WPARAM)(LPWSTR)lpwstr; //address of Unicode string buffer.
// lParam = (LPARAM)(UINT)cchMax; //buffer max count.
//----------------------------------------------------------------
#define IMEPADREQ_GETCOMPOSITIONSTRING (IMEPADREQ_FIRST + 6)
//----------------------------------------------------------------
// IMEPADREQ_GETSELECTEDSTRING
// Not implemented in version 6.0.0
// wParam = 0;
// lParam = 0;
//----------------------------------------------------------------
#define IMEPADREQ_GETSELECTEDSTRING (IMEPADREQ_FIRST + 7)
//----------------------------------------------------------------
// IMEPADREQ_SETAPPLETSIZE
// wParam = MAKEWPARAM(width, height); // Applet's width & height
// lParam = 0; // not used.
//----------------------------------------------------------------
#define IMEPADREQ_SETAPPLETSIZE (IMEPADREQ_FIRST + 8)
//----------------------------------------------------------------
// IMEPADREQ_SETAPPLETDATA
// wParam = (WPARAM)(PBYTE)pByte; //address of applet's data.
// lParam = (LPARAM)(INT)size; //byte size of pByte.
//----------------------------------------------------------------
#define IMEPADREQ_SETAPPLETDATA (IMEPADREQ_FIRST + 9)
//----------------------------------------------------------------
// IMEPADREQ_GETAPPLETDATA
// wParam = (WPARAM)(PBYTE)pByte; //address of applet's data.
// lParam = (LPARAM)(INT)size; //byte size of pByte.
//----------------------------------------------------------------
#define IMEPADREQ_GETAPPLETDATA (IMEPADREQ_FIRST + 10)
//----------------------------------------------------------------
// IMEPADREQ_SETTITLEFONT
// wParam = (WPARAM)(LPWSTR)lpwstrFontFace; //FontFace name
// lParam = (LPARAM)(INT)charSet; //character set
//----------------------------------------------------------------
#define IMEPADREQ_SETTITLEFONT (IMEPADREQ_FIRST + 11)
//----------------------------------------------------------------
// IMEPADREQ_GETCOMPOSITIONSTRINGINFO
// wParam = (WPARAM)(LPIMECOMPOSITIONSTRINGINFO)lpImeCompInfo.
// //IMECOMPOSITIONSTRINGINFO struct address.
// lParam = 0; //no use.
//----------------------------------------------------------------
#define IMEPADREQ_GETCOMPOSITIONSTRINGINFO (IMEPADREQ_FIRST + 12)
//----------------------------------------------------------------
// IMEPADREQ_GETCOMPOSITIONSTRINGID
// wParam = (WPARAM)(LPIMECHARINFO)lpCharInfo;
// lParam = (LPARAM)(INT)dwMaxLen;
//----------------------------------------------------------------
#define IMEPADREQ_GETCOMPOSITIONSTRINGID (IMEPADREQ_FIRST + 13)
//----------------------------------------------------------------
// IMEPADREQ_INSERTSTRINGCANDIDATEINFO
// wParam = (WPARAM)(LPIMESTRINGCANDIDATEINFO)lpCandInfo;
// lParam = (LPARAM)(WORD)wStartPos;
//----------------------------------------------------------------
#define IMEPADREQ_INSERTSTRINGCANDIDATEINFO (IMEPADREQ_FIRST + 14)
//----------------------------------------------------------------
// IMEPADREQ_CHANGESTRINGCANDIDATEINFO
// wParam = (WPARAM)(LPIMESTRINGCANDIDATEINFO)lpCandInfo;
// lParam = MAKELPARAM(startPos, length);
//----------------------------------------------------------------
#define IMEPADREQ_CHANGESTRINGCANDIDATEINFO (IMEPADREQ_FIRST + 15)
//----------------------------------------------------------------
// IMEPADREQ_DELETESTRING
// wParam = MAKEWPARAM(wStartPos, wLength);
// lParam = 0; //not used.
//----------------------------------------------------------------
#define IMEPADREQ_DELETESTRING (IMEPADREQ_FIRST + 16)
//----------------------------------------------------------------
// IMEPADREQ_CHANGESTRING
// wParam = (WPARAM)(LPWSTR)lpwstr;
// lParam = MAKELPARAM(wStartPos, wLength);
//----------------------------------------------------------------
#define IMEPADREQ_CHANGESTRING (IMEPADREQ_FIRST + 17)
//----------------------------------------------------------------
// IMEPADREQ_INSERTSTRINGINFO
// wParam = (WPARAM)(LPIMESTRINGINFO)lpStrInfo;
// lParam = dwStartPos
//----------------------------------------------------------------
#define IMEPADREQ_INSERTSTRINGINFO (IMEPADREQ_FIRST + 18)
//----------------------------------------------------------------
// IMEPADREQ_CHANGESTRINGINFO
// wParam = (WPARAM)(LPIMESTRINGINFO)lpStrInfo;
// lParam = MAKELPARAM(wStartPos, wLength);
//----------------------------------------------------------------
#define IMEPADREQ_CHANGESTRINGINFO (IMEPADREQ_FIRST + 19)
//----------------------------------------------------------------
// IMEPADREQ_GETAPPLHWND
// wParam = (WPARAM)(HWND *)lpHwnd;
// lParam = 0; not used.
//----------------------------------------------------------------
#define IMEPADREQ_GETAPPLHWND (IMEPADREQ_FIRST + 20)
//----------------------------------------------------------------
// IMEPADREQ_FORCEIMEPADWINDOWSHOW
// wParam = (WPARAM)(BOOL)fShowForce
// lParam = 0; not used.
//----------------------------------------------------------------
#define IMEPADREQ_FORCEIMEPADWINDOWSHOW (IMEPADREQ_FIRST + 21)
//----------------------------------------------------------------
// IMEPADREQ_POSTMODALNOTIFY
// wParam = (WPARAM)notifycode
// lParam = (LPARAM)dwData.
//----------------------------------------------------------------
#define IMEPADREQ_POSTMODALNOTIFY (IMEPADREQ_FIRST + 22)
//----------------------------------------------------------------
// IMEPADREQ_GETDEFAULTUILANGID
// wParam = (WPARAM)(LANGID *)pLangID;
// lParam = 0; not used
//----------------------------------------------------------------
#define IMEPADREQ_GETDEFAULTUILANGID (IMEPADREQ_FIRST + 23)
//----------------------------------------------------------------
// IMEPADREQ_GETCURRENTUILANGID
// wParam = (WPARAM)(LANGID *)pLangID;
// lParam = 0; not used
//----------------------------------------------------------------
#define IMEPADREQ_GETCURRENTUILANGID (IMEPADREQ_FIRST + 24)
//----------------------------------------------------------------
// IMEPADREQ_GETAPPLETUISTYLE
// wParam = (WPARAM)(DWORD *)pdwStyle;
// lParam = 0; not used.
//----------------------------------------------------------------
#define IMEPADREQ_GETAPPLETUISTYLE (IMEPADREQ_FIRST + 25)
//----------------------------------------------------------------
// IMEPADREQ_SETAPPLETUISTYLE
// wParam = (WPARAM)(DWORD)dwStyle;
// lParam = 0; not used.
//----------------------------------------------------------------
#define IMEPADREQ_SETAPPLETUISTYLE (IMEPADREQ_FIRST + 26)
//----------------------------------------------------------------
// IMEPADREQ_ISAPPLETACTIVE
// wParam = (WPARAM)(BOOL *)pfActive;
// lParam = 0; not used.
//----------------------------------------------------------------
#define IMEPADREQ_ISAPPLETACTIVE (IMEPADREQ_FIRST + 27)
//----------------------------------------------------------------
// IMEPADREQ_ISIMEPADWINDOWVISIBLE
// wParam = (WPARAM)(BOOL *)pfVisible;
// lParam = 0; not used.
//----------------------------------------------------------------
#define IMEPADREQ_ISIMEPADWINDOWVISIBLE (IMEPADREQ_FIRST + 28)
//----------------------------------------------------------------
// IMEPADREQ_SETAPPLETMINMAXSIZE
// wParam = MAKEWPARAM(width, height); // Applet's width & height
// lParam = MAKELPARAM(fMax, fNoMove); // Set Max size or Min size,
// // And move or not move.
//----------------------------------------------------------------
#define IMEPADREQ_SETAPPLETMINMAXSIZE (IMEPADREQ_FIRST + 29)
//----------------------------------------------------------------
// IMEPADREQ_GETCONVERSIONSTATUS
// wParam = (WPARAM)(DWORD *)pdwConversionMode; //conversion mode.
// lParam = (LPARAM)(DWORD *)pdwSentenceMode; //sentence mode.
//----------------------------------------------------------------
#define IMEPADREQ_GETCONVERSIONSTATUS (IMEPADREQ_FIRST + 30)
//----------------------------------------------------------------
// IMEPADREQ_GETVERSION
// wParam = (WPARAM)(DWORD *)pdwVerMS;
// lParam = (LPARAM)(DWORD *)pdwVerLS;
//----------------------------------------------------------------
#define IMEPADREQ_GETVERSION (IMEPADREQ_FIRST + 31)
//----------------------------------------------------------------
// IMEPADREQ_GETCURRENTIMEINFO
// wParam = (WPARAM)(DWORD *)pdwImeLangID;
// lParam = (LPARAM)(DWORD *)pdwImeInputID;
//----------------------------------------------------------------
#define IMEPADREQ_GETCURRENTIMEINFO (IMEPADREQ_FIRST + 32)
//===== IMEPADREQ_SENDCONTROL reques parameter ======================
#define IMEPADCTRL_CONVERTALL 1
#define IMEPADCTRL_DETERMINALL 2
#define IMEPADCTRL_DETERMINCHAR 3
#define IMEPADCTRL_CLEARALL 4
#define IMEPADCTRL_CARETSET 5
#define IMEPADCTRL_CARETLEFT 6
#define IMEPADCTRL_CARETRIGHT 7
#define IMEPADCTRL_CARETTOP 8
#define IMEPADCTRL_CARETBOTTOM 9
#define IMEPADCTRL_CARETBACKSPACE 10
#define IMEPADCTRL_CARETDELETE 11
#define IMEPADCTRL_PHRASEDELETE 12
#define IMEPADCTRL_INSERTSPACE 13
#define IMEPADCTRL_INSERTFULLSPACE 14
#define IMEPADCTRL_INSERTHALFSPACE 15
#define IMEPADCTRL_ONIME 16
#define IMEPADCTRL_OFFIME 17
#define IMEPADCTRL_ONPRECONVERSION 18
#define IMEPADCTRL_OFFPRECONVERSION 19
#define IMEPADCTRL_PHONETICCANDIDATE 20
//hot key definition
#define IMEKEYCTRLMASK_ALT 0x0001
#define IMEKEYCTRLMASK_CTRL 0x0002
#define IMEKEYCTRLMASK_SHIFT 0x0004
#define IMEKEYCTRL_UP 1
#define IMEKEYCTRL_DOWN 0
//===== IImePadApplet Notify ID =====================================
#define IMEPN_FIRST 0x0100
#define IMEPN_ACTIVATE (IMEPN_FIRST + 1)
#define IMEPN_INACTIVATE (IMEPN_FIRST + 2)
#define IMEPN_SHOW (IMEPN_FIRST + 4)
#define IMEPN_HIDE (IMEPN_FIRST + 5)
#define IMEPN_SIZECHANGING (IMEPN_FIRST + 6)
#define IMEPN_SIZECHANGED (IMEPN_FIRST + 7)
#define IMEPN_CONFIG (IMEPN_FIRST + 8)
#define IMEPN_HELP (IMEPN_FIRST + 9)
#define IMEPN_QUERYCAND (IMEPN_FIRST +10)
#define IMEPN_APPLYCAND (IMEPN_FIRST +11)
#define IMEPN_APPLYCANDEX (IMEPN_FIRST +12)
#define IMEPN_SETTINGCHANGED (IMEPN_FIRST +13)
#define IMEPN_USER (IMEPN_FIRST + 100)
typedef struct tagAPPLYCANDEXPARAM {
DWORD dwSize; LPWSTR lpwstrDisplay; LPWSTR lpwstrReading; DWORD dwReserved;
} APPLYCANDEXPARAM, *LPAPPLYCANDEXPARAM;
//===== IImePadApplet window style ================================
#define IPAWS_ENABLED 0x00000001L //Show Applet as Enabled window.
#define IPAWS_SIZINGNOTIFY 0x00000004L //send IMEPN_SIZECHANGING(ED) notify to applet.
#define IPAWS_VERTICALFIXED 0x00000100L //Vertically fixed.
#define IPAWS_HORIZONTALFIXED 0x00000200L //Horizontally fixed.
#define IPAWS_SIZEFIXED 0x00000300L //size is fixed.
#define IPAWS_MAXWIDTHFIXED 0x00001000L //max width is fixed.
#define IPAWS_MAXHEIGHTFIXED 0x00002000L //max height is fixed.
#define IPAWS_MAXSIZEFIXED 0x00003000L //max size is fixed.
#define IPAWS_MINWIDTHFIXED 0x00010000L //min width is fixed.
#define IPAWS_MINHEIGHTFIXED 0x00020000L //min height is fixed.
#define IPAWS_MINSIZEFIXED 0x00030000L //min size is fixed.
//======IImePad IImePadApplet Interface definition===============
DECLARE_INTERFACE(IImePad); DECLARE_INTERFACE(IImePadApplet); DECLARE_INTERFACE(IImeSpecifyApplets);
DECLARE_INTERFACE_(IImePad, IUnknown) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; STDMETHOD_(ULONG, AddRef) (THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /*** IImePad methods ***/ STDMETHOD(Request)(THIS_ IImePadApplet *pIImePadApplet, INT reqId, WPARAM wParam, LPARAM lParam) PURE; };
DECLARE_INTERFACE_(IImeSpecifyApplets, IUnknown) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; STDMETHOD_(ULONG, AddRef) (THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /*** IImeSpecifyApplet methods ***/ STDMETHOD(GetAppletIIDList)(THIS_ REFIID refiid, LPAPPLETIDLIST lpIIDList) PURE; };
DECLARE_INTERFACE_(IImePadApplet, IUnknown) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; STDMETHOD_(ULONG, AddRef) (THIS) PURE; STDMETHOD_(ULONG, Release) (THIS) PURE; /*** IImePadApplet methods ***/ STDMETHOD(Initialize)(THIS_ IUnknown *lpIImePad) PURE; STDMETHOD(Terminate) (THIS) PURE; STDMETHOD(GetAppletConfig)(THIS_ LPIMEAPPLETCFG lpAppletCfg) PURE; STDMETHOD(CreateUI)(THIS_ HWND hwndParent, LPIMEAPPLETUI lpImeAppletUI) PURE; STDMETHOD(Notify)(THIS_ IUnknown *lpImePad, INT notify, WPARAM wParam, LPARAM lParam) PURE; };
#ifdef __cplusplus
}; #endif
#endif //_IME_PAD_H_
|