Share via

CldApi: Recommendation about shell extension capabilities via 'Desktop Bridge' (e.g. desktop3:CloudFilesContextMenus)

Stefan Angelov 26 Reputation points
2022-01-13T10:57:13.667+00:00

Greetings,

In the CloudMirror sample in Package.appmanifest of the packaging project we read:

    <desktop3:Extension Category="windows.cloudFiles">
          <desktop3:CloudFiles>
           ........
           <desktop3:CloudFilesContextMenus>
              <desktop3:Verb Id="Command1" Clsid="165cd069-d9c8-42b4-8e37-b6971afa4494" />
            </desktop3:CloudFilesContextMenus>
            ........
          </desktop3:CloudFiles>
      </desktop3:Extension>
   <com:Extension Category="windows.comServer">
       <com:ComServer>
        ......
        <com:ExeServer DisplayName="Cloud Mirror Command Handler" Executable="CloudMirror\CloudMirror.exe">
              <com:Class Id="165cd069-d9c8-42b4-8e37-b6971afa4494" />
        </com:ExeServer>
        ......
        </com:ComServer>
  </com:Extension>

It becomes obvious that objects that implement the respective COM interfaces are hosted inside the same process/executable which is also the storage provider (implements the CldApi callback methods).

In view of this, my question is whether this is the correct/recommended way to implement shell extensions for cloud storage providers or did the author of the sample did it like that for simplicity's sake?

I can see pros and cons to either implementing COM objects in the same process or in a separate one and am currently trying to make the best possible decision based on what I know and what I am finding out in the process of my investigations.

Any advice would be mostly appreciated!

Regards,
Stefan

Windows development | Windows API - Win32
0 comments No comments

Answer accepted by question author

Junjie Zhu - MSFT 21,746 Reputation points
2022-01-14T06:37:41.397+00:00

Hello,
Welcome to Microsoft Q&A!

The sample is for convenience, it is an early preview, and far from final.
Because there will be data processing in COM, so for the sake of the program fluency, I recommend implementing COM objects in the separate process.

Thank you.


If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.