Build a custom Sync root and namespace extension for windows
Budget: £750 – £1,500 GBP
Background:
We have created our own drive and we are looking for the ability to open Microsoft office files and for them to open the document within O365 with CoAuth (ability for two M365 users to modify at the same time).
Read attached word document before applying!
Looking for:
Strong c++, shell/namespace extension work preferable, Familiar with Microsoft 365 and MS Office.
You will need a working M365 tenancy with MSOffice installed and licenced – trial can be used.
Objective:
1. Implement the Sync Root from the sample app and use it as a basis
2. Implementing: Integrating with file picker contracts (Windows Runtime apps) - Windows app development | Microsoft Docs
a. Ensure
3. Implementing: Integrate with Office from Windows universal apps | Microsoft Docs
a. May need to implement Integrate a Cloud Storage Provider - Win32 apps | Microsoft Docs || Integrate a Cloud Storage Provider - Win32 apps | Microsoft Docs
b. Ensure that when we open a word document from the sync root on the machine and you click on “Share” (top right) it shows the share link
Ultimate aim here, when I open Document.docx -> it will actually open a document directly in a users OneDrive. This should be seamless, using a flag we should be able to not do this and seamless fallback to the local copy of the file. When it is NOT falling back it will open and when clicking the “Share” it will show the screen to share a link and not the option to save in OneDrive. If you also open up the copy via the web browser in OneDrive at the same time as locally you will see two people modifying the same document.
Information:
First link:
https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-win32-sync-clients
This describes the behaviour we want (kinda)
Unless your sync client is registered as a sync root provider, Office will treat files in your sync folder the way that it treats regular local files. This means that Office will provide "move to OneDrive" options for users when they attempt to share the document. To avoid this for files you sync, you must register as a sync root provider. For information about how to register, see Integrate a Cloud Storage Provider.
This takes me to this link
https://docs.microsoft.com/en-us/windows/win32/shell/integrate-cloud-storage?redirectedfrom=MSDN
and
https://docs.microsoft.com/en-us/windows/win32/cfapi/build-a-cloud-file-sync-engine
So, I downloaded and compiled the sample: https://github.com/Microsoft/Windows-classic-samples/tree/main/Samples/CloudMirror and just got it running against c:\mirror (need to run the package project).
File picker is possible the answer to getting the remote behaviour
https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh465174(v=win.10)
Reading this:
Integrate with Office from Windows universal apps | Microsoft Docs
It says this:
“To open a file from your app in Office, we recommend that you use LaunchFileAsync() to launch the file. We don't recommend that you use LaunchUriAsync() to launch the file because that will cause the application registered for the URI scheme to launch (the browser) instead of Office. Although LaunchUriAsync() with the LauncherOptions.ContentType() option can invoke Office, in this case the file opened is marked as temporary and is read-only in Office.“
I strongly believe this is the way we need to implement what we want using the Sync Root Sample Proj
1. Implement a file picker contract / expando properties so that when office loads it is actually launching the remote version.
a. It seems to suggest about making updates to the local as well as remote
b. There is a sample project: File picker provider sample - Code Samples | Microsoft Docs
c. Some interesting bits I found here: File access and permissions (Windows Runtime apps) - Windows app development | Microsoft Docs
a. It suggests here about getting file from remote system – I guess as soon as we do this to an O365 url then office will take over
We have created our own drive and we are looking for the ability to open Microsoft office files and for them to open the document within O365 with CoAuth (ability for two M365 users to modify at the same time).
Read attached word document before applying!
Looking for:
Strong c++, shell/namespace extension work preferable, Familiar with Microsoft 365 and MS Office.
You will need a working M365 tenancy with MSOffice installed and licenced – trial can be used.
Objective:
1. Implement the Sync Root from the sample app and use it as a basis
2. Implementing: Integrating with file picker contracts (Windows Runtime apps) - Windows app development | Microsoft Docs
a. Ensure
3. Implementing: Integrate with Office from Windows universal apps | Microsoft Docs
a. May need to implement Integrate a Cloud Storage Provider - Win32 apps | Microsoft Docs || Integrate a Cloud Storage Provider - Win32 apps | Microsoft Docs
b. Ensure that when we open a word document from the sync root on the machine and you click on “Share” (top right) it shows the share link
Ultimate aim here, when I open Document.docx -> it will actually open a document directly in a users OneDrive. This should be seamless, using a flag we should be able to not do this and seamless fallback to the local copy of the file. When it is NOT falling back it will open and when clicking the “Share” it will show the screen to share a link and not the option to save in OneDrive. If you also open up the copy via the web browser in OneDrive at the same time as locally you will see two people modifying the same document.
Information:
First link:
https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-win32-sync-clients
This describes the behaviour we want (kinda)
Unless your sync client is registered as a sync root provider, Office will treat files in your sync folder the way that it treats regular local files. This means that Office will provide "move to OneDrive" options for users when they attempt to share the document. To avoid this for files you sync, you must register as a sync root provider. For information about how to register, see Integrate a Cloud Storage Provider.
This takes me to this link
https://docs.microsoft.com/en-us/windows/win32/shell/integrate-cloud-storage?redirectedfrom=MSDN
and
https://docs.microsoft.com/en-us/windows/win32/cfapi/build-a-cloud-file-sync-engine
So, I downloaded and compiled the sample: https://github.com/Microsoft/Windows-classic-samples/tree/main/Samples/CloudMirror and just got it running against c:\mirror (need to run the package project).
File picker is possible the answer to getting the remote behaviour
https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh465174(v=win.10)
Reading this:
Integrate with Office from Windows universal apps | Microsoft Docs
It says this:
“To open a file from your app in Office, we recommend that you use LaunchFileAsync() to launch the file. We don't recommend that you use LaunchUriAsync() to launch the file because that will cause the application registered for the URI scheme to launch (the browser) instead of Office. Although LaunchUriAsync() with the LauncherOptions.ContentType() option can invoke Office, in this case the file opened is marked as temporary and is read-only in Office.“
I strongly believe this is the way we need to implement what we want using the Sync Root Sample Proj
1. Implement a file picker contract / expando properties so that when office loads it is actually launching the remote version.
a. It seems to suggest about making updates to the local as well as remote
b. There is a sample project: File picker provider sample - Code Samples | Microsoft Docs
c. Some interesting bits I found here: File access and permissions (Windows Runtime apps) - Windows app development | Microsoft Docs
a. It suggests here about getting file from remote system – I guess as soon as we do this to an O365 url then office will take over