diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index 724cd4d7bafa1b18ef118c4be1ed13eb044ed515..dc5d0cde0357743d0956459a208c95022e4d10dc 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -29,6 +29,7 @@
 #include "msiquery.h"
 #include "msipriv.h"
 #include "objidl.h"
+#include "wincrypt.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(msi);
 
@@ -235,6 +236,46 @@ UINT WINAPI MsiOpenPackageW(LPCWSTR szPackage, MSIHANDLE *phPackage)
     return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
+UINT WINAPI MsiOpenPackageExA(LPCSTR szPackage, DWORD dwOptions, MSIHANDLE *phPackage)
+{
+    FIXME("%s 0x%08lx %p\n",debugstr_a(szPackage), dwOptions, phPackage);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiOpenPackageExW(LPCWSTR szPackage, DWORD dwOptions, MSIHANDLE *phPackage)
+{
+    FIXME("%s 0x%08lx %p\n",debugstr_w(szPackage), dwOptions, phPackage);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiAdvertiseProductA(LPCSTR szPackagePath, LPCSTR szScriptfilePath, LPCSTR szTransforms, LANGID lgidLanguage)
+{
+    FIXME("%s %s %s 0x%08x\n",debugstr_a(szPackagePath), debugstr_a(szScriptfilePath), debugstr_a(szTransforms), lgidLanguage);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiAdvertiseProductW(LPCWSTR szPackagePath, LPCWSTR szScriptfilePath, LPCWSTR szTransforms, LANGID lgidLanguage)
+{
+    FIXME("%s %s %s 0x%08x\n",debugstr_w(szPackagePath), debugstr_w(szScriptfilePath), debugstr_w(szTransforms), lgidLanguage);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiAdvertiseProductExA(
+    LPCSTR szPackagePath, LPCSTR szScriptfilePath, LPCSTR szTransforms, LANGID lgidLanguage, DWORD dwPlatform, DWORD dwOptions)
+{
+    FIXME("%s %s %s 0x%08x 0x%08lx 0x%08lx\n",
+	debugstr_a(szPackagePath), debugstr_a(szScriptfilePath), debugstr_a(szTransforms), lgidLanguage, dwPlatform, dwOptions);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiAdvertiseProductExW(
+    LPCWSTR szPackagePath, LPCWSTR szScriptfilePath, LPCWSTR szTransforms, LANGID lgidLanguage, DWORD dwPlatform, DWORD dwOptions)
+{
+    FIXME("%s %s %s 0x%08x 0x%08lx 0x%08lx\n",
+	debugstr_w(szPackagePath), debugstr_w(szScriptfilePath), debugstr_w(szTransforms), lgidLanguage, dwPlatform, dwOptions);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
 UINT WINAPI MsiInstallProductA(LPCSTR szPackagePath, LPCSTR szCommandLine)
 {
     LPWSTR szwPath = NULL, szwCommand = NULL;
@@ -607,6 +648,36 @@ end:
     return r;
 }
 
+UINT WINAPI MsiEnumComponentQualifiersA(
+    LPSTR szComponent, DWORD iIndex, LPSTR lpQualifierBuf, DWORD* pcchQualifierBuf, LPSTR lpApplicationDataBuf, DWORD* pcchApplicationDataBuf)
+{
+FIXME("%s 0x%08lx %p %p %p %p\n", debugstr_a(szComponent), iIndex, lpQualifierBuf, pcchQualifierBuf, lpApplicationDataBuf, pcchApplicationDataBuf);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiEnumComponentQualifiersW(
+    LPWSTR szComponent, DWORD iIndex, LPWSTR lpQualifierBuf, DWORD* pcchQualifierBuf, LPWSTR lpApplicationDataBuf, DWORD* pcchApplicationDataBuf)
+{
+FIXME("%s 0x%08lx %p %p %p %p\n", debugstr_w(szComponent), iIndex, lpQualifierBuf, pcchQualifierBuf, lpApplicationDataBuf, pcchApplicationDataBuf);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiProvideAssemblyA(
+    LPCSTR szAssemblyName, LPCSTR szAppContext, DWORD dwInstallMode, DWORD dwAssemblyInfo, LPSTR lpPathBuf, DWORD* pcchPathBuf) 
+{
+    FIXME("%s %s 0x%08lx 0x%08lx %p %p\n", 
+	debugstr_a(szAssemblyName),  debugstr_a(szAppContext), dwInstallMode, dwAssemblyInfo, lpPathBuf, pcchPathBuf);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiProvideAssemblyW(
+    LPCWSTR szAssemblyName, LPCWSTR szAppContext, DWORD dwInstallMode, DWORD dwAssemblyInfo, LPWSTR lpPathBuf, DWORD* pcchPathBuf) 
+{
+    FIXME("%s %s 0x%08lx 0x%08lx %p %p\n", 
+	debugstr_w(szAssemblyName),  debugstr_w(szAppContext), dwInstallMode, dwAssemblyInfo, lpPathBuf, pcchPathBuf);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
 UINT WINAPI MsiProvideComponentFromDescriptorA( LPCSTR szDescriptor, LPSTR szPath, DWORD *pcchPath, DWORD *pcchArgs )
 {
     FIXME("%s %p %p %p\n", debugstr_a(szDescriptor), szPath, pcchPath, pcchArgs );
@@ -619,6 +690,20 @@ UINT WINAPI MsiProvideComponentFromDescriptorW( LPCWSTR szDescriptor, LPWSTR szP
     return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
+HRESULT WINAPI MsiGetFileSignatureInformationA(
+  LPCSTR szSignedObjectPath, DWORD dwFlags, PCCERT_CONTEXT* ppcCertContext, BYTE* pbHashData, DWORD* pcbHashData)
+{
+    FIXME("%s 0x%08lx %p %p %p\n", debugstr_a(szSignedObjectPath), dwFlags, ppcCertContext, pbHashData, pcbHashData);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+HRESULT WINAPI MsiGetFileSignatureInformationW(
+  LPCWSTR szSignedObjectPath, DWORD dwFlags, PCCERT_CONTEXT* ppcCertContext, BYTE* pbHashData, DWORD* pcbHashData)
+{
+    FIXME("%s 0x%08lx %p %p %p\n", debugstr_w(szSignedObjectPath), dwFlags, ppcCertContext, pbHashData, pcbHashData);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
 HRESULT WINAPI MSI_DllGetVersion(DLLVERSIONINFO *pdvi)
 {
     TRACE("%p\n",pdvi);
diff --git a/dlls/msi/msi.spec b/dlls/msi/msi.spec
index 70459444f898d7ab57babd9d30a0874c94b2580b..b2e4f5135b634805990542286c3acde050d9da72 100644
--- a/dlls/msi/msi.spec
+++ b/dlls/msi/msi.spec
@@ -2,8 +2,8 @@
 2 stub DllGetClassObject
 3 stub DllRegisterServer
 4 stub DllUnregisterServer
-5 stub MsiAdvertiseProductA
-6 stub MsiAdvertiseProductW
+5 stdcall MsiAdvertiseProductA(str str str long) MsiAdvertiseProductA
+6 stdcall MsiAdvertiseProductW(wstr wstr wstr long) MsiAdvertiseProductW
 7 stdcall MsiCloseAllHandles() MsiCloseAllHandles
 8 stdcall MsiCloseHandle(long) MsiCloseHandle
 9 stub MsiCollectUserInfoA
@@ -35,8 +35,8 @@
 35 stub MsiEnableUIPreview
 36 stdcall MsiEnumClientsA(long ptr) MsiEnumClientsA
 37 stdcall MsiEnumClientsW(long ptr) MsiEnumClientsW
-38 stub MsiEnumComponentQualifiersA
-39 stub MsiEnumComponentQualifiersW
+38 stdcall MsiEnumComponentQualifiersA(str long str ptr str ptr) MsiEnumComponentQualifiersA
+39 stdcall MsiEnumComponentQualifiersW(wstr long wstr ptr wstr ptr) MsiEnumComponentQualifiersW
 40 stdcall MsiEnumComponentsA(long ptr) MsiEnumComponentsA
 41 stdcall MsiEnumComponentsW(long ptr) MsiEnumComponentsW
 42 stdcall MsiEnumFeaturesA(str long ptr ptr) MsiEnumFeaturesA
@@ -220,16 +220,16 @@
 220 stub MsiEnumComponentCostsA
 221 stub MsiEnumComponentCostsW
 222 stub MsiCreateAndVerifyInstallerDirectory
-223 stub MsiGetFileSignatureInformationA
-224 stub MsiGetFileSignatureInformationW
-225 stub MsiProvideAssemblyA
-226 stub MsiProvideAssemblyW
-227 stub MsiAdvertiseProductExA
-228 stub MsiAdvertiseProductExW
+223 stdcall MsiGetFileSignatureInformationA(str long ptr ptr ptr) MsiGetFileSignatureInformationA
+224 stdcall MsiGetFileSignatureInformationW(wstr long ptr ptr ptr) MsiGetFileSignatureInformationW
+225 stdcall MsiProvideAssemblyA(str str long long str ptr) MsiProvideAssemblyA
+226 stdcall MsiProvideAssemblyW(wstr wstr long long wstr ptr) MsiProvideAssemblyW
+227 stdcall MsiAdvertiseProductExA(str str str long long long) MsiAdvertiseProductExA
+228 stdcall MsiAdvertiseProductExW(wstr wstr wstr long long long) MsiAdvertiseProductExW
 229 stub MsiNotifySidChangeA
 230 stub MsiNotifySidChangeW
-231 stub MsiOpenPackageExA
-232 stub MsiOpenPackageExW
+231 stdcall MsiOpenPackageExA(str long ptr) MsiOpenPackageExA
+232 stdcall MsiOpenPackageExW(wstr long ptr) MsiOpenPackageExW
 233 stub MsiDeleteUserDataA
 234 stub MsiDeleteUserDataW
 235 stub Migrate10CachedPackagesA