diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 141b2f4125c..fc74e7606f7 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -2358,7 +2358,7 @@ LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter, hWnd,hPrinter,pDeviceName,pDevModeOutput,pDevModeInput,fMode ); - if(!pDeviceName) { + if(!pDeviceName || !*pDeviceName) { LPCWSTR lpNameW = get_opened_printer_name(hPrinter); if(!lpNameW) { ERR("no name from hPrinter?\n"); diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c index 1c98d4de3f4..3990fb80532 100644 --- a/dlls/winspool.drv/tests/info.c +++ b/dlls/winspool.drv/tests/info.c @@ -2653,6 +2653,7 @@ static void test_DocumentProperties(void) HANDLE hprn; LONG dm_size, ret; DEVMODE *dm; + char empty_str[] = ""; if (!default_printer) { @@ -2678,6 +2679,9 @@ static void test_DocumentProperties(void) ret = DocumentProperties(0, hprn, NULL, dm, dm, DM_OUT_BUFFER); ok(ret == IDOK, "DocumentProperties ret value %d != expected IDOK\n", ret); + ret = DocumentProperties(0, hprn, empty_str, dm, dm, DM_OUT_BUFFER); + ok(ret == IDOK, "DocumentProperties ret value %d != expected IDOK\n", ret); + test_DEVMODE(dm, dm_size, default_printer); HeapFree(GetProcessHeap(), 0, dm);