Хорошо, во-первых, я увидел, что в ShellNativeMethods.SFGAO
был флаг, называемый SFGAO_COMPRESSED
. Это, кажется, на самом деле не появляется никогда, может быть, это устарело?
В противном случае я просто обманул и сделал следующее в ShellObjectFactory.cs:
ниже:
// Is this item a Folder?
bool isFolder = (sfgao & ShellNativeMethods.SFGAO.SFGAO_FOLDER) != 0;
Я добавил:
// Is this a compressed Folder?
bool isCompressedFolder = (itemType == ".zip");
А потом я заменил
else if (isFolder)
с
else if (isFolder && !isCompressedFolder)
Это полный взлом, но, похоже, он работает, поэтому, если у кого-то нет идеи получше, я буду придерживаться этого. Надеюсь, это поможет кому-то еще в будущем, сообщения в WindowsAPICodePack кажутся довольно редкими.