winspool: Add GetPrintProcessorDirectoryA.
This commit is contained in:
parent
70c34ccc47
commit
94543cb630
|
@ -1831,17 +1831,47 @@ end:
|
||||||
*
|
*
|
||||||
* See GetPrintProcessorDirectoryW.
|
* See GetPrintProcessorDirectoryW.
|
||||||
*
|
*
|
||||||
* NOTES
|
|
||||||
* On NT, the returned ANSI-Data need the same Size as the Unicode-Version
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR server, LPSTR env,
|
BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR server, LPSTR env,
|
||||||
DWORD level, LPBYTE Info,
|
DWORD level, LPBYTE Info,
|
||||||
DWORD cbBuf, LPDWORD needed)
|
DWORD cbBuf, LPDWORD pcbNeeded)
|
||||||
{
|
{
|
||||||
FIXME("(%s,%s,%ld,%p,0x%08lx): stub\n", debugstr_a(server), debugstr_a(env),
|
LPWSTR serverW = NULL;
|
||||||
level, Info, cbBuf);
|
LPWSTR envW = NULL;
|
||||||
return 0;
|
BOOL ret;
|
||||||
|
INT len;
|
||||||
|
|
||||||
|
TRACE("(%s, %s, %ld, %p, %ld, %p)\n", debugstr_a(server),
|
||||||
|
debugstr_a(env), level, Info, cbBuf, pcbNeeded);
|
||||||
|
|
||||||
|
|
||||||
|
if (server) {
|
||||||
|
len = MultiByteToWideChar(CP_ACP, 0, server, -1, NULL, 0);
|
||||||
|
serverW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||||
|
MultiByteToWideChar(CP_ACP, 0, server, -1, serverW, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (env) {
|
||||||
|
len = MultiByteToWideChar(CP_ACP, 0, env, -1, NULL, 0);
|
||||||
|
envW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||||
|
MultiByteToWideChar(CP_ACP, 0, env, -1, envW, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NT requires the buffersize from GetPrintProcessorDirectoryW also
|
||||||
|
for GetPrintProcessorDirectoryA and WC2MB is done in-place.
|
||||||
|
*/
|
||||||
|
ret = GetPrintProcessorDirectoryW(serverW, envW, level, Info,
|
||||||
|
cbBuf, pcbNeeded);
|
||||||
|
|
||||||
|
if (ret) ret = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)Info, -1, (LPSTR)Info,
|
||||||
|
cbBuf, NULL, NULL) > 0;
|
||||||
|
|
||||||
|
|
||||||
|
TRACE(" required: 0x%lx/%ld\n", pcbNeeded ? *pcbNeeded : 0, pcbNeeded ? *pcbNeeded : 0);
|
||||||
|
HeapFree(GetProcessHeap(), 0, envW);
|
||||||
|
HeapFree(GetProcessHeap(), 0, serverW);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
Loading…
Reference in New Issue