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

684
user1580348

У меня есть папка, которая отображается в проводнике Windows как:
Значение IconIndex -101 в desktop.ini, указывающее на второй значок в DLL?

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

[.ShellClassInfo] InfoTip=@Shell32.dll,-12688 IconFile=%SystemRoot%\system32\mydocs.dll IconIndex=-101 

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

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

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

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

2

1 ответ на вопрос

2
Muffin

The negative IconIndex refers to the inverse of the Resource ID.

In your case, the icon used has a resource ID: 101 and therefore it is shown as -101. After checking my own mydocs.dll, It shows that the resource ID is 101 for the icon you displayed and resource ID: 100 for the first icon (folder with document).

Является ли это общим и НАДЕЖНЫМ правилом, что идентификаторы ресурсов в desktop.ini всегда начинают считать с `100`? user1580348 9 лет назад 0
@ user1580348 Это * не * надежное правило. Это зависит от того, как разработчики написали файл ресурса для приложения при создании приложения. См. [Ресурс ICON] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa381018%28v=vs.85%29.aspx) для получения дополнительной информации. * ResourceID * - это «Уникальное имя или 16-разрядное целое число без знака, идентифицирующее ресурс». DavidPostill 9 лет назад 2