ImmGetCompositionString是一個編程函式,該函式功能為獲取信息的組成字元串。
基本介紹
- 外文名:ImmGetCompositionString
- 功能:獲取信息
- 類型:字元串
- 頭檔案:Imm.h
函式原型,參數,返回值,備註,代碼示例,需求,
函式原型
LONG ImmGetCompositionString(
HIMC hIMC,
DWORD dwIndex,
LPVOID lpBuf,
DWORD dwBufLen
);
參數
hIMC
[輸入]輸入上下文的句柄(輸入法句柄)如果HIMC是NULL,返回字元串的長度dwBufLen,則返回當前活動的視窗
dwIndex
[輸入]信息檢索索引。這個參數可以是指定的值在IMECompositionStringValues之一。對於每個值除了GCS_CURSORPOS和GCS_DELTASTART,功能所要求的資料複製到指定的緩衝區。該函式返回遊標和增量位置值低16位的返回值。
值 | 描述 |
---|---|
GCS_COMPATTR | 檢索或更新的組合物的屬性的字元串。 |
GCS_COMPCLAUSE | 檢索或更新條款信息的組合字元串。 |
GCS_COMPREADATTR | 檢索或更新當前組合物的讀取的字元串的屬性。 |
GCS_COMPREADCLAUSE | 檢索或更新條目信息的讀取字元串的組合字元串。 |
GCS_COMPREADSTR | 檢索或更新目前的組成讀取字元串。 |
GCS_COMPSTR | 檢索或更新目前的組成的字元串。 |
GCS_CURSORPOS | 檢索或更新組合字元串中的游標位置。 |
GCS_DELTASTART | 檢索或更新任何變化組合成的字元串的起始位置。 |
GCS_RESULTCLAUSE | 檢索結果字元串或更新條款信息。 |
GCS_RESULTREADCLAUSE | 檢索或更新條款信息的讀取字元串。 |
GCS_RESULTREADSTR | 檢索或更新讀取字元串。 |
GCS_RESULTSTR | 檢索或更新的字元串的組合物的結果。 |
lpBuf
[輸出]接受這個信息的緩衝區
dwBufLen
[輸入]緩衝區的大小,以位元組為單位。如果為零,ImmGetCompositionString的函式返回需要的存放信息的緩衝區大小
返回值
複製到目標緩衝區的位元組數,如果dwBufLen是零,緩衝區大小(以位元組為單位),需要得到所有要求的信息表示成功。 IMM_ERROR_NODATA表明輸入上下文中的組合物的數據是沒有準備好。 IMM_ERROR_GENERAL表示,一般檢測到錯誤IME。
備註
應用程式調用此函式回響的WM_IME_COMPOSITION或WM_IME_STARTCOMPOSITION的訊息。 IMM刪除的信息,應用程式調用ImmReleaseContext函式。
代碼示例
BOOL GetCompositionString( HWND hWnd, LPTSTR *pszCompStr, UINT *cchCompStr )
{
ASSERT(hWnd);
DWORD dwBufLen = NULL;
HIMC hImc = ImmGetContext(hWnd);
if (!hImc)
{
DEBUGMSG(1, (_T("無法獲取當前輸入上下文的句柄(無法獲取當前輸入法句柄).\r\n")));
return FALSE;
}
// 確定需要多大的空間來存儲組合字元串.
if ( (dwBufLen = ImmGetCompositionString( hImc, GCS_COMPSTR, NULL, 0l)) < 0 )
{
DEBUGMSG(1, (_T("沒有字元串.\r\n")));
return FALSE;
}
if ( *cchCompStr < (dwBufLen/sizeof(TCHAR)) + 1 )
{
DEBUGMSG(1, (_T("pszCompStr需要 %i的空間.\r\n"),
(dwBufLen/sizeof(TCHAR)) + 1));
*cchCompStr = (dwBufLen/sizeof(TCHAR)) + 1;
return FALSE;
}
ImmGetCompositionString( hImc, GCS_COMPSTR, *pszCompStr, dwBufLen );
(*pszCompStr)[dwBufLen] = NULL;
return TRUE;
}
需求
OS Versions: Windows CE .NET 4.0 and later.
頭檔案: Imm.h.
程式庫: Coreimm.lib.