localspl: [2/2] Implement SetDefaultCommConfig for XcvDataPort

Detlef Riekenberg wine.dev at web.de
Tue Feb 20 11:12:06 CST 2007


localspl: Implement SetDefaultCommConfig for XcvDataPort


-- 
 
By by ... Detlef

-------------- next part --------------
>From 704e065f04c0c5ceca984e62b40912892f1a11bc Mon Sep 17 00:00:00 2001
From: Detlef Riekenberg <wine.dev at web.de>
Date: Tue, 20 Feb 2007 18:07:31 +0100
Subject: [PATCH] localspl: Implement SetDefaultCommConfig for XcvData
---
 dlls/localspl/localmon.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/dlls/localspl/localmon.c b/dlls/localspl/localmon.c
index 15fd6ee..3c6f4d8 100644
--- a/dlls/localspl/localmon.c
+++ b/dlls/localspl/localmon.c
@@ -79,6 +79,10 @@ static const WCHAR cmd_GetTransmissionRe
 
 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
                 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
         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;
 }
-- 
1.4.1



More information about the wine-patches mailing list