← Back to team overview

syncany-team team mailing list archive

Re: Windows Port

 

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
<philipp.heckel@xxxxxxxxx> 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 <ubuntu@xxxxxxxxxxxxx> 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     : syncany-team@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~syncany-team
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>


References