Table of Contents

Interface IInProcessDesktopPlatform

Namespace
VpnHood.AppUi.Hosting.Desktop.Platform
Assembly
VpnHood.AppUi.Hosting.Desktop.dll

Defines what a host without a service says for itself (InProcessDesktopHost): where the window keeps things, how the system tells who owns the far end of a loopback connection, the process's log, and the app, which runs in the window's process.

public interface IInProcessDesktopPlatform

Properties

DesktopSession

Gets the desktop session this launch runs in, as the window's single instance asks it.

IDesktopSession DesktopSession { get; }

Property Value

IDesktopSession

Paths

Gets where the window keeps things.

IDesktopUiPaths Paths { get; }

Property Value

IDesktopUiPaths

PeerCheck

Gets how the system tells who owns the far end of a loopback connection.

ILoopbackPeerCheck PeerCheck { get; }

Property Value

ILoopbackPeerCheck

Shell

Gets the system's ways for links and the clipboard where the UI's own are refused, or null for the UI's own.

IDesktopShell? Shell { get; }

Property Value

IDesktopShell

UseTray

Gets a value indicating whether the window may keep a tray icon.

bool UseTray { get; }

Property Value

bool

Methods

CreateApp()

Creates the app, once this launch holds the window, so a second launch builds none.

IAppDaemonHost CreateApp()

Returns

IAppDaemonHost

The app; disposing it ends the app.

Remarks

It throws what the app's start throws; the Windows plug-in's, for one, throws the exceptions below, and fails with an Exception where an ad provider names countries both to include and to exclude.

Exceptions

OverflowException

A duration in a built-in access key is out of range.

InvalidDataException

A built-in access key decodes to JSON null.

JsonException

A built-in access key holds no valid access key.

NotSupportedException

A built-in access key's version is not one the app reads.

ArgumentNullException

The init params name no app name.

FormatException

A built-in access key is no valid Base64, or an endpoint or a duration in it is not valid.

ArgumentException

The init params' app name is empty.

InvalidOperationException

The process does not run from its package, or the core app has started already.

AnotherInstanceIsRunningException

Another instance of the app holds the lock.

CreateLoggerProvider()

Creates the process's log, once this launch holds the window, so a second launch, which only brings that window forward, leaves its file alone.

ILoggerProvider CreateLoggerProvider()

Returns

ILoggerProvider

The log's provider.

Exceptions

InvalidOperationException

The platform cannot name the folder, as the Windows plug-in's outside its package.