blob: 6f7aa31413041b2f8a48a85ed9d70d5f6a293dc0 [file] [log] [blame]
/*
* Copyright (C) 2024 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.applicationmodel.datatransfer.idl";
import "windows.applicationmodel.datatransfer.dragdrop.idl";
import "windows.graphics.imaging.idl";
#endif
namespace Windows.ApplicationModel.DataTransfer.DragDrop.Core {
interface ICoreDragDropManager;
interface ICoreDragDropManagerStatics;
interface ICoreDragInfo;
interface ICoreDragInfo2;
interface ICoreDropOperationTarget;
interface ICoreDropOperationTargetRequestedEventArgs;
interface ICoreDragUIOverride;
runtimeclass CoreDragDropManager;
runtimeclass CoreDragInfo;
runtimeclass CoreDropOperationTargetRequestedEventArgs;
runtimeclass CoreDragUIOverride;
declare {
interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragDropManager *, Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDropOperationTargetRequestedEventArgs *>;
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragDropManager),
uuid(7d56d344-8464-4faf-aa49-37ea6e2d7bd1)
]
interface ICoreDragDropManager : IInspectable
{
[eventadd] HRESULT TargetRequested([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragDropManager *, Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDropOperationTargetRequestedEventArgs *> *value, [out, retval] EventRegistrationToken *return_value);
[eventremove] HRESULT TargetRequested([in] EventRegistrationToken value);
[propget] HRESULT AreConcurrentOperationsEnabled([out, retval] boolean *value);
[propput] HRESULT AreConcurrentOperationsEnabled([in] boolean value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragDropManager),
uuid(9542fdca-da12-4c1c-8d06-041db29733c3)
]
interface ICoreDragDropManagerStatics : IInspectable
{
HRESULT GetForCurrentView([out, retval] Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragDropManager **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragInfo),
uuid(48353a8b-cb50-464e-9575-cd4e3a7ab028)
]
interface ICoreDragInfo : IInspectable
{
[propget] HRESULT Data([out, retval] Windows.ApplicationModel.DataTransfer.DataPackageView **value);
[propget] HRESULT Modifiers([out, retval] Windows.ApplicationModel.DataTransfer.DragDrop.DragDropModifiers *value);
[propget] HRESULT Position([out, retval] Windows.Foundation.Point *value);
}
[
contract(Windows.Foundation.UniversalApiContract, 2.0),
exclusiveto(Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragInfo),
uuid(c54691e5-e6fb-4d74-b4b1-8a3c17f25e9e)
]
interface ICoreDragInfo2 : IInspectable
requires Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDragInfo
{
[propget] HRESULT AllowedOperations([out, retval] Windows.ApplicationModel.DataTransfer.DataPackageOperation *value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
uuid(d9126196-4c5b-417d-bb37-76381def8db4)
]
interface ICoreDropOperationTarget : IInspectable
{
HRESULT EnterAsync([in] Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragInfo *info, [in] Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragUIOverride *override, [out, retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.DataTransfer.DataPackageOperation> **return_value);
HRESULT OverAsync([in] Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragInfo *info, [in] Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragUIOverride *override, [out, retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.DataTransfer.DataPackageOperation> **return_value);
HRESULT LeaveAsync([in] Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragInfo *info, [out, retval] Windows.Foundation.IAsyncAction **return_value);
HRESULT DropAsync([in] Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragInfo *info, [out, retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.DataTransfer.DataPackageOperation> **return_value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDropOperationTargetRequestedEventArgs),
uuid(2aca929a-5e28-4ea6-829e-29134e665d6d)
]
interface ICoreDropOperationTargetRequestedEventArgs : IInspectable
{
HRESULT SetTarget([in] Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDropOperationTarget *target);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.ApplicationModel.DataTransfer.DragDrop.Core.CoreDragUIOverride),
uuid(89a85064-3389-4f4f-8897-7e8a3ffb3c93)
]
interface ICoreDragUIOverride : IInspectable
{
[overload("SetContentFromSoftwareBitmap")] HRESULT SetContentFromSoftwareBitmap([in] Windows.Graphics.Imaging.SoftwareBitmap *bitmap);
[overload("SetContentFromSoftwareBitmap")] HRESULT SetContentFromSoftwareBitmapWithAnchorPoint([in] Windows.Graphics.Imaging.SoftwareBitmap *bitmap, [in] Windows.Foundation.Point point);
[propget] HRESULT IsContentVisible([out, retval] boolean *value);
[propput] HRESULT IsContentVisible([in] boolean value);
[propget] HRESULT Caption([out, retval] HSTRING *value);
[propput] HRESULT Caption([in] HSTRING value);
[propget] HRESULT IsCaptionVisible([out, retval] boolean *value);
[propput] HRESULT IsCaptionVisible([in] boolean value);
[propget] HRESULT IsGlyphVisible([out, retval] boolean *value);
[propput] HRESULT IsGlyphVisible([in] boolean value);
HRESULT Clear();
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
marshaling_behavior(agile),
static(Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDragDropManagerStatics, Windows.Foundation.UniversalApiContract, 1.0),
threading(both)
]
runtimeclass CoreDragDropManager
{
[default] interface Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDragDropManager;
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
marshaling_behavior(agile),
threading(both)
]
runtimeclass CoreDragInfo
{
[default] interface Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDragInfo;
[contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDragInfo2;
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
marshaling_behavior(agile),
threading(both)
]
runtimeclass CoreDropOperationTargetRequestedEventArgs
{
[default] interface Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDropOperationTargetRequestedEventArgs;
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
marshaling_behavior(agile),
threading(both)
]
runtimeclass CoreDragUIOverride
{
[default] interface Windows.ApplicationModel.DataTransfer.DragDrop.Core.ICoreDragUIOverride;
}
}