Значение IconIndex -101 в desktop.ini указывает на второй значок в DLL?

Значение IconIndex -101 в desktop.ini указывает на второй значок в DLL?

У меня есть папка, которая отображается в проводнике Windows как:
введите описание изображения здесь

Внутри этой папки скрытый файл desktop.ini имеет следующее содержимое:

[.ShellClassInfo]
[email protected],-12688
IconFile=%SystemRoot%\system32\mydocs.dll
IconIndex=-101

На самом деле это mydocs.dllсодержит именноДВАиконы, гдевторойодин — это значок, используемый проводником Windows для отображения указанной выше папки.

Так разве последняя строка содержимого desktop.ini не должна быть IconIndex=1(предположим, что Windows начинает отсчет с 0) вместо IconIndex=-101?

Я пытался интерпретировать -101значение как двоичное, шестнадцатеричное, восьмеричное, но ни одно из них не преобразовывалось в число, которое представляло бы второй значок.

Итак, как же -101значение указывает на ВТОРОЙ значок в mydocs.dll?

решение1

Отрицательное значение IconIndex относится к обратному значениюИдентификатор ресурса. Видетьэтот блог разработчиков Microsoft:

В Windows 95 функция ExtractIcon была улучшена таким образом, что теперь можно было также указать значок по его идентификатору ресурса, передав его отрицательное значение в качестве индекса значка.

Смотрите такжеДокументация Майкрософт.

В вашем случае используемый значок имеет идентификатор ресурса:101и поэтому он показан как-101. После проверки моего собственного mydocs.dll, он показывает, что идентификатор ресурса равен 101 для отображаемого вами значка и идентификатор ресурса: 100 для первого значка (папка с документом).

Связанный контент