static T GetWTS <T>(uint sessionId, WtsInfoClass kind, Func <IntPtr, T> getResult) { IntPtr buffer; uint strLen; T data = default(T); if (WTSQuerySessionInformation(IntPtr.Zero, sessionId, kind, out buffer, out strLen) && strLen > 1) { data = getResult(buffer); WTSFreeMemory(buffer); } return(data); }
public static extern bool WTSQuerySessionInformation(IntPtr server, int sessionId, WtsInfoClass wtsInfoClass, out IntPtr buffer, out uint bytesReturned);
static extern bool WTSQuerySessionInformation(IntPtr hServer, int sessionId, WtsInfoClass wtsInfoClass, out IntPtr ppBuffer, out uint pBytesReturned);
private static extern bool WTSQuerySessionInformation(IntPtr hServer, int sessionId, WtsInfoClass wtsInfoClass, out System.IntPtr ppBuffer, out int pBytesReturned);
internal static extern bool WTSQuerySessionInformation(IntPtr hServer, int sessionId, WtsInfoClass InfoClass, out IntPtr ppBuffer, out int pBytesReturned);
public static extern bool WTSQuerySessionInformation( IntPtr pServer, int iSessionId, WtsInfoClass oInfoClass, out IntPtr pBuffer, out uint iBytesReturned);
public static extern bool WtsQuerySessionInformation(IntPtr hServer, int sessionId, WtsInfoClass wtsInfoClass, out IntPtr ppBuffer, out uint pBytesReturned);