diff --git a/reactos/dll/win32/setupapi/CMakeLists.txt b/reactos/dll/win32/setupapi/CMakeLists.txt index 5f0c7365c4a..e4c3f4b8ff4 100644 --- a/reactos/dll/win32/setupapi/CMakeLists.txt +++ b/reactos/dll/win32/setupapi/CMakeLists.txt @@ -40,7 +40,7 @@ add_library(setupapi SHARED set_module_type(setupapi win32dll UNICODE) target_link_libraries(setupapi uuid wine ${PSEH_LIB}) -add_delay_importlibs(setupapi shell32 wintrust) +add_delay_importlibs(setupapi shell32 winspool wintrust) add_importlibs(setupapi msvcrt diff --git a/reactos/dll/win32/setupapi/dirid.c b/reactos/dll/win32/setupapi/dirid.c index e57a28cadba..f82eceb02cd 100644 --- a/reactos/dll/win32/setupapi/dirid.c +++ b/reactos/dll/win32/setupapi/dirid.c @@ -70,6 +70,7 @@ static const WCHAR *create_system_dirid( int dirid ) WCHAR buffer[MAX_PATH+32], *str; int len; + DWORD needed; switch(dirid) { @@ -122,8 +123,14 @@ static const WCHAR *create_system_dirid( int dirid ) return get_csidl_dir(CSIDL_PROFILE); case DIRID_LOADER: return C_Root; /* FIXME */ + case DIRID_PRINTPROCESSOR: + if (!GetPrintProcessorDirectoryW(NULL, NULL, 1, (LPBYTE)buffer, sizeof(buffer), &needed)) + { + WARN( "cannot retrieve print processor directory\n" ); + return get_unknown_dirid(); + } + break; case DIRID_COLOR: /* FIXME */ - case DIRID_PRINTPROCESSOR: /* FIXME */ default: FIXME( "unknown dirid %d\n", dirid ); return get_unknown_dirid(); diff --git a/reactos/dll/win32/setupapi/setupapi_private.h b/reactos/dll/win32/setupapi/setupapi_private.h index 80a818a66bf..21ff8b621cb 100644 --- a/reactos/dll/win32/setupapi/setupapi_private.h +++ b/reactos/dll/win32/setupapi/setupapi_private.h @@ -31,6 +31,8 @@ #include #include #include +#include +#include #include #include #include