Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add icon on file and folder to display upload status into mountpoint on Resana Secure #69

Open
Max-7 opened this issue Nov 16, 2022 · 2 comments

Comments

@Max-7
Copy link
Contributor

Max-7 commented Nov 16, 2022

No description provided.

@Max-7
Copy link
Contributor Author

Max-7 commented Dec 1, 2022

Results of investigation (see https://github.com/Max-7/icon_handler)

  • Build a DLL that implements the IShellIconOverlayIdentifier interface
    • GetOverlayInfo returns the icon
    • GetPriority returns a priority between 0 and 100
    • IsMemberOf returns S_OK if the icon should be displayed on the file, S_FALSE otherwise (if IsMemberOf only returns S_OK, then ALL files will have the icon)
  • Add a registry key in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ with the CLSID of the dll as a value
  • regsvr32 /n /i:user <dll_file>
  • Reboot

One DLL can only add one icon, so multiple DLLs will be necessary.

Left to do:

  • convert the current implementation in C++ to Rust
  • update the CI to build the DLLs
  • update the installer to create/remove the registry keys
  • define how the DLLs will communicate with Parsec to get the file status

@Max-7
Copy link
Contributor Author

Max-7 commented Dec 13, 2022

The DLLs will be build in C++ and packaged with the application (See Scille/parsec-cloud#3764).

Communication with Parsec will be done using virtual files on the mountpoint. By opening and reading the path of the file + ".parsec_entry_info", one will get information on a file (or a folder), in particular if the file or folder is synced. (See Scille/parsec-cloud#3765)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant