- UID
- 7437
- 精华
- 积分
- 1095
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
发表于 2024-7-8 22:06:59
|
显示全部楼层
本帖最后由 tlwh163 于 2024-7-8 22:49 编辑
'候选词结构体的缓冲区
Dim CandListBuffer() As Byte
ReDim CandListBuffer(CandListSize - 1)
这个缓存区不管3721 多分配4字节 是不是就可以应对 dwStyle=IME_CAND_CODE And (CandListCount = 1) 的情况?
只要把最后的数据 向后移动4字节 然后把dwOffset(0)改成偏移 dwStyle改成IME_CAND_READ
n = ImmGetCandidateListA(hImc, 0, 0, 0)
If n Then m = malloc(n + SizeOf(DWORD))
If m Then
ImmGetCandidateListA(hImc, 0, m, n)
If m->dwStyle = IME_CAND_CODE AndAlso m->dwCount = 1 Then
memmove(@m->dwOffset(1), @m->dwOffset(0), n + SizeOf(DWORD) - SizeOf(CANDIDATELIST))
m->dwOffset(0) = SizeOf(CANDIDATELIST) : m->dwStyle = IME_CAND_READ
End If |
|