multiple shell integrations in one DLL?

Mar 11, 2015 at 5:37 PM
Have you tested having multiple extensions in one class-library?

I'm using VS2010 with .Net4 and created and tested an overlay icon extension. It worked fine.

I "UnRegistered" and "Uninstalled" that with ServerManager. Then I added a second class to implement a custom context menu-item. Rebuilt the project.

I re-registered both classes (in x86 and x64). For whatever reason only the menu-item shows up now. I never see the icon overlay appear.

I'm considering adding log4net to the project to check on what's going on, but don't want to bloat the project, nor kill overall explorer performance.

I didn't see a lot of useful info launching a shell in ServerManager (win 8 x64), but I can try testing that way again.

Interested in any tips/tricks/options here!

Thanks,
AJ
Mar 11, 2015 at 7:09 PM
Hey Aweber,

I just tested multiple registration inside the same DLL - it works.

I tested it with 2 different SharpInfoTipHandlers:

One for the display of a tooltip with "B" for ".txt"-files.
One for the display of a tooltip with "A" for directories.

Works fine for me
(.NET 4.5, VS 2013 CE, Any CPU, Debug).

Did you try tracing the registraion of the SRM?


Mfg.

Countryen
Mar 11, 2015 at 8:15 PM
I added in log4net (I can back it out if I need to).

It seems to be calling my classes, but something's amiss when it checks a registry value for my files. Looking into why that's not working now. Could be an issue on my side.

BTW: Do you know of any details on how Explorer (window) starts-up and whether I could be impacting that startup/load time with my two extensions (which shouldn't be doing anything at startup, really)? It could be just my imagination, but when the dll is unloaded, explorer window pops-up almost instantaneously. When I have my extension loaded and registered, it takes a bit more time -- a very visible more time to launch.

Thanks for the reply. Appreciate your time.

-AJ
Mar 12, 2015 at 10:53 PM
Hey Aweber,

Sad to hear it's still not working for you.
Maybe you still have some other extension installed that blocks yours?

Did you observe the registry entries?

For your last question:

I guess it would. As your extension get's loaded (and cached) whenever you start your explorer (if not the explorer would need time to load the implementation of the shellex on the fly, what would be more of a time-problem).
To be remarkable slow (when not using a very old or slow system) it would have to be a big extension (or big data transfer) for it to load long, wouldn't it?
Maybe it hast to resolve every reference your DLL has.


Also you can't recompile or change your DLLs when registered (and I even have to restart explorer.exe to even touch my dlls).

For me there were never lack of speed when I installed my servers - Windows 7 'tough.


Hope your problem is solved soon.


Countryen