Skip to content
Michael edited this page May 6, 2018 · 12 revisions

Updated interfaces in Windows 10 build 17134 and 17661

Build 17134
IApplicationView

	[ComImport]
	[Guid("871F602A-2B58-42B4-8C4B-6C43D642C06F")]
	[InterfaceType(ComInterfaceType.InterfaceIsIInspectable)]
	public interface IApplicationView
	{
		int SetFocus();

		int SwitchTo();

		int TryInvokeBack(ref IntPtr /* IAsyncCallback* */ callback);

		int GetThumbnailWindow(out IntPtr hwnd);

		int GetMonitor(out IntPtr /* IImmersiveMonitor */ immersiveMonitor);

		int GetVisibility(out int visibility);

		int SetCloak(APPLICATION_VIEW_CLOAK_TYPE cloakType, int unknown);

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

		int SetPosition(ref IntPtr /* IApplicationViewPosition* */ position);

		int InsertAfterWindow(IntPtr hwnd);

		int GetExtendedFramePosition(out Rect rect);

		int GetAppUserModelId([MarshalAs(UnmanagedType.LPWStr)] out string id);

		int SetAppUserModelId(string id);

		int IsEqualByAppUserModelId(string id, out int result);

		int GetViewState(out int state);

		int SetViewState(int state);

		int GetNeediness(out int neediness);

		int GetLastActivationTimestamp(out long timestamp);

		int SetLastActivationTimestamp(long timestamp);

		int GetVirtualDesktopId(out Guid guid);

		int SetVirtualDesktopId(ref Guid guid);

		int GetShowInSwitchers(out int flag);

		int SetShowInSwitchers(int flag);

		int GetScaleFactor(out int factor);

		int CanReceiveInput(out bool canReceiveInput);

		int GetCompatibilityPolicyType(out APPLICATION_VIEW_COMPATIBILITY_POLICY flags);

		int SetCompatibilityPolicyType(APPLICATION_VIEW_COMPATIBILITY_POLICY flags);

		int GetSizeConstraints(IntPtr /* IImmersiveMonitor* */ monitor, out Size size1, out Size size2);

		int GetSizeConstraintsForDpi(int uint1, out Size size1, out Size size2);

		int SetSizeConstraintsForDpi(ref int uint1, ref Size size1, ref Size size2);

		int OnMinSizePreferencesUpdated(IntPtr hwnd);

		int ApplyOperation(ref IntPtr /* IApplicationViewOperation* */ operation);

		int IsTray(out bool isTray);

		int IsInHighZOrderBand(out bool isInHighZOrderBand);

		int IsSplashScreenPresented(out bool isSplashScreenPresented);

		int Flash();

		int GetRootSwitchableOwner(out IApplicationView rootSwitchableOwner);

		int EnumerateOwnershipTree(out IObjectArray ownershipTree);

		int GetEnterpriseId([MarshalAs(UnmanagedType.LPWStr)] out string enterpriseId);

		int IsMirrored(out bool isMirrored);

		//These have been removed in 1803
		//int GetPositionPriority(out IntPtr /* IShellPositionerPriority** */ priority);
		//int SetPositionPriority(IntPtr /* IShellPositionerPriority* */ priority);
		//int QuerySizeConstraintsFromApp();


		//new in 1803

		int Unknown1(out int unknown);

		int Unknown2(out UNKNOWN unknown);

		int Unknown3(out int unknown);

		int Unknown4(int unknown);

	}

Build 17661
IApplicationView & IApplicationViewCollection

	[ComImport]
	[Guid("ca55f183-de6b-43ce-912f-36092ee72bd8")]
	[InterfaceType(ComInterfaceType.InterfaceIsIInspectable)]
	public interface IApplicationView
	{
		int SetFocus();

		int SwitchTo();

		int TryInvokeBack(ref IntPtr /* IAsyncCallback* */ callback);

		int GetThumbnailWindow(out IntPtr hwnd);

		int GetMonitor(out IntPtr /* IImmersiveMonitor */ immersiveMonitor);

		int GetVisibility(out int visibility);

		int SetCloak(APPLICATION_VIEW_CLOAK_TYPE cloakType, int unknown);

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

		int SetPosition(ref IntPtr /* IApplicationViewPosition* */ position);

		int InsertAfterWindow(IntPtr hwnd);

		int GetExtendedFramePosition(out Rect rect);

		int GetAppUserModelId([MarshalAs(UnmanagedType.LPWStr)] out string id);

		int SetAppUserModelId(string id);

		int IsEqualByAppUserModelId(string id, out int result);

		int GetViewState(out int state);

		int SetViewState(int state);

		int GetNeediness(out int neediness);

		int GetLastActivationTimestamp(out long timestamp);

		int SetLastActivationTimestamp(long timestamp);

		int GetVirtualDesktopId(out Guid guid);

		int SetVirtualDesktopId(ref Guid guid);

		int GetShowInSwitchers(out int flag);

		int SetShowInSwitchers(int flag);

		int GetScaleFactor(out int factor);

		int CanReceiveInput(out bool canReceiveInput);

		int GetCompatibilityPolicyType(out APPLICATION_VIEW_COMPATIBILITY_POLICY flags);

		int SetCompatibilityPolicyType(APPLICATION_VIEW_COMPATIBILITY_POLICY flags);

		int GetSizeConstraints(IntPtr /* IImmersiveMonitor* */ monitor, out Size size1, out Size size2);

		int GetSizeConstraintsForDpi(int uint1, out Size size1, out Size size2);

		int SetSizeConstraintsForDpi(ref int uint1, ref Size size1, ref Size size2);

		int OnMinSizePreferencesUpdated(IntPtr hwnd);

		int ApplyOperation(ref IntPtr /* IApplicationViewOperation* */ operation);

		int IsTray(out bool isTray);

		int IsInHighZOrderBand(out bool isInHighZOrderBand);

		int IsSplashScreenPresented(out bool isSplashScreenPresented);

		int Flash();

		int GetRootSwitchableOwner(out IApplicationView1803 rootSwitchableOwner);

		int EnumerateOwnershipTree(out IObjectArray ownershipTree);

		int GetEnterpriseId([MarshalAs(UnmanagedType.LPWStr)] out string enterpriseId);

		int IsMirrored(out bool isMirrored);

		//These have been removed in 1803
		//int GetPositionPriority(out IntPtr /* IShellPositionerPriority** */ priority);
		//int SetPositionPriority(IntPtr /* IShellPositionerPriority* */ priority);
		//int QuerySizeConstraintsFromApp();		

		int Unknown1(out int unknown);

		int Unknown2(out int unknown);

		int Unknown3(out int unknown);

		int Unknown4(int unknown);

		//new in 17661

		int Unknown5();

		int Unknown6(out int unknown);

		int Unknown7(int unknown);

		int Unknown8(int unknownX, int unknownY);

	}


	[ComImport]
	[Guid("1841c6d7-4f9d-42c0-af41-8747538f10e5")]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	public interface IApplicationViewCollection
	{
		int GetViews(out IObjectArray array);

		int GetViewsByZOrder(out IObjectArray array);

		int GetViewsByAppUserModelId(string id, out IObjectArray array);

		int GetViewForHwnd(IntPtr hwnd, out IApplicationView view);

		int GetViewForApplication(object application, out IApplicationView view);

		int GetViewForAppUserModelId(string id, out IApplicationView view);

		int GetViewInFocus(out IntPtr view);

		int Unknown1(out IntPtr view);

		void outreshCollection();

		int RegisterForApplicationViewChanges(object listener, out int cookie);

		Removed
		//int RegisterForApplicationViewPositionChanges(object listener, out int cookie);

		int UnregisterForApplicationViewChanges(int cookie);
	}
Clone this wiki locally