Detlef Riekenberg : winspool: Return the full path in DRIVER_INFO_2
and 3.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Jul 27 07:34:47 CDT 2007
Module: wine
Branch: master
Commit: 7a2c4fb1df1b439094e3b4aec20adf7590c5afeb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7a2c4fb1df1b439094e3b4aec20adf7590c5afeb
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Thu Jul 26 23:24:31 2007 +0200
winspool: Return the full path in DRIVER_INFO_2 and 3.
---
dlls/winspool.drv/info.c | 84 +++++++++++++++++++++++-----------------------
1 files changed, 42 insertions(+), 42 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 0c735d3..d00afc5 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -4451,75 +4451,75 @@ static BOOL WINSPOOL_GetDriverInfoFromReg(
strPtr = (pDriverStrings) ? (pDriverStrings + (*pcbNeeded)) : NULL;
}
- if(WINSPOOL_GetStringFromReg(hkeyDriver, Data_FileW, strPtr, 0, &size,
- unicode)) {
+ /* .pDataFile: For postscript-drivers, this is the ppd-file */
+ if (get_filename_from_reg(hkeyDriver, driverdir, dirlen, Data_FileW, strPtr, 0, &size, unicode)) {
*pcbNeeded += size;
- if(*pcbNeeded <= cbBuf)
- WINSPOOL_GetStringFromReg(hkeyDriver, Data_FileW, strPtr, size,
- &tmp, unicode);
- if(ptr)
- ((PDRIVER_INFO_2W) ptr)->pDataFile = (LPWSTR)strPtr;
+ if (*pcbNeeded <= cbBuf)
+ get_filename_from_reg(hkeyDriver, driverdir, dirlen, Data_FileW, strPtr, size, &size, unicode);
+
+ if (di) di->pDataFile = (LPWSTR)strPtr;
strPtr = (pDriverStrings) ? pDriverStrings + (*pcbNeeded) : NULL;
}
- if(WINSPOOL_GetStringFromReg(hkeyDriver, Configuration_FileW, strPtr,
- 0, &size, unicode)) {
+ /* .pConfigFile is the Driver user Interface */
+ if (get_filename_from_reg(hkeyDriver, driverdir, dirlen, Configuration_FileW, strPtr, 0, &size, unicode)) {
*pcbNeeded += size;
- if(*pcbNeeded <= cbBuf)
- WINSPOOL_GetStringFromReg(hkeyDriver, Configuration_FileW, strPtr,
- size, &tmp, unicode);
- if(ptr)
- ((PDRIVER_INFO_2W) ptr)->pConfigFile = (LPWSTR)strPtr;
+ if (*pcbNeeded <= cbBuf)
+ get_filename_from_reg(hkeyDriver, driverdir, dirlen, Configuration_FileW, strPtr, size, &size, unicode);
+
+ if (di) di->pConfigFile = (LPWSTR)strPtr;
strPtr = (pDriverStrings) ? pDriverStrings + (*pcbNeeded) : NULL;
}
- if(Level == 2 ) {
+ if (Level == 2 ) {
RegCloseKey(hkeyDriver);
TRACE("buffer space %d required %d\n", cbBuf, *pcbNeeded);
return TRUE;
}
- if (Level != 5 && WINSPOOL_GetStringFromReg(hkeyDriver, Help_FileW, strPtr, 0, &size,
- unicode)) {
+ if (Level == 5 ) {
+ RegCloseKey(hkeyDriver);
+ FIXME("level 5: incomplete\n");
+ return TRUE;
+ }
+
+ /* .pHelpFile */
+ if (get_filename_from_reg(hkeyDriver, driverdir, dirlen, Help_FileW, strPtr, 0, &size, unicode)) {
*pcbNeeded += size;
- if(*pcbNeeded <= cbBuf)
- WINSPOOL_GetStringFromReg(hkeyDriver, Help_FileW, strPtr,
- size, &tmp, unicode);
- if(ptr)
- ((PDRIVER_INFO_3W) ptr)->pHelpFile = (LPWSTR)strPtr;
+ if (*pcbNeeded <= cbBuf)
+ get_filename_from_reg(hkeyDriver, driverdir, dirlen, Help_FileW, strPtr, size, &size, unicode);
+
+ if (di) di->pHelpFile = (LPWSTR)strPtr;
strPtr = (pDriverStrings) ? pDriverStrings + (*pcbNeeded) : NULL;
}
- if (Level != 5 && WINSPOOL_GetStringFromReg(hkeyDriver, Dependent_FilesW, strPtr, 0,
- &size, unicode)) {
+ /* .pDependentFiles */
+ if (get_filename_from_reg(hkeyDriver, driverdir, dirlen, Dependent_FilesW, strPtr, 0, &size, unicode)) {
*pcbNeeded += size;
- if(*pcbNeeded <= cbBuf)
- WINSPOOL_GetStringFromReg(hkeyDriver, Dependent_FilesW, strPtr,
- size, &tmp, unicode);
- if(ptr)
- ((PDRIVER_INFO_3W) ptr)->pDependentFiles = (LPWSTR)strPtr;
+ if (*pcbNeeded <= cbBuf)
+ get_filename_from_reg(hkeyDriver, driverdir, dirlen, Dependent_FilesW, strPtr, size, &size, unicode);
+
+ if (di) di->pDependentFiles = (LPWSTR)strPtr;
strPtr = (pDriverStrings) ? pDriverStrings + (*pcbNeeded) : NULL;
}
- if (Level != 5 && WINSPOOL_GetStringFromReg(hkeyDriver, MonitorW, strPtr, 0, &size,
- unicode)) {
+ /* .pMonitorName is the optional Language Monitor */
+ if (WINSPOOL_GetStringFromReg(hkeyDriver, MonitorW, strPtr, 0, &size, unicode)) {
*pcbNeeded += size;
- if(*pcbNeeded <= cbBuf)
- WINSPOOL_GetStringFromReg(hkeyDriver, MonitorW, strPtr,
- size, &tmp, unicode);
- if(ptr)
- ((PDRIVER_INFO_3W) ptr)->pMonitorName = (LPWSTR)strPtr;
+ if (*pcbNeeded <= cbBuf)
+ WINSPOOL_GetStringFromReg(hkeyDriver, MonitorW, strPtr, size, &size, unicode);
+
+ if (di) di->pMonitorName = (LPWSTR)strPtr;
strPtr = (pDriverStrings) ? pDriverStrings + (*pcbNeeded) : NULL;
}
- if (Level != 5 && WINSPOOL_GetStringFromReg(hkeyDriver, DatatypeW, strPtr, 0, &size,
- unicode)) {
+ /* .pDefaultDataType */
+ if (WINSPOOL_GetStringFromReg(hkeyDriver, DatatypeW, strPtr, 0, &size, unicode)) {
*pcbNeeded += size;
if(*pcbNeeded <= cbBuf)
- WINSPOOL_GetStringFromReg(hkeyDriver, DatatypeW, strPtr,
- size, &tmp, unicode);
- if(ptr)
- ((PDRIVER_INFO_3W) ptr)->pDefaultDataType = (LPWSTR)strPtr;
+ WINSPOOL_GetStringFromReg(hkeyDriver, DatatypeW, strPtr, size, &size, unicode);
+
+ if (di) di->pDefaultDataType = (LPWSTR)strPtr;
strPtr = (pDriverStrings) ? pDriverStrings + (*pcbNeeded) : NULL;
}
More information about the wine-cvs
mailing list