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