I made shell extension (implementing IContextMenu, IShellExtInit, IExtractIcon & IPersistFile) using ATL, “by the book”.
The funny thing is that all is good in some files-managers such as “Total Commander” & “Free Commander”, but completely fail in Windows’ Explorer:
When I right click on my registered file (say *.000) in TC (“Total Commander”), the extension works: I see it in my logs and in the context menu: the entry with its icon appear.
But if I use Win-Explorer, nothing happens! no log entry comes up, no evidence in the context menu – nothing! even a complete PC restart doesn’t help.
I of course registered the ShellEx\MyX\ContextMenuHandlers and ShellEx\IconHandlerkeys, as well as the Explorer’s ...\Shell Extensions\Approved\, and they all point to my CLSID.
I use Windows 7.
What do I miss here ?
@SevaTitov answered my question but as a comment, so for future references for anyone who stumbles upon this issue:
@SevaTitov:
There’s that thing, Registry Redirector, that when you’re in 32-bit program, it hides (“redirects”) the 64-bit reg-entries, and vice versa.
I was confused because in my 32-bit registry-viewer-app I could see those keys, but was unaware that I only see a part of the registry (the 64-bit part has to be seen with a 64-bit viewer like the default regedit.exe in a 64-bit Windows machine)