Hey Stefan, How is the Windows Explorer Integration coming? Did you make any progress?
Cheers, Philipp On Fri, May 27, 2011 at 1:16 PM, Philipp Heckel <[email protected]> wrote: > Hey everyone, > > I already sent his information to Stefan yesterday, but I think it > might be interesting for other potential Mac and Windows version > makers: > > ----------- snip ---------- > The core thing that's missing for the Windows version is the > integration in the Windows Explorer -- so the little blue and green > icons that indicate that something is going on in the background. On > Linux, I could just use the GPL'd Dropbox extension for the linux file > manager Nautilus, -- on Windows, this extension has to be coded from > scratch. > > The Windows Explorer extension must be written in C or C++ I think. > Well there is an API for it, and I have really no idea how to do it, > because I have no idea how to write proper code in C ... > > Here are a little more details (in case you're interested): > > The basic communication between Windows explorer and Syncany should be > like this: > WinExplorer "Plugin"/"Handler" <----------TCP Socket---------> Syncany Server > > ^^ This is how the Linux version works, and how the Windows/Mac > version should therefore also work. > > For that to work, you have to: > 1) add a couple of registry keys (= for each overlay icon one key, i. > one for "Up-to-date", one for "Syncing" and one for "conflict") > 2) implement three Explorer API methods: GetOverlayHandler, > GetPriority und IsMemberOf (see [1] for details) > > IsMemberOf checks for every file that is displayed in the Explorer, > whether or not this file displays a certain overlay icon, i.e it > checks > 1) whether file X is member of the group "Up-to-date" > 2) whether file X is member of the group "Syncing" > 3) and so on ... > > As you can see this is quite inefficient, but that's how Microsoft does it... > > Here is the MSDN entry of Microsoft: > [1] http://msdn.microsoft.com/en-us/library/cc144123%28v=vs.85%29.aspx > > And here is a complete implementation of TortoiseSVN: > http://codesearch.google.com/codesearch/p?hl=en#XJa9F1p-bAg/trunk/src/TortoiseShell/IconOverlay.cpp&q=IShellIconOverlayIdentifier%20tortoise%20ismemberof&sa=N&cd=2&ct=rc > > A sample communication between the Syncany server and the Explorer > plugin would look like this: > CLIENT > get_emblems > CLIENT > path <tab> C:\Users\username\Syncany-Folder\ > File12.jpg > CLIENT > done > SERVER < ok > SERVER < emblems <tab> syncing > SERVER < done > > Find attached a small PHP script that demonstrates how the > communication works (on linux -- but i guess the windows version works > similarly) > ----------- snip ---------- > > Cheers, > Philipp > > > On Fri, May 27, 2011 at 9:00 AM, Stefan Mai <[email protected]> wrote: >> All, >> I'm working on a Windows port of Syncany, starting with the shell extension >> then moving on to other parts of the code. If anyone is interested in >> helping or has some free cycles for the effort, let me know. >> Thanks, >> Stefan >> -- >> Mailing list: https://launchpad.net/~syncany-team >> Post to : [email protected] >> Unsubscribe : https://launchpad.net/~syncany-team >> More help : https://help.launchpad.net/ListHelp >> >> > -- Mailing list: https://launchpad.net/~syncany-team Post to : [email protected] Unsubscribe : https://launchpad.net/~syncany-team More help : https://help.launchpad.net/ListHelp

