Mercurial > games > semicongine
diff fuhtark_test/include/winapi/msiquery.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/msiquery.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,382 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef _MSIQUERY_H_ +#define _MSIQUERY_H_ +#include "msi.h" + +#define MSI_NULL_INTEGER 0x80000000 + +#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 tagMSIDBSTATE { + MSIDBSTATE_ERROR =-1,MSIDBSTATE_READ = 0,MSIDBSTATE_WRITE = 1 +} MSIDBSTATE; + +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; + +typedef enum tagMSICOLINFO { + MSICOLINFO_NAMES = 0,MSICOLINFO_TYPES = 1 +} MSICOLINFO; + +typedef enum tagMSICONDITION { + MSICONDITION_FALSE = 0,MSICONDITION_TRUE = 1,MSICONDITION_NONE = 2,MSICONDITION_ERROR = 3 +} MSICONDITION; + +typedef enum tagMSICOSTTREE { + MSICOSTTREE_SELFONLY = 0,MSICOSTTREE_CHILDREN = 1,MSICOSTTREE_PARENTS = 2,MSICOSTTREE_RESERVED = 3 +} MSICOSTTREE; + +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 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; + +#define INSTALLMESSAGE_TYPEMASK 0xFF000000L + +typedef enum tagMSITRANSFORM_ERROR { + MSITRANSFORM_ERROR_ADDEXISTINGROW = 0x00000001,MSITRANSFORM_ERROR_DELMISSINGROW = 0x00000002,MSITRANSFORM_ERROR_ADDEXISTINGTABLE = 0x00000004, + MSITRANSFORM_ERROR_DELMISSINGTABLE = 0x00000008,MSITRANSFORM_ERROR_UPDATEMISSINGROW = 0x00000010,MSITRANSFORM_ERROR_CHANGECODEPAGE = 0x00000020, + MSITRANSFORM_ERROR_VIEWTRANSFORM = 0x00000100 +} MSITRANSFORM_ERROR; + +typedef enum tagMSITRANSFORM_VALIDATE { + MSITRANSFORM_VALIDATE_LANGUAGE = 0x00000001,MSITRANSFORM_VALIDATE_PRODUCT = 0x00000002,MSITRANSFORM_VALIDATE_PLATFORM = 0x00000004, + MSITRANSFORM_VALIDATE_MAJORVERSION = 0x00000008,MSITRANSFORM_VALIDATE_MINORVERSION = 0x00000010,MSITRANSFORM_VALIDATE_UPDATEVERSION = 0x00000020, + MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION = 0x00000040,MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION = 0x00000080, + MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION = 0x00000100,MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION = 0x00000200, + MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION = 0x00000400,MSITRANSFORM_VALIDATE_UPGRADECODE = 0x00000800 +} MSITRANSFORM_VALIDATE; + +#ifdef __cplusplus +extern "C" { +#endif + + UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE hDatabase,LPCSTR szQuery,MSIHANDLE *phView); + UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE hDatabase,LPCWSTR szQuery,MSIHANDLE *phView); +#ifdef UNICODE +#define MsiDatabaseOpenView MsiDatabaseOpenViewW +#else +#define MsiDatabaseOpenView MsiDatabaseOpenViewA +#endif + + MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE hView,LPSTR szColumnNameBuffer,DWORD *pcchBuf); + MSIDBERROR WINAPI MsiViewGetErrorW(MSIHANDLE hView,LPWSTR szColumnNameBuffer,DWORD *pcchBuf); +#ifdef UNICODE +#define MsiViewGetError MsiViewGetErrorW +#else +#define MsiViewGetError MsiViewGetErrorA +#endif + + UINT WINAPI MsiViewExecute(MSIHANDLE hView,MSIHANDLE hRecord); + UINT WINAPI MsiViewFetch(MSIHANDLE hView,MSIHANDLE *phRecord); + UINT WINAPI MsiViewModify(MSIHANDLE hView,MSIMODIFY eModifyMode,MSIHANDLE hRecord); + UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE hView,MSICOLINFO eColumnInfo,MSIHANDLE *phRecord); + UINT WINAPI MsiViewClose(MSIHANDLE hView); + UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE hDatabase,LPCSTR szTableName,MSIHANDLE *phRecord); + UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE hDatabase,LPCWSTR szTableName,MSIHANDLE *phRecord); +#ifdef UNICODE +#define MsiDatabaseGetPrimaryKeys MsiDatabaseGetPrimaryKeysW +#else +#define MsiDatabaseGetPrimaryKeys MsiDatabaseGetPrimaryKeysA +#endif + + MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE hDatabase,LPCSTR szTableName); + MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(MSIHANDLE hDatabase,LPCWSTR szTableName); +#ifdef UNICODE +#define MsiDatabaseIsTablePersistent MsiDatabaseIsTablePersistentW +#else +#define MsiDatabaseIsTablePersistent MsiDatabaseIsTablePersistentA +#endif + + UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE hDatabase,LPCSTR szDatabasePath,UINT uiUpdateCount,MSIHANDLE *phSummaryInfo); + UINT WINAPI MsiGetSummaryInformationW(MSIHANDLE hDatabase,LPCWSTR szDatabasePath,UINT uiUpdateCount,MSIHANDLE *phSummaryInfo); +#ifdef UNICODE +#define MsiGetSummaryInformation MsiGetSummaryInformationW +#else +#define MsiGetSummaryInformation MsiGetSummaryInformationA +#endif + + UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE hSummaryInfo,UINT *puiPropertyCount); + UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT uiDataType,INT iValue,FILETIME *pftValue,LPCSTR szValue); + UINT WINAPI MsiSummaryInfoSetPropertyW(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT uiDataType,INT iValue,FILETIME *pftValue,LPCWSTR szValue); +#ifdef UNICODE +#define MsiSummaryInfoSetProperty MsiSummaryInfoSetPropertyW +#else +#define MsiSummaryInfoSetProperty MsiSummaryInfoSetPropertyA +#endif + + UINT WINAPI MsiSummaryInfoGetPropertyA(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT *puiDataType,INT *piValue,FILETIME *pftValue,LPSTR szValueBuf,DWORD *pcchValueBuf); + UINT WINAPI MsiSummaryInfoGetPropertyW(MSIHANDLE hSummaryInfo,UINT uiProperty,UINT *puiDataType,INT *piValue,FILETIME *pftValue,LPWSTR szValueBuf,DWORD *pcchValueBuf); +#ifdef UNICODE +#define MsiSummaryInfoGetProperty MsiSummaryInfoGetPropertyW +#else +#define MsiSummaryInfoGetProperty MsiSummaryInfoGetPropertyA +#endif + + UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE hSummaryInfo); + UINT WINAPI MsiOpenDatabaseA(LPCSTR szDatabasePath,LPCSTR szPersist,MSIHANDLE *phDatabase); + UINT WINAPI MsiOpenDatabaseW(LPCWSTR szDatabasePath,LPCWSTR szPersist,MSIHANDLE *phDatabase); +#ifdef UNICODE +#define MsiOpenDatabase MsiOpenDatabaseW +#else +#define MsiOpenDatabase MsiOpenDatabaseA +#endif + + UINT WINAPI MsiDatabaseImportA(MSIHANDLE hDatabase,LPCSTR szFolderPath,LPCSTR szFileName); + UINT WINAPI MsiDatabaseImportW(MSIHANDLE hDatabase,LPCWSTR szFolderPath,LPCWSTR szFileName); +#ifdef UNICODE +#define MsiDatabaseImport MsiDatabaseImportW +#else +#define MsiDatabaseImport MsiDatabaseImportA +#endif + + UINT WINAPI MsiDatabaseExportA(MSIHANDLE hDatabase,LPCSTR szTableName,LPCSTR szFolderPath,LPCSTR szFileName); + UINT WINAPI MsiDatabaseExportW(MSIHANDLE hDatabase,LPCWSTR szTableName,LPCWSTR szFolderPath,LPCWSTR szFileName); +#ifdef UNICODE +#define MsiDatabaseExport MsiDatabaseExportW +#else +#define MsiDatabaseExport MsiDatabaseExportA +#endif + + UINT WINAPI MsiDatabaseMergeA(MSIHANDLE hDatabase,MSIHANDLE hDatabaseMerge,LPCSTR szTableName); + UINT WINAPI MsiDatabaseMergeW(MSIHANDLE hDatabase,MSIHANDLE hDatabaseMerge,LPCWSTR szTableName); +#ifdef UNICODE +#define MsiDatabaseMerge MsiDatabaseMergeW +#else +#define MsiDatabaseMerge MsiDatabaseMergeA +#endif + + UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCSTR szTransformFile,int iReserved1,int iReserved2); + UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCWSTR szTransformFile,int iReserved1,int iReserved2); +#ifdef UNICODE +#define MsiDatabaseGenerateTransform MsiDatabaseGenerateTransformW +#else +#define MsiDatabaseGenerateTransform MsiDatabaseGenerateTransformA +#endif + + UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE hDatabase,LPCSTR szTransformFile,int iErrorConditions); + UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE hDatabase,LPCWSTR szTransformFile,int iErrorConditions); +#ifdef UNICODE +#define MsiDatabaseApplyTransform MsiDatabaseApplyTransformW +#else +#define MsiDatabaseApplyTransform MsiDatabaseApplyTransformA +#endif + + UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCSTR szTransformFile,int iErrorConditions,int iValidation); + UINT WINAPI MsiCreateTransformSummaryInfoW(MSIHANDLE hDatabase,MSIHANDLE hDatabaseReference,LPCWSTR szTransformFile,int iErrorConditions,int iValidation); +#ifdef UNICODE +#define MsiCreateTransformSummaryInfo MsiCreateTransformSummaryInfoW +#else +#define MsiCreateTransformSummaryInfo MsiCreateTransformSummaryInfoA +#endif + + UINT WINAPI MsiDatabaseCommit(MSIHANDLE hDatabase); + MSIDBSTATE WINAPI MsiGetDatabaseState(MSIHANDLE hDatabase); + MSIHANDLE WINAPI MsiCreateRecord(UINT cParams); + WINBOOL WINAPI MsiRecordIsNull(MSIHANDLE hRecord,UINT iField); + UINT WINAPI MsiRecordDataSize(MSIHANDLE hRecord,UINT iField); + UINT WINAPI MsiRecordSetInteger(MSIHANDLE hRecord,UINT iField,int iValue); + UINT WINAPI MsiRecordSetStringA(MSIHANDLE hRecord,UINT iField,LPCSTR szValue); + UINT WINAPI MsiRecordSetStringW(MSIHANDLE hRecord,UINT iField,LPCWSTR szValue); +#ifdef UNICODE +#define MsiRecordSetString MsiRecordSetStringW +#else +#define MsiRecordSetString MsiRecordSetStringA +#endif + + int WINAPI MsiRecordGetInteger(MSIHANDLE hRecord,UINT iField); + + UINT WINAPI MsiRecordGetStringA(MSIHANDLE hRecord,UINT iField,LPSTR szValueBuf,DWORD *pcchValueBuf); + UINT WINAPI MsiRecordGetStringW(MSIHANDLE hRecord,UINT iField,LPWSTR szValueBuf,DWORD *pcchValueBuf); +#ifdef UNICODE +#define MsiRecordGetString MsiRecordGetStringW +#else +#define MsiRecordGetString MsiRecordGetStringA +#endif + + UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE hRecord); + UINT WINAPI MsiRecordSetStreamA(MSIHANDLE hRecord,UINT iField,LPCSTR szFilePath); + UINT WINAPI MsiRecordSetStreamW(MSIHANDLE hRecord,UINT iField,LPCWSTR szFilePath); +#ifdef UNICODE +#define MsiRecordSetStream MsiRecordSetStreamW +#else +#define MsiRecordSetStream MsiRecordSetStreamA +#endif + + UINT WINAPI MsiRecordReadStream(MSIHANDLE hRecord,UINT iField,char *szDataBuf,DWORD *pcbDataBuf); + UINT WINAPI MsiRecordClearData(MSIHANDLE hRecord); + MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE hInstall); + UINT WINAPI MsiSetPropertyA(MSIHANDLE hInstall,LPCSTR szName,LPCSTR szValue); + UINT WINAPI MsiSetPropertyW(MSIHANDLE hInstall,LPCWSTR szName,LPCWSTR szValue); +#ifdef UNICODE +#define MsiSetProperty MsiSetPropertyW +#else +#define MsiSetProperty MsiSetPropertyA +#endif + + UINT WINAPI MsiGetPropertyA(MSIHANDLE hInstall,LPCSTR szName,LPSTR szValueBuf,DWORD *pcchValueBuf); + UINT WINAPI MsiGetPropertyW(MSIHANDLE hInstall,LPCWSTR szName,LPWSTR szValueBuf,DWORD *pcchValueBuf); +#ifdef UNICODE +#define MsiGetProperty MsiGetPropertyW +#else +#define MsiGetProperty MsiGetPropertyA +#endif + + LANGID WINAPI MsiGetLanguage(MSIHANDLE hInstall); + WINBOOL WINAPI MsiGetMode(MSIHANDLE hInstall,MSIRUNMODE eRunMode); + UINT WINAPI MsiSetMode(MSIHANDLE hInstall,MSIRUNMODE eRunMode,WINBOOL fState); + UINT WINAPI MsiFormatRecordA(MSIHANDLE hInstall,MSIHANDLE hRecord,LPSTR szResultBuf,DWORD *pcchResultBuf); + UINT WINAPI MsiFormatRecordW(MSIHANDLE hInstall,MSIHANDLE hRecord,LPWSTR szResultBuf,DWORD *pcchResultBuf); +#ifdef UNICODE +#define MsiFormatRecord MsiFormatRecordW +#else +#define MsiFormatRecord MsiFormatRecordA +#endif + + UINT WINAPI MsiDoActionA(MSIHANDLE hInstall,LPCSTR szAction); + UINT WINAPI MsiDoActionW(MSIHANDLE hInstall,LPCWSTR szAction); +#ifdef UNICODE +#define MsiDoAction MsiDoActionW +#else +#define MsiDoAction MsiDoActionA +#endif + + UINT WINAPI MsiSequenceA(MSIHANDLE hInstall,LPCSTR szTable,INT iSequenceMode); + UINT WINAPI MsiSequenceW(MSIHANDLE hInstall,LPCWSTR szTable,INT iSequenceMode); +#ifdef UNICODE +#define MsiSequence MsiSequenceW +#else +#define MsiSequence MsiSequenceA +#endif + + int WINAPI MsiProcessMessage(MSIHANDLE hInstall,INSTALLMESSAGE eMessageType,MSIHANDLE hRecord); + MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE hInstall,LPCSTR szCondition); + MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE hInstall,LPCWSTR szCondition); +#ifdef UNICODE +#define MsiEvaluateCondition MsiEvaluateConditionW +#else +#define MsiEvaluateCondition MsiEvaluateConditionA +#endif + + UINT WINAPI MsiGetFeatureStateA(MSIHANDLE hInstall,LPCSTR szFeature,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction); + UINT WINAPI MsiGetFeatureStateW(MSIHANDLE hInstall,LPCWSTR szFeature,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction); +#ifdef UNICODE +#define MsiGetFeatureState MsiGetFeatureStateW +#else +#define MsiGetFeatureState MsiGetFeatureStateA +#endif + + UINT WINAPI MsiSetFeatureStateA(MSIHANDLE hInstall,LPCSTR szFeature,INSTALLSTATE iState); + UINT WINAPI MsiSetFeatureStateW(MSIHANDLE hInstall,LPCWSTR szFeature,INSTALLSTATE iState); +#ifdef UNICODE +#define MsiSetFeatureState MsiSetFeatureStateW +#else +#define MsiSetFeatureState MsiSetFeatureStateA +#endif + +#if (_WIN32_MSI >= 110) + + UINT WINAPI MsiSetFeatureAttributesA(MSIHANDLE hInstall,LPCSTR szFeature,DWORD dwAttributes); + UINT WINAPI MsiSetFeatureAttributesW(MSIHANDLE hInstall,LPCWSTR szFeature,DWORD dwAttributes); +#ifdef UNICODE +#define MsiSetFeatureAttributes MsiSetFeatureAttributesW +#else +#define MsiSetFeatureAttributes MsiSetFeatureAttributesA +#endif +#endif + + UINT WINAPI MsiGetComponentStateA(MSIHANDLE hInstall,LPCSTR szComponent,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction); + UINT WINAPI MsiGetComponentStateW(MSIHANDLE hInstall,LPCWSTR szComponent,INSTALLSTATE *piInstalled,INSTALLSTATE *piAction); +#ifdef UNICODE +#define MsiGetComponentState MsiGetComponentStateW +#else +#define MsiGetComponentState MsiGetComponentStateA +#endif + + UINT WINAPI MsiSetComponentStateA(MSIHANDLE hInstall,LPCSTR szComponent,INSTALLSTATE iState); + UINT WINAPI MsiSetComponentStateW(MSIHANDLE hInstall,LPCWSTR szComponent,INSTALLSTATE iState); +#ifdef UNICODE +#define MsiSetComponentState MsiSetComponentStateW +#else +#define MsiSetComponentState MsiSetComponentStateA +#endif + + UINT WINAPI MsiGetFeatureCostA(MSIHANDLE hInstall,LPCSTR szFeature,MSICOSTTREE iCostTree,INSTALLSTATE iState,INT *piCost); + UINT WINAPI MsiGetFeatureCostW(MSIHANDLE hInstall,LPCWSTR szFeature,MSICOSTTREE iCostTree,INSTALLSTATE iState,INT *piCost); +#ifdef UNICODE +#define MsiGetFeatureCost MsiGetFeatureCostW +#else +#define MsiGetFeatureCost MsiGetFeatureCostA +#endif + +#if (_WIN32_MSI >= 150) +#ifdef UNICODE +#define MsiEnumComponentCosts MsiEnumComponentCostsW +#else +#define MsiEnumComponentCosts MsiEnumComponentCostsA +#endif + UINT WINAPI MsiEnumComponentCostsA(MSIHANDLE hInstall,LPCSTR szComponent,DWORD dwIndex,INSTALLSTATE iState,LPSTR szDriveBuf,DWORD *pcchDriveBuf,INT *piCost,INT *piTempCost); + UINT WINAPI MsiEnumComponentCostsW(MSIHANDLE hInstall,LPCWSTR szComponent,DWORD dwIndex,INSTALLSTATE iState,LPWSTR szDriveBuf,DWORD *pcchDriveBuf,INT *piCost,INT *piTempCost); +#endif + +#ifdef UNICODE +#define MsiGetFeatureValidStates MsiGetFeatureValidStatesW +#define MsiGetSourcePath MsiGetSourcePathW +#define MsiGetTargetPath MsiGetTargetPathW +#define MsiSetTargetPath MsiSetTargetPathW +#define MsiPreviewDialog MsiPreviewDialogW +#define MsiPreviewBillboard MsiPreviewBillboardW +#else +#define MsiGetFeatureValidStates MsiGetFeatureValidStatesA +#define MsiGetSourcePath MsiGetSourcePathA +#define MsiGetTargetPath MsiGetTargetPathA +#define MsiSetTargetPath MsiSetTargetPathA +#define MsiPreviewDialog MsiPreviewDialogA +#define MsiPreviewBillboard MsiPreviewBillboardA +#endif + + UINT WINAPI MsiSetInstallLevel(MSIHANDLE hInstall,int iInstallLevel); + UINT WINAPI MsiGetFeatureValidStatesA(MSIHANDLE hInstall,LPCSTR szFeature,DWORD *dwInstallStates); + UINT WINAPI MsiGetFeatureValidStatesW(MSIHANDLE hInstall,LPCWSTR szFeature,DWORD *dwInstallStates); + UINT WINAPI MsiGetSourcePathA(MSIHANDLE hInstall,LPCSTR szFolder,LPSTR szPathBuf,DWORD *pcchPathBuf); + UINT WINAPI MsiGetSourcePathW(MSIHANDLE hInstall,LPCWSTR szFolder,LPWSTR szPathBuf,DWORD *pcchPathBuf); + UINT WINAPI MsiGetTargetPathA(MSIHANDLE hInstall,LPCSTR szFolder,LPSTR szPathBuf,DWORD *pcchPathBuf); + UINT WINAPI MsiGetTargetPathW(MSIHANDLE hInstall,LPCWSTR szFolder,LPWSTR szPathBuf,DWORD *pcchPathBuf); + UINT WINAPI MsiSetTargetPathA(MSIHANDLE hInstall,LPCSTR szFolder,LPCSTR szFolderPath); + UINT WINAPI MsiSetTargetPathW(MSIHANDLE hInstall,LPCWSTR szFolder,LPCWSTR szFolderPath); + UINT WINAPI MsiVerifyDiskSpace(MSIHANDLE hInstall); + UINT WINAPI MsiEnableUIPreview(MSIHANDLE hDatabase,MSIHANDLE *phPreview); + UINT WINAPI MsiPreviewDialogA(MSIHANDLE hPreview,LPCSTR szDialogName); + UINT WINAPI MsiPreviewDialogW(MSIHANDLE hPreview,LPCWSTR szDialogName); + UINT WINAPI MsiPreviewBillboardA(MSIHANDLE hPreview,LPCSTR szControlName,LPCSTR szBillboard); + UINT WINAPI MsiPreviewBillboardW(MSIHANDLE hPreview,LPCWSTR szControlName,LPCWSTR szBillboard); + MSIHANDLE WINAPI MsiGetLastErrorRecord(); + +#ifdef __cplusplus +} +#endif +#endif
