__VSFINDRESULT的值是否不正确?

时间:2010-07-08 02:46:12

标签: c# visual-studio-2010 visual-studio-sdk

我正在创建自定义Visual Studio编辑器,目前正在尝试启用查找和替换。

IVsFindTarget.Find方法中,它表示返回__VSFINDRESULT.Found,并且当它调用的查找和替换请求时,我假设__VSFINDRESULT.AndReplace标志。问题在于定义了AndReplace:

VSFR_AndReplace = -2147483648

但文件说:

  

与Found或   NOTFOUND

VSFR_AndReplace不是有效的uint。我怎么能归还两者的组合?

1 个答案:

答案 0 :(得分:1)

为了简洁起见,请尝试使用VSFR_Replaced(表示它已经是FoundReplaced的组合)。

至于有效的uint,您当然可以视为有效的uint。尽管十进制表示已签名,但请考虑基础表示。在二进制文件中,它是0b 11111111 11111111 10000000 00000000或十六进制的0xffffffff80000000。您可以忽略上面的两个单词,使其成为0x8000000。无论如何,因为它们被用作标志,所以你可以非常安全地忽略实际值,并执行以下操作:

(uint)(__VSFINDRESULT.VSFR_Found | __VSFINDRESULT.VSFR_AndReplace)