Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions source/VirtualDesktop/Interop/IApplicationView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public interface IApplicationView

int GetVisibility(out int visibility);

int SetCloak(APPLICATION_VIEW_CLOAK_TYPE cloakType, int unknown);
int SetCloak(ApplicationViewCloakType cloakType, int unknown);

int GetPosition(ref Guid guid /* GUID for IApplicationViewPosition */, out IntPtr /* IApplicationViewPosition** */ position);

Expand Down Expand Up @@ -58,9 +58,9 @@ public interface IApplicationView

int CanReceiveInput(out bool canReceiveInput);

int GetCompatibilityPolicyType(out APPLICATION_VIEW_COMPATIBILITY_POLICY flags);
int GetCompatibilityPolicyType(out ApplicationViewCompatibilityPolicy flags);

int SetCompatibilityPolicyType(APPLICATION_VIEW_COMPATIBILITY_POLICY flags);
int SetCompatibilityPolicyType(ApplicationViewCompatibilityPolicy flags);

int GetPositionPriority(out IntPtr /* IShellPositionerPriority** */ priority);

Expand Down Expand Up @@ -114,19 +114,23 @@ public struct Rect
public int Bottom;
}

public enum APPLICATION_VIEW_CLOAK_TYPE : int
public enum ApplicationViewCloakType
{
// ReSharper disable InconsistentNaming
AVCT_NONE = 0,
AVCT_DEFAULT = 1,
AVCT_VIRTUAL_DESKTOP = 2
// ReSharper restore InconsistentNaming
}

public enum APPLICATION_VIEW_COMPATIBILITY_POLICY : int
public enum ApplicationViewCompatibilityPolicy
{
// ReSharper disable InconsistentNaming
AVCP_NONE = 0,
AVCP_SMALL_SCREEN = 1,
AVCP_TABLET_SMALL_SCREEN = 2,
AVCP_VERY_SMALL_SCREEN = 3,
AVCP_HIGH_SCALE_FACTOR = 4
// ReSharper restore InconsistentNaming
}
}
10 changes: 9 additions & 1 deletion source/VirtualDesktop/VirtualDesktop.static.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading;
using WindowsDesktop.Interop;


namespace WindowsDesktop
{
partial class VirtualDesktop
Expand Down Expand Up @@ -53,6 +55,12 @@ static VirtualDesktop()
catch (Exception ex)
{
InitializationException = ex;

// Throws an InvalidOpertaionException, informing the user, that this needs to be called
// from a Thread with ApartmentState "STA".
if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA)
throw ex;

_isSupportedInternal = false;
}

Expand Down