using System; using System.Runtime.InteropServices; namespace FileTransfer { class WtsApi32 { [DllImport("Wtsapi32.dll", SetLastError = true)] public static extern bool WTSVirtualChannelWrite(IntPtr channelHandle, byte[] data, int length, ref int bytesWritten); [DllImport("Wtsapi32.dll", SetLastError = true)] public static extern bool WTSVirtualChannelRead(IntPtr channelHandle, uint TimeOut, byte[] data, int length, ref int bytesReaded); [DllImport("Wtsapi32.dll")] public static extern IntPtr WTSVirtualChannelOpen(IntPtr server, int sessionId, [MarshalAs(UnmanagedType.LPStr)] string virtualName); [DllImport("Wtsapi32.dll")] public static extern bool WTSVirtualChannelClose(IntPtr channelHandle); public enum VirtualClass { ClientData, FileHandle }; [DllImport("Wtsapi32.dll", SetLastError = true)] public static extern bool WTSVirtualChannelQuery(IntPtr channelHandle, VirtualClass virtualClass, out IntPtr buffer, ref uint bytesReturned); [DllImport("Wtsapi32.dll", SetLastError = true)] public static extern void WTSFreeMemory(IntPtr memory); } }