Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _MSIQUERY_H_
      7 #define _MSIQUERY_H_
      8 
      9 #include <_mingw_unicode.h>
     10 #include "msi.h"
     11 
     12 #define MSI_NULL_INTEGER 0x80000000
     13 
     14 #define MSIDBOPEN_READONLY (LPCTSTR)0
     15 #define MSIDBOPEN_TRANSACT (LPCTSTR)1
     16 #define MSIDBOPEN_DIRECT (LPCTSTR)2
     17 #define MSIDBOPEN_CREATE (LPCTSTR)3
     18 #define MSIDBOPEN_CREATEDIRECT (LPCTSTR)4
     19 #define MSIDBOPEN_PATCHFILE 32/sizeof(*MSIDBOPEN_READONLY)
     20 
     21 typedef enum tagMSIDBSTATE {
     22   MSIDBSTATE_ERROR =-1,MSIDBSTATE_READ = 0,MSIDBSTATE_WRITE = 1
     23 } MSIDBSTATE;
     24 
     25 typedef enum tagMSIMODIFY {
     26   MSIMODIFY_SEEK =-1,MSIMODIFY_REFRESH = 0,MSIMODIFY_INSERT = 1,MSIMODIFY_UPDATE = 2,MSIMODIFY_ASSIGN = 3,MSIMODIFY_REPLACE = 4,
     27   MSIMODIFY_MERGE = 5,MSIMODIFY_DELETE = 6,MSIMODIFY_INSERT_TEMPORARY = 7,MSIMODIFY_VALIDATE = 8,MSIMODIFY_VALIDATE_NEW = 9,
     28   MSIMODIFY_VALIDATE_FIELD = 10,MSIMODIFY_VALIDATE_DELETE = 11
     29 } MSIMODIFY;
     30 
     31 typedef enum tagMSICOLINFO {
     32   MSICOLINFO_NAMES = 0,MSICOLINFO_TYPES = 1
     33 } MSICOLINFO;
     34 
     35 typedef enum tagMSICONDITION {
     36   MSICONDITION_FALSE = 0,MSICONDITION_TRUE = 1,MSICONDITION_NONE = 2,MSICONDITION_ERROR = 3
     37 } MSICONDITION;
     38 
     39 typedef enum tagMSICOSTTREE {
     40   MSICOSTTREE_SELFONLY = 0,MSICOSTTREE_CHILDREN = 1,MSICOSTTREE_PARENTS = 2,MSICOSTTREE_RESERVED = 3
     41 } MSICOSTTREE;
     42 
     43 typedef enum tagMSIDBERROR {
     44   MSIDBERROR_INVALIDARG = -3,MSIDBERROR_MOREDATA = -2,MSIDBERROR_FUNCTIONERROR = -1,MSIDBERROR_NOERROR = 0,MSIDBERROR_DUPLICATEKEY = 1,
     45   MSIDBERROR_REQUIRED = 2,MSIDBERROR_BADLINK = 3,MSIDBERROR_OVERFLOW = 4,MSIDBERROR_UNDERFLOW = 5,MSIDBERROR_NOTINSET = 6,
     46   MSIDBERROR_BADVERSION = 7,MSIDBERROR_BADCASE = 8,MSIDBERROR_BADGUID = 9,MSIDBERROR_BADWILDCARD = 10,MSIDBERROR_BADIDENTIFIER = 11,
     47   MSIDBERROR_BADLANGUAGE = 12,MSIDBERROR_BADFILENAME = 13,MSIDBERROR_BADPATH = 14,MSIDBERROR_BADCONDITION = 15,MSIDBERROR_BADFORMATTED = 16,
     48   MSIDBERROR_BADTEMPLATE = 17,MSIDBERROR_BADDEFAULTDIR = 18,MSIDBERROR_BADREGPATH = 19,MSIDBERROR_BADCUSTOMSOURCE = 20,MSIDBERROR_BADPROPERTY = 21,
     49   MSIDBERROR_MISSINGDATA = 22,MSIDBERROR_BADCATEGORY = 23,MSIDBERROR_BADKEYTABLE = 24,MSIDBERROR_BADMAXMINVALUES = 25,MSIDBERROR_BADCABINET = 26,
     50   MSIDBERROR_BADSHORTCUT = 27,MSIDBERROR_STRINGOVERFLOW = 28,MSIDBERROR_BADLOCALIZEATTRIB = 29
     51 } MSIDBERROR;
     52 
     53 typedef enum tagMSIRUNMODE {
     54   MSIRUNMODE_ADMIN = 0,MSIRUNMODE_ADVERTISE = 1,MSIRUNMODE_MAINTENANCE = 2,MSIRUNMODE_ROLLBACKENABLED = 3,MSIRUNMODE_LOGENABLED = 4,
     55   MSIRUNMODE_OPERATIONS = 5,MSIRUNMODE_REBOOTATEND = 6,MSIRUNMODE_REBOOTNOW = 7,MSIRUNMODE_CABINET = 8,MSIRUNMODE_SOURCESHORTNAMES= 9,
     56   MSIRUNMODE_TARGETSHORTNAMES= 10,MSIRUNMODE_RESERVED11 = 11,MSIRUNMODE_WINDOWS9X = 12,MSIRUNMODE_ZAWENABLED = 13,MSIRUNMODE_RESERVED14 = 14,
     57   MSIRUNMODE_RESERVED15 = 15,MSIRUNMODE_SCHEDULED = 16,MSIRUNMODE_ROLLBACK = 17,MSIRUNMODE_COMMIT = 18
     58 } MSIRUNMODE;
     59 
     60 #define INSTALLMESSAGE_TYPEMASK __MSABI_LONG(0xFF000000)
     61 
     62 typedef enum tagMSITRANSFORM_ERROR {
     63   MSITRANSFORM_ERROR_ADDEXISTINGROW = 0x00000001,MSITRANSFORM_ERROR_DELMISSINGROW = 0x00000002,MSITRANSFORM_ERROR_ADDEXISTINGTABLE = 0x00000004,
     64   MSITRANSFORM_ERROR_DELMISSINGTABLE = 0x00000008,MSITRANSFORM_ERROR_UPDATEMISSINGROW = 0x00000010,MSITRANSFORM_ERROR_CHANGECODEPAGE = 0x00000020,
     65   MSITRANSFORM_ERROR_VIEWTRANSFORM = 0x00000100
     66 } MSITRANSFORM_ERROR;
     67 
     68 typedef enum tagMSITRANSFORM_VALIDATE {
     69   MSITRANSFORM_VALIDATE_LANGUAGE = 0x00000001,MSITRANSFORM_VALIDATE_PRODUCT = 0x00000002,MSITRANSFORM_VALIDATE_PLATFORM = 0x00000004,
     70   MSITRANSFORM_VALIDATE_MAJORVERSION = 0x00000008,MSITRANSFORM_VALIDATE_MINORVERSION = 0x00000010,MSITRANSFORM_VALIDATE_UPDATEVERSION = 0x00000020,
     71   MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION = 0x00000040,MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION = 0x00000080,
     72   MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION = 0x00000100,MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION = 0x00000200,
     73   MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION = 0x00000400,MSITRANSFORM_VALIDATE_UPGRADECODE = 0x00000800
     74 } MSITRANSFORM_VALIDATE;
     75 
     76 #ifdef __cplusplus
     77 extern "C" {
     78 #endif
     79 
     80   UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE hDatabase,LPCSTR szQuery,MSIHANDLE *phView);
     81   UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE hDatabase,LPCWSTR szQuery,MSIHANDLE *phView);
     82 #define MsiDatabaseOpenView __MINGW_NAME_AW(MsiDatabaseOpenView)
     83 
     84   MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE hView,LPSTR szColumnNameBuffer,DWORD *pcchBuf);
     85   MSIDBERROR WINAPI MsiViewGetErrorW(MSIHANDLE hView,LPWSTR szColumnNameBuffer,DWORD *pcchBuf);
     86 #define MsiViewGetError __MINGW_NAME_AW(MsiViewGetError)
     87 
     88   UINT WINAPI MsiViewExecute(MSIHANDLE hView,MSIHANDLE hRecord);
     89   UINT WINAPI MsiViewFetch(MSIHANDLE hView,MSIHANDLE *phRecord);
     90   UINT WINAPI MsiViewModify(MSIHANDLE hView,MSIMODIFY eModifyMode,MSIHANDLE hRecord);
     91   UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE hView,MSICOLINFO eColumnInfo,MSIHANDLE *phRecord);
     92   UINT WINAPI MsiViewClose(MSIHANDLE hView);
     93   UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE hDatabase,LPCSTR szTableName,MSIHANDLE *phRecord);
     94   UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE hDatabase,LPCWSTR szTableName,MSIHANDLE *phRecord);
     95 #define MsiDatabaseGetPrimaryKeys __MINGW_NAME_AW(MsiDatabaseGetPrimaryKeys)
     96 
     97   MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE hDatabase,LPCSTR szTableName);
     98   MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(MSIHANDLE hDatabase,LPCWSTR szTableName);
     99 #define MsiDatabaseIsTablePersistent __MINGW_NAME_AW(MsiDatabaseIsTablePersistent)
    100 
    101   UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE hDatabase,LPCSTR szDatabasePath,UINT uiUpdateCount,MSIHANDLE *phSummaryInfo);
    102   UINT WINAPI MsiGetSummaryInformationW(MSIHANDLE hDatabase,LPCWSTR szDatabasePath,UINT uiUpdateCount,MSIHANDLE *phSummaryInfo);
    103 #define MsiGetSummaryInformation __MINGW_NAME_AW(MsiGetSummaryInformation)
    104 
    105   UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE hSummaryInfo,UINT *puiPropertyCount);
    106   UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT uiDataType,INT iValue,FILETIME *pftValue,LPCSTR szValue);
    107   UINT WINAPI MsiSummaryInfoSetPropertyW(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT uiDataType,INT iValue,FILETIME *pftValue,LPCWSTR szValue);
    108 #define MsiSummaryInfoSetProperty __MINGW_NAME_AW(MsiSummaryInfoSetProperty)
    109 
    110   UINT WINAPI MsiSummaryInfoGetPropertyA(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT *puiDataType,INT *piValue,FILETIME *pftValue,LPSTR szValueBuf,DWORD *pcchValueBuf);
    111   UINT WINAPI MsiSummaryInfoGetPropertyW(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT *puiDataType,INT *piValue,FILETIME *pftValue,LPWSTR szValueBuf,DWORD *pcchValueBuf);
    112 #define MsiSummaryInfoGetProperty __MINGW_NAME_AW(MsiSummaryInfoGetProperty)
    113 
    114   UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE hSummaryInfo);
    115   UINT WINAPI MsiOpenDatabaseA(LPCSTR szDatabasePath,LPCSTR szPersist,MSIHANDLE *phDatabase);
    116   UINT WINAPI MsiOpenDatabaseW(LPCWSTR szDatabasePath,LPCWSTR szPersist,MSIHANDLE *phDatabase);
    117 #define MsiOpenDatabase __MINGW_NAME_AW(MsiOpenDatabase)
    118 
    119   UINT WINAPI MsiDatabaseImportA(MSIHANDLE hDatabase,LPCSTR szFolderPath,LPCSTR szFileName);
    120   UINT WINAPI MsiDatabaseImportW(MSIHANDLE hDatabase,LPCWSTR szFolderPath,LPCWSTR szFileName);
    121 #define MsiDatabaseImport __MINGW_NAME_AW(MsiDatabaseImport)
    122 
    123   UINT WINAPI MsiDatabaseExportA(MSIHANDLE hDatabase,LPCSTR szTableName,LPCSTR szFolderPath,LPCSTR szFileName);
    124   UINT WINAPI MsiDatabaseExportW(MSIHANDLE hDatabase,LPCWSTR szTableName,LPCWSTR szFolderPath,LPCWSTR szFileName);
    125 #define MsiDatabaseExport __MINGW_NAME_AW(MsiDatabaseExport)
    126 
    127   UINT WINAPI MsiDatabaseMergeA(MSIHANDLE hDatabase,MSIHANDLE hDatabaseMerge,LPCSTR szTableName);
    128   UINT WINAPI MsiDatabaseMergeW(MSIHANDLE hDatabase,MSIHANDLE hDatabaseMerge,LPCWSTR szTableName);
    129 #define MsiDatabaseMerge __MINGW_NAME_AW(MsiDatabaseMerge)
    130 
    131   UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCSTR szTransformFile,int iReserved1,int iReserved2);
    132   UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCWSTR szTransformFile,int iReserved1,int iReserved2);
    133 #define MsiDatabaseGenerateTransform __MINGW_NAME_AW(MsiDatabaseGenerateTransform)
    134 
    135   UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE hDatabase,LPCSTR szTransformFile,int iErrorConditions);
    136   UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE hDatabase,LPCWSTR szTransformFile,int iErrorConditions);
    137 #define MsiDatabaseApplyTransform __MINGW_NAME_AW(MsiDatabaseApplyTransform)
    138 
    139   UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCSTR szTransformFile,int iErrorConditions,int iValidation);
    140   UINT WINAPI MsiCreateTransformSummaryInfoW(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCWSTR szTransformFile,int iErrorConditions,int iValidation);
    141 #define MsiCreateTransformSummaryInfo __MINGW_NAME_AW(MsiCreateTransformSummaryInfo)
    142 
    143   UINT WINAPI MsiDatabaseCommit(MSIHANDLE hDatabase);
    144   MSIDBSTATE WINAPI MsiGetDatabaseState(MSIHANDLE hDatabase);
    145   MSIHANDLE WINAPI MsiCreateRecord(UINT cParams);
    146   WINBOOL WINAPI MsiRecordIsNull(MSIHANDLE hRecord,UINT iField);
    147   UINT WINAPI MsiRecordDataSize(MSIHANDLE hRecord,UINT iField);
    148   UINT WINAPI MsiRecordSetInteger(MSIHANDLE hRecord,UINT iField,int iValue);
    149   int WINAPI MsiRecordGetInteger(MSIHANDLE hRecord,UINT iField);
    150   UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE hRecord);
    151   UINT WINAPI MsiRecordReadStream(MSIHANDLE hRecord,UINT iField,char *szDataBuf,DWORD *pcbDataBuf);
    152   UINT WINAPI MsiRecordClearData(MSIHANDLE hRecord);
    153   MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE hInstall);
    154   LANGID WINAPI MsiGetLanguage(MSIHANDLE hInstall);
    155   WINBOOL WINAPI MsiGetMode(MSIHANDLE hInstall,MSIRUNMODE eRunMode);
    156   UINT WINAPI MsiSetMode(MSIHANDLE hInstall,MSIRUNMODE eRunMode,WINBOOL fState);
    157   int WINAPI MsiProcessMessage(MSIHANDLE hInstall,INSTALLMESSAGE eMessageType,MSIHANDLE hRecord);
    158 
    159   UINT WINAPI MsiRecordSetStringA(MSIHANDLE hRecord,UINT iField,LPCSTR szValue);
    160   UINT WINAPI MsiRecordSetStringW(MSIHANDLE hRecord,UINT iField,LPCWSTR szValue);
    161 #define MsiRecordSetString __MINGW_NAME_AW(MsiRecordSetString)
    162 
    163   UINT WINAPI MsiRecordGetStringA(MSIHANDLE hRecord,UINT iField,LPSTR szValueBuf,DWORD *pcchValueBuf);
    164   UINT WINAPI MsiRecordGetStringW(MSIHANDLE hRecord,UINT iField,LPWSTR szValueBuf,DWORD *pcchValueBuf);
    165 #define MsiRecordGetString __MINGW_NAME_AW(MsiRecordGetString)
    166 
    167   UINT WINAPI MsiRecordSetStreamA(MSIHANDLE hRecord,UINT iField,LPCSTR szFilePath);
    168   UINT WINAPI MsiRecordSetStreamW(MSIHANDLE hRecord,UINT iField,LPCWSTR szFilePath);
    169 #define MsiRecordSetStream __MINGW_NAME_AW(MsiRecordSetStream)
    170 
    171   UINT WINAPI MsiSetPropertyA(MSIHANDLE hInstall,LPCSTR szName,LPCSTR szValue);
    172   UINT WINAPI MsiSetPropertyW(MSIHANDLE hInstall,LPCWSTR szName,LPCWSTR szValue);
    173 #define MsiSetProperty __MINGW_NAME_AW(MsiSetProperty)
    174 
    175   UINT WINAPI MsiGetPropertyA(MSIHANDLE hInstall,LPCSTR szName,LPSTR szValueBuf,DWORD *pcchValueBuf);
    176   UINT WINAPI MsiGetPropertyW(MSIHANDLE hInstall,LPCWSTR szName,LPWSTR szValueBuf,DWORD *pcchValueBuf);
    177 #define MsiGetProperty __MINGW_NAME_AW(MsiGetProperty)
    178 
    179   UINT WINAPI MsiFormatRecordA(MSIHANDLE hInstall,MSIHANDLE hRecord,LPSTR szResultBuf,DWORD *pcchResultBuf);
    180   UINT WINAPI MsiFormatRecordW(MSIHANDLE hInstall,MSIHANDLE hRecord,LPWSTR szResultBuf,DWORD *pcchResultBuf);
    181 #define MsiFormatRecord __MINGW_NAME_AW(MsiFormatRecord)
    182 
    183   UINT WINAPI MsiDoActionA(MSIHANDLE hInstall,LPCSTR szAction);
    184   UINT WINAPI MsiDoActionW(MSIHANDLE hInstall,LPCWSTR szAction);
    185 #define MsiDoAction __MINGW_NAME_AW(MsiDoAction)
    186 
    187   UINT WINAPI MsiSequenceA(MSIHANDLE hInstall,LPCSTR szTable,INT iSequenceMode);
    188   UINT WINAPI MsiSequenceW(MSIHANDLE hInstall,LPCWSTR szTable,INT iSequenceMode);
    189 #define MsiSequence __MINGW_NAME_AW(MsiSequence)
    190 
    191   MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE hInstall,LPCSTR szCondition);
    192   MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE hInstall,LPCWSTR szCondition);
    193 #define MsiEvaluateCondition __MINGW_NAME_AW(MsiEvaluateCondition)
    194 
    195   UINT WINAPI MsiGetFeatureStateA(MSIHANDLE hInstall,LPCSTR szFeature,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction);
    196   UINT WINAPI MsiGetFeatureStateW(MSIHANDLE hInstall,LPCWSTR szFeature,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction);
    197 #define MsiGetFeatureState __MINGW_NAME_AW(MsiGetFeatureState)
    198 
    199   UINT WINAPI MsiSetFeatureStateA(MSIHANDLE hInstall,LPCSTR szFeature,INSTALLSTATE iState);
    200   UINT WINAPI MsiSetFeatureStateW(MSIHANDLE hInstall,LPCWSTR szFeature,INSTALLSTATE iState);
    201 #define MsiSetFeatureState __MINGW_NAME_AW(MsiSetFeatureState)
    202 
    203 #if (_WIN32_MSI >= 110)
    204   UINT WINAPI MsiSetFeatureAttributesA(MSIHANDLE hInstall,LPCSTR szFeature,DWORD dwAttributes);
    205   UINT WINAPI MsiSetFeatureAttributesW(MSIHANDLE hInstall,LPCWSTR szFeature,DWORD dwAttributes);
    206 #define MsiSetFeatureAttributes __MINGW_NAME_AW(MsiSetFeatureAttributes)
    207 #endif
    208 
    209   UINT WINAPI MsiGetComponentStateA(MSIHANDLE hInstall,LPCSTR szComponent,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction);
    210   UINT WINAPI MsiGetComponentStateW(MSIHANDLE hInstall,LPCWSTR szComponent,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction);
    211 #define MsiGetComponentState __MINGW_NAME_AW(MsiGetComponentState)
    212 
    213   UINT WINAPI MsiSetComponentStateA(MSIHANDLE hInstall,LPCSTR szComponent,INSTALLSTATE iState);
    214   UINT WINAPI MsiSetComponentStateW(MSIHANDLE hInstall,LPCWSTR szComponent,INSTALLSTATE iState);
    215 #define MsiSetComponentState __MINGW_NAME_AW(MsiSetComponentState)
    216 
    217   UINT WINAPI MsiGetFeatureCostA(MSIHANDLE hInstall,LPCSTR szFeature,MSICOSTTREE iCostTree,INSTALLSTATE iState,INT *piCost);
    218   UINT WINAPI MsiGetFeatureCostW(MSIHANDLE hInstall,LPCWSTR szFeature,MSICOSTTREE iCostTree,INSTALLSTATE iState,INT *piCost);
    219 #define MsiGetFeatureCost __MINGW_NAME_AW(MsiGetFeatureCost)
    220 
    221 #if (_WIN32_MSI >= 150)
    222   UINT WINAPI MsiEnumComponentCostsA(MSIHANDLE hInstall,LPCSTR szComponent,DWORD dwIndex,INSTALLSTATE iState,LPSTR szDriveBuf,DWORD *pcchDriveBuf,INT *piCost,INT *piTempCost);
    223   UINT WINAPI MsiEnumComponentCostsW(MSIHANDLE hInstall,LPCWSTR szComponent,DWORD dwIndex,INSTALLSTATE iState,LPWSTR szDriveBuf,DWORD *pcchDriveBuf,INT *piCost,INT *piTempCost);
    224 #define MsiEnumComponentCosts __MINGW_NAME_AW(MsiEnumComponentCosts)
    225 #endif
    226 
    227   UINT WINAPI MsiSetInstallLevel(MSIHANDLE hInstall,int iInstallLevel);
    228   UINT WINAPI MsiVerifyDiskSpace(MSIHANDLE hInstall);
    229   UINT WINAPI MsiEnableUIPreview(MSIHANDLE hDatabase,MSIHANDLE *phPreview);
    230   MSIHANDLE WINAPI MsiGetLastErrorRecord();
    231 
    232   UINT WINAPI MsiGetFeatureValidStatesA(MSIHANDLE hInstall,LPCSTR szFeature,DWORD *dwInstallStates);
    233   UINT WINAPI MsiGetFeatureValidStatesW(MSIHANDLE hInstall,LPCWSTR szFeature,DWORD *dwInstallStates);
    234 #define MsiGetFeatureValidStates __MINGW_NAME_AW(MsiGetFeatureValidStates)
    235 
    236   UINT WINAPI MsiGetSourcePathA(MSIHANDLE hInstall,LPCSTR szFolder,LPSTR szPathBuf,DWORD *pcchPathBuf);
    237   UINT WINAPI MsiGetSourcePathW(MSIHANDLE hInstall,LPCWSTR szFolder,LPWSTR szPathBuf,DWORD *pcchPathBuf);
    238 #define MsiGetSourcePath __MINGW_NAME_AW(MsiGetSourcePath)
    239 
    240   UINT WINAPI MsiGetTargetPathA(MSIHANDLE hInstall,LPCSTR szFolder,LPSTR szPathBuf,DWORD *pcchPathBuf);
    241   UINT WINAPI MsiGetTargetPathW(MSIHANDLE hInstall,LPCWSTR szFolder,LPWSTR szPathBuf,DWORD *pcchPathBuf);
    242 #define MsiGetTargetPath __MINGW_NAME_AW(MsiGetTargetPath)
    243 
    244   UINT WINAPI MsiSetTargetPathA(MSIHANDLE hInstall,LPCSTR szFolder,LPCSTR szFolderPath);
    245   UINT WINAPI MsiSetTargetPathW(MSIHANDLE hInstall,LPCWSTR szFolder,LPCWSTR szFolderPath);
    246 #define MsiSetTargetPath __MINGW_NAME_AW(MsiSetTargetPath)
    247 
    248   UINT WINAPI MsiPreviewDialogA(MSIHANDLE hPreview,LPCSTR szDialogName);
    249   UINT WINAPI MsiPreviewDialogW(MSIHANDLE hPreview,LPCWSTR szDialogName);
    250 #define MsiPreviewDialog __MINGW_NAME_AW(MsiPreviewDialog)
    251 
    252   UINT WINAPI MsiPreviewBillboardA(MSIHANDLE hPreview,LPCSTR szControlName,LPCSTR szBillboard);
    253   UINT WINAPI MsiPreviewBillboardW(MSIHANDLE hPreview,LPCWSTR szControlName,LPCWSTR szBillboard);
    254 #define MsiPreviewBillboard __MINGW_NAME_AW(MsiPreviewBillboard)
    255 
    256 #ifdef __cplusplus
    257 }
    258 #endif
    259 #endif
    260