Comments (14)
Hi @hmemcpy thanks for posting - yes you're absolutely right, it's a shell namespace extension you need and an implementation of a server that exposes IShellFolder
- a pull request would be great cause I'd love to implement this, I might have a bash too, I can at the very least create a branch for you to work from with the basics there - would that help?
from sharpshell.
Hi Dave,
A branch would be great :)
I already started poking around, it seems you already had a placeholder for a ShellNamespaceExtension
, but it doesn't seem to be implemented yet.
From my own looking around, it also seems that you don't have an interop wrapper for IShellFolder
of your own (there's one in the Apex.WinForms dll, though). I was wondering if you created those yourself, or did you "borrow" them from other libraries? :)
I'm asking, because I found some (old) samples of shell namespace extensions in managed code, and they use other things too, like IPersistFolder
, IShellFolder2
and one even uses something called IRemoteComputer
. I found some of those definitions in Windows API Code pack, but they are marked internal (so I can't use the library directly, maybe if I copied the definitions?)
from sharpshell.
Hi Igal,
I've created a branch named d/SharpNamespaceExtension, the documentation I'm going to follow is at:
http://msdn.microsoft.com/en-us/library/windows/desktop/cc144093.aspx
I'll create the interfaces first, the way I do this now is to write them out by hand, copying them directly from the win32 and mapping them member by member, this'll be a good start at least for now...
from sharpshell.
The first set of interfaces are in, the next step will be to create a component that handles PIDL management. I've got a couple of ideas for what to expose to the consumer for this code, more uploads will follow!
from sharpshell.
You're awesome! I'll pull this branch later tonight!
Thanks a lot!
from sharpshell.
Thanks again for working on this! If there's anything I can do, please let me know.
Perhaps you could open a bunch of issues to follow?
from sharpshell.
I'll let you know! I'm making good progress on the core interfaces, basically I'm going to split it into two parts - the first will work only with the standard shell folder view (i.e. folders and files with customisable icons) with the contents of the folders provided by the extension. Then I'll hand it over and you can see if it works. The next part is to offer the full functionality for creating a fully customised UI, that'll be a bit more complex, but at least by then the core functionality for handling the folder items, PIDLs etc will be done. Will keep you posted ;)
from sharpshell.
@hmemcpy Hi Igal, I've made a huge amount of progress with the shell namespace extensions and in fact there's enough there now to split up some of the work - if you have any time to take a look at a couple of things, please let me know!
from sharpshell.
Wow, I've noticed! Thanks so much :)
I'll take a look at it. Do you have some todos or issues for me to look at?
from sharpshell.
@hmemcpy Hi Igal, there's this issue:
I've created a shell debugger, which is just a window that uses an IShellBrowser and IShellView to show the same as explorer, but in process meaning that when the code for the namespace extensions is ready to debug it we'll be able to debug it fully. I can't get the browser to work ATM, the details are in the issue - this is the first blocker that's stopping me from finishing the namespace extension implementations if you're interested - it may well be due to incorrectly marshalled interfaces, this is the one to look it if you want to have a bash helping move this forwards!
from sharpshell.
Are namespace shell extensions currently supported, or are they currently in development?
from sharpshell.
@zastrowm This feature is marked for release in "Release 2.2" (see "Milestone" on the right).
The current version (seen in https://github.com/dwmkerr/sharpshell/blob/master/SharpShell/SharedAssemblyInfo.cs) is 2.1
So I guess that this feature is not considered released yet, and so not officially supported yet.
In his comment above, dwmkerr explains what is the blocking issue, and even how you can help with it :-)
Cheers!
from sharpshell.
Not sure if this is the best place to post this, but I would like to add a comment on one of the namespace extension issues.
In DefaultNamespaceFolderView.cs the call to Shell32.SHCreateShellFolderView is marked as failing. This is true, but in my case it works the first time after explorer starts. It fails every time after that. The columns I define do not show up either way.
This makes me think the root issue could be downstream of this call, but there doesn't seem to be much code that executes after it to have an issue.
I'm not sure if this helps, but perhaps this will be helpful to someone more familiar with the code.
from sharpshell.
Namespace extensions have been updated recently, might be worth revisiting this at some stage. Until then, I'm closing this to focus on recent issues, please re-open if needed.
from sharpshell.
Related Issues (20)
- Explorer eventually crashes after many manu items with images are poped
- Setting position of menu item in Context menu for Windows 11
- Prevent user go back to parent in explorer
- Creating folder in Windows Explorer like DropBox or OneDrive, Box etc
- Possible to hide items in existing shell context menu
- Nuget package is not updated since 3 years.
- doesnt work with windows 11 22624 HOT 7
- Feature: Custom archive file browsing within Explorer
- SRM gives weird results HOT 3
- Click handler is never invoked in shell context menu
- ServerRegistrationManager class not mentioned in docs/tutorials? HOT 2
- How to add Context Menu in Window 11?
- Question: How to get DesktopView to access and move desktop icons
- DeskBand is not working on Win 11 HOT 3
- Implentation of a custom option in the windows 11 root context menu
- Preview handler steals focus from Explorer window HOT 5
- ContextMenu crash when the second-level menu have icon
- Shell extension menu item doesn't appear in Win11/Win10 HOT 1
- (64bit assembley) File " " is not a sharpshell server.
- Adding custom icons to files on desktop crashes explorer.exe
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sharpshell.