Detlef Riekenberg : localspl: Implement XcvDataPort.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Jan 17 05:21:31 CST 2007
Module: wine
Branch: master
Commit: 3777163202bf6bd05f71e3e254ecd8552752eb8e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3777163202bf6bd05f71e3e254ecd8552752eb8e
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Tue Jan 16 00:38:02 2007 +0100
localspl: Implement XcvDataPort.
---
dlls/localspl/localmon.c | 52 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 51 insertions(+), 1 deletions(-)
diff --git a/dlls/localspl/localmon.c b/dlls/localspl/localmon.c
index e6dcf39..fcf26f9 100644
--- a/dlls/localspl/localmon.c
+++ b/dlls/localspl/localmon.c
@@ -64,6 +64,8 @@ static struct list xcv_handles = LIST_IN
/* ############################### */
+static const WCHAR cmd_MonitorUIW[] = {'M','o','n','i','t','o','r','U','I',0};
+static const WCHAR dllnameuiW[] = {'l','o','c','a','l','u','i','.','d','l','l',0};
static const WCHAR WinNT_CV_PortsW[] = {'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
@@ -338,6 +340,54 @@ BOOL WINAPI localmon_XcvClosePort(HANDLE
}
/*****************************************************
+ * localmon_XcvDataPort [exported through MONITOREX]
+ *
+ * Execute command through a Communication-Channel
+ *
+ * PARAMS
+ * hXcv [i] The Handle to work with
+ * pszDataName [i] Name of the command to execute
+ * pInputData [i] Buffer for extra Input Data (needed only for some commands)
+ * cbInputData [i] Size in Bytes of Buffer at pInputData
+ * pOutputData [o] Buffer to receive additional Data (needed only for some commands)
+ * cbOutputData [i] Size in Bytes of Buffer at pOutputData
+ * pcbOutputNeeded [o] PTR to receive the minimal Size in Bytes of the Buffer at pOutputData
+ *
+ * RETURNS
+ * Success: ERROR_SUCCESS
+ * Failure: win32 error code (same value is returned by GetLastError)
+ *
+ * NOTES
+ *
+ * Minimal List of commands, that every Printmonitor DLL should support:
+ *
+ *| "MonitorUI" : Return the Name of the Userinterface-DLL as WSTR in pOutputData
+ *| "AddPort" : Add a Port (Name as WSTR in pInputData)
+ *| "DeletePort": Delete a Port (Name as WSTR in pInputData)
+ *
+ *
+ */
+DWORD WINAPI localmon_XcvDataPort(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData, DWORD cbInputData,
+ PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded)
+{
+
+ TRACE("(%p, %s, %p, %d, %p, %d, %p)\n", hXcv, debugstr_w(pszDataName),
+ pInputData, cbInputData, pOutputData, cbOutputData, pcbOutputNeeded);
+
+
+ if (!lstrcmpW(pszDataName, cmd_MonitorUIW)) {
+ * pcbOutputNeeded = sizeof(dllnameuiW);
+ if (cbOutputData >= sizeof(dllnameuiW)) {
+ memcpy(pOutputData, dllnameuiW, sizeof(dllnameuiW));
+ return ERROR_SUCCESS;
+ }
+ return ERROR_INSUFFICIENT_BUFFER;
+ }
+ FIXME("command not supported: %s\n", debugstr_w(pszDataName));
+ return ERROR_INVALID_PARAMETER;
+}
+
+/*****************************************************
* localmon_XcvOpenPort [exported through MONITOREX]
*
* Open a Communication-Channel
@@ -418,7 +468,7 @@ LPMONITOREX WINAPI InitializePrintMonito
NULL, /* localmon_GetPrinterDataFromPort */
NULL, /* localmon_SetPortTimeOuts */
localmon_XcvOpenPort,
- NULL, /* localmon_XcvDataPort */
+ localmon_XcvDataPort,
localmon_XcvClosePort
}
};
More information about the wine-cvs
mailing list