MSI: add stub implementations for MsiPreviewDialog and MsiPreviewBillboard
Mike McCormack
mike at codeweavers.com
Thu Jan 20 23:25:19 CST 2005
ChangeLog:
* add stub implementations for MsiPreviewDialog and MsiPreviewBillboard
-------------- next part --------------
? dlls/msi/preview.c
Index: dlls/msi/Makefile.in
===================================================================
RCS file: /home/wine/wine/dlls/msi/Makefile.in,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile.in
--- dlls/msi/Makefile.in 5 Jan 2005 17:11:33 -0000 1.17
+++ dlls/msi/Makefile.in 21 Jan 2005 05:23:52 -0000
@@ -16,6 +16,7 @@ C_SRCS = \
msiquery.c \
order.c \
package.c \
+ preview.c \
record.c \
regsvr.c \
select.c \
Index: dlls/msi/msi.spec
===================================================================
RCS file: /home/wine/wine/dlls/msi/msi.spec,v
retrieving revision 1.27
diff -u -p -r1.27 msi.spec
--- dlls/msi/msi.spec 19 Jan 2005 16:58:03 -0000 1.27
+++ dlls/msi/msi.spec 21 Jan 2005 05:23:53 -0000
@@ -32,7 +32,7 @@
32 stdcall MsiDatabaseOpenViewW(long wstr ptr)
33 stdcall MsiDoActionA(long str)
34 stdcall MsiDoActionW(long wstr)
-35 stub MsiEnableUIPreview
+35 stdcall MsiEnableUIPreview(long ptr)
36 stdcall MsiEnumClientsA(str long ptr)
37 stdcall MsiEnumClientsW(wstr long ptr)
38 stdcall MsiEnumComponentQualifiersA(str long str ptr str ptr)
@@ -94,10 +94,10 @@
94 stdcall MsiOpenPackageW(wstr ptr)
95 stdcall MsiOpenProductA(str ptr)
96 stdcall MsiOpenProductW(wstr ptr)
-97 stub MsiPreviewBillboardA
-98 stub MsiPreviewBillboardW
-99 stub MsiPreviewDialogA
-100 stub MsiPreviewDialogW
+97 stdcall MsiPreviewBillboardA(long str str)
+98 stdcall MsiPreviewBillboardW(long wstr wstr)
+99 stdcall MsiPreviewDialogA(long str)
+100 stdcall MsiPreviewDialogW(long wstr)
101 stub MsiProcessAdvertiseScriptA
102 stub MsiProcessAdvertiseScriptW
103 stdcall MsiProcessMessage(long long long)
Index: dlls/msi/msipriv.h
===================================================================
RCS file: /home/wine/wine/dlls/msi/msipriv.h,v
retrieving revision 1.36
diff -u -p -r1.36 msipriv.h
--- dlls/msi/msipriv.h 20 Jan 2005 20:34:29 -0000 1.36
+++ dlls/msi/msipriv.h 21 Jan 2005 05:23:53 -0000
@@ -206,12 +206,19 @@ typedef struct tagMSIPACKAGE
LPWSTR PackagePath;
} MSIPACKAGE;
+typedef struct tagMSIPREVIEW
+{
+ MSIOBJECTHDR hdr;
+ MSIDATABASE *db;
+} MSIPREVIEW;
+
#define MSIHANDLETYPE_ANY 0
#define MSIHANDLETYPE_DATABASE 1
#define MSIHANDLETYPE_SUMMARYINFO 2
#define MSIHANDLETYPE_VIEW 3
#define MSIHANDLETYPE_RECORD 4
#define MSIHANDLETYPE_PACKAGE 5
+#define MSIHANDLETYPE_PREVIEW 6
#define MSI_MAJORVERSION 2
#define MSI_MINORVERSION 0
--- /dev/null 2004-12-26 03:00:47.000000000 +0900
+++ dlls/msi/preview.c 2005-01-21 14:17:55.000000000 +0900
@@ -0,0 +1,116 @@
+/*
+ * Implementation of the Microsoft Installer (msi.dll)
+ *
+ * Copyright 2005 Mike McCormack for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "winreg.h"
+#include "winnls.h"
+#include "shlwapi.h"
+#include "wine/debug.h"
+#include "msi.h"
+#include "msipriv.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(msi);
+
+static void MSI_ClosePreview( MSIOBJECTHDR *arg )
+{
+ MSIPREVIEW *preview = (MSIPREVIEW *) arg;
+
+ msiobj_release( &preview->db->hdr );
+}
+
+MSIPREVIEW *MSI_EnableUIPreview( MSIDATABASE *db )
+{
+ MSIPREVIEW *preview;
+
+ preview = alloc_msiobject( MSIHANDLETYPE_PREVIEW, sizeof (MSIPREVIEW),
+ MSI_ClosePreview );
+ if( preview )
+ {
+ preview->db = db;
+ msiobj_addref( &db->hdr );
+ }
+ return preview;
+}
+
+UINT WINAPI MsiEnableUIPreview( MSIHANDLE hdb, MSIHANDLE* phPreview )
+{
+ MSIDATABASE *db;
+ MSIPREVIEW *preview;
+ UINT r = ERROR_FUNCTION_FAILED;
+
+ TRACE("%ld %p\n", hdb, phPreview);
+
+ db = msihandle2msiinfo( hdb, MSIHANDLETYPE_DATABASE );
+ if( !db )
+ return ERROR_INVALID_HANDLE;
+ preview = MSI_EnableUIPreview( db );
+ if( preview )
+ {
+ *phPreview = alloc_msihandle( &preview->hdr );
+ msiobj_release( &preview->hdr );
+ r = ERROR_SUCCESS;
+ }
+ msiobj_release( &db->hdr );
+
+ return r;
+}
+
+UINT WINAPI MsiPreviewDialogW( MSIHANDLE hPreview, LPCWSTR szDialogName )
+{
+ FIXME("%ld %s\n", hPreview, debugstr_w(szDialogName));
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiPreviewDialogA( MSIHANDLE hPreview, LPCSTR szDialogName )
+{
+ UINT r, len;
+ LPWSTR strW = NULL;
+
+ TRACE("%ld %s\n", hPreview, debugstr_a(szDialogName));
+
+ if( szDialogName )
+ {
+ len = MultiByteToWideChar( CP_ACP, 0, szDialogName, -1, NULL, 0 );
+ strW = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) );
+ MultiByteToWideChar( CP_ACP, 0, szDialogName, -1, strW, len );
+ }
+ r = MsiPreviewDialogW( hPreview, strW );
+ HeapFree( GetProcessHeap(), 0, strW );
+ return r;
+}
+
+UINT WINAPI MsiPreviewBillboardW( MSIHANDLE hPreview, LPCWSTR szControlName,
+ LPCWSTR szBillboard)
+{
+ FIXME("%ld %s %s\n", hPreview, debugstr_w(szControlName),
+ debugstr_w(szBillboard));
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+UINT WINAPI MsiPreviewBillboardA( MSIHANDLE hPreview, LPCSTR szControlName,
+ LPCSTR szBillboard)
+{
+ FIXME("%ld %s %s\n", hPreview, debugstr_a(szControlName),
+ debugstr_a(szBillboard));
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
More information about the wine-patches
mailing list