2 * tests for Microsoft Installer functionality
4 * Copyright 2005 Mike McCormack for CodeWeavers
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26 #include "wine/test.h"
28 typedef INSTALLSTATE (WINAPI *fnMsiUseFeatureExA)(LPCSTR, LPCSTR ,DWORD, DWORD );
29 fnMsiUseFeatureExA pMsiUseFeatureExA;
30 typedef UINT (WINAPI *fnMsiOpenPackageExA)(LPCSTR, DWORD, MSIHANDLE*);
31 fnMsiOpenPackageExA pMsiOpenPackageExA;
32 typedef UINT (WINAPI *fnMsiOpenPackageExW)(LPCWSTR, DWORD, MSIHANDLE*);
33 fnMsiOpenPackageExW pMsiOpenPackageExW;
35 static void test_usefeature(void)
39 if (!pMsiUseFeatureExA)
42 r = MsiQueryFeatureState(NULL,NULL);
43 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
45 r = MsiQueryFeatureState("{9085040-6000-11d3-8cfe-0150048383c9}" ,NULL);
46 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
48 r = pMsiUseFeatureExA(NULL,NULL,0,0);
49 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
51 r = pMsiUseFeatureExA(NULL, "WORDVIEWFiles", -2, 1 );
52 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
54 r = pMsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}",
56 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
58 r = pMsiUseFeatureExA("{9085040-6000-11d3-8cfe-0150048383c9}",
59 "WORDVIEWFiles", -2, 0 );
60 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
62 r = pMsiUseFeatureExA("{0085040-6000-11d3-8cfe-0150048383c9}",
63 "WORDVIEWFiles", -2, 0 );
64 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
66 r = pMsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}",
67 "WORDVIEWFiles", -2, 1 );
68 ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
71 static void test_null(void)
76 r = pMsiOpenPackageExW(NULL, 0, &hpkg);
77 ok( r == ERROR_INVALID_PARAMETER,"wrong error\n");
79 r = MsiQueryProductStateW(NULL);
80 ok( r == INSTALLSTATE_INVALIDARG, "wrong return\n");
82 r = MsiEnumFeaturesW(NULL,0,NULL,NULL);
83 ok( r == ERROR_INVALID_PARAMETER,"wrong error\n");
88 HMODULE hmod = GetModuleHandle("msi.dll");
89 pMsiUseFeatureExA = (fnMsiUseFeatureExA)
90 GetProcAddress(hmod, "MsiUseFeatureExA");
91 pMsiOpenPackageExA = (fnMsiOpenPackageExA)
92 GetProcAddress(hmod, "MsiOpenPackageExA");
93 pMsiOpenPackageExW = (fnMsiOpenPackageExW)
94 GetProcAddress(hmod, "MsiOpenPackageExW");