procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  vBuffer: array[0..256] of Char;
  vConversionList: DWORD;
  S: string;
begin
  I := Screen.Imes.IndexOf('中文 (简体) - 微软拼音');
  if I < 0 then Exit;
  S := '你';
  I := Integer(Screen.Imes.Objects[I]);  vConversionList := ImmGetConversionList(I, 0, PChar(S), nil, 0, GCL_REVERSECONVERSION);
  if vConversionList <= 0 then Exit;
  vConversionList := ImmGetConversionList(I, 0, PChar(S), @vBuffer, vConversionList, GCL_REVERSECONVERSION);
  if vConversionList <= 0 then Exit;
  vBuffer[Byte(vBuffer[24]) + 1 * 2 + 1] := #0;
  S := '';
  for I := Byte(vBuffer[24]) to Byte(vBuffer[24]) + 1 * 2 do
    AppendStr(S, vBuffer[I]);
  Memo1.Lines.Add(S);
end;