msi.spec different parameter count of exported functions

Marcus Meissner meissner at suse.de
Tue Mar 22 03:46:52 CST 2005


On Tue, Mar 22, 2005 at 12:19:17AM +0100, Stefan Leichter wrote:
> Hello,
> 
> when played with native msi.dll i found three functions with have a different 
> parameter count between msi.spec of wine and the native dll. Here are the 
> snoop logs of the native dll and wine:
> 
> 0009:RET  msi.MsiDatabaseImportA(00000000,00000000,00000000) retval=00000006 
> ret=004013fc
> 0009:RET  msi.MsiDatabaseImportW(00000000,00000000,00000000) retval=00000006 
> ret=004013fc
> 0009:RET  msi.MsiCreateAndVerifyInstallerDirectory(00000000) retval=00000000 
> ret=004013fc
> 
> I have used the msi.dll version 2.6.2600.11833 for testing. The question now 
> is: Can we trust the +snoop logging?

No, snoop is just using heuristics.

MSDN says 3 arguments for MsiDatabaseImport*.

MsiCreateAndVerifyInstallerDirectory is not documented in MSDN, looking for 
a "retn X" instruction in assembly finds "retn 4".


Ciao, Marcus

Changelog:
	Correct number of arguments for MsiDatabaseImport*,
	MsiCreateAndVerifyInstallerDirectory stubs.

Index: dlls/msi/msi.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/msi.c,v
retrieving revision 1.67
diff -u -r1.67 msi.c
--- dlls/msi/msi.c	10 Mar 2005 11:15:40 -0000	1.67
+++ dlls/msi/msi.c	22 Mar 2005 09:46:09 -0000
@@ -701,15 +701,15 @@
     return hr;
 }
 
-UINT WINAPI MsiDatabaseImportA(LPCSTR szFolderPath, LPCSTR szFilename)
+UINT WINAPI MsiDatabaseImportA(MSIHANDLE handle, LPCSTR szFolderPath, LPCSTR szFilename)
 {
-    FIXME("%s %s\n",debugstr_a(szFolderPath), debugstr_a(szFilename));
+    FIXME("%lx %s %s\n",handle,debugstr_a(szFolderPath), debugstr_a(szFilename));
     return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
-UINT WINAPI MsiDatabaseImportW(LPCWSTR szFolderPath, LPCWSTR szFilename)
+UINT WINAPI MsiDatabaseImportW(MSIHANDLE handle, LPCWSTR szFolderPath, LPCWSTR szFilename)
 {
-    FIXME("%s %s\n",debugstr_w(szFolderPath), debugstr_w(szFilename));
+    FIXME("%lx %s %s\n",handle,debugstr_w(szFolderPath), debugstr_w(szFilename));
     return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
@@ -1580,9 +1580,9 @@
     return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
-UINT WINAPI MsiCreateAndVerifyInstallerDirectory(void)
+UINT WINAPI MsiCreateAndVerifyInstallerDirectory(DWORD dwReserved)
 {
-    FIXME("\n");
+    FIXME("%ld\n", dwReserved);
     return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
Index: dlls/msi/msi.spec
===================================================================
RCS file: /home/wine/wine/dlls/msi/msi.spec,v
retrieving revision 1.33
diff -u -r1.33 msi.spec
--- dlls/msi/msi.spec	16 Feb 2005 16:24:38 -0000	1.33
+++ dlls/msi/msi.spec	22 Mar 2005 09:46:09 -0000
@@ -24,8 +24,8 @@
 24 stdcall MsiDatabaseGenerateTransformW(long long wstr long long)
 25 stdcall MsiDatabaseGetPrimaryKeysA(long str ptr)
 26 stdcall MsiDatabaseGetPrimaryKeysW(long wstr ptr)
-27 stdcall MsiDatabaseImportA(str str)
-28 stdcall MsiDatabaseImportW(wstr wstr)
+27 stdcall MsiDatabaseImportA(str str long)
+28 stdcall MsiDatabaseImportW(wstr wstr long)
 29 stub MsiDatabaseMergeA
 30 stub MsiDatabaseMergeW
 31 stdcall MsiDatabaseOpenViewA(long str ptr)
@@ -219,7 +219,7 @@
 219 stub MsiGetFileHashW
 220 stub MsiEnumComponentCostsA
 221 stub MsiEnumComponentCostsW
-222 stdcall MsiCreateAndVerifyInstallerDirectory()
+222 stdcall MsiCreateAndVerifyInstallerDirectory(long)
 223 stdcall MsiGetFileSignatureInformationA(str long ptr ptr ptr)
 224 stdcall MsiGetFileSignatureInformationW(wstr long ptr ptr ptr)
 225 stdcall MsiProvideAssemblyA(str str long long str ptr)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20050322/e8d10a1d/attachment.pgp


More information about the wine-devel mailing list