Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 0 additions & 96 deletions src/Files.App.CsWin32/ComPtr`1.cs

This file was deleted.

4 changes: 2 additions & 2 deletions src/Files.App.CsWin32/Extras.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ namespace Windows.Win32
namespace Graphics.Gdi
{
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
public unsafe delegate BOOL MONITORENUMPROC([In] HMONITOR param0, [In] HDC param1, [In][Out] RECT* param2, [In] LPARAM param3);
public unsafe delegate BOOL MonitorEnumProcDelegate([In] HMONITOR param0, [In] HDC param1, [In][Out] RECT* param2, [In] LPARAM param3);
}

namespace UI.WindowsAndMessaging
{
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
public delegate LRESULT WNDPROC(HWND hWnd, uint msg, WPARAM wParam, LPARAM lParam);
public delegate LRESULT WndProcDelegate(HWND hWnd, uint uMsg, WPARAM wParam, LPARAM lParam);
}

public static partial class PInvoke
Expand Down
1 change: 1 addition & 0 deletions src/Files.App.CsWin32/Files.App.CsWin32.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
<IsAotCompatible>true</IsAotCompatible>
<DisableRuntimeMarshalling>true</DisableRuntimeMarshalling>
<CsWin32RunAsBuildTask>true</CsWin32RunAsBuildTask>
</PropertyGroup>

<ItemGroup>
Expand Down
39 changes: 31 additions & 8 deletions src/Files.App.CsWin32/IStorageProviderQuotaUI.cs
Original file line number Diff line number Diff line change
@@ -1,21 +1,44 @@
// Copyright (c) Files Community
// Licensed under the MIT License.

using Files.Shared.Attributes;
using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.Marshalling;
using Windows.Win32.Foundation;

namespace Windows.Win32.System.WinRT
{
public unsafe partial struct IStorageProviderQuotaUI : IComIID
[GeneratedComInterface, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("BA6295C3-312E-544F-9FD5-1F81B21F3649")]
public partial interface IStorageProviderQuotaUI
{
[GeneratedVTableFunction(Index = 6)]
public partial HRESULT GetQuotaTotalInBytes(ulong* value);
// Slot: 3
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetIids(out uint iidCount, out nint iids);

[GeneratedVTableFunction(Index = 8)]
public partial HRESULT GetQuotaUsedInBytes(ulong* value);
// Slot: 4
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetRuntimeClassName(out HSTRING className);

[GuidRVAGen.Guid("BA6295C3-312E-544F-9FD5-1F81B21F3649")]
public static partial ref readonly Guid Guid { get; }
// Slot: 5
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetTrustLevel(out TrustLevel trustLevel);

// Slot: 6
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT get_QuotaTotalInBytes(out ulong value);

// Slot: 7
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT put_QuotaTotalInBytes(ulong value);

// Slot: 8
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT get_QuotaUsedInBytes(out ulong value);
}
}
69 changes: 63 additions & 6 deletions src/Files.App.CsWin32/IStorageProviderStatusUI.cs
Original file line number Diff line number Diff line change
@@ -1,18 +1,75 @@
// Copyright (c) Files Community
// Licensed under the MIT License.

using Files.Shared.Attributes;
using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.Marshalling;
using Windows.Storage.Provider;
using Windows.Win32.Foundation;

namespace Windows.Win32.System.WinRT
{
public unsafe partial struct IStorageProviderStatusUI : IComIID
[GeneratedComInterface, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("D6B6A758-198D-5B80-977F-5FF73DA33118")]
public partial interface IStorageProviderStatusUI
{
[GeneratedVTableFunction(Index = 14)]
public partial HRESULT GetQuotaUI(IStorageProviderQuotaUI** result);
// Slot: 3
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetIids(out uint iidCount, out nint iids);

[GuidRVAGen.Guid("D6B6A758-198D-5B80-977F-5FF73DA33118")]
public static partial ref readonly Guid Guid { get; }
// Slot: 4
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetRuntimeClassName(out HSTRING className);

// Slot: 5
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetTrustLevel(out TrustLevel trustLevel);

// Slot: 6
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT get_ProviderState(out StorageProviderState value);

// Slot: 7
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT put_ProviderState(StorageProviderState value);

// Slot: 8
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT get_ProviderStateLabel(out HSTRING value);

// Slot: 9
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT put_ProviderStateLabel(HSTRING value);

// Slot: 10
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT get_ProviderStateIcon([MarshalAs(UnmanagedType.Interface)] out object /*IUriRuntimeClass*/ value);

// Slot: 11
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT put_ProviderStateIcon([MarshalAs(UnmanagedType.Interface)] object /*IUriRuntimeClass*/ value);

// Slot: 12
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT get_SyncStatusCommand([MarshalAs(UnmanagedType.Interface)] out IStorageProviderUICommand value);

// Slot: 13
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT put_SyncStatusCommand([MarshalAs(UnmanagedType.Interface)] IStorageProviderUICommand value);

// Slot: 14
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT get_QuotaUI([MarshalAs(UnmanagedType.Interface)] out IStorageProviderQuotaUI value);
}
}
27 changes: 22 additions & 5 deletions src/Files.App.CsWin32/IStorageProviderStatusUISource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,33 @@

using Files.Shared.Attributes;
using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.Marshalling;
using Windows.Win32.Foundation;

namespace Windows.Win32.System.WinRT
{
public unsafe partial struct IStorageProviderStatusUISource : IComIID
[GeneratedComInterface, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("A306C249-3D66-5E70-9007-E43DF96051FF")]
public partial interface IStorageProviderStatusUISource
{
[GeneratedVTableFunction(Index = 6)]
public partial HRESULT GetStatusUI(IStorageProviderStatusUI** result);
// Slot: 3
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetIids(out uint iidCount, out nint iids);

[GuidRVAGen.Guid("A306C249-3D66-5E70-9007-E43DF96051FF")]
public static partial ref readonly Guid Guid { get; }
// Slot: 4
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetRuntimeClassName(out HSTRING className);

// Slot: 5
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetTrustLevel(out TrustLevel trustLevel);

// Slot: 6
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetStatusUI([MarshalAs(UnmanagedType.Interface)] out IStorageProviderStatusUI value);
}
}
28 changes: 22 additions & 6 deletions src/Files.App.CsWin32/IStorageProviderStatusUISourceFactory.cs
Original file line number Diff line number Diff line change
@@ -1,18 +1,34 @@
// Copyright (c) Files Community
// Licensed under the MIT License.

using Files.Shared.Attributes;
using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.Marshalling;
using Windows.Win32.Foundation;

namespace Windows.Win32.System.WinRT
{
public unsafe partial struct IStorageProviderStatusUISourceFactory : IComIID
[GeneratedComInterface, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("12E46B74-4E5A-58D1-A62F-0376E8EE7DD8")]
public partial interface IStorageProviderStatusUISourceFactory
{
[GeneratedVTableFunction(Index = 6)]
public partial HRESULT GetStatusUISource(nint syncRootId, IStorageProviderStatusUISource** result);
// Slot: 3
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetIids(out uint iidCount, out nint iids);

[GuidRVAGen.Guid("12E46B74-4E5A-58D1-A62F-0376E8EE7DD8")]
public static partial ref readonly Guid Guid { get; }
// Slot: 4
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetRuntimeClassName(out HSTRING className);

// Slot: 5
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetTrustLevel(out TrustLevel trustLevel);

// Slot: 6
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
HRESULT GetStatusUISource([MarshalAs(UnmanagedType.LPWStr)] string syncRootId, [MarshalAs(UnmanagedType.Interface)] out IStorageProviderStatusUISource result);
}
}
3 changes: 0 additions & 3 deletions src/Files.App.CsWin32/ManualGuid.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ namespace Windows.Win32
{
public static unsafe partial class IID
{
public static Guid* IID_IStorageProviderStatusUISourceFactory
=> (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IStorageProviderStatusUISourceFactory.Guid));

[GuidRVAGen.Guid("000214E4-0000-0000-C000-000000000046")]
public static partial Guid* IID_IContextMenu { get; }

Expand Down
2 changes: 1 addition & 1 deletion src/Files.App.CsWin32/NativeMethods.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"$schema": "https://aka.ms/CsWin32.schema.json",
"allowMarshaling": false,
"public": true,
"comInterop": {
"useComSourceGenerators": true,
"preserveSigMethods": [
"*"
]
Expand Down
2 changes: 2 additions & 0 deletions src/Files.App.CsWin32/NativeMethods.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) Files Community
// Licensed under the MIT License.

IActivationFactory
WNDPROC
WNDCLASSEXW
RegisterClassEx
Expand Down Expand Up @@ -125,6 +126,7 @@ SHQUERYRBINFO
SHQueryRecycleBin
FileOperation
IFileOperation
IFileOperationProgressSink
IShellItem2
PSGetPropertyKeyFromName
ShellExecuteEx
Expand Down
4 changes: 2 additions & 2 deletions src/Files.App.Server/Helpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace Files.App.Server;
unsafe partial class Helpers
{
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvStdcall)])]
public static HRESULT GetActivationFactory(HSTRING activatableClassId, IActivationFactory** factory)
public static HRESULT GetActivationFactory(HSTRING activatableClassId, IActivationFactory_unmanaged** factory)
{
if (activatableClassId.IsNull || factory is null)
{
Expand All @@ -21,7 +21,7 @@ public static HRESULT GetActivationFactory(HSTRING activatableClassId, IActivati

try
{
*factory = (IActivationFactory*)Module.GetActivationFactory(MarshalString.FromAbi((IntPtr)activatableClassId));
*factory = (IActivationFactory_unmanaged*)Module.GetActivationFactory(MarshalString.FromAbi((IntPtr)activatableClassId));
return *factory is null ? HRESULT.CLASS_E_CLASSNOTAVAILABLE : HRESULT.S_OK;
}
catch (Exception e)
Expand Down
Loading
Loading