/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/modules/cmdpal/ext/SamplePagesExtension/Program.cs
42 строки
2 KB
Mike Griese
[CmdPal] Fix context menu command items (#45499)
11 фев 2026, 14:51
Не верифицирован
11 фев 2026, 14:51
3f54181
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Threading; using Microsoft.CommandPalette.Extensions; using Shmuelie.WinRTServer; using Shmuelie.WinRTServer.CsWinRT; namespace SamplePagesExtension; public class Program { [MTAThread] public static void Main(string[] args) { if (args.Length > 0 && args[0] == "-RegisterProcessAsComServer") { global::Shmuelie.WinRTServer.ComServer server = new(); ManualResetEvent extensionDisposedEvent = new(false); // We are instantiating an extension instance once above, and returning it every time the callback in RegisterExtension below is called. // This makes sure that only one instance of SampleExtension is alive, which is returned every time the host asks for the IExtension object. // If you want to instantiate a new instance each time the host asks, create the new instance inside the delegate. SampleExtension extensionInstance = new(extensionDisposedEvent); server.RegisterClass<SampleExtension, IExtension>(() => extensionInstance); server.Start(); // This will make the main thread wait until the event is signalled by the extension class. // Since we have single instance of the extension object, we exit as soon as it is disposed. extensionDisposedEvent.WaitOne(); server.Stop(); server.UnsafeDispose(); } else { Console.WriteLine("Not being launched as a Extension... exiting."); } } }