在用MFC建立Control时,原来的参数类型BOOL没有了,增加了Variant_BOOL,但是用这个类型传递参数时,向控件传递是正常的,从控件获得则在任何情况下都得到True,我跟踪过代码,发现Variant_BOOL是以两个字节存储的,控件向接口返回参数时放入Stack的是两个是字节,可是接口的中间过程从Stack读取数据时按VT_BOOL读取,也就是4个字节,这样导致高字不是传递的参数,几乎所有情况下都得到True。
假如把阐述类型改为BOOL,这实际上只是int类型,所有参数得上传递都正常了,但是这种修改必须自己进行,因为现在不支持BOOL类型的参数了,不过改过来是可以正常工作的。