Commit eb23257b authored by Mike McCormack's avatar Mike McCormack Committed by Alexandre Julliard

Added stub implementations for MsiPreviewDialog and

MsiPreviewBillboard.
parent cce387d1
...@@ -16,6 +16,7 @@ C_SRCS = \ ...@@ -16,6 +16,7 @@ C_SRCS = \
msiquery.c \ msiquery.c \
order.c \ order.c \
package.c \ package.c \
preview.c \
record.c \ record.c \
regsvr.c \ regsvr.c \
select.c \ select.c \
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
32 stdcall MsiDatabaseOpenViewW(long wstr ptr) 32 stdcall MsiDatabaseOpenViewW(long wstr ptr)
33 stdcall MsiDoActionA(long str) 33 stdcall MsiDoActionA(long str)
34 stdcall MsiDoActionW(long wstr) 34 stdcall MsiDoActionW(long wstr)
35 stub MsiEnableUIPreview 35 stdcall MsiEnableUIPreview(long ptr)
36 stdcall MsiEnumClientsA(str long ptr) 36 stdcall MsiEnumClientsA(str long ptr)
37 stdcall MsiEnumClientsW(wstr long ptr) 37 stdcall MsiEnumClientsW(wstr long ptr)
38 stdcall MsiEnumComponentQualifiersA(str long str ptr str ptr) 38 stdcall MsiEnumComponentQualifiersA(str long str ptr str ptr)
...@@ -94,10 +94,10 @@ ...@@ -94,10 +94,10 @@
94 stdcall MsiOpenPackageW(wstr ptr) 94 stdcall MsiOpenPackageW(wstr ptr)
95 stdcall MsiOpenProductA(str ptr) 95 stdcall MsiOpenProductA(str ptr)
96 stdcall MsiOpenProductW(wstr ptr) 96 stdcall MsiOpenProductW(wstr ptr)
97 stub MsiPreviewBillboardA 97 stdcall MsiPreviewBillboardA(long str str)
98 stub MsiPreviewBillboardW 98 stdcall MsiPreviewBillboardW(long wstr wstr)
99 stub MsiPreviewDialogA 99 stdcall MsiPreviewDialogA(long str)
100 stub MsiPreviewDialogW 100 stdcall MsiPreviewDialogW(long wstr)
101 stub MsiProcessAdvertiseScriptA 101 stub MsiProcessAdvertiseScriptA
102 stub MsiProcessAdvertiseScriptW 102 stub MsiProcessAdvertiseScriptW
103 stdcall MsiProcessMessage(long long long) 103 stdcall MsiProcessMessage(long long long)
......
...@@ -206,12 +206,19 @@ typedef struct tagMSIPACKAGE ...@@ -206,12 +206,19 @@ typedef struct tagMSIPACKAGE
LPWSTR PackagePath; LPWSTR PackagePath;
} MSIPACKAGE; } MSIPACKAGE;
typedef struct tagMSIPREVIEW
{
MSIOBJECTHDR hdr;
MSIDATABASE *db;
} MSIPREVIEW;
#define MSIHANDLETYPE_ANY 0 #define MSIHANDLETYPE_ANY 0
#define MSIHANDLETYPE_DATABASE 1 #define MSIHANDLETYPE_DATABASE 1
#define MSIHANDLETYPE_SUMMARYINFO 2 #define MSIHANDLETYPE_SUMMARYINFO 2
#define MSIHANDLETYPE_VIEW 3 #define MSIHANDLETYPE_VIEW 3
#define MSIHANDLETYPE_RECORD 4 #define MSIHANDLETYPE_RECORD 4
#define MSIHANDLETYPE_PACKAGE 5 #define MSIHANDLETYPE_PACKAGE 5
#define MSIHANDLETYPE_PREVIEW 6
#define MSI_MAJORVERSION 2 #define MSI_MAJORVERSION 2
#define MSI_MINORVERSION 0 #define MSI_MINORVERSION 0
......
/*
* 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment