__VSFINDRESULT имеет неверное значение? - PullRequest
0 голосов
/ 08 июля 2010

Я создаю собственный редактор Visual Studio и в настоящее время пытаюсь включить поиск и замену.

В методе IVsFindTarget.Find он говорит, что должен возвращать __VSFINDRESULT.Found, и я предполагаю, что __VSFINDRESULT.AndReplace отмечает, когда вызывается запрос на поиск и замену. Проблема в том, что AndReplace определено:

VSFR_AndReplace = -2147483648

Но в документации сказано:

Возвращается в сочетании с найденным или NotFound

VSFR_AndReplace не является допустимой uint. Как я могу вернуть комбинацию из двух?

1 Ответ

1 голос
/ 08 июля 2010

Для краткости попробуйте просто использовать VSFR_Replaced (что говорит о том, что это уже комбинация Found и Replaced).

Что касается действительного uint, вы, безусловно, можете рассматривать как действительный uint.Даже если десятичное представление подписано, рассмотрим базовое представление.В двоичном коде это 0b 11111111 11111111 10000000 00000000 или 0xffffffff80000000 в шестнадцатеричном формате.Вы можете просто игнорировать два верхних слова, делая это 0x8000000.В любом случае, поскольку они используются в качестве флагов, вы можете в любом случае просто проигнорировать фактическое значение и сделать что-то вроде:

(uint)(__VSFINDRESULT.VSFR_Found | __VSFINDRESULT.VSFR_AndReplace)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...