Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
510c4dc7
Commit
510c4dc7
authored
Jul 26, 2007
by
Detlef Riekenberg
Committed by
Alexandre Julliard
Jul 27, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winspool: Return most fields for DRIVER_INFO_4 and 6.
parent
7a2c4fb1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
84 additions
and
12 deletions
+84
-12
info.c
dlls/winspool.drv/info.c
+84
-12
No files found.
dlls/winspool.drv/info.c
View file @
510c4dc7
...
@@ -205,28 +205,27 @@ static const WCHAR Configuration_FileW[] = {'C','o','n','f','i','g','u','r','a',
...
@@ -205,28 +205,27 @@ static const WCHAR Configuration_FileW[] = {'C','o','n','f','i','g','u','r','a',
'i'
,
'o'
,
'n'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
'i'
,
'o'
,
'n'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
DatatypeW
[]
=
{
'D'
,
'a'
,
't'
,
'a'
,
't'
,
'y'
,
'p'
,
'e'
,
0
};
static
const
WCHAR
DatatypeW
[]
=
{
'D'
,
'a'
,
't'
,
'a'
,
't'
,
'y'
,
'p'
,
'e'
,
0
};
static
const
WCHAR
Data_FileW
[]
=
{
'D'
,
'a'
,
't'
,
'a'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
Data_FileW
[]
=
{
'D'
,
'a'
,
't'
,
'a'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
Default_DevModeW
[]
=
{
'D'
,
'e'
,
'f'
,
'a'
,
'u'
,
'l'
,
't'
,
' '
,
'D'
,
'e'
,
'v'
,
static
const
WCHAR
Default_DevModeW
[]
=
{
'D'
,
'e'
,
'f'
,
'a'
,
'u'
,
'l'
,
't'
,
' '
,
'D'
,
'e'
,
'v'
,
'M'
,
'o'
,
'd'
,
'e'
,
0
};
'M'
,
'o'
,
'd'
,
'e'
,
0
};
static
const
WCHAR
Dependent_FilesW
[]
=
{
'D'
,
'e'
,
'p'
,
'e'
,
'n'
,
'd'
,
'e'
,
'n'
,
't'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
's'
,
0
};
static
const
WCHAR
Dependent_FilesW
[]
=
{
'D'
,
'e'
,
'p'
,
'e'
,
'n'
,
'd'
,
'e'
,
'n'
,
't'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
's'
,
0
};
static
const
WCHAR
DescriptionW
[]
=
{
'D'
,
'e'
,
's'
,
'c'
,
'r'
,
'i'
,
'p'
,
't'
,
'i'
,
'o'
,
'n'
,
0
};
static
const
WCHAR
DescriptionW
[]
=
{
'D'
,
'e'
,
's'
,
'c'
,
'r'
,
'i'
,
'p'
,
't'
,
'i'
,
'o'
,
'n'
,
0
};
static
const
WCHAR
DriverW
[]
=
{
'D'
,
'r'
,
'i'
,
'v'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
DriverW
[]
=
{
'D'
,
'r'
,
'i'
,
'v'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
HardwareIDW
[]
=
{
'H'
,
'a'
,
'r'
,
'd'
,
'w'
,
'a'
,
'r'
,
'e'
,
'I'
,
'D'
,
0
};
static
const
WCHAR
Help_FileW
[]
=
{
'H'
,
'e'
,
'l'
,
'p'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
Help_FileW
[]
=
{
'H'
,
'e'
,
'l'
,
'p'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
LocationW
[]
=
{
'L'
,
'o'
,
'c'
,
'a'
,
't'
,
'i'
,
'o'
,
'n'
,
0
};
static
const
WCHAR
LocationW
[]
=
{
'L'
,
'o'
,
'c'
,
'a'
,
't'
,
'i'
,
'o'
,
'n'
,
0
};
static
const
WCHAR
ManufacturerW
[]
=
{
'M'
,
'a'
,
'n'
,
'u'
,
'f'
,
'a'
,
'c'
,
't'
,
'u'
,
'r'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
MonitorW
[]
=
{
'M'
,
'o'
,
'n'
,
'i'
,
't'
,
'o'
,
'r'
,
0
};
static
const
WCHAR
MonitorW
[]
=
{
'M'
,
'o'
,
'n'
,
'i'
,
't'
,
'o'
,
'r'
,
0
};
static
const
WCHAR
MonitorUIW
[]
=
{
'M'
,
'o'
,
'n'
,
'i'
,
't'
,
'o'
,
'r'
,
'U'
,
'I'
,
0
};
static
const
WCHAR
MonitorUIW
[]
=
{
'M'
,
'o'
,
'n'
,
'i'
,
't'
,
'o'
,
'r'
,
'U'
,
'I'
,
0
};
static
const
WCHAR
NameW
[]
=
{
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
NameW
[]
=
{
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
OEM_UrlW
[]
=
{
'O'
,
'E'
,
'M'
,
' '
,
'U'
,
'r'
,
'l'
,
0
};
static
const
WCHAR
ParametersW
[]
=
{
'P'
,
'a'
,
'r'
,
'a'
,
'm'
,
'e'
,
't'
,
'e'
,
'r'
,
's'
,
0
};
static
const
WCHAR
ParametersW
[]
=
{
'P'
,
'a'
,
'r'
,
'a'
,
'm'
,
'e'
,
't'
,
'e'
,
'r'
,
's'
,
0
};
static
const
WCHAR
PortW
[]
=
{
'P'
,
'o'
,
'r'
,
't'
,
0
};
static
const
WCHAR
PortW
[]
=
{
'P'
,
'o'
,
'r'
,
't'
,
0
};
static
const
WCHAR
bs_Ports_bsW
[]
=
{
'\\'
,
'P'
,
'o'
,
'r'
,
't'
,
's'
,
'\\'
,
0
};
static
const
WCHAR
bs_Ports_bsW
[]
=
{
'\\'
,
'P'
,
'o'
,
'r'
,
't'
,
's'
,
'\\'
,
0
};
static
const
WCHAR
Print_ProcessorW
[]
=
{
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
' '
,
'P'
,
'r'
,
'o'
,
'c'
,
'e'
,
static
const
WCHAR
Previous_NamesW
[]
=
{
'P'
,
'r'
,
'e'
,
'v'
,
'i'
,
'o'
,
'u'
,
's'
,
' '
,
'N'
,
'a'
,
'm'
,
'e'
,
's'
,
0
};
's'
,
's'
,
'o'
,
'r'
,
0
};
static
const
WCHAR
Print_ProcessorW
[]
=
{
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
' '
,
'P'
,
'r'
,
'o'
,
'c'
,
'e'
,
's'
,
's'
,
'o'
,
'r'
,
0
};
static
const
WCHAR
Printer_DriverW
[]
=
{
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
'e'
,
'r'
,
' '
,
'D'
,
'r'
,
'i'
,
static
const
WCHAR
Printer_DriverW
[]
=
{
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
'e'
,
'r'
,
' '
,
'D'
,
'r'
,
'i'
,
'v'
,
'e'
,
'r'
,
0
};
'v'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
PrinterDriverDataW
[]
=
{
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
'e'
,
'r'
,
'D'
,
'r'
,
'i'
,
'v'
,
'e'
,
'r'
,
'D'
,
'a'
,
't'
,
'a'
,
0
};
static
const
WCHAR
PrinterDriverDataW
[]
=
{
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
'e'
,
'r'
,
'D'
,
'r'
,
'i'
,
static
const
WCHAR
ProviderW
[]
=
{
'P'
,
'r'
,
'o'
,
'v'
,
'i'
,
'd'
,
'e'
,
'r'
,
0
};
'v'
,
'e'
,
'r'
,
'D'
,
'a'
,
't'
,
'a'
,
0
};
static
const
WCHAR
Separator_FileW
[]
=
{
'S'
,
'e'
,
'p'
,
'a'
,
'r'
,
'a'
,
't'
,
'o'
,
'r'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
Separator_FileW
[]
=
{
'S'
,
'e'
,
'p'
,
'a'
,
'r'
,
'a'
,
't'
,
'o'
,
'r'
,
' '
,
'F'
,
'i'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
Share_NameW
[]
=
{
'S'
,
'h'
,
'a'
,
'r'
,
'e'
,
' '
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
Share_NameW
[]
=
{
'S'
,
'h'
,
'a'
,
'r'
,
'e'
,
' '
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
WinPrintW
[]
=
{
'W'
,
'i'
,
'n'
,
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
0
};
static
const
WCHAR
WinPrintW
[]
=
{
'W'
,
'i'
,
'n'
,
'P'
,
'r'
,
'i'
,
'n'
,
't'
,
0
};
static
const
WCHAR
deviceW
[]
=
{
'd'
,
'e'
,
'v'
,
'i'
,
'c'
,
'e'
,
0
};
static
const
WCHAR
deviceW
[]
=
{
'd'
,
'e'
,
'v'
,
'i'
,
'c'
,
'e'
,
0
};
...
@@ -4523,6 +4522,79 @@ static BOOL WINSPOOL_GetDriverInfoFromReg(
...
@@ -4523,6 +4522,79 @@ static BOOL WINSPOOL_GetDriverInfoFromReg(
strPtr
=
(
pDriverStrings
)
?
pDriverStrings
+
(
*
pcbNeeded
)
:
NULL
;
strPtr
=
(
pDriverStrings
)
?
pDriverStrings
+
(
*
pcbNeeded
)
:
NULL
;
}
}
if
(
Level
==
3
)
{
RegCloseKey
(
hkeyDriver
);
TRACE
(
"buffer space %d required %d
\n
"
,
cbBuf
,
*
pcbNeeded
);
return
TRUE
;
}
/* .pszzPreviousNames */
if
(
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
Previous_NamesW
,
strPtr
,
0
,
&
size
,
unicode
))
{
*
pcbNeeded
+=
size
;
if
(
*
pcbNeeded
<=
cbBuf
)
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
Previous_NamesW
,
strPtr
,
size
,
&
size
,
unicode
);
if
(
di
)
di
->
pszzPreviousNames
=
(
LPWSTR
)
strPtr
;
strPtr
=
(
pDriverStrings
)
?
pDriverStrings
+
(
*
pcbNeeded
)
:
NULL
;
}
if
(
Level
==
4
)
{
RegCloseKey
(
hkeyDriver
);
TRACE
(
"buffer space %d required %d
\n
"
,
cbBuf
,
*
pcbNeeded
);
return
TRUE
;
}
/* support is missing, but not important enough for a FIXME */
TRACE
(
"%s: DriverDate + DriverVersion not supported
\n
"
,
debugstr_w
(
DriverName
));
/* .pszMfgName */
if
(
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
ManufacturerW
,
strPtr
,
0
,
&
size
,
unicode
))
{
*
pcbNeeded
+=
size
;
if
(
*
pcbNeeded
<=
cbBuf
)
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
ManufacturerW
,
strPtr
,
size
,
&
size
,
unicode
);
if
(
di
)
di
->
pszMfgName
=
(
LPWSTR
)
strPtr
;
strPtr
=
(
pDriverStrings
)
?
pDriverStrings
+
(
*
pcbNeeded
)
:
NULL
;
}
/* .pszOEMUrl */
if
(
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
OEM_UrlW
,
strPtr
,
0
,
&
size
,
unicode
))
{
*
pcbNeeded
+=
size
;
if
(
*
pcbNeeded
<=
cbBuf
)
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
OEM_UrlW
,
strPtr
,
size
,
&
size
,
unicode
);
if
(
di
)
di
->
pszOEMUrl
=
(
LPWSTR
)
strPtr
;
strPtr
=
(
pDriverStrings
)
?
pDriverStrings
+
(
*
pcbNeeded
)
:
NULL
;
}
/* .pszHardwareID */
if
(
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
HardwareIDW
,
strPtr
,
0
,
&
size
,
unicode
))
{
*
pcbNeeded
+=
size
;
if
(
*
pcbNeeded
<=
cbBuf
)
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
HardwareIDW
,
strPtr
,
size
,
&
size
,
unicode
);
if
(
di
)
di
->
pszHardwareID
=
(
LPWSTR
)
strPtr
;
strPtr
=
(
pDriverStrings
)
?
pDriverStrings
+
(
*
pcbNeeded
)
:
NULL
;
}
/* .pszProvider */
if
(
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
ProviderW
,
strPtr
,
0
,
&
size
,
unicode
))
{
*
pcbNeeded
+=
size
;
if
(
*
pcbNeeded
<=
cbBuf
)
WINSPOOL_GetStringFromReg
(
hkeyDriver
,
ProviderW
,
strPtr
,
size
,
&
size
,
unicode
);
if
(
di
)
di
->
pszProvider
=
(
LPWSTR
)
strPtr
;
strPtr
=
(
pDriverStrings
)
?
pDriverStrings
+
(
*
pcbNeeded
)
:
NULL
;
}
if
(
Level
==
6
)
{
RegCloseKey
(
hkeyDriver
);
return
TRUE
;
}
/* support is missing, but not important enough for a FIXME */
TRACE
(
"level 8: incomplete
\n
"
);
TRACE
(
"buffer space %d required %d
\n
"
,
cbBuf
,
*
pcbNeeded
);
TRACE
(
"buffer space %d required %d
\n
"
,
cbBuf
,
*
pcbNeeded
);
RegCloseKey
(
hkeyDriver
);
RegCloseKey
(
hkeyDriver
);
return
TRUE
;
return
TRUE
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment