Home > Software engineering >  Coverage for help: about using IShellIconOverlayIdentifier icon
Coverage for help: about using IShellIconOverlayIdentifier icon

Time:09-28

Dear god,
Younger brother new to Windows programming, companies need to be in an open source project (owncloud) modify, used for your company's procedure (Panda), which involves the coverage modify the file icon,
Specific problem is: application loaded a OCOverlays_XX. The DLL file is used to add cover icon, I on the basis of the original application engineering, simply modify the corresponding UUID value, use the icon is also the name, function is achieved, but the company of the Panda and open-source owncloud cannot coexist, once the open two pieces of software, there is a software icon display Windows default icon,
And if I installed the first ownclou (feeling when the system is using owncloud loaded icon), and then install the Panda, this time the owncloud uninstalled, please corresponding these files back to the programming of the ICONS don't know, (feeling after download owncloud system can't find the icon, then please file, there is no corresponding icon in the side), and then restart the explorer was no problem, (feels like system from Panda lateral loaded icon),

The inside of the parentheses is the younger brother speculation of the individual, not confirmed, consult a great god can help explain what's the problem, provides the best solution,

CodePudding user response:

Compile two 32-bit and 64 - bit version of their registration

CodePudding user response:

There are two points: sometimes the registration or cancellation of registration, the system will not take effect immediately, because these components cover icon is loaded in the desktop startup, so generally want to see the effect, must want to restart the explorer process, in addition, covering the icon in the system maximum 15 at the same time, this is because the system design of a List View control, a 32-bit state, only the indexes of the two bytes used to record cover icon, the system itself has to take up a few, such as the shortcut of arrows, the shape of the hand icon on the Shared folder, etc., so give the number of users can use less, this leads to each program will grab overlay icon related items in the following registry keys below the top position, otherwise we can't see the effect:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIconOverlayIdentifiers

CodePudding user response:

Fyi:
 rem shut down Windows explorer 
Taskkill/f/im explorer. Exe
Rem cleaning system icon cache database
Attrib - h - s - r "\ % userprofile % AppData \ Local \ IconCache db"
Del/f "% userprofile % \ AppData \ Local \ IconCache db"
Attrib/s/d - h - s - r "\ % userprofile % AppData \ Local \ Microsoft \ \ Windows Explorer \ *", "
Del/f "% userprofile % \ AppData \ Local \ Microsoft \ \ Windows Explorer \ thumbcache_32 db"
Del/f "% userprofile % \ AppData \ Local \ Microsoft \ \ Windows Explorer \ thumbcache_96 db"
Del/f "% userprofile % \ AppData \ Local \ Microsoft \ \ Windows Explorer \ thumbcache_102 db"
Del/f "% userprofile % \ AppData \ Local \ Microsoft \ \ Windows Explorer \ thumbcache_256 db"
Del/f "% userprofile % \ AppData \ Local \ Microsoft \ \ Windows Explorer \ thumbcache_1024 db"
Del/f "% userprofile % \ AppData \ Local \ Microsoft \ \ Windows Explorer \ thumbcache_idx db"
Del/f "% userprofile % \ AppData \ Local \ Microsoft \ \ Windows Explorer \ thumbcache_sr db"
Rem cleaning system tray icon of memory
Echo y | reg delete "HKEY_CLASSES_ROOT \ Local Settings \ Software \ Microsoft \ Windows \ CurrentVersion \ TrayNotify"/v IconStreams
Echo y | reg delete "HKEY_CLASSES_ROOT \ Local Settings \ Software \ Microsoft \ Windows \ CurrentVersion \ TrayNotify"/v PastIconsStream
Rem restart Windows shell explorer
Start explorer

CodePudding user response:

The above said is wrong, is 1 byte is used to record covers icon index,
# define LVIS_OVERLAYMASK 0 x0f00//this is
# define LVIS_STATEIMAGEMASK 0 xf000

CodePudding user response:

reference zhao4zhong1 reply: 3/f
are for reference only:

From Windows Vista (6.0) % LocalAppData % system contains the environment variables, no need to use % userprofile % \ AppData \ Local,
  • Related