1
0
Fork 0
libreoffice/odk/examples/DevelopersGuide/OfficeDev/TerminationTest/csharp/TerminationTest.cs
Daniel Baumann 8e63e14cf6
Adding upstream version 4:25.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 16:20:04 +02:00

57 lines
No EOL
1.7 KiB
C#

/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System;
using com.sun.star.frame;
using com.sun.star.lang;
using com.sun.star.uno;
public class Program
{
public static bool atWork = false;
private static int Main()
{
try
{
// Connect to a new instance of the Office
XComponentContext context = NativeBootstrap.bootstrap();
Console.WriteLine("Connected to a running office...");
// Get a reference to the Desktop service
XDesktop2 desktop = Desktop.create(context);
// Create our termination request listener, and register it
TerminateListener listener = new TerminateListener();
desktop.addTerminateListener(listener);
// Try to terminate while we are at work.
atWork = true;
bool terminated = desktop.terminate();
Console.WriteLine("The Office {0}", terminated
? "has been terminated"
: "is still running, we are at work");
// Try to terminate when we are NOT at work.
atWork = false;
terminated = desktop.terminate();
Console.WriteLine("The Office {0}", terminated
? "has been terminated"
: "is still running. Something else prevents termination, such as the quickstarter.");
return 0;
}
catch (Exception ex)
{
Console.Error.WriteLine(ex);
return 1;
}
}
}