2004-08-27 22:54:29 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2002,2003 Mike McCormack
|
|
|
|
*
|
|
|
|
* 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
|
2006-06-24 22:34:49 +00:00
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
2004-08-27 22:54:29 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WINE_MSIQUERY_H
|
|
|
|
#define __WINE_MSIQUERY_H
|
|
|
|
|
|
|
|
#include <msi.h>
|
|
|
|
|
|
|
|
typedef enum tagMSICONDITION
|
|
|
|
{
|
|
|
|
MSICONDITION_FALSE = 0,
|
|
|
|
MSICONDITION_TRUE = 1,
|
|
|
|
MSICONDITION_NONE = 2,
|
|
|
|
MSICONDITION_ERROR = 3,
|
|
|
|
} MSICONDITION;
|
|
|
|
|
|
|
|
#define MSI_NULL_INTEGER 0x80000000
|
|
|
|
|
|
|
|
typedef enum tagMSICOLINFO
|
|
|
|
{
|
|
|
|
MSICOLINFO_NAMES = 0,
|
|
|
|
MSICOLINFO_TYPES = 1
|
|
|
|
} MSICOLINFO;
|
|
|
|
|
2006-08-30 19:24:26 +00:00
|
|
|
typedef enum tagMSICOSTTREE
|
|
|
|
{
|
|
|
|
MSICOSTTREE_SELFONLY = 0,
|
|
|
|
MSICOSTTREE_CHILDREN = 1,
|
|
|
|
MSICOSTTREE_PARENTS = 2,
|
|
|
|
MSICOSTTREE_PRODUCT = 3,
|
|
|
|
} MSICOSTTREE;
|
|
|
|
|
2004-08-27 22:54:29 +00:00
|
|
|
typedef enum tagMSIMODIFY
|
|
|
|
{
|
2009-02-13 18:20:42 +00:00
|
|
|
MSIMODIFY_SEEK = -1,
|
2004-08-27 22:54:29 +00:00
|
|
|
MSIMODIFY_REFRESH = 0,
|
|
|
|
MSIMODIFY_INSERT = 1,
|
|
|
|
MSIMODIFY_UPDATE = 2,
|
|
|
|
MSIMODIFY_ASSIGN = 3,
|
|
|
|
MSIMODIFY_REPLACE = 4,
|
|
|
|
MSIMODIFY_MERGE = 5,
|
|
|
|
MSIMODIFY_DELETE = 6,
|
|
|
|
MSIMODIFY_INSERT_TEMPORARY = 7,
|
|
|
|
MSIMODIFY_VALIDATE = 8,
|
|
|
|
MSIMODIFY_VALIDATE_NEW = 9,
|
|
|
|
MSIMODIFY_VALIDATE_FIELD = 10,
|
|
|
|
MSIMODIFY_VALIDATE_DELETE = 11
|
|
|
|
} MSIMODIFY;
|
|
|
|
|
2008-09-21 17:01:55 +00:00
|
|
|
#ifndef WINE_NO_UNICODE_MACROS
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MSIDBOPEN_READONLY (LPCTSTR)0
|
|
|
|
#define MSIDBOPEN_TRANSACT (LPCTSTR)1
|
|
|
|
#define MSIDBOPEN_DIRECT (LPCTSTR)2
|
|
|
|
#define MSIDBOPEN_CREATE (LPCTSTR)3
|
2005-01-12 09:31:44 +00:00
|
|
|
#define MSIDBOPEN_CREATEDIRECT (LPCTSTR)4
|
Sync to Wine-0_9_1:
Ivan Leo Puoti <ivanleo@gmail.com>
- Fix some wrong prototypes.
Thomas Weidenmueller <wine-patches@reactsoft.com>
- Passing NULL as the last two parameters to ReadFile is illegal and
actually causes a crash on windows. The attached patch fixes this.
Aric Stewart <aric@codeweavers.com>
- Force files to install if the REINSTALL property is set.
Mike McCormack <mike@codeweavers.com>
- Some installers don't call the CreateFolders action before the
InstallFiles action as MSDN specifies, but it still seems to work, so
make sure that we create component directories in the InstallFiles
action anyway.
- Create component folders in the CreateFolders action.
- If an action fails, print out its name as well as the error code. Use
%d for error codes so it's easy to match them up to something in
winerror.h.
- Rename load_dynamic_stringW to msi_dup_record_field to better describe
what it does, and replace a few instances with MSI_RecordGetString to
avoid allocating memory.
- Tidy up the RegisterProduct action a little.
- Create a stub function to apply a single table transform and call it
where we need to apply transforms.
- Enumerate the substorage transforms for any patches that are passed on
the command line with PATCH=. Need to implement
table_apply_transform() before this will do anything interesting.
- Simplify register_progid() and remove a fixed length buffer.
- Make enter and escape trigger the default and cancel buttons in
dialogs.
- Switch back to using IPicture to load images. LoadImage did the
resizing for us, but doesn't handle jpeg files and requires us writing
a temp file, whereas IPicture handles jpeg files and can load directly
from a stream.
- Remove unused package parameter of register_progid_base().
- Remove an incorrect comment and check for 0 being an invalid file
handle.
- Add missing semicolons that caused compile trouble on FreeBSD.
- Extract file directly to their target location, bypassing the need to
use temporary files and move files.
- Put the UI update code for cabinet file into a separate function.
- Translate INVALID_HANDLE_VALUE to zero for cabinet handles.
- Fix a memory leak in the cabinet extracting code.
- Fix passing of NULL pointers to MsiDecomposeDescriptor and add a
test.
- Fix parameter handling in MsiSetTargetPath, and add a test for it.
- Deleted two buggy functions that incorrectly and inefficiently check
whether a row already exists in a table, and replaced them with a call
to an existing working function that does the same thing correctly.
- Fix and test MsiGetProperty and MsiSetProperty.
- Add a stub implementation of msi.MsiSetMode.
- NULL and empty strings are the same in conditions.
- Add a bunch of tests for MsiEvaluateCondition and make them pass.
- Fix error handling in MsiEvaluateCondition.
- Create the +msidb debug channel for msi database code.
- Implement transforms. This still includes some debugging code which
can be enabled by setting debug_transform to 1 in the relevant
places.
- Define NONAMELESSUNION and NONAMELESSSTRUCT for older compilers.
- Remove some redundant null pointer checks.
- Make sure to unregister all the classes that were registered when msi
is unloaded, so we can register again cleanly.
- Fix a memory leak.
- Implement the RemoveFiles action.
- Add a read-only implementation of the SelectionTree control.
- Make sure we only CoUninitialize after successfully initializing.
Fix the address of the returned IShellLinkDataList interface.
- Use an enumeration for file states.
- Handle MaskEdit masks containing dashes and other constant
characters.
- Stub implementation for MsiAdvertiseScriptA/W.
- Add a stub for the AllocateRegistrySpace action.
- Explicitly check for MSICONDITION_TRUE being returned from
MsiEvaluateCondition.
- Stub implementation for MsiGetFileHashA/W.
- Define MSIDBOPEN_ constants using LPCWSTR when compiling Wine.
- Improve MsiUseFeatureEx and MsiGetFeatureState a little, add some
simple test cases.
- Use msi_get_property_int() in a few more places.
- Implement MsiGetFeatureUsageA and MsiUseFeature(Ex)A using their W
versions.
- Use "static const" rather than "const static" as gcc -W complains
about the former.
- Add an implementation for MsiGetShortcutTargetA/W.
- Don't change the UI level during ExecuteAction.
- Return an error in MsiGetComponentPathW if passed a null component.
- Remove the unused 1st parameter of ACTION_VerifyComponentForAction.
- Fix MsiGetPropertyA/W spec declarations.
- Create an internal handle-free api for reading MSI database summary
information.
svn path=/trunk/; revision=19307
2005-11-17 20:49:37 +00:00
|
|
|
#else
|
|
|
|
#define MSIDBOPEN_READONLY (LPCWSTR)0
|
|
|
|
#define MSIDBOPEN_TRANSACT (LPCWSTR)1
|
|
|
|
#define MSIDBOPEN_DIRECT (LPCWSTR)2
|
|
|
|
#define MSIDBOPEN_CREATE (LPCWSTR)3
|
|
|
|
#define MSIDBOPEN_CREATEDIRECT (LPCWSTR)4
|
|
|
|
#endif
|
2004-08-27 22:54:29 +00:00
|
|
|
|
2008-09-21 17:01:55 +00:00
|
|
|
#define MSIDBOPEN_PATCHFILE 32 / sizeof(*MSIDBOPEN_READONLY)
|
|
|
|
|
2005-01-12 09:31:44 +00:00
|
|
|
typedef enum tagMSIRUNMODE
|
|
|
|
{
|
|
|
|
MSIRUNMODE_ADMIN = 0,
|
|
|
|
MSIRUNMODE_ADVERTISE = 1,
|
|
|
|
MSIRUNMODE_MAINTENANCE = 2,
|
|
|
|
MSIRUNMODE_ROLLBACKENABLED = 3,
|
|
|
|
MSIRUNMODE_LOGENABLED = 4,
|
|
|
|
MSIRUNMODE_OPERATIONS = 5,
|
|
|
|
MSIRUNMODE_REBOOTATEND = 6,
|
|
|
|
MSIRUNMODE_REBOOTNOW = 7,
|
|
|
|
MSIRUNMODE_CABINET = 8,
|
|
|
|
MSIRUNMODE_SOURCESHORTNAMES = 9,
|
|
|
|
MSIRUNMODE_TARGETSHORTNAMES = 10,
|
|
|
|
MSIRUNMODE_RESERVED11 = 11,
|
|
|
|
MSIRUNMODE_WINDOWS9X = 12,
|
|
|
|
MSIRUNMODE_ZAWENABLED = 13,
|
|
|
|
MSIRUNMODE_RESERVED14 = 14,
|
|
|
|
MSIRUNMODE_RESERVED15 = 15,
|
|
|
|
MSIRUNMODE_SCHEDULED = 16,
|
|
|
|
MSIRUNMODE_ROLLBACK = 17,
|
|
|
|
MSIRUNMODE_COMMIT = 18
|
|
|
|
} MSIRUNMODE;
|
2004-08-27 22:54:29 +00:00
|
|
|
|
2005-08-03 22:12:15 +00:00
|
|
|
typedef enum tagMSIDBERROR
|
|
|
|
{
|
|
|
|
MSIDBERROR_INVALIDARG = -3,
|
|
|
|
MSIDBERROR_MOREDATA = -2,
|
|
|
|
MSIDBERROR_FUNCTIONERROR = -1,
|
|
|
|
MSIDBERROR_NOERROR = 0,
|
|
|
|
MSIDBERROR_DUPLICATEKEY = 1,
|
|
|
|
MSIDBERROR_REQUIRED = 2,
|
|
|
|
MSIDBERROR_BADLINK = 3,
|
|
|
|
MSIDBERROR_OVERFLOW = 4,
|
|
|
|
MSIDBERROR_UNDERFLOW = 5,
|
|
|
|
MSIDBERROR_NOTINSET = 6,
|
|
|
|
MSIDBERROR_BADVERSION = 7,
|
|
|
|
MSIDBERROR_BADCASE = 8,
|
|
|
|
MSIDBERROR_BADGUID = 9,
|
|
|
|
MSIDBERROR_BADWILDCARD = 10,
|
|
|
|
MSIDBERROR_BADIDENTIFIER = 11,
|
|
|
|
MSIDBERROR_BADLANGUAGE = 12,
|
|
|
|
MSIDBERROR_BADFILENAME = 13,
|
|
|
|
MSIDBERROR_BADPATH = 14,
|
|
|
|
MSIDBERROR_BADCONDITION = 15,
|
|
|
|
MSIDBERROR_BADFORMATTED = 16,
|
|
|
|
MSIDBERROR_BADTEMPLATE = 17,
|
|
|
|
MSIDBERROR_BADDEFAULTDIR = 18,
|
|
|
|
MSIDBERROR_BADREGPATH = 19,
|
|
|
|
MSIDBERROR_BADCUSTOMSOURCE = 20,
|
|
|
|
MSIDBERROR_BADPROPERTY = 21,
|
|
|
|
MSIDBERROR_MISSINGDATA = 22,
|
|
|
|
MSIDBERROR_BADCATEGORY = 23,
|
|
|
|
MSIDBERROR_BADKEYTABLE = 24,
|
|
|
|
MSIDBERROR_BADMAXMINVALUES = 25,
|
|
|
|
MSIDBERROR_BADCABINET = 26,
|
|
|
|
MSIDBERROR_BADSHORTCUT= 27,
|
|
|
|
MSIDBERROR_STRINGOVERFLOW = 28,
|
|
|
|
MSIDBERROR_BADLOCALIZEATTRIB = 29
|
|
|
|
} MSIDBERROR;
|
|
|
|
|
2006-06-24 22:34:49 +00:00
|
|
|
typedef enum tagMSIDBSTATE
|
|
|
|
{
|
|
|
|
MSIDBSTATE_ERROR = -1,
|
|
|
|
MSIDBSTATE_READ = 0,
|
|
|
|
MSIDBSTATE_WRITE = 1
|
|
|
|
} MSIDBSTATE;
|
|
|
|
|
2008-01-14 15:18:47 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2004-08-27 22:54:29 +00:00
|
|
|
/* view manipulation */
|
|
|
|
UINT WINAPI MsiViewFetch(MSIHANDLE,MSIHANDLE*);
|
|
|
|
UINT WINAPI MsiViewExecute(MSIHANDLE,MSIHANDLE);
|
|
|
|
UINT WINAPI MsiViewClose(MSIHANDLE);
|
|
|
|
UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE,LPCSTR,MSIHANDLE*);
|
|
|
|
UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
|
|
|
|
#define MsiDatabaseOpenView WINELIB_NAME_AW(MsiDatabaseOpenView)
|
2008-01-14 15:18:47 +00:00
|
|
|
MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE,LPSTR,LPDWORD);
|
|
|
|
MSIDBERROR WINAPI MsiViewGetErrorW(MSIHANDLE,LPWSTR,LPDWORD);
|
2005-08-03 22:12:15 +00:00
|
|
|
#define MsiViewGetError WINELIB_NAME_AW(MsiViewGetError)
|
2004-08-27 22:54:29 +00:00
|
|
|
|
2006-06-24 22:34:49 +00:00
|
|
|
MSIDBSTATE WINAPI MsiGetDatabaseState(MSIHANDLE);
|
|
|
|
|
2004-08-27 22:54:29 +00:00
|
|
|
/* record manipulation */
|
2008-01-14 15:18:47 +00:00
|
|
|
MSIHANDLE WINAPI MsiCreateRecord(UINT);
|
2004-08-27 22:54:29 +00:00
|
|
|
UINT WINAPI MsiRecordClearData(MSIHANDLE);
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiRecordSetInteger(MSIHANDLE,UINT,int);
|
|
|
|
UINT WINAPI MsiRecordSetStringA(MSIHANDLE,UINT,LPCSTR);
|
|
|
|
UINT WINAPI MsiRecordSetStringW(MSIHANDLE,UINT,LPCWSTR);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiRecordSetString WINELIB_NAME_AW(MsiRecordSetString)
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiRecordGetStringA(MSIHANDLE,UINT,LPSTR,LPDWORD);
|
|
|
|
UINT WINAPI MsiRecordGetStringW(MSIHANDLE,UINT,LPWSTR,LPDWORD);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiRecordGetString WINELIB_NAME_AW(MsiRecordGetString)
|
|
|
|
UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE);
|
2008-01-14 15:18:47 +00:00
|
|
|
int WINAPI MsiRecordGetInteger(MSIHANDLE,UINT);
|
|
|
|
UINT WINAPI MsiRecordDataSize(MSIHANDLE,UINT);
|
|
|
|
BOOL WINAPI MsiRecordIsNull(MSIHANDLE,UINT);
|
|
|
|
UINT WINAPI MsiFormatRecordA(MSIHANDLE,MSIHANDLE,LPSTR,LPDWORD);
|
|
|
|
UINT WINAPI MsiFormatRecordW(MSIHANDLE,MSIHANDLE,LPWSTR,LPDWORD);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiFormatRecord WINELIB_NAME_AW(MsiFormatRecord)
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiRecordSetStreamA(MSIHANDLE,UINT,LPCSTR);
|
|
|
|
UINT WINAPI MsiRecordSetStreamW(MSIHANDLE,UINT,LPCWSTR);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiRecordSetStream WINELIB_NAME_AW(MsiRecordSetStream)
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiRecordReadStream(MSIHANDLE,UINT,char*,LPDWORD);
|
2004-08-27 22:54:29 +00:00
|
|
|
|
|
|
|
UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE,LPCSTR,MSIHANDLE*);
|
|
|
|
UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
|
|
|
|
#define MsiDatabaseGetPrimaryKeys WINELIB_NAME_AW(MsiDatabaseGetPrimaryKeys)
|
|
|
|
|
|
|
|
/* installing */
|
|
|
|
UINT WINAPI MsiDoActionA(MSIHANDLE,LPCSTR );
|
|
|
|
UINT WINAPI MsiDoActionW(MSIHANDLE,LPCWSTR );
|
|
|
|
#define MsiDoAction WINELIB_NAME_AW(MsiDoAction)
|
|
|
|
|
|
|
|
/* database transforms */
|
|
|
|
UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE,LPCSTR,int);
|
|
|
|
UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE,LPCWSTR,int);
|
|
|
|
#define MsiDatabaseApplyTransform WINELIB_NAME_AW(MsiDatabaseApplyTransform)
|
|
|
|
UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE,MSIHANDLE,LPCSTR,int,int);
|
|
|
|
UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE,MSIHANDLE,LPCWSTR,int,int);
|
|
|
|
#define MsiDatabaseGenerateTransform WINELIB_NAME_AW(MsiDatabaseGenerateTransform)
|
|
|
|
|
|
|
|
UINT WINAPI MsiDatabaseCommit(MSIHANDLE);
|
|
|
|
|
|
|
|
/* install state */
|
2006-08-30 18:08:21 +00:00
|
|
|
UINT WINAPI MsiGetFeatureStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
|
|
|
|
UINT WINAPI MsiGetFeatureStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiGetFeatureState WINELIB_NAME_AW(MsiGetFeatureState)
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiGetFeatureValidStatesA(MSIHANDLE,LPCSTR,LPDWORD);
|
|
|
|
UINT WINAPI MsiGetFeatureValidStatesW(MSIHANDLE,LPCWSTR,LPDWORD);
|
|
|
|
#define MsiGetFeatureValidStates WINELIB_NAME_AW(MsiGetFeatureValidStates)
|
2005-09-05 21:34:19 +00:00
|
|
|
UINT WINAPI MsiSetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE);
|
|
|
|
UINT WINAPI MsiSetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE);
|
|
|
|
#define MsiSetComponentState WINELIB_NAME_AW(MsiSetComponentState)
|
2006-08-30 18:08:21 +00:00
|
|
|
UINT WINAPI MsiGetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
|
|
|
|
UINT WINAPI MsiGetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiGetComponentState WINELIB_NAME_AW(MsiGetComponentState)
|
|
|
|
|
|
|
|
MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE,LPCSTR);
|
|
|
|
MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE,LPCWSTR);
|
|
|
|
#define MsiEvaluateCondition WINELIB_NAME_AW(MsiEvaluateCondition)
|
|
|
|
|
|
|
|
/* property functions */
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiGetPropertyA(MSIHANDLE, LPCSTR, LPSTR, LPDWORD);
|
|
|
|
UINT WINAPI MsiGetPropertyW(MSIHANDLE, LPCWSTR, LPWSTR, LPDWORD);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiGetProperty WINELIB_NAME_AW(MsiGetProperty)
|
|
|
|
|
2005-01-12 09:31:44 +00:00
|
|
|
UINT WINAPI MsiSetPropertyA(MSIHANDLE, LPCSTR, LPCSTR);
|
|
|
|
UINT WINAPI MsiSetPropertyW(MSIHANDLE, LPCWSTR, LPCWSTR);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiSetProperty WINELIB_NAME_AW(MsiSetProperty)
|
|
|
|
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiGetTargetPathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
|
|
|
|
UINT WINAPI MsiGetTargetPathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiGetTargetPath WINELIB_NAME_AW(MsiGetTargetPath)
|
|
|
|
|
|
|
|
UINT WINAPI MsiSetTargetPathA(MSIHANDLE, LPCSTR, LPCSTR);
|
|
|
|
UINT WINAPI MsiSetTargetPathW(MSIHANDLE, LPCWSTR, LPCWSTR);
|
|
|
|
#define MsiSetTargetPath WINELIB_NAME_AW(MsiSetTargetPath)
|
|
|
|
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiGetSourcePathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
|
|
|
|
UINT WINAPI MsiGetSourcePathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiGetSourcePath WINELIB_NAME_AW(MsiGetSourcePath)
|
|
|
|
|
|
|
|
MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE);
|
|
|
|
|
2005-01-12 09:31:44 +00:00
|
|
|
UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE, MSICOLINFO, MSIHANDLE*);
|
|
|
|
INT WINAPI MsiProcessMessage(MSIHANDLE, INSTALLMESSAGE, MSIHANDLE);
|
2004-08-27 22:54:29 +00:00
|
|
|
|
2005-01-12 09:31:44 +00:00
|
|
|
UINT WINAPI MsiSetFeatureStateA(MSIHANDLE, LPCSTR, INSTALLSTATE);
|
|
|
|
UINT WINAPI MsiSetFeatureStateW(MSIHANDLE, LPCWSTR, INSTALLSTATE);
|
2004-08-27 22:54:29 +00:00
|
|
|
#define MsiSetFeatureState WINELIB_NAME_AW(MsiSetFeatureState)
|
|
|
|
|
2005-08-03 22:12:15 +00:00
|
|
|
UINT WINAPI MsiPreviewDialogA(MSIHANDLE, LPCSTR);
|
|
|
|
UINT WINAPI MsiPreviewDialogW(MSIHANDLE, LPCWSTR);
|
|
|
|
#define MsiPreviewDialog WINELIB_NAME_AW(MsiPreviewDialog)
|
|
|
|
|
|
|
|
UINT WINAPI MsiPreviewBillboardA(MSIHANDLE, LPCSTR, LPCSTR);
|
|
|
|
UINT WINAPI MsiPreviewBillboardW(MSIHANDLE, LPCWSTR, LPCWSTR);
|
|
|
|
#define MsiPreviewBillboard WINELIB_NAME_AW(MsiPreviewBillboard)
|
|
|
|
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE, MSIHANDLE, LPCSTR, int, int);
|
|
|
|
UINT WINAPI MsiCreateTransformSummaryInfoW(MSIHANDLE, MSIHANDLE, LPCWSTR, int, int);
|
|
|
|
#define MsiCreateTransformSummaryInfo WINELIB_NAME_AW(MsiCreateTransformSummaryInfo)
|
|
|
|
|
2005-08-03 22:12:15 +00:00
|
|
|
UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE, LPCSTR, UINT, MSIHANDLE *);
|
|
|
|
UINT WINAPI MsiGetSummaryInformationW(MSIHANDLE, LPCWSTR, UINT, MSIHANDLE *);
|
|
|
|
#define MsiGetSummaryInformation WINELIB_NAME_AW(MsiGetSummaryInformation)
|
|
|
|
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiSummaryInfoGetPropertyA(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPSTR,LPDWORD);
|
|
|
|
UINT WINAPI MsiSummaryInfoGetPropertyW(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPWSTR,LPDWORD);
|
2005-08-03 22:12:15 +00:00
|
|
|
#define MsiSummaryInfoGetProperty WINELIB_NAME_AW(MsiSummaryInfoGetProperty)
|
|
|
|
|
|
|
|
UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE, UINT, UINT, INT, FILETIME*, LPCSTR);
|
|
|
|
UINT WINAPI MsiSummaryInfoSetPropertyW(MSIHANDLE, UINT, UINT, INT, FILETIME*, LPCWSTR);
|
|
|
|
#define MsiSummaryInfoSetProperty WINELIB_NAME_AW(MsiSummaryInfoSetProperty)
|
|
|
|
|
|
|
|
UINT WINAPI MsiDatabaseExportA(MSIHANDLE, LPCSTR, LPCSTR, LPCSTR);
|
|
|
|
UINT WINAPI MsiDatabaseExportW(MSIHANDLE, LPCWSTR, LPCWSTR, LPCWSTR);
|
|
|
|
#define MsiDatabaseExport WINELIB_NAME_AW(MsiDatabaseExport)
|
|
|
|
|
|
|
|
UINT WINAPI MsiDatabaseImportA(MSIHANDLE, LPCSTR, LPCSTR);
|
|
|
|
UINT WINAPI MsiDatabaseImportW(MSIHANDLE, LPCWSTR, LPCWSTR);
|
|
|
|
#define MsiDatabaseImport WINELIB_NAME_AW(MsiDatabaseImport)
|
|
|
|
|
|
|
|
UINT WINAPI MsiOpenDatabaseW(LPCWSTR, LPCWSTR, MSIHANDLE*);
|
|
|
|
UINT WINAPI MsiOpenDatabaseA(LPCSTR, LPCSTR, MSIHANDLE*);
|
|
|
|
#define MsiOpenDatabase WINELIB_NAME_AW(MsiOpenDatabase)
|
|
|
|
|
2006-09-09 17:42:28 +00:00
|
|
|
MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE, LPCSTR);
|
|
|
|
MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(MSIHANDLE, LPCWSTR);
|
2005-08-03 22:12:15 +00:00
|
|
|
#define MsiDatabaseIsTablePersistent WINELIB_NAME_AW(MsiDatabaseIsTablePersistent)
|
|
|
|
|
Sync to Wine-20050930:
Aric Stewart <aric@codeweavers.com>
- Add the GUID for Patch files so that they can be opened as well. Looks
like the database structure is pretty much the same.
- Implement MsiReinstallFeature.
- Be sure to null terminate the string in MsiGetProductInfoA after the
W->A conversion using MsiGetProductInfoW if there is space.
- Added stub implementations for MsiEnumPatchesA/W.
Alexandre Julliard <julliard@winehq.org>
- We are no longer generating .dbg.c files.
- Use a more portable scheme for storing the name of a critical
section.
- Get rid of a couple of non-portable long long constants.
- Fixed memory leak introduced in previous change.
- Avoid non-portable va_list manipulations.
Milko Krachounov <milko@3mhz.net>
- Bulgarian resources for mpr, msi, user, commdlg, oleaut32, shdocvw,
shell32, comctl32, msrle32, mshtml, winspool, wineps, serialui,
setupapi, wininet, regedit, uninstaller, notepad, winecfg and
winhelp.
Jan Van Buggenhout <Chipzz@ULYSSIS.Org>
- implement stubs for MsiSequence[AW].
Dmitry Timoshkov <dmitry@codeweavers.com>
- COLOR_3DFACE is a better choice for the dialog background.
- Fix the usage of COLOR_xxx constants in the place of the window's
class hbrBackground.
Mike McCormack <mike@codeweavers.com>
- Stub implementation of the RemoveIniValues action.
- Fix various memory leaks.
- Simplify the ProcessComponents action a little.
- Make build_icon_path return the path directly.
- Implement MsiSequenceA/W.
- Simplify the InstallValidate action a little.
- Added memory allocation inline functions (part 2).
- Fix a bug in a previous patch spotted by Dieter Komendera.
- Convert progids to a standard list.
- convert verbs into a standard list
- remove limitation of 100 verbs
- use pointers to verbs rather than indexes
- Rename load_dynamic_property and remove its unused 3rd argument.
- Create a macro to write a value to a subkey.
- Use the new msi_reg_set* macros where possible.
- Create a macro function to write registry values.
- fix a bug introduced by the progid list conversion
- make a fixme a little less alarmist
- Add objects to lists at the right time.
- Fix some simple memory leaks.
- Fix an error introduced when converting dialog lists to standard
lists.
- Added memory allocation inline functions (part 1).
- Make sure not to free a a pointer that has been modified.
Check that the text identifier doesn't contain invalid characters.
- Don't quote numbers in a query, as it doesn't parse correctly.
- Read the MaskEdit template from the correct db field.
- Don't create MSI handles unless we have to pass one through the API.
- Convert the list of dialog controls to a standard list.
- Deformat all dialog text strings before using them.
- Load riched20.dll on demand, and unload it after it's used (based on a
patch by Rob Shearman).
- Make sure to release the package we grabbed on the error path.
- Fix and test MsiViewGetColumnInfo and binary fields.
- Skip dash characters in the PIDMask for a MaskedEdit control.
- Don't refcount tables.
- Fix an uninitialized variable problem.
- Fix memory leaks in the table code.
- Fix memory leaks.
- Remove some unused values in the object header.
- Fill out the stubs for MsiApplyTransformA/W a bit more.
- Fix various query related memory leaks.
- Make sure to set the minimum size before allocating string table
memory.
- Don't include the terminating nul in the length in
MsiSummaryInfoGetPropertyW.
- fix MsiSummaryInfoGetProperty to return ERROR_MORE_DATA if the
buffer is too small (based on a patch by Aric Stewart)
- add a test case to show correct behaviour
- Create a function to determine the table's row size and use it.
Fix a memory leak in the table code.
- Eliminate fixed length buffers from the MSIFEATURE structure.
- Fix more fixed length buffers.
- Reduce the indent level of a function.
- Allocate memory rather than using fixed length buffers.
- Remove an unnecessary level of indent.
- Keep temporary files in a seperate list.
- Rename ACTION_DoTopLevelINSTALL to MSI_InstallPackage, remove its
duplicate 4th parameter.
Split the code to copy a package into a separate function.
- Avoid fixed length buffers for conditions.
- Fix a memory leak.
- Create a function to read a property as an integer.
- Make some fixme messages less alarmist.
- Fix if's that are followed by semicolons.
- Add some more action stubs, remove forward declarations.
- Eliminate yet more fixed length buffers.
- Convert RunningActions array into a list.
- Split command line parsing from MSI_InstallPackage into a separate
function.
- Move a fixed size buffer to the heap.
- Fix memory leaks in custom actions.
- Make a macro function for unimplemented actions.
Add some more unimplemented action stubs.
- Make load_string_table return the string table.
- Stub implementation of the IsolateComponents action.
- Convert the list of tables to a standard list.
- Add a stub implementation of the BindImage action.
- Avoid UpdateWindow, it causes trouble with WS_EX_TRANSPARENT.
- Stub implementation of the PatchFiles action.
- Fix another memory leak.
- Add the progress control.
- Stub implementation of the MoveFiles action.
- Avoid using static variables in the InstallFiles action.
- Take advantage of the msi_get_deformatted_field function to simplify
some code.
- Improve a fixme message a little.
- Skip the first character of a font identifier if it's \ or &.
- Make sure not to access invalid components or features.
- Fix the handling of MsiGetTargetPath args (with test case).
- Fix the handling of MsiDoAction args (with test case).
- Fixes for MsiGetSourcePath parameter handling.
- Load a table's column information separately from the table itself.
- Handle copying of the install package to a temporary file in one place
only.
- Implement MsiGetShortcutTargetA.
- Fix the stub for MsiConfigureFeature.
Alexander N. Sørnes <alex@thehandofagony.com>
- Added Norwegian translations.
Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
- Added Finnish resources.
svn path=/trunk/; revision=18333
2005-10-08 13:45:19 +00:00
|
|
|
UINT WINAPI MsiSequenceA(MSIHANDLE, LPCSTR, INT);
|
|
|
|
UINT WINAPI MsiSequenceW(MSIHANDLE, LPCWSTR, INT);
|
|
|
|
#define MsiSequence WINELIB_NAME_AW(MsiSequence)
|
|
|
|
|
2005-08-03 22:12:15 +00:00
|
|
|
UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE);
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE,PUINT);
|
2005-08-03 22:12:15 +00:00
|
|
|
|
|
|
|
UINT WINAPI MsiEnableUIPreview(MSIHANDLE, MSIHANDLE*);
|
2005-01-12 09:31:44 +00:00
|
|
|
BOOL WINAPI MsiGetMode(MSIHANDLE, MSIRUNMODE);
|
2009-12-06 14:55:00 +00:00
|
|
|
UINT WINAPI MsiSetMode(MSIHANDLE, MSIRUNMODE, BOOL);
|
2005-01-12 09:31:44 +00:00
|
|
|
|
2005-08-03 22:12:15 +00:00
|
|
|
UINT WINAPI MsiViewModify(MSIHANDLE, MSIMODIFY, MSIHANDLE);
|
|
|
|
|
2008-01-14 15:18:47 +00:00
|
|
|
UINT WINAPI MsiGetFeatureCostA(MSIHANDLE, LPCSTR, MSICOSTTREE, INSTALLSTATE, LPINT);
|
|
|
|
UINT WINAPI MsiGetFeatureCostW(MSIHANDLE, LPCWSTR, MSICOSTTREE, INSTALLSTATE, LPINT);
|
|
|
|
#define MsiGetFeatureCost WINELIB_NAME_AW(MsiGetFeatureCost)
|
|
|
|
|
|
|
|
LANGID WINAPI MsiGetLanguage(MSIHANDLE);
|
|
|
|
|
|
|
|
UINT WINAPI MsiSetInstallLevel(MSIHANDLE, int);
|
|
|
|
|
|
|
|
MSIHANDLE WINAPI MsiGetLastErrorRecord(void);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2004-08-27 22:54:29 +00:00
|
|
|
#endif /* __WINE_MSIQUERY_H */
|