Skip to content

Commit f732d22

Browse files
committed
v4.0.10312.0-Beta
1 parent f5a877d commit f732d22

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1148
-255
lines changed

Common/Common.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
<Description>Contains functionality common for all Virtual Drive samples, both for Windows and macOS.</Description>
99
</PropertyGroup>
1010
<ItemGroup>
11-
<PackageReference Include="ITHit.FileSystem" Version="4.0.10295.0-Beta" />
11+
<PackageReference Include="ITHit.FileSystem" Version="4.0.10312.0-Beta" />
1212
</ItemGroup>
1313
</Project>
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
4-
<CsWinRTWindowsMetadata>10.0.19041.0</CsWinRTWindowsMetadata>
3+
<TargetFramework>net5.0-windows10.0.18362.0</TargetFramework>
4+
<CsWinRTWindowsMetadata>10.0.18362.0</CsWinRTWindowsMetadata>
55
<Description>Contains functionality common for all Windows Virtual Drive samples.</Description>
66
<Authors>IT Hit LTD.</Authors>
77
<Product>IT Hit User File System</Product>
@@ -12,7 +12,7 @@
1212
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="5.0.0" />
1313
</ItemGroup>
1414
<ItemGroup>
15-
<PackageReference Include="ITHit.FileSystem.Windows" Version="4.0.10295.0-Beta" />
15+
<PackageReference Include="ITHit.FileSystem.Windows" Version="4.0.10312.0-Beta" />
1616
<ProjectReference Include="..\..\Common\Common.csproj" />
1717
</ItemGroup>
1818
</Project>

Windows/UserFileSystemSamples.sln

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VirtualDrive", "VirtualDriv
1717
EndProject
1818
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VirtualDrive", "VirtualDrive\VirtualDrive\VirtualDrive.csproj", "{648FB01F-0C4A-409E-A48A-E6722F626AB8}"
1919
EndProject
20-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VirtualDrive.ThumbnailProvider", "VirtualDrive\VirtualDrive.ThumbnailProvider\VirtualDrive.ThumbnailProvider.csproj", "{1E765516-497B-4546-8C38-DB452915ACBF}"
20+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VirtualDrive.ShellExtension", "VirtualDrive\VirtualDrive.ShellExtension\VirtualDrive.ShellExtension.csproj", "{1E765516-497B-4546-8C38-DB452915ACBF}"
2121
EndProject
2222
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VirtualFileSystem", "VirtualFileSystem\VirtualFileSystem.csproj", "{06E5D212-CAD4-4880-832D-69D8D69B8E3D}"
2323
EndProject
2424
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "VirtualDrive.Package", "VirtualDrive\VirtualDrive.Package\VirtualDrive.Package.wapproj", "{9CC25823-7D6C-4AAA-95A0-EE0514CCABD9}"
2525
EndProject
26+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VirtualDrive.Rpc", "VirtualDrive\VirtualDrive.Rpc\VirtualDrive.Rpc.csproj", "{8AF00927-2B21-4D1D-8767-73F025D73AF3}"
27+
EndProject
2628
Global
2729
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2830
Debug|Any CPU = Debug|Any CPU
@@ -205,6 +207,26 @@ Global
205207
{9CC25823-7D6C-4AAA-95A0-EE0514CCABD9}.Release|x86.ActiveCfg = Release|x86
206208
{9CC25823-7D6C-4AAA-95A0-EE0514CCABD9}.Release|x86.Build.0 = Release|x86
207209
{9CC25823-7D6C-4AAA-95A0-EE0514CCABD9}.Release|x86.Deploy.0 = Release|x86
210+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
211+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
212+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|ARM.ActiveCfg = Debug|Any CPU
213+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|ARM.Build.0 = Debug|Any CPU
214+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|ARM64.ActiveCfg = Debug|Any CPU
215+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|ARM64.Build.0 = Debug|Any CPU
216+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|x64.ActiveCfg = Debug|Any CPU
217+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|x64.Build.0 = Debug|Any CPU
218+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|x86.ActiveCfg = Debug|Any CPU
219+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Debug|x86.Build.0 = Debug|Any CPU
220+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
221+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|Any CPU.Build.0 = Release|Any CPU
222+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|ARM.ActiveCfg = Release|Any CPU
223+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|ARM.Build.0 = Release|Any CPU
224+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|ARM64.ActiveCfg = Release|Any CPU
225+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|ARM64.Build.0 = Release|Any CPU
226+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|x64.ActiveCfg = Release|Any CPU
227+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|x64.Build.0 = Release|Any CPU
228+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|x86.ActiveCfg = Release|Any CPU
229+
{8AF00927-2B21-4D1D-8767-73F025D73AF3}.Release|x86.Build.0 = Release|Any CPU
208230
EndGlobalSection
209231
GlobalSection(SolutionProperties) = preSolution
210232
HideSolutionNode = FALSE
@@ -215,6 +237,7 @@ Global
215237
{648FB01F-0C4A-409E-A48A-E6722F626AB8} = {CAE8E8A6-2721-4C90-BCD9-F4B03C3D8F13}
216238
{1E765516-497B-4546-8C38-DB452915ACBF} = {CAE8E8A6-2721-4C90-BCD9-F4B03C3D8F13}
217239
{9CC25823-7D6C-4AAA-95A0-EE0514CCABD9} = {CAE8E8A6-2721-4C90-BCD9-F4B03C3D8F13}
240+
{8AF00927-2B21-4D1D-8767-73F025D73AF3} = {CAE8E8A6-2721-4C90-BCD9-F4B03C3D8F13}
218241
EndGlobalSection
219242
GlobalSection(ExtensibilityGlobals) = postSolution
220243
SolutionGuid = {740A716A-38A7-46BC-A21F-18336D0023B7}

Windows/VirtualDrive/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,18 @@
1919
<h2 class="heading-link" id="nav_runningthesample">Running the Sample<a class="list-link d-inline" href="https://www.userfilesystem.com/examples/virtual_file_system/#nav_runningthesample"></a></h2>
2020
<p>To run the sample open the project in Visual Studio and run the project in debug mode. When starting in the debug mode, it will automatically create a folder in which the virtual file system will reside, register the virtual drive with the platform and then open&nbsp;two instances of Windows File Manager, one of which will show a virtual drive and another a folder simulating remote storage.&nbsp;</p>
2121
<p>You can find more about running and stopping the sample as well as about basic synchronization features in the&nbsp;<a title="Virtual File System Sample for Windows" href="https://www.userfilesystem.com/examples/virtual_file_system/">Virtual File System</a>&nbsp;sample description.&nbsp;</p>
22+
<h2>Packaging Project</h2>
23+
<p>This sample provides a Windows Application Packaging Project which allows deployment of your application to the Windows Store, simplifies COM components debugging (thumbnails handler and Windows Explorer context menu), as well as your application can be installed without admin privileges. The&nbsp;package can be also used for direct&nbsp;<a href="https://www.youtube.com/watch?v=fJkbYPyd08w&amp;t=73s">deployment to users</a>.</p>
24+
<p>To start the project with thumbnails and context menu support follow these steps:</p>
25+
<ol>
26+
<li>Set the packaging project as your startup project.</li>
27+
<li>Set the VirtualDrive project under the packaging project as an Entry Point.</li>
28+
</ol>
29+
<p>Now run the project from Visual Studio. This will automatically register COM components as well as you can start debugging COM components without additional steps.</p>
2230
<h2>Thumbnails Support</h2>
2331
<p><span>The Virtual Drive sample provides a separate project with thumbnail provider implementation in the COM object. It loads thumbnails from files located in the remote storage simulation folder and displays them in Windows Explorer. You will adapt this project to load thumbnails from your real remote storage.</span></p>
32+
<p><span>The thumbnails provider is registered as an application extension by the packing project provided with the sample. To register thumbnails you will simply run the packaging project. You do NOT need to register the thumbnails handler using regsrv32 or any using any other COM registration technique.</span></p>
33+
<p>&nbsp;</p>
2434
<h2>Microsoft Office Editing Support</h2>
2535
<p>Another major difference between the Virtual Drive sample and the <a title="Virtual File System Sample for Windows" href="https://www.userfilesystem.com/examples/virtual_file_system/">Virtual File System</a> sample is its support for Microsoft Office Documents editing. This sample<span>&nbsp;supports synchronization of the MS Office documents, avoiding the creation of the temporary files in the remote storage as well as it does not rename or delete the document in your remote storage during MS Office transactional save operation, preserving all data associated with a file in your remote storage.</span></p>
2636
<p><span>This sample automatically locks the Microsoft Office document in the remote storage when a document is being opened for editing and automatically unlocks the document when the file is closed. When the document is opened you will see the lock icon&nbsp;<img id="__mcenew" alt="Lock icon" src="https://www.userfilesystem.com/media/2071/locked.png" rel="120785"> in the Status column in Windows File Manager:</span></p>
@@ -31,6 +41,7 @@
3141
<h2>Window File Manger Custom Columns Support</h2>
3242
<p><span>This sample registers and displays custom columns in Windows File Manager. For demo purposes the Registrar class add ETag column as well as columns that show information about the lock: Lock Owner, Lock Scope, Lock Expires:</span></p>
3343
<p><span>&nbsp;&nbsp;<img id="__mcenew" alt="Virtual Drive custom columns being displayed in Windows File Manger" src="https://www.userfilesystem.com/media/2132/customcolumnswindowsfilemanager.png" rel="122440"></span></p>
44+
<p>&nbsp;</p>
3445
<h3 class="para d-inline next-article-heading">Next Article:</h3>
3546
<a title="WebDAV Drive Sample in .NET, C#" href="https://www.userfilesystem.com/examples/webdav_drive/">WebDAV Drive Sample in .NET, C#</a>
3647

Windows/VirtualDrive/VirtualDrive.Package/Package.appxmanifest

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,31 @@
4444
<Extensions>
4545
<desktop3:Extension Category="windows.cloudFiles">
4646
<desktop3:CloudFiles>
47+
<desktop3:CustomStateHandler Clsid="20000000-0000-0000-0000-000000000001"/>
4748
<desktop3:ThumbnailProviderHandler Clsid="05CF065E-E135-4B2B-9D4D-CFB3FBAC73A4"/>
4849

49-
<desktop3:CustomStateHandler Clsid="20000000-0000-0000-0000-000000000001"/>
50+
5051
<desktop3:ExtendedPropertyHandler Clsid="20000000-0000-0000-0000-000000000001"/>
5152
<desktop3:BannersHandler Clsid="20000000-0000-0000-0000-000000000001"/>
52-
<desktop3:CloudFilesContextMenus />
53+
54+
<desktop3:CloudFilesContextMenus>
55+
<desktop3:Verb Id="LockCommand" Clsid="A22EBD03-343E-433C-98DF-372C6B3A1538" />
56+
</desktop3:CloudFilesContextMenus>
57+
5358
</desktop3:CloudFiles>
5459
</desktop3:Extension>
5560
<com:Extension Category="windows.comServer">
5661
<com:ComServer>
5762
<!-- When changing ProgId make sure to change it also in the ThumbnailProvider.cs -->
5863

59-
<com:ExeServer DisplayName="VirtualDrive.ThumbnailProvider" Executable="VirtualDrive.ThumbnailProvider\VirtualDrive.ThumbnailProvider.exe">
64+
<com:ExeServer DisplayName="VirtualDrive.ShellExtension" Executable="VirtualDrive.ShellExtension\VirtualDrive.ShellExtension.exe">
6065
<com:Class Id="05CF065E-E135-4B2B-9D4D-CFB3FBAC73A4" />
6166
</com:ExeServer>
6267

68+
<com:ExeServer DisplayName="VirtualDrive.ShellExtension" Executable="VirtualDrive.ShellExtension\VirtualDrive.ShellExtension.exe">
69+
<com:Class Id="A22EBD03-343E-433C-98DF-372C6B3A1538" />
70+
</com:ExeServer>
71+
6372
</com:ComServer>
6473
</com:Extension>
6574
</Extensions>
Binary file not shown.

Windows/VirtualDrive/VirtualDrive.Package/VirtualDrive.Package.wapproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />
4444
<PropertyGroup>
4545
<ProjectGuid>9cc25823-7d6c-4aaa-95a0-ee0514ccabd9</ProjectGuid>
46-
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
47-
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
46+
<TargetPlatformVersion>10.0.18362.0</TargetPlatformVersion>
47+
<TargetPlatformMinVersion>10.0.18362.0</TargetPlatformMinVersion>
4848
<DefaultLanguage>en-US</DefaultLanguage>
4949
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
5050
<EntryPointProjectUniqueName>..\VirtualDrive\VirtualDrive.csproj</EntryPointProjectUniqueName>
@@ -65,10 +65,10 @@
6565
</ItemGroup>
6666
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.targets" />
6767
<ItemGroup>
68-
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.19041.8" PrivateAssets="all" />
68+
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.18362.0" PrivateAssets="all" />
6969
</ItemGroup>
7070
<ItemGroup>
71-
<ProjectReference Include="..\VirtualDrive.ThumbnailProvider\VirtualDrive.ThumbnailProvider.csproj">
71+
<ProjectReference Include="..\VirtualDrive.ShellExtension\VirtualDrive.ShellExtension.csproj">
7272
<SkipGetTargetFrameworkProperties>True</SkipGetTargetFrameworkProperties>
7373
<!--<PublishProfile>Properties\PublishProfiles\$(Configuration)_$(Platform).pubxml</PublishProfile>-->
7474
</ProjectReference>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net5.0</TargetFramework>
5+
<Description>This project contains RPC methods for communication between main application and other components, such as Windows Explorer thumbnail handler and context menu.</Description>
6+
<Company>IT Hit LTD.</Company>
7+
<Authors>IT Hit LTD.</Authors>
8+
<Product>Virtual Drive</Product>
9+
<Copyright>IT Hit LTD.</Copyright>
10+
</PropertyGroup>
11+
12+
<ItemGroup>
13+
<PackageReference Include="Grpc.Tools" Version="2.40.0">
14+
<PrivateAssets>all</PrivateAssets>
15+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
16+
</PackageReference>
17+
<PackageReference Include="GrpcDotNetNamedPipes" Version="1.4.2" />
18+
</ItemGroup>
19+
20+
<ItemGroup>
21+
<Protobuf Include="*.proto" />
22+
</ItemGroup>
23+
24+
</Project>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
syntax = "proto3";
2+
3+
package VirtualDrive.Rpc.Generated;
4+
5+
service VirtualDriveRpc {
6+
rpc SetLockStatus (ItemsStatusList) returns (EmptyMessage) {}
7+
rpc GetLockStatus (ItemsPathList) returns (ItemsStatusList) {}
8+
}
9+
10+
message ItemsPathList {
11+
repeated string files = 1;
12+
}
13+
14+
message ItemsStatusList {
15+
map<string, bool> filesStatus = 1;
16+
}
17+
18+
message EmptyMessage {
19+
}

Windows/VirtualDrive/VirtualDrive.ThumbnailProvider/ComInfrastructure/BasicClassFactory.cs renamed to Windows/VirtualDrive/VirtualDrive.ShellExtension/ComInfrastructure/BasicClassFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Runtime.InteropServices;
33
using System.Diagnostics;
44

5-
namespace VirtualDrive.ThumbnailProvider.ComInfrastructure
5+
namespace VirtualDrive.ShellExtension.ComInfrastructure
66
{
77
[ComImport]
88
[ComVisible(false)]

0 commit comments

Comments
 (0)