mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-23 08:27:58 +08:00
ea9c0b919f
* Deleted the dll * Added Shell Link helper class * Add activation manager helper * Use helper shell link and remove shell namespace * removed using shell and added Activation helper namespace * Removed the dll from the installer * formatting * nit formatting
45 lines
2.3 KiB
C#
45 lines
2.3 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace Microsoft.Plugin.Program.Programs
|
|
{
|
|
public class ApplicationActivationHelper
|
|
{
|
|
// Reference : https://github.com/MicrosoftEdge/edge-launcher/blob/108e63df0b4cb5cd9d5e45aa7a264690851ec51d/MIcrosoftEdgeLauncherCsharp/Program.cs
|
|
public enum ActivateOptions
|
|
{
|
|
None = 0x00000000,
|
|
DesignMode = 0x00000001,
|
|
NoErrorUI = 0x00000002,
|
|
NoSplashScreen = 0x00000004,
|
|
}
|
|
|
|
/// ApplicationActivationManager
|
|
[ComImport, Guid("2e941141-7f97-4756-ba1d-9decde894a3d"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IApplicationActivationManager
|
|
{
|
|
IntPtr ActivateApplication([In] String appUserModelId, [In] String arguments, [In] ActivateOptions options, [Out] out UInt32 processId);
|
|
IntPtr ActivateForFile([In] String appUserModelId, [In] IntPtr /*IShellItemArray* */ itemArray, [In] String verb, [Out] out UInt32 processId);
|
|
IntPtr ActivateForProtocol([In] String appUserModelId, [In] IntPtr /* IShellItemArray* */itemArray, [Out] out UInt32 processId);
|
|
}
|
|
|
|
// Application Activation Manager Class
|
|
[ComImport, Guid("45BA127D-10A8-46EA-8AB7-56EA9078943C")]
|
|
public class ApplicationActivationManager : IApplicationActivationManager
|
|
{
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)/*, PreserveSig*/]
|
|
public extern IntPtr ActivateApplication([In] String appUserModelId, [In] String arguments, [In] ActivateOptions options, [Out] out UInt32 processId);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
public extern IntPtr ActivateForFile([In] String appUserModelId, [In] IntPtr /*IShellItemArray* */ itemArray, [In] String verb, [Out] out UInt32 processId);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
public extern IntPtr ActivateForProtocol([In] String appUserModelId, [In] IntPtr /* IShellItemArray* */itemArray, [Out] out UInt32 processId);
|
|
}
|
|
}
|
|
}
|