Windows-classic-samples/Samples/ShareSource/wpf/DataTransferManagerHelper.cs
2025-11-28 00:35:46 +09:00

45 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using System.Threading.Tasks;
using Windows.ApplicationModel.DataTransfer;
namespace WpfShareSource
{
static class DataTransferManagerHelper
{
static readonly Guid _dtm_iid = new Guid(0xa5caee9b, 0x8708, 0x49d1, 0x8d, 0x36, 0x67, 0xd2, 0x5a, 0x8d, 0xa0, 0x0c);
static IDataTransferManagerInterop DataTransferManagerInterop
{
get
{
return (IDataTransferManagerInterop)WindowsRuntimeMarshal.GetActivationFactory(typeof(DataTransferManager));
}
}
public static DataTransferManager GetForWindow(IntPtr hwnd)
{
return DataTransferManagerInterop.GetForWindow(hwnd, _dtm_iid);
}
public static void ShowShareUIForWindow(IntPtr hwnd)
{
DataTransferManagerInterop.ShowShareUIForWindow(hwnd);
}
[ComImport, Guid("3A3DCD6C-3EAB-43DC-BCDE-45671CE800C8")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IDataTransferManagerInterop
{
DataTransferManager GetForWindow([In] IntPtr appWindow, [In] ref Guid riid);
void ShowShareUIForWindow(IntPtr appWindow);
}
}
}