mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-24 00:48:00 +08:00
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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|