示例#1
0
        public static string CurrentCompStr(IntPtr handle)
        {
            int    dwIndex = 8;
            IntPtr context = InteropWindow.ImmGetContext(handle);

            try
            {
                int compositionStringW = InteropWindow.ImmGetCompositionStringW(context, dwIndex, (byte[])null, 0);
                if (compositionStringW <= 0)
                {
                    return(string.Empty);
                }
                byte[] numArray = new byte[compositionStringW];
                InteropWindow.ImmGetCompositionStringW(context, dwIndex, numArray, compositionStringW);
                return(Encoding.Unicode.GetString(numArray));
            }
            finally
            {
                InteropWindow.ImmReleaseContext(handle, context);
            }
        }