测试环境:
Microsoft Windows [版本 10.0.19045.4529]
微软拼音 学学习习
本帖最后由 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
页:
1
[2]