Commit 18ff9ce6 authored by Paul Gofman's avatar Paul Gofman Committed by Alexandre Julliard

wtsapi32: Handle WTSConnectState class in WTSQuerySessionInformationW().

parent 7c248ff4
......@@ -192,10 +192,25 @@ static void test_WTSQuerySessionInformation(void)
{
WCHAR *buf1, usernameW[UNLEN + 1], computernameW[MAX_COMPUTERNAME_LENGTH + 1];
char *buf2, username[UNLEN + 1], computername[MAX_COMPUTERNAME_LENGTH + 1];
WTS_CONNECTSTATE_CLASS *state;
DWORD count, tempsize;
USHORT *protocol;
BOOL ret;
count = 0;
ret = WTSQuerySessionInformationW(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSConnectState, (WCHAR **)&state, &count);
ok(ret, "got error %lu\n", GetLastError());
ok(count == sizeof(*state), "got %lu\n", count);
ok(*state == WTSActive, "got %d.\n", *state);
WTSFreeMemory(state);
count = 0;
ret = WTSQuerySessionInformationA(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSConnectState, (char **)&state, &count);
ok(ret, "got error %lu\n", GetLastError());
ok(count == sizeof(*state), "got %lu\n", count);
ok(*state == WTSActive, "got %d.\n", *state);
WTSFreeMemory(state);
SetLastError(0xdeadbeef);
count = 0;
ret = WTSQuerySessionInformationW(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSUserName, NULL, &count);
......
......@@ -468,17 +468,8 @@ BOOL WINAPI WTSQuerySessionInformationA(HANDLE server, DWORD session_id, WTS_INF
return FALSE;
}
if (class == WTSClientProtocolType)
{
USHORT *protocol;
if (!(protocol = heap_alloc(sizeof(*protocol)))) return FALSE;
FIXME("returning 0 protocol type\n");
*protocol = 0;
*buffer = (char *)protocol;
*count = sizeof(*protocol);
return TRUE;
}
if (class == WTSClientProtocolType || class == WTSConnectState)
return WTSQuerySessionInformationW(server, session_id, class, (WCHAR **)buffer, count);
if (!WTSQuerySessionInformationW(server, session_id, class, &bufferW, count))
return FALSE;
......@@ -520,6 +511,17 @@ BOOL WINAPI WTSQuerySessionInformationW(HANDLE server, DWORD session_id, WTS_INF
return FALSE;
}
if (class == WTSConnectState)
{
WTS_CONNECTSTATE_CLASS *state;
if (!(state = heap_alloc(sizeof(*state)))) return FALSE;
*state = WTSActive;
*buffer = (WCHAR *)state;
*count = sizeof(*state);
return TRUE;
}
if (class == WTSClientProtocolType)
{
USHORT *protocol;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment