wine/include/windows.ui.windowmanagement.idl
2025-07-24 21:55:35 +09:00

188 lines
7.8 KiB
Text

/*
* Copyright 2025 Zhiyi Zhang for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifdef __WIDL__
#pragma winrt ns_prefix
#endif
#ifndef DO_NO_IMPORTS
import "inspectable.idl";
import "asyncinfo.idl";
import "eventtoken.idl";
import "windowscontracts.idl";
import "windows.foundation.idl";
import "windows.system.idl";
import "windows.ui.idl";
import "windows.ui.composition.idl";
#endif
namespace Windows.UI.WindowManagement
{
typedef enum WindowingEnvironmentKind WindowingEnvironmentKind;
interface IDisplayRegion;
interface IWindowingEnvironment;
interface IWindowingEnvironmentAddedEventArgs;
interface IWindowingEnvironmentChangedEventArgs;
interface IWindowingEnvironmentRemovedEventArgs;
interface IWindowingEnvironmentStatics;
runtimeclass DisplayRegion;
runtimeclass WindowingEnvironment;
runtimeclass WindowingEnvironmentAddedEventArgs;
runtimeclass WindowingEnvironmentChangedEventArgs;
runtimeclass WindowingEnvironmentRemovedEventArgs;
declare {
interface Windows.Foundation.Collections.IIterable<Windows.UI.WindowManagement.DisplayRegion *>;
interface Windows.Foundation.Collections.IIterable<Windows.UI.WindowManagement.WindowingEnvironment *>;
interface Windows.Foundation.Collections.IIterator<Windows.UI.WindowManagement.DisplayRegion *>;
interface Windows.Foundation.Collections.IIterator<Windows.UI.WindowManagement.WindowingEnvironment *>;
interface Windows.Foundation.Collections.IVectorView<Windows.UI.WindowManagement.DisplayRegion *>;
interface Windows.Foundation.Collections.IVectorView<Windows.UI.WindowManagement.WindowingEnvironment *>;
interface Windows.Foundation.TypedEventHandler<Windows.UI.WindowManagement.DisplayRegion *, IInspectable *>;
interface Windows.Foundation.TypedEventHandler<Windows.UI.WindowManagement.WindowingEnvironment *, Windows.UI.WindowManagement.WindowingEnvironmentChangedEventArgs *>;
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0)
]
enum WindowingEnvironmentKind
{
Unknown = 0,
Overlapped = 1,
Tiled = 2,
};
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
exclusiveto(Windows.UI.WindowManagement.DisplayRegion),
uuid(db50c3a2-4094-5f47-8cb1-ea01ddafaa94)
]
interface IDisplayRegion : IInspectable
{
[propget] HRESULT DisplayMonitorDeviceId([out, retval] HSTRING *value);
[propget] HRESULT IsVisible([out, retval] boolean *value);
[propget] HRESULT WorkAreaOffset([out, retval] Windows.Foundation.Point *value);
[propget] HRESULT WorkAreaSize([out, retval] Windows.Foundation.Size *value);
[propget] HRESULT WindowingEnvironment([out, retval] Windows.UI.WindowManagement.WindowingEnvironment **value);
[eventadd] HRESULT Changed([in] Windows.Foundation.TypedEventHandler<Windows.UI.WindowManagement.DisplayRegion *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token);
[eventremove] HRESULT Changed([in] EventRegistrationToken token);
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
exclusiveto(Windows.UI.WindowManagement.WindowingEnvironment),
uuid(264363c0-2a49-5417-b3ae-48a71c63a3bd)
]
interface IWindowingEnvironment : IInspectable
{
[propget] HRESULT IsEnabled([out, retval] boolean *value);
[propget] HRESULT Kind([out, retval] Windows.UI.WindowManagement.WindowingEnvironmentKind *value);
HRESULT GetDisplayRegions([out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.WindowManagement.DisplayRegion *> **result);
[eventadd] HRESULT Changed([in] Windows.Foundation.TypedEventHandler<Windows.UI.WindowManagement.WindowingEnvironment *, Windows.UI.WindowManagement.WindowingEnvironmentChangedEventArgs *> *handler, [out, retval] EventRegistrationToken *token);
[eventremove] HRESULT Changed([in] EventRegistrationToken token);
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
exclusiveto(Windows.UI.WindowManagement.WindowingEnvironmentAddedEventArgs),
uuid(ff2a5b7f-f183-5c66-99b2-429082069299)
]
interface IWindowingEnvironmentAddedEventArgs : IInspectable
{
[propget] HRESULT WindowingEnvironment([out, retval] Windows.UI.WindowManagement.WindowingEnvironment **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
exclusiveto(Windows.UI.WindowManagement.WindowingEnvironmentChangedEventArgs),
uuid(4160cfc6-023d-5e9a-b431-350e67dc978a)
]
interface IWindowingEnvironmentChangedEventArgs : IInspectable
{
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
exclusiveto(Windows.UI.WindowManagement.WindowingEnvironmentRemovedEventArgs),
uuid(2e5b5473-beff-5e53-9316-7e775fe568b3)
]
interface IWindowingEnvironmentRemovedEventArgs : IInspectable
{
[propget] HRESULT WindowingEnvironment([out, retval] Windows.UI.WindowManagement.WindowingEnvironment **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
exclusiveto(Windows.UI.WindowManagement.WindowingEnvironment),
uuid(874e9fb7-c642-55ab-8aa2-162f734a9a72)
]
interface IWindowingEnvironmentStatics : IInspectable
{
[overload("FindAll")] HRESULT FindAll([out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.WindowManagement.WindowingEnvironment *> **result);
[overload("FindAll")] HRESULT FindAllWithKind([in] Windows.UI.WindowManagement.WindowingEnvironmentKind kind, [out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.WindowManagement.WindowingEnvironment *> **result);
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
marshaling_behavior(agile)
]
runtimeclass DisplayRegion
{
[default] interface Windows.UI.WindowManagement.IDisplayRegion;
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
marshaling_behavior(agile),
static(Windows.UI.WindowManagement.IWindowingEnvironmentStatics, Windows.Foundation.UniversalApiContract, 8.0),
threading(both)
]
runtimeclass WindowingEnvironment
{
[default] interface Windows.UI.WindowManagement.IWindowingEnvironment;
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
marshaling_behavior(agile)
]
runtimeclass WindowingEnvironmentAddedEventArgs
{
[default] interface Windows.UI.WindowManagement.IWindowingEnvironmentAddedEventArgs;
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
marshaling_behavior(agile)
]
runtimeclass WindowingEnvironmentChangedEventArgs
{
[default] interface Windows.UI.WindowManagement.IWindowingEnvironmentChangedEventArgs;
}
[
contract(Windows.Foundation.UniversalApiContract, 8.0),
marshaling_behavior(agile)
]
runtimeclass WindowingEnvironmentRemovedEventArgs
{
[default] interface Windows.UI.WindowManagement.IWindowingEnvironmentRemovedEventArgs;
}
}