亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? imm.h

?? This folder includes IME sample source code for Simplified Chinese IMEs
?? H
?? 第 1 頁 / 共 3 頁
字號:
/**********************************************************************/
/*      immdev.h - Input Method Manager definitions                   */
/*                 for IME developers                                 */
/*                                                                    */
/*      Copyright (c) 1993-1998  Microsoft Corporation                */
/**********************************************************************/

#ifndef _IMMDEV_
#define _IMMDEV_


#ifdef __cplusplus
extern "C" {
#endif


#ifndef _IMM_SDK_DEFINED_
#define _IMM_SDK_DEFINED_

#if (WINVER >= 0x040A)
DECLARE_HANDLE(HIMC);
DECLARE_HANDLE(HIMCC);
#else
typedef DWORD   HIMC;
typedef DWORD   HIMCC;
#endif /* WINVER >= 0x040A */

typedef HKL FAR  *LPHKL;
typedef UINT FAR *LPUINT;

typedef struct tagCOMPOSITIONFORM {
    DWORD dwStyle;
    POINT ptCurrentPos;
    RECT  rcArea;
} COMPOSITIONFORM, *PCOMPOSITIONFORM, NEAR *NPCOMPOSITIONFORM, FAR *LPCOMPOSITIONFORM;


typedef struct tagCANDIDATEFORM {
    DWORD dwIndex;
    DWORD dwStyle;
    POINT ptCurrentPos;
    RECT  rcArea;
} CANDIDATEFORM, *PCANDIDATEFORM, NEAR *NPCANDIDATEFORM, FAR *LPCANDIDATEFORM;


typedef struct tagCANDIDATELIST {
    DWORD dwSize;
    DWORD dwStyle;
    DWORD dwCount;
    DWORD dwSelection;
    DWORD dwPageStart;
    DWORD dwPageSize;
    DWORD dwOffset[1];
} CANDIDATELIST, *PCANDIDATELIST, NEAR *NPCANDIDATELIST, FAR *LPCANDIDATELIST;

typedef struct tagREGISTERWORDA {
    LPSTR   lpReading;
    LPSTR   lpWord;
} REGISTERWORDA, *PREGISTERWORDA, NEAR *NPREGISTERWORDA, FAR *LPREGISTERWORDA;
typedef struct tagREGISTERWORDW {
    LPWSTR  lpReading;
    LPWSTR  lpWord;
} REGISTERWORDW, *PREGISTERWORDW, NEAR *NPREGISTERWORDW, FAR *LPREGISTERWORDW;
#ifdef UNICODE
typedef REGISTERWORDW REGISTERWORD;
typedef PREGISTERWORDW PREGISTERWORD;
typedef NPREGISTERWORDW NPREGISTERWORD;
typedef LPREGISTERWORDW LPREGISTERWORD;
#else
typedef REGISTERWORDA REGISTERWORD;
typedef PREGISTERWORDA PREGISTERWORD;
typedef NPREGISTERWORDA NPREGISTERWORD;
typedef LPREGISTERWORDA LPREGISTERWORD;
#endif // UNICODE

#if (WINVER >= 0x040A)

typedef struct tagRECONVERTSTRING {
    DWORD dwSize;
    DWORD dwVersion;
    DWORD dwStrLen;
    DWORD dwStrOffset;
    DWORD dwCompStrLen;
    DWORD dwCompStrOffset;
    DWORD dwTargetStrLen;
    DWORD dwTargetStrOffset;
} RECONVERTSTRING, *PRECONVERTSTRING, NEAR *NPRECONVERTSTRING, FAR *LPRECONVERTSTRING;

#endif /* WINVER >= 0x040A */

#define STYLE_DESCRIPTION_SIZE  32

typedef struct tagSTYLEBUFA {
    DWORD       dwStyle;
    CHAR        szDescription[STYLE_DESCRIPTION_SIZE];
} STYLEBUFA, *PSTYLEBUFA, NEAR *NPSTYLEBUFA, FAR *LPSTYLEBUFA;
typedef struct tagSTYLEBUFW {
    DWORD       dwStyle;
    WCHAR       szDescription[STYLE_DESCRIPTION_SIZE];
} STYLEBUFW, *PSTYLEBUFW, NEAR *NPSTYLEBUFW, FAR *LPSTYLEBUFW;
#ifdef UNICODE
typedef STYLEBUFW STYLEBUF;
typedef PSTYLEBUFW PSTYLEBUF;
typedef NPSTYLEBUFW NPSTYLEBUF;
typedef LPSTYLEBUFW LPSTYLEBUF;
#else
typedef STYLEBUFA STYLEBUF;
typedef PSTYLEBUFA PSTYLEBUF;
typedef NPSTYLEBUFA NPSTYLEBUF;
typedef LPSTYLEBUFA LPSTYLEBUF;
#endif // UNICODE


#if (WINVER >= 0x040A)

#define IMEMENUITEM_STRING_SIZE 80

typedef struct tagIMEMENUITEMINFOA {
    UINT        cbSize;
    UINT        fType;
    UINT        fState;
    UINT        wID;
    HBITMAP     hbmpChecked;
    HBITMAP     hbmpUnchecked;
    DWORD       dwItemData;
    CHAR        szString[IMEMENUITEM_STRING_SIZE];
    HBITMAP     hbmpItem;
} IMEMENUITEMINFOA, *PIMEMENUITEMINFOA, NEAR *NPIMEMENUITEMINFOA, FAR *LPIMEMENUITEMINFOA;
typedef struct tagIMEMENUITEMINFOW {
    UINT        cbSize;
    UINT        fType;
    UINT        fState;
    UINT        wID;
    HBITMAP     hbmpChecked;
    HBITMAP     hbmpUnchecked;
    DWORD       dwItemData;
    WCHAR       szString[IMEMENUITEM_STRING_SIZE];
    HBITMAP     hbmpItem;
} IMEMENUITEMINFOW, *PIMEMENUITEMINFOW, NEAR *NPIMEMENUITEMINFOW, FAR *LPIMEMENUITEMINFOW;
#ifdef UNICODE
typedef IMEMENUITEMINFOW IMEMENUITEMINFO;
typedef PIMEMENUITEMINFOW PIMEMENUITEMINFO;
typedef NPIMEMENUITEMINFOW NPIMEMENUITEMINFO;
typedef LPIMEMENUITEMINFOW LPIMEMENUITEMINFO;
#else
typedef IMEMENUITEMINFOA IMEMENUITEMINFO;
typedef PIMEMENUITEMINFOA PIMEMENUITEMINFO;
typedef NPIMEMENUITEMINFOA NPIMEMENUITEMINFO;
typedef LPIMEMENUITEMINFOA LPIMEMENUITEMINFO;
#endif // UNICODE

typedef struct tagIMECHARPOSITION {
    DWORD       dwSize;
    DWORD       dwCharPos;
    POINT       pt;
    UINT        cLineHeight;
    RECT        rcDocument;
} IMECHARPOSITION, *PIMECHARPOSITION, NEAR *NPIMECHARPOSITION, FAR *LPIMECHARPOSITION;

typedef BOOL    (CALLBACK* IMCENUMPROC)(HIMC, LPARAM);

#endif /* WINVER >= 0x040A */

// prototype of IMM API

HKL  WINAPI ImmInstallIMEA(IN LPCSTR lpszIMEFileName, IN LPCSTR lpszLayoutText);
HKL  WINAPI ImmInstallIMEW(IN LPCWSTR lpszIMEFileName, IN LPCWSTR lpszLayoutText);
#ifdef UNICODE
#define ImmInstallIME  ImmInstallIMEW
#else
#define ImmInstallIME  ImmInstallIMEA
#endif // !UNICODE

HWND WINAPI ImmGetDefaultIMEWnd(IN HWND);

UINT WINAPI ImmGetDescriptionA(IN HKL, OUT LPSTR, IN UINT uBufLen);
UINT WINAPI ImmGetDescriptionW(IN HKL, OUT LPWSTR, IN UINT uBufLen);
#ifdef UNICODE
#define ImmGetDescription  ImmGetDescriptionW
#else
#define ImmGetDescription  ImmGetDescriptionA
#endif // !UNICODE

UINT WINAPI ImmGetIMEFileNameA(IN HKL, OUT LPSTR, IN UINT uBufLen);
UINT WINAPI ImmGetIMEFileNameW(IN HKL, OUT LPWSTR, IN UINT uBufLen);
#ifdef UNICODE
#define ImmGetIMEFileName  ImmGetIMEFileNameW
#else
#define ImmGetIMEFileName  ImmGetIMEFileNameA
#endif // !UNICODE

DWORD WINAPI ImmGetProperty(IN HKL, IN DWORD);

BOOL WINAPI ImmIsIME(IN HKL);

BOOL WINAPI ImmSimulateHotKey(IN HWND, IN DWORD);

HIMC WINAPI ImmCreateContext(void);
BOOL WINAPI ImmDestroyContext(IN HIMC);
HIMC WINAPI ImmGetContext(IN HWND);
BOOL WINAPI ImmReleaseContext(IN HWND, IN HIMC);
HIMC WINAPI ImmAssociateContext(IN HWND, IN HIMC);
#if (WINVER >= 0x040A)
BOOL WINAPI ImmAssociateContextEx(IN HWND, IN HIMC, IN DWORD);
#endif /* WINVER >= 0x040A */

LONG  WINAPI ImmGetCompositionStringA(IN HIMC, IN DWORD, OUT LPVOID, IN DWORD);
LONG  WINAPI ImmGetCompositionStringW(IN HIMC, IN DWORD, OUT LPVOID, IN DWORD);
#ifdef UNICODE
#define ImmGetCompositionString  ImmGetCompositionStringW
#else
#define ImmGetCompositionString  ImmGetCompositionStringA
#endif // !UNICODE

BOOL  WINAPI ImmSetCompositionStringA(IN HIMC, IN DWORD dwIndex, IN LPVOID lpComp, IN DWORD, IN LPVOID lpRead, IN DWORD);
BOOL  WINAPI ImmSetCompositionStringW(IN HIMC, IN DWORD dwIndex, IN LPVOID lpComp, IN DWORD, IN LPVOID lpRead, IN DWORD);
#ifdef UNICODE
#define ImmSetCompositionString  ImmSetCompositionStringW
#else
#define ImmSetCompositionString  ImmSetCompositionStringA
#endif // !UNICODE

DWORD WINAPI ImmGetCandidateListCountA(IN HIMC, OUT LPDWORD lpdwListCount);
DWORD WINAPI ImmGetCandidateListCountW(IN HIMC, OUT LPDWORD lpdwListCount);
#ifdef UNICODE
#define ImmGetCandidateListCount  ImmGetCandidateListCountW
#else
#define ImmGetCandidateListCount  ImmGetCandidateListCountA
#endif // !UNICODE

DWORD WINAPI ImmGetCandidateListA(IN HIMC, IN DWORD deIndex, OUT LPCANDIDATELIST, IN DWORD dwBufLen);
DWORD WINAPI ImmGetCandidateListW(IN HIMC, IN DWORD deIndex, OUT LPCANDIDATELIST, IN DWORD dwBufLen);
#ifdef UNICODE
#define ImmGetCandidateList  ImmGetCandidateListW
#else
#define ImmGetCandidateList  ImmGetCandidateListA
#endif // !UNICODE

DWORD WINAPI ImmGetGuideLineA(IN HIMC, IN DWORD dwIndex, OUT LPSTR, IN DWORD dwBufLen);
DWORD WINAPI ImmGetGuideLineW(IN HIMC, IN DWORD dwIndex, OUT LPWSTR, IN DWORD dwBufLen);
#ifdef UNICODE
#define ImmGetGuideLine  ImmGetGuideLineW
#else
#define ImmGetGuideLine  ImmGetGuideLineA
#endif // !UNICODE

BOOL WINAPI ImmGetConversionStatus(IN HIMC, OUT LPDWORD, OUT LPDWORD);
BOOL WINAPI ImmSetConversionStatus(IN HIMC, IN DWORD, IN DWORD);
BOOL WINAPI ImmGetOpenStatus(IN HIMC);
BOOL WINAPI ImmSetOpenStatus(IN HIMC, IN BOOL);

#if defined(_WINGDI_) && !defined(NOGDI)
BOOL WINAPI ImmGetCompositionFontA(IN HIMC, OUT LPLOGFONTA);
BOOL WINAPI ImmGetCompositionFontW(IN HIMC, OUT LPLOGFONTW);
#ifdef UNICODE
#define ImmGetCompositionFont  ImmGetCompositionFontW
#else
#define ImmGetCompositionFont  ImmGetCompositionFontA
#endif // !UNICODE

BOOL WINAPI ImmSetCompositionFontA(IN HIMC, IN LPLOGFONTA);
BOOL WINAPI ImmSetCompositionFontW(IN HIMC, IN LPLOGFONTW);
#ifdef UNICODE
#define ImmSetCompositionFont  ImmSetCompositionFontW
#else
#define ImmSetCompositionFont  ImmSetCompositionFontA
#endif // !UNICODE
#endif  // defined(_WINGDI_) && !defined(NOGDI)

BOOL    WINAPI ImmConfigureIMEA(IN HKL, IN HWND, IN DWORD, IN LPVOID);
BOOL    WINAPI ImmConfigureIMEW(IN HKL, IN HWND, IN DWORD, IN LPVOID);
#ifdef UNICODE
#define ImmConfigureIME  ImmConfigureIMEW
#else
#define ImmConfigureIME  ImmConfigureIMEA
#endif // !UNICODE

LRESULT WINAPI ImmEscapeA(IN HKL, IN HIMC, IN UINT, IN LPVOID);
LRESULT WINAPI ImmEscapeW(IN HKL, IN HIMC, IN UINT, IN LPVOID);
#ifdef UNICODE
#define ImmEscape  ImmEscapeW
#else
#define ImmEscape  ImmEscapeA
#endif // !UNICODE

DWORD   WINAPI ImmGetConversionListA(IN HKL, IN HIMC, IN LPCSTR, OUT LPCANDIDATELIST, IN DWORD dwBufLen, IN UINT uFlag);
DWORD   WINAPI ImmGetConversionListW(IN HKL, IN HIMC, IN LPCWSTR, OUT LPCANDIDATELIST, IN DWORD dwBufLen, IN UINT uFlag);
#ifdef UNICODE
#define ImmGetConversionList  ImmGetConversionListW
#else
#define ImmGetConversionList  ImmGetConversionListA
#endif // !UNICODE

BOOL    WINAPI ImmNotifyIME(IN HIMC, IN DWORD dwAction, IN DWORD dwIndex, IN DWORD dwValue);

BOOL WINAPI ImmGetStatusWindowPos(IN HIMC, OUT LPPOINT);
BOOL WINAPI ImmSetStatusWindowPos(IN HIMC, IN LPPOINT);
BOOL WINAPI ImmGetCompositionWindow(IN HIMC, OUT LPCOMPOSITIONFORM);
BOOL WINAPI ImmSetCompositionWindow(IN HIMC, IN LPCOMPOSITIONFORM);
BOOL WINAPI ImmGetCandidateWindow(IN HIMC, IN DWORD, OUT LPCANDIDATEFORM);
BOOL WINAPI ImmSetCandidateWindow(IN HIMC, IN LPCANDIDATEFORM);

BOOL WINAPI ImmIsUIMessageA(IN HWND, IN UINT, IN WPARAM, IN LPARAM);
BOOL WINAPI ImmIsUIMessageW(IN HWND, IN UINT, IN WPARAM, IN LPARAM);
#ifdef UNICODE
#define ImmIsUIMessage  ImmIsUIMessageW
#else
#define ImmIsUIMessage  ImmIsUIMessageA
#endif // !UNICODE


UINT WINAPI ImmGetVirtualKey(IN HWND);

typedef int (CALLBACK *REGISTERWORDENUMPROCA)(LPCSTR, DWORD, LPCSTR, LPVOID);
typedef int (CALLBACK *REGISTERWORDENUMPROCW)(LPCWSTR, DWORD, LPCWSTR, LPVOID);
#ifdef UNICODE
#define REGISTERWORDENUMPROC  REGISTERWORDENUMPROCW
#else
#define REGISTERWORDENUMPROC  REGISTERWORDENUMPROCA
#endif // !UNICODE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品在线免费观看| 久久99精品久久久久久国产越南| 韩国v欧美v亚洲v日本v| 一本久久a久久免费精品不卡| 亚洲精品在线三区| 日韩一区在线播放| 99久久精品国产导航| 日韩一区二区在线观看视频| 亚洲综合丁香婷婷六月香| 国产一区二区三区精品视频| 亚洲sss视频在线视频| 国产成人综合在线观看| 国产欧美1区2区3区| 成人性生交大片免费看在线播放| 欧美电影免费观看高清完整版在 | 日韩小视频在线观看专区| 亚洲国产日韩一级| 91精品国产91综合久久蜜臀| 日韩电影免费在线看| 26uuu精品一区二区| 成人免费观看av| 亚洲人一二三区| 在线成人小视频| 九九精品一区二区| 国产午夜亚洲精品理论片色戒| 懂色一区二区三区免费观看| 久久久久久夜精品精品免费| 成人在线一区二区三区| 亚洲激情av在线| 91精品一区二区三区在线观看| 免费观看在线色综合| 久久久综合激的五月天| 91免费小视频| 一区二区三区欧美在线观看| 欧美日韩精品欧美日韩精品一综合| 无码av免费一区二区三区试看| 欧美一级免费大片| 成人中文字幕在线| 曰韩精品一区二区| 国产亚洲成年网址在线观看| 欧美日本在线播放| 91小视频在线| 国产黄人亚洲片| 麻豆传媒一区二区三区| 伊人婷婷欧美激情| 国产精品卡一卡二| 精品三级在线观看| 欧美精品视频www在线观看| 成人黄色片在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 午夜精品福利视频网站| 丁香天五香天堂综合| 免费成人在线观看| 亚洲成人精品影院| 亚洲免费电影在线| 国产精品久久二区二区| 久久久噜噜噜久久人人看| 日韩精品专区在线| 欧美一级夜夜爽| 欧美亚洲自拍偷拍| 色婷婷综合激情| 99久久精品免费精品国产| 国产激情精品久久久第一区二区| 麻豆精品国产91久久久久久| 日韩av一二三| 三级影片在线观看欧美日韩一区二区| 亚洲视频在线一区观看| 国产精品传媒视频| 国产精品久久久久久妇女6080| 久久天天做天天爱综合色| 精品国产一区二区三区忘忧草 | 91精品综合久久久久久| 欧美性生活影院| 欧美午夜精品免费| 欧美撒尿777hd撒尿| 91黄色小视频| 欧美性猛交xxxx乱大交退制版| 91激情在线视频| 欧美午夜在线观看| 欧美日韩综合在线免费观看| 欧美猛男超大videosgay| 欧美三级中文字幕| 制服丝袜激情欧洲亚洲| 日韩久久久精品| 国产午夜精品一区二区| 最新国产成人在线观看| 亚洲视频一区在线观看| 偷拍一区二区三区| 日本人妖一区二区| 国产麻豆视频精品| 99精品桃花视频在线观看| 一本色道a无线码一区v| 欧美精品丝袜中出| 26uuu亚洲| 亚洲三级在线免费| 亚洲一区二区三区四区的 | 日韩美女视频在线| 国产色产综合色产在线视频| 中文欧美字幕免费| 一区二区三区在线高清| 日韩精品久久理论片| 精品一区中文字幕| 成人综合婷婷国产精品久久免费| 91亚洲精品久久久蜜桃网站| 欧美日韩日日夜夜| 精品入口麻豆88视频| 国产欧美一区二区三区鸳鸯浴| 国产精品久久久久久久裸模| 亚洲1区2区3区4区| 国产在线精品一区二区三区不卡 | 亚洲欧洲制服丝袜| 日韩不卡免费视频| 成人国产电影网| 欧美日韩国产综合视频在线观看| 精品国产一区二区三区忘忧草 | 亚洲国产成人tv| 国产在线播放一区| 欧美性xxxxx极品少妇| 精品国产电影一区二区| 亚洲精品国产一区二区精华液| 日本不卡在线视频| av一二三不卡影片| 欧美v亚洲v综合ⅴ国产v| 伊人色综合久久天天| 国产一区二区三区四| 一本到不卡精品视频在线观看| 日韩欧美的一区| 一区二区三区免费网站| 国产精品18久久久久久vr| 欧美日韩午夜精品| 亚洲日本一区二区| 国产精品一区在线观看乱码| 欧美日韩视频不卡| 中文字幕一区二区三区精华液| 久久精品久久精品| 欧美熟乱第一页| 亚洲欧美区自拍先锋| 国产成人免费视频网站高清观看视频| 欧美久久久久中文字幕| 亚洲视频一区二区免费在线观看| 久久99久国产精品黄毛片色诱| 欧美性生活久久| 亚洲女子a中天字幕| 国产在线不卡一卡二卡三卡四卡| 91麻豆精品国产无毒不卡在线观看| 亚洲精品欧美激情| 粉嫩av一区二区三区粉嫩| 亚洲精品一区二区三区蜜桃下载 | 亚洲综合免费观看高清完整版| 国产成人在线网站| 26uuu久久天堂性欧美| 麻豆91在线观看| 3atv在线一区二区三区| 香蕉成人伊视频在线观看| 欧美在线一区二区三区| 亚洲免费在线看| caoporn国产精品| 17c精品麻豆一区二区免费| 国产91精品欧美| 中文无字幕一区二区三区| 福利视频网站一区二区三区| 精品国精品国产| 国产在线播放一区二区三区| 久久久精品天堂| 丁香六月久久综合狠狠色| 国产欧美精品国产国产专区| 懂色av一区二区三区蜜臀| 国产亚洲欧美在线| 国产精品1区2区| 国产精品久久久久久久第一福利| 波多野结衣欧美| 中文字幕日韩av资源站| 色成年激情久久综合| 亚洲与欧洲av电影| 欧美日韩精品一区二区三区| 日本不卡一二三| 欧美电视剧在线观看完整版| 国产在线精品视频| 国产精品女主播av| 色婷婷狠狠综合| 亚洲va在线va天堂| 精品理论电影在线| 成人免费av资源| 一区二区三区在线影院| 91精品国产综合久久久久久久| 久久99精品久久久久久久久久久久 | 国产伦理精品不卡| 一色桃子久久精品亚洲| 欧美性大战久久| 精一区二区三区| 国产精品女同一区二区三区| 91蜜桃网址入口| 美女高潮久久久| 国产精品夫妻自拍| 欧美日韩一级二级| 懂色av一区二区夜夜嗨| 亚洲午夜精品久久久久久久久| 精品乱码亚洲一区二区不卡| 波多野结衣在线aⅴ中文字幕不卡| 亚洲福利视频导航|