summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-10-23 09:38:02 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2012-12-06 20:25:49 +0100
commiteb218cea45b45de0609bb9a136f59165fd191710 (patch)
tree4c396d8cae6b00af9dcd90ee847e2bbc39c0b8c4 /include
parent160e170fdf3c28be768c2c6417704251559396fc (diff)
downloadmsitools-eb218cea45b45de0609bb9a136f59165fd191710.tar.gz
msitools-eb218cea45b45de0609bb9a136f59165fd191710.tar.xz
msitools-eb218cea45b45de0609bb9a136f59165fd191710.zip
move headers to include/
Diffstat (limited to 'include')
-rw-r--r--include/debug.h179
-rw-r--r--include/msiquery.h292
2 files changed, 471 insertions, 0 deletions
diff --git a/include/debug.h b/include/debug.h
new file mode 100644
index 0000000..cb5da28
--- /dev/null
+++ b/include/debug.h
@@ -0,0 +1,179 @@
+/*
+ * Wine debugging interface
+ *
+ * Copyright 1999 Patrik Stridvall
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_WINE_DEBUG_H
+#define __WINE_WINE_DEBUG_H
+
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <windef.h>
+#include <winbase.h>
+#include <winnls.h>
+#ifndef GUID_DEFINED
+#include <guiddef.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Internal definitions (do not use these directly)
+ */
+
+enum __wine_debug_class
+{
+ DBCL_FIXME,
+ DBCL_ERR,
+ DBCL_WARN,
+ DBCL_TRACE,
+
+ DBCL_INIT = 7 /* lazy init flag */
+};
+
+/*
+ * Exported definitions and macros
+ */
+
+/* These functions return a printable version of a string, including
+ quotes. The string will be valid for some time, but not indefinitely
+ as strings are re-used. */
+static inline const char *wine_dbgstr_an( const char * s, int n )
+{
+ if (!s) return "";
+ return s;
+}
+static inline const char *wine_dbgstr_wn( const WCHAR *s, int n )
+{
+ static LPSTR p_ret[10];
+ static int i;
+
+ LPSTR ret;
+ DWORD len;
+
+ if (!s) return "";
+ i = (i + 1) % 10;
+ ret = p_ret[i];
+ len = WideCharToMultiByte( CP_ACP, 0, s, -1, NULL, 0, NULL, NULL);
+ ret = realloc( ret, len );
+ if (ret)
+ WideCharToMultiByte( CP_ACP, 0, s, -1, ret, len, NULL, NULL );
+ return ret;
+}
+
+static inline const char *wine_dbg_sprintf( const char *format, ...)
+{
+ static LPSTR p_ret[10];
+ static int i;
+
+ LPSTR ret;
+ DWORD len;
+ va_list ap;
+
+ va_start(ap, format);
+ len = _vscprintf(format, ap);
+ va_end(ap);
+
+ i = (i + 1) % 10;
+ ret = p_ret[i];
+ ret = realloc(ret, len + 1);
+
+ va_start(ap, format);
+ vsprintf(ret, format, ap);
+ va_end(ap);
+ return ret;
+}
+
+#define wine_dbg_printf(format,...) (printf(format, ## __VA_ARGS__), fflush(stdout))
+#define WINE_DPRINTF(class, function, format, ...) \
+ wine_dbg_printf(#class ":%s:" format, function, ## __VA_ARGS__)
+
+static inline const char *wine_dbgstr_a( const char *s )
+{
+ return wine_dbgstr_an( s, -1 );
+}
+
+static inline const char *wine_dbgstr_w( const WCHAR *s )
+{
+ return wine_dbgstr_wn( s, -1 );
+}
+
+static inline const char *wine_dbgstr_guid( const GUID *id )
+{
+ if (!id) return "(null)";
+ if (!((ULONG_PTR)id >> 16)) return wine_dbg_sprintf( "<guid-0x%04hx>", (WORD)(ULONG_PTR)id );
+ return wine_dbg_sprintf( "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+ id->Data1, id->Data2, id->Data3,
+ id->Data4[0], id->Data4[1], id->Data4[2], id->Data4[3],
+ id->Data4[4], id->Data4[5], id->Data4[6], id->Data4[7] );
+}
+
+static inline const char *wine_dbgstr_point( const POINT *pt )
+{
+ if (!pt) return "(null)";
+ return wine_dbg_sprintf( "(%d,%d)", pt->x, pt->y );
+}
+
+static inline const char *wine_dbgstr_size( const SIZE *size )
+{
+ if (!size) return "(null)";
+ return wine_dbg_sprintf( "(%d,%d)", size->cx, size->cy );
+}
+
+static inline const char *wine_dbgstr_rect( const RECT *rect )
+{
+ if (!rect) return "(null)";
+ return wine_dbg_sprintf( "(%d,%d)-(%d,%d)", rect->left, rect->top,
+ rect->right, rect->bottom );
+}
+
+static inline const char *wine_dbgstr_longlong( ULONGLONG ll )
+{
+ if (sizeof(ll) > sizeof(unsigned long) && ll >> 32)
+ return wine_dbg_sprintf( "%lx%08lx", (unsigned long)(ll >> 32), (unsigned long)ll );
+ else return wine_dbg_sprintf( "%lx", (unsigned long)ll );
+}
+
+/* Wine uses shorter names that are very likely to conflict with other software */
+
+static inline const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
+static inline const char *debugstr_wn( const WCHAR *s, int n ) { return wine_dbgstr_wn( s, n ); }
+static inline const char *debugstr_guid( const GUID *id ) { return wine_dbgstr_guid( id ); }
+static inline const char *debugstr_a( const char *s ) { return wine_dbgstr_an( s, -1 ); }
+static inline const char *debugstr_w( const WCHAR *s ) { return wine_dbgstr_wn( s, -1 ); }
+
+#undef ERR /* Solaris got an 'ERR' define in <sys/reg.h> */
+#define TRACE(fmt, ...) (void)0 // WINE_DPRINTF(TRACE, __func__, fmt, ## __VA_ARGS__)
+#define TRACE_ON(channel) 0
+#define WARN(fmt, ...) (void)0 // WINE_DPRINTF(WARN, __func__, fmt, ## __VA_ARGS__)
+#define WARN_ON(channel) 0
+#define FIXME(fmt, ...) (void)0 // WINE_DPRINTF(FIXME, __func__, fmt, ## __VA_ARGS__)
+#define FIXME_ON(channel) 0
+#define ERR(fmt, ...) (void)0 // WINE_DPRINTF(ERR, __func__, fmt, ## __VA_ARGS__)
+#define ERR_ON(channel) 0
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_WINE_DEBUG_H */
diff --git a/include/msiquery.h b/include/msiquery.h
new file mode 100644
index 0000000..12b116f
--- /dev/null
+++ b/include/msiquery.h
@@ -0,0 +1,292 @@
+/*
+ * 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
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _MSIQUERY_H
+#define _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;
+
+typedef enum tagMSIMODIFY
+{
+ MSIMODIFY_SEEK = -1,
+ 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;
+
+#define MSIDBOPEN_READONLY (LPCTSTR)0
+#define MSIDBOPEN_TRANSACT (LPCTSTR)1
+#define MSIDBOPEN_DIRECT (LPCTSTR)2
+#define MSIDBOPEN_CREATE (LPCTSTR)3
+#define MSIDBOPEN_CREATEDIRECT (LPCTSTR)4
+
+#define MSIDBOPEN_PATCHFILE 32 / sizeof(*MSIDBOPEN_READONLY)
+
+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;
+
+typedef enum tagMSIDBSTATE
+{
+ MSIDBSTATE_ERROR = -1,
+ MSIDBSTATE_READ = 0,
+ MSIDBSTATE_WRITE = 1
+} MSIDBSTATE;
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef WINELIB_NAME_AW
+#ifdef UNICODE
+#define WINELIB_NAME_AW(x) x##W
+#else
+#define WINELIB_NAME_AW(x) x##A
+#endif
+#endif
+
+/* 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)
+MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE,LPSTR,LPDWORD);
+MSIDBERROR WINAPI MsiViewGetErrorW(MSIHANDLE,LPWSTR,LPDWORD);
+#define MsiViewGetError WINELIB_NAME_AW(MsiViewGetError)
+
+MSIDBSTATE WINAPI MsiGetDatabaseState(MSIHANDLE);
+
+/* record manipulation */
+MSIHANDLE WINAPI MsiCreateRecord(UINT);
+UINT WINAPI MsiRecordClearData(MSIHANDLE);
+UINT WINAPI MsiRecordSetInteger(MSIHANDLE,UINT,int);
+UINT WINAPI MsiRecordSetStringA(MSIHANDLE,UINT,LPCSTR);
+UINT WINAPI MsiRecordSetStringW(MSIHANDLE,UINT,LPCWSTR);
+#define MsiRecordSetString WINELIB_NAME_AW(MsiRecordSetString)
+UINT WINAPI MsiRecordGetStringA(MSIHANDLE,UINT,LPSTR,LPDWORD);
+UINT WINAPI MsiRecordGetStringW(MSIHANDLE,UINT,LPWSTR,LPDWORD);
+#define MsiRecordGetString WINELIB_NAME_AW(MsiRecordGetString)
+UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE);
+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);
+#define MsiFormatRecord WINELIB_NAME_AW(MsiFormatRecord)
+UINT WINAPI MsiRecordSetStreamA(MSIHANDLE,UINT,LPCSTR);
+UINT WINAPI MsiRecordSetStreamW(MSIHANDLE,UINT,LPCWSTR);
+#define MsiRecordSetStream WINELIB_NAME_AW(MsiRecordSetStream)
+UINT WINAPI MsiRecordReadStream(MSIHANDLE,UINT,char*,LPDWORD);
+
+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 */
+UINT WINAPI MsiGetFeatureStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
+UINT WINAPI MsiGetFeatureStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
+#define MsiGetFeatureState WINELIB_NAME_AW(MsiGetFeatureState)
+UINT WINAPI MsiGetFeatureValidStatesA(MSIHANDLE,LPCSTR,LPDWORD);
+UINT WINAPI MsiGetFeatureValidStatesW(MSIHANDLE,LPCWSTR,LPDWORD);
+#define MsiGetFeatureValidStates WINELIB_NAME_AW(MsiGetFeatureValidStates)
+UINT WINAPI MsiSetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE);
+UINT WINAPI MsiSetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE);
+#define MsiSetComponentState WINELIB_NAME_AW(MsiSetComponentState)
+UINT WINAPI MsiGetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
+UINT WINAPI MsiGetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
+#define MsiGetComponentState WINELIB_NAME_AW(MsiGetComponentState)
+
+MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE,LPCSTR);
+MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE,LPCWSTR);
+#define MsiEvaluateCondition WINELIB_NAME_AW(MsiEvaluateCondition)
+
+/* property functions */
+UINT WINAPI MsiGetPropertyA(MSIHANDLE, LPCSTR, LPSTR, LPDWORD);
+UINT WINAPI MsiGetPropertyW(MSIHANDLE, LPCWSTR, LPWSTR, LPDWORD);
+#define MsiGetProperty WINELIB_NAME_AW(MsiGetProperty)
+
+UINT WINAPI MsiSetPropertyA(MSIHANDLE, LPCSTR, LPCSTR);
+UINT WINAPI MsiSetPropertyW(MSIHANDLE, LPCWSTR, LPCWSTR);
+#define MsiSetProperty WINELIB_NAME_AW(MsiSetProperty)
+
+UINT WINAPI MsiGetTargetPathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
+UINT WINAPI MsiGetTargetPathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
+#define MsiGetTargetPath WINELIB_NAME_AW(MsiGetTargetPath)
+
+UINT WINAPI MsiSetTargetPathA(MSIHANDLE, LPCSTR, LPCSTR);
+UINT WINAPI MsiSetTargetPathW(MSIHANDLE, LPCWSTR, LPCWSTR);
+#define MsiSetTargetPath WINELIB_NAME_AW(MsiSetTargetPath)
+
+UINT WINAPI MsiGetSourcePathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
+UINT WINAPI MsiGetSourcePathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
+#define MsiGetSourcePath WINELIB_NAME_AW(MsiGetSourcePath)
+
+MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE);
+
+UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE, MSICOLINFO, MSIHANDLE*);
+INT WINAPI MsiProcessMessage(MSIHANDLE, INSTALLMESSAGE, MSIHANDLE);
+
+UINT WINAPI MsiSetFeatureAttributesA(MSIHANDLE, LPCSTR, DWORD);
+UINT WINAPI MsiSetFeatureAttributesW(MSIHANDLE, LPCWSTR, DWORD);
+#define MsiSetFeatureAttributes WINELIB_NAME_AW(MsiSetFeatureAttributes)
+
+UINT WINAPI MsiSetFeatureStateA(MSIHANDLE, LPCSTR, INSTALLSTATE);
+UINT WINAPI MsiSetFeatureStateW(MSIHANDLE, LPCWSTR, INSTALLSTATE);
+#define MsiSetFeatureState WINELIB_NAME_AW(MsiSetFeatureState)
+
+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)
+
+UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE, MSIHANDLE, LPCSTR, int, int);
+UINT WINAPI MsiCreateTransformSummaryInfoW(MSIHANDLE, MSIHANDLE, LPCWSTR, int, int);
+#define MsiCreateTransformSummaryInfo WINELIB_NAME_AW(MsiCreateTransformSummaryInfo)
+
+UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE, LPCSTR, UINT, MSIHANDLE *);
+UINT WINAPI MsiGetSummaryInformationW(MSIHANDLE, LPCWSTR, UINT, MSIHANDLE *);
+#define MsiGetSummaryInformation WINELIB_NAME_AW(MsiGetSummaryInformation)
+
+UINT WINAPI MsiSummaryInfoGetPropertyA(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPSTR,LPDWORD);
+UINT WINAPI MsiSummaryInfoGetPropertyW(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPWSTR,LPDWORD);
+#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)
+
+MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE, LPCSTR);
+MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(MSIHANDLE, LPCWSTR);
+#define MsiDatabaseIsTablePersistent WINELIB_NAME_AW(MsiDatabaseIsTablePersistent)
+
+UINT WINAPI MsiSequenceA(MSIHANDLE, LPCSTR, INT);
+UINT WINAPI MsiSequenceW(MSIHANDLE, LPCWSTR, INT);
+#define MsiSequence WINELIB_NAME_AW(MsiSequence)
+
+UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE);
+UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE,PUINT);
+
+UINT WINAPI MsiViewModify(MSIHANDLE, MSIMODIFY, MSIHANDLE);
+
+UINT WINAPI MsiDatabaseMergeA(MSIHANDLE, MSIHANDLE, LPCSTR);
+UINT WINAPI MsiDatabaseMergeW(MSIHANDLE, MSIHANDLE, LPCWSTR);
+#define MsiDatabaseMerge WINELIB_NAME_AW(MsiDatabaseMerge)
+
+/* Non Unicode */
+UINT WINAPI MsiDatabaseCommit(MSIHANDLE);
+UINT WINAPI MsiCloseHandle(MSIHANDLE);
+UINT WINAPI MsiCloseAllHandles(void);
+
+MSIHANDLE WINAPI MsiGetLastErrorRecord(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MSIQUERY_H */