From 8163e504bc19cfba296468ca98b4b5e61083de59 Mon Sep 17 00:00:00 2001 From: Detlef Riekenberg Date: Tue, 20 Feb 2007 18:12:06 +0100 Subject: [PATCH] localspl: Implement SetDefaultCommConfig for XcvDataPort. --- dlls/localspl/localmon.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/dlls/localspl/localmon.c b/dlls/localspl/localmon.c index 15fd6eea7d5..3aa3485a04b 100644 --- a/dlls/localspl/localmon.c +++ b/dlls/localspl/localmon.c @@ -79,6 +79,10 @@ static const WCHAR cmd_GetTransmissionRetryTimeoutW[] = {'G','e','t', static const WCHAR cmd_MonitorUIW[] = {'M','o','n','i','t','o','r','U','I',0}; static const WCHAR cmd_PortIsValidW[] = {'P','o','r','t','I','s','V','a','l','i','d',0}; +static const WCHAR cmd_SetDefaultCommConfigW[] = {'S','e','t', + 'D','e','f','a','u','l','t', + 'C','o','m','m','C','o','n','f','i','g',0}; + static const WCHAR dllnameuiW[] = {'l','o','c','a','l','u','i','.','d','l','l',0}; static const WCHAR portname_LPT[] = {'L','P','T',0}; @@ -446,11 +450,11 @@ DWORD WINAPI localmon_XcvDataPort(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInput PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded) { WCHAR buffer[16]; /* buffer for a decimal number */ + LPWSTR ptr; DWORD res; DWORD needed; HKEY hroot; - TRACE("(%p, %s, %p, %d, %p, %d, %p)\n", hXcv, debugstr_w(pszDataName), pInputData, cbInputData, pOutputData, cbOutputData, pcbOutputNeeded); @@ -513,6 +517,17 @@ DWORD WINAPI localmon_XcvDataPort(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInput return GetLastError(); } + if (!lstrcmpW(pszDataName, cmd_SetDefaultCommConfigW)) { + /* get the portname from the Handle */ + ptr = strchrW(((xcv_t *)hXcv)->nameW, ' '); + ptr++; /* skip the space */ + lstrcpynW(buffer, ptr, sizeof(buffer)/sizeof(WCHAR)); + if (buffer[0]) buffer[lstrlenW(buffer)-1] = '\0'; /* remove the ':' */ + res = SetDefaultCommConfigW(buffer, (LPCOMMCONFIG) pInputData, cbInputData); + TRACE("got %u with %u\n", res, GetLastError() ); + return res ? ERROR_SUCCESS : GetLastError(); + } + FIXME("command not supported: %s\n", debugstr_w(pszDataName)); return ERROR_INVALID_PARAMETER; }