ImmGetCompositionString

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.

相關詞條

熱門詞條

聯絡我們