Coder Social home page Coder Social logo

Comments (14)

dwmkerr avatar dwmkerr commented on August 18, 2024

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.

hmemcpy avatar hmemcpy commented on August 18, 2024

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.

dwmkerr avatar dwmkerr commented on August 18, 2024

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.

dwmkerr avatar dwmkerr commented on August 18, 2024

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.

hmemcpy avatar hmemcpy commented on August 18, 2024

You're awesome! I'll pull this branch later tonight!

Thanks a lot!

from sharpshell.

hmemcpy avatar hmemcpy commented on August 18, 2024

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.

dwmkerr avatar dwmkerr commented on August 18, 2024

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.

dwmkerr avatar dwmkerr commented on August 18, 2024

@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.

hmemcpy avatar hmemcpy commented on August 18, 2024

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.

dwmkerr avatar dwmkerr commented on August 18, 2024

@hmemcpy Hi Igal, there's this issue:

#8

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.

zastrowm avatar zastrowm commented on August 18, 2024

Are namespace shell extensions currently supported, or are they currently in development?

from sharpshell.

nicolas-raoul avatar nicolas-raoul commented on August 18, 2024

@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.

SimplexAuctor avatar SimplexAuctor commented on August 18, 2024

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.

dwmkerr avatar dwmkerr commented on August 18, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.