diff --git a/dlls/msi/package.c b/dlls/msi/package.c index 5c42cd86f10..58861d3c207 100644 --- a/dlls/msi/package.c +++ b/dlls/msi/package.c @@ -932,9 +932,15 @@ UINT WINAPI MsiOpenPackageExW(LPCWSTR szPackage, DWORD dwOptions, MSIHANDLE *phP TRACE("%s %08x %p\n", debugstr_w(szPackage), dwOptions, phPackage ); - if( szPackage == NULL ) + if( !szPackage || !phPackage ) return ERROR_INVALID_PARAMETER; + if ( !*szPackage ) + { + FIXME("Should create an empty database and package."); + return ERROR_FUNCTION_FAILED; + } + if( dwOptions ) FIXME("dwOptions %08x not supported\n", dwOptions); diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index f4b0a4deffc..af9b7867200 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -2056,10 +2056,7 @@ static void test_msipackage(void) /* NULL hProduct */ r = MsiOpenPackage(msifile, NULL); - todo_wine - { - ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - } + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); name[0]='#'; name[1]=0;