/*************************************************************************** ** ** File: SETUPAPI.H ** Purpose: Prototypes for the Setup API. ** Notes: ** ****************************************************************************/ #ifndef SETUPAPI_H #define SETUPAPI_H #define ACME_LOGFILE 1 /* Plenty of macros to make the port to Win32 easier. * e.g. #define _fmemcmp memcmp */ #include /* Ignore the following declarators */ #define _based(seg) #define _loadds #define __loadds #define __export /* Undef CopyFile, which WIN32 defines as CopyFileA, an API */ #undef CopyFile /* * In Win32, all the Api's work directly with ANSI buffers, so we no longer * want to use conversions. */ #undef OemToAnsi #undef AnsiToOem #define OemToAnsi(o,a) lstrcpy(a,o) #define AnsiToOem(a,o) lstrcpy(o,a) #ifdef _DEBUG #define DEBUG #endif #ifdef __cplusplus extern "C" { /* Assume C declarations for C++ */ #endif /* Private toolkit messages used by ACMSETUP and custom actions */ #define STF_MESSAGE (WM_USER + 0x8000) #define STF_REINITDIALOG (STF_MESSAGE + 12) #define STF_ACTIVATEAPP (STF_MESSAGE + 17) /* * Setup Error Codes. These are the values passed to the user supplied * error function. */ typedef unsigned int SEC; /* Setup Error Code */ typedef SEC * PSEC; /* Ptr to Setup Error Code */ #define secOk ((SEC) 0) #define secErr ((SEC)1024) #define secQuit ((SEC)1025) #define secRestart ((SEC)1026) /* Windows is being restarted */ /* * Window Visibility Modes - InitSetupToolkit parameter */ typedef UINT WVM; /* Window Visibility Mode */ #define wvmNormal ((WVM)0) #define wvmMaximized ((WVM)1) #define wvmMinimized ((WVM)2) /* * CoMmand Option flags */ typedef UINT CMO; /* CoMmand Option */ #define cmoVital ((CMO)0x1) #define cmoCopy ((CMO)0x2) #define cmoUndo ((CMO)0x4) #define cmoRoot ((CMO)0x8) #define cmoDecompress ((CMO)0x10) #define cmoTimeStamp ((CMO)0x20) #define cmoReadOnly ((CMO)0x40) #define cmoBackup ((CMO)0x80) #define cmoForce ((CMO)0x100) #define cmoRemove ((CMO)0x200) #define cmoOverwrite ((CMO)0x400) #define cmoAppend ((CMO)0x800) #define cmoPrepend ((CMO)0x1000) #define cmoShared ((CMO)0x2000) #define cmoSystem ((CMO)0x4000) /* NOTE oefCabinet in COMSTF.H uses 0x8000 */ #define cmoNone ((CMO)0x0) #define cmoAll ((CMO)0xffff) /* * File Exist Modes - DoesFileExist parameter * (order is important) */ typedef UINT FEM; /* File Exist Mode */ #define femExists ((FEM)0) #define femRead ((FEM)1) #define femWrite ((FEM)2) #define femReadWrite ((FEM)3) #define femMin ((FEM)0) #define femMax ((FEM)4) /* * Size ChecK Modes - SetSizeCheckMode parameter */ typedef UINT SCKM; /* Size ChecK Mode */ #define sckmOff ((SCKM)0) #define sckmOnIgnore ((SCKM)1) #define sckmOnFatal ((SCKM)2) /* * Silent Mode - SetSilentMode parameter */ typedef UINT SM; /* Silent Mode */ #define smNormal ((SM)0x0000) #define smNoDialogs ((SM)0x0001) #define smNoCopyGauge ((SM)0x0002) #define smTotallySilent ((SM) ~(0)) /* * Current File Version - DoesSharedFileNeedCopying return type * * NOTE - order is important - see FIBSECfv(cfv) macro below. */ typedef enum _CFV /* Current File Version */ { cfvNoFile, cfvLoVer, cfvDiffLang, cfvEqVer, cfvHiVer, cfvUnknown } CFV; typedef CFV * PCFV; /* Ptr to Current File Version */ #define FIBSECfv(cfv) (cfv > cfvEqVer) typedef UINT WMD; /* Windows MoDe */ #define wmdReal 0 #define wmdStandard 1 #define wmdEnhanced 2 #define wmdNT 3 #define wmdUnknown 10 typedef UINT CPU; /* type of Central Processor Unit (or coprocessor) */ #define cpu8086 0 #define cpu80186 1 #define cpu80286 2 #define cpu80386 3 #define cpu80486 4 #define cpuR4000 5 /* for compatibility with CDrivers : Setup 2.0 */ /* Ideally this should have been ifdef'd to > 5 */ #define cpuMin 0 #define cpuMax 5 #define cpuUnknown 20 typedef VOID ( WINAPI *LPFNERROREXIT )( UINT ); #define SETUPAPI WINAPI #define SZ char * #define CSZ char * const #define SZC const char * #define CSZC const char * const extern VOID SETUPAPI AddBlankToBillboardList ( LONG lTicks ); extern VOID SETUPAPI AddDos5Help ( SZ szProgName, SZ szProgHelp, CMO cmo ); extern VOID SETUPAPI AddLineToRestartFile ( SZ szLine ); extern VOID SETUPAPI AddListItem ( SZ szSymbol, SZ szItem ); extern VOID SETUPAPI AddSectionFilesToCopyList ( SZ szSect, SZ szSrcDir, SZ szDstDir ); extern VOID SETUPAPI AddSectionKeyFileToCopyList ( SZ szSect, SZ szKey, SZ szSrcDir, SZ szDstDir ); extern VOID SETUPAPI AddSpecialFileToCopyList ( SZ szSect, SZ szKey, SZ szSrcDir, SZ szDstPath ); extern VOID SETUPAPI AddSrcFileWithAttribsToCopyList ( SZ szSect, SZ szKey, SZ szSrcPath, SZ szDstPath ); extern VOID SETUPAPI AddShareToAutoexec ( SZ szSrc, SZ szDst, BOOL fConfig, BOOL fNeedsNewLine, SZ szDefPath, UINT wMinLock, UINT wMinBuf, UINT wMaxLock, UINT wMaxBuf, CMO cmo ); extern VOID SETUPAPI AddToBillboardList ( SZ szDll, UINT idDlg, SZ szProc, LONG lTicks ); extern VOID SETUPAPI BackupFile ( SZ szFullPath, SZ szBackup ); extern UINT SETUPAPI CbGetListItem ( SZ szSym, UINT uiItem, SZ szItem, UINT cbMax ); extern UINT SETUPAPI CbGetSymbolValue ( SZ szSymbol, SZ szValue, UINT cbMax ); extern VOID SETUPAPI ClearBillboardList ( VOID ); extern VOID SETUPAPI ClearCopyList ( VOID ); extern int SETUPAPI CompareFileVersions ( SZ szVer1, SZ szVer2 ); extern VOID SETUPAPI CopyFile ( SZ szFullPathSrc, SZ szFullPathDst, CMO cmo, BOOL fAppend ); extern VOID SETUPAPI CopyFilesInCopyList ( BOOL fDeterrentEnabled ); extern VOID SETUPAPI CreateDir ( SZ szDir, CMO cmo ); extern VOID SETUPAPI CreateIniKeyValue ( CSZC cszcFile, CSZC cszcSect, CSZC cszcKey, CSZC cszcValue, CMO cmo ); extern VOID SETUPAPI CreateProgmanGroup ( SZ szGroup, SZ szPath, CMO cmo ); extern VOID SETUPAPI CreateProgmanItem ( SZ szGroup, SZ szItem, SZ szCmd, SZ szOther, CMO cmo ); extern VOID SETUPAPI CreateSysIniKeyValue ( SZ szFile, SZ szSect, SZ szKey, SZ szValue, CMO cmo ); extern VOID SETUPAPI DebugMessagesOn ( BOOL fMsgOn ); extern VOID SETUPAPI DeleteProgmanGroup ( SZ szGroup, CMO cmo ); extern VOID SETUPAPI DeleteProgmanItem ( SZ szGroup, SZ szItem, CMO cmo, BOOL fDelEmptyGroup ); extern BOOL SETUPAPI DeleteRegKeyValue32 ( HKEY hRootKey, CSZC cszcSubKey, CSZC cszcValueName ); extern int SETUPAPI DoMsgBox ( CSZC cszcText, CSZC cszcCaption, UINT uiType ); extern int SETUPAPI DoMsgBoxProc( CSZC cszcText, CSZC cszcCaption, UINT uiType ); extern BOOL SETUPAPI DoesDirExist ( SZ szDir ); extern BOOL SETUPAPI DoesFileExist ( SZ szFileName, FEM fem ); extern BOOL SETUPAPI DoesInfSectionExist ( SZ szSect ); extern BOOL SETUPAPI DoesInfSectionKeyExist ( SZ szSect, SZ szKey ); extern BOOL SETUPAPI DoesIniKeyExist ( SZ szFile, SZ szSect, SZ szKey ); extern BOOL SETUPAPI DoesIniSectionExist ( SZ szFile, SZ szSect ); extern CFV SETUPAPI DoesSharedFileNeedCopying ( VOID ); extern BOOL SETUPAPI DoesSysIniKeyValueExist ( SZ szFile, SZ szSect, SZ szKey, SZ szValue ); extern VOID SETUPAPI DumpCopyList ( SZ szFile ); extern VOID SETUPAPI EndSetupToolkit ( VOID ); extern BOOL SETUPAPI ExitExecRestart ( VOID ); extern BOOL SETUPAPI FAddLineToRestartFile ( SZ szLine ); extern BOOL SETUPAPI FAddListItem ( SZ szSym, SZ szItem ); extern BOOL SETUPAPI FCloseHelp ( VOID ); extern BOOL SETUPAPI FGetShareParamsFromFile ( CSZC cszcFile, BOOL fConfig, UINT * puiLock, UINT * puiBuf, BOOL * pfAnyShare, SZ szPath, UINT cbBuf ); extern BOOL SETUPAPI FixupWinIniMsappsSection ( VOID ); extern BOOL SETUPAPI FLanguageMismatchInf ( SZ szSection, SZ szKey, SZ szDestPath ); extern BOOL SETUPAPI FLongFileNamesSuppressed ( VOID ); extern BOOL SETUPAPI FOpenLogFile ( CSZC cszcFile, BOOL fAppend ); extern BOOL SETUPAPI FRegCloseKey (HKEY hKey); extern BOOL SETUPAPI FGetKeyInfo(HKEY hkey,LPDWORD lpcSubKeys,LPDWORD lpcValues); extern BOOL SETUPAPI FRegCreateKey32(HKEY hRootKey, SZ szRegKey,HKEY* phKey); extern BOOL SETUPAPI FWriteToLogFile ( CSZC cszc, BOOL fRequireLog ); extern BOOL SETUPAPI FCloseLogFile ( VOID ); extern BOOL SETUPAPI ForceNewDialog ( BOOL fForce ); extern BOOL SETUPAPI HandleOOM ( VOID ); extern UINT SETUPAPI HandleSharedFile ( SZ szInfSect, SZ szInfKey, CSZC cszcRegKey, CSZC cszcFullPath, HKEY hRegRootKey, SZ szRegDbKey, SZ szRegValueName, UINT uiRegDbField, SZ szWinIniSect, SZ szWinIniKey, UINT uiWinIniField, SZ szBuf, UINT cbBufMax); extern BOOL SETUPAPI FRemoveSymbol ( SZ szSymbol ); extern BOOL SETUPAPI FReplaceListItem ( SZ szSym, UINT uiItem, SZ szItem ); extern BOOL SETUPAPI FSetSymbolValue ( SZ szSymbol, SZ szValue ); extern UINT SETUPAPI FindFileInTree ( SZ szFile, SZ szDir, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI FindFileUsingFileOpen ( SZ szFile, SZ szPath, UINT cbPathMax ); extern UINT SETUPAPI FindTargetOnEnvVar ( SZ szFile, SZ szEnvVar, SZ szBuf, UINT cbBufMax ); extern VOID SETUPAPI ForceRestartOn ( VOID ); extern VOID SETUPAPI ForceRestartOff ( VOID ); extern VOID SETUPAPI FreeMemInf ( VOID * pvMemInf ); extern char SETUPAPI GetConfigLastDrive ( VOID ); extern UINT SETUPAPI GetConfigNumBuffers ( VOID ); extern UINT SETUPAPI GetConfigNumFiles ( VOID ); extern UINT SETUPAPI GetConfigRamdriveSize ( VOID ); extern UINT SETUPAPI GetConfigSmartdrvSize ( VOID ); extern LONG SETUPAPI GetCopyListCost ( SZ szExtraList, SZ szCostList, SZ szNeedList ); extern UINT SETUPAPI GetDOSMajorVersion ( VOID ); extern UINT SETUPAPI GetDOSMinorVersion ( VOID ); extern UINT SETUPAPI GetDateOfFile ( SZ szFile, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetDayFromDate ( SZ szDate ); extern UINT SETUPAPI GetEnvVariableValue ( SZ szEnvVar, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetExistingFOTFileForTTF ( SZ szFile, SZ szBuf, UINT cbBufMax ); extern LONG SETUPAPI GetFreeSpaceForDrive ( SZ szDrive ); extern UINT SETUPAPI GetHourFromDate ( SZ szDate ); extern UINT SETUPAPI GetIniKeyString ( CSZC cszcFile, CSZC cszcSect, CSZC cszcKey, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetListItem ( SZ szListSymbol, UINT uiItem, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetListLength ( SZ szSymbol ); extern VOID SETUPAPI GetLocalHardDrivesList ( SZ szSymbol ); extern WORD SETUPAPI GetLocalLanguage ( VOID ); extern UINT SETUPAPI GetMinuteFromDate ( SZ szDate ); extern UINT SETUPAPI GetMonthFromDate ( SZ szDate ); extern VOID SETUPAPI GetNetworkDrivesList ( SZ szSymbol ); extern UINT SETUPAPI GetNthFieldFromIniString ( SZ szLine, UINT uiField, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetNumWinApps ( VOID ); extern VOID SETUPAPI GetParallelPortsList ( SZ szSymbol ); extern UINT SETUPAPI GetProcessorType ( VOID ); extern UINT SETUPAPI GetRegKeyValue32 ( HKEY hRootKey, CSZC cszcSubKey, CSZC cszcValueName, PDWORD pdwType, PBYTE pbData, UINT cbData ); extern VOID SETUPAPI GetRemovableDrivesList ( SZ szSymbol ); extern int SETUPAPI GetScreenHeight ( VOID ); extern int SETUPAPI GetScreenWidth ( VOID ); extern UINT SETUPAPI GetSecondFromDate ( SZ szDate ); extern UINT SETUPAPI GetSectionKeyDate ( SZ szSect, SZ szKey, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetSectionKeyFilename ( SZ szSect, SZ szKey, SZ szBuf, UINT cbBufMax ); extern LONG SETUPAPI GetSectionKeySize ( SZ szSect, SZ szKey ); extern UINT SETUPAPI GetSectionKeyVersion ( SZ szSect, SZ szKey, SZ szBuf, UINT cbBufMax ); extern VOID SETUPAPI GetSerialPortsList ( SZ szSymbol ); extern SM SETUPAPI GetSilentMode ( VOID ); extern LONG SETUPAPI GetSizeOfFile ( SZ szFile ); extern UINT SETUPAPI GetSymbolValue ( SZ szSymbol, SZ szBuf, UINT cbBufMax ); extern LONG SETUPAPI GetTotalSpaceForDrive ( SZ szDrive ); extern UINT SETUPAPI GetTypeFaceNameFromTTF ( SZ szFile, SZ szBuf, UINT cbBufMax ); extern VOID SETUPAPI GetValidDrivesList ( SZ szSymbol ); extern LONG SETUPAPI GetVersionNthField ( SZ szVersion, UINT uiField ); extern UINT SETUPAPI GetVersionOfFile ( SZ szFile, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetWindowsDirPath ( SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetWindowsMajorVersion ( VOID ); extern UINT SETUPAPI GetWindowsMinorVersion ( VOID ); extern UINT SETUPAPI GetWindowsMode ( VOID ); extern UINT SETUPAPI GetWindowsSysDir ( SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI GetYearFromDate ( SZ szDate ); extern BOOL SETUPAPI Has87MathChip ( VOID ); extern BOOL SETUPAPI HasMonochromeDisplay ( VOID ); extern BOOL SETUPAPI HasMouseInstalled ( VOID ); extern HWND SETUPAPI HdlgShowHelp (UINT uiMsg, WPARAM wParam, LPARAM lParam); extern HINSTANCE SETUPAPI HinstFrame ( VOID ); extern HWND SETUPAPI HwndFrame ( VOID ); extern VOID SETUPAPI InitLongFileNames ( VOID ); extern UINT SETUPAPI InitSetupToolkit ( SZ szCmdLine, WVM wvmVisibilityMode, BOOL fUseRegDb, LPFNERROREXIT lpfnErrorExit ); extern BOOL SETUPAPI IsCtl3dEnabled ( VOID ); extern BOOL SETUPAPI IsDirWritable ( SZ szDir ); extern BOOL SETUPAPI IsDriveLocalHard ( SZ szDrive ); extern BOOL SETUPAPI IsDriveNetwork ( SZ szDrive ); extern BOOL SETUPAPI IsDriveRemovable ( SZ szDrive ); extern BOOL SETUPAPI IsDriveValid ( SZ szDrive ); extern BOOL SETUPAPI IsDriverInConfig ( SZ szDrv ); extern BOOL SETUPAPI IsFileInUseBySystem ( SZ szFullPath ); extern BOOL SETUPAPI IsFileWritable ( SZ szFile ); extern BOOL SETUPAPI IsValidPath ( SZC szcPath ); extern BOOL SETUPAPI IsWindowsShared ( VOID ); extern VOID SETUPAPI MakeListFromProgmanGroups ( SZ szSymbol ); extern VOID SETUPAPI MakeListFromSectionDate ( SZ szSym, SZ szSect ); extern VOID SETUPAPI MakeListFromSectionFilename ( SZ szSym, SZ szSect ); extern VOID SETUPAPI MakeListFromSectionKeys ( SZ szSymbol, SZ szSect ); extern VOID SETUPAPI MakeListFromSectionSize ( SZ szSym, SZ szSect ); extern VOID SETUPAPI MakeListFromSectionVersion ( SZ szSym, SZ szSect ); extern VOID SETUPAPI PrependToPath ( SZ szSrc, SZ szDst, SZ szDir, CMO cmo ); extern VOID * SETUPAPI PVSaveMemInf ( VOID ); extern VOID SETUPAPI ReactivateSetupScript ( VOID ); extern VOID SETUPAPI ReadInfFile ( SZ szFile ); extern VOID SETUPAPI RemoveDir ( SZ szDir, CMO cmo ); extern VOID SETUPAPI RemoveFile ( SZ szFullPathSrc, CMO cmo ); extern VOID SETUPAPI RemoveIniKey ( CSZC cszcFile, CSZC cszcSect, CSZC cszcKey, CMO cmo ); extern VOID SETUPAPI RemoveIniSection ( CSZC cszcFile, CSZC cszcSect, CMO cmo ); extern VOID SETUPAPI RemoveSectionFilesToCopyList ( SZ szSect, SZ szDstDir ); extern VOID SETUPAPI RemoveSectionKeyFileToCopyList ( SZ szSect, SZ szKey, SZ szDstDir ); extern VOID SETUPAPI RemoveSpecialFileToCopyList ( SZ szSect, SZ szKey, SZ szDstPath ); extern VOID SETUPAPI RemoveSymbol ( SZ szSym ); extern VOID SETUPAPI RenameFile ( SZ szFullPath, SZ szBackup ); extern VOID SETUPAPI ReplaceListItem ( SZ szSymbol, UINT uiItem, SZ szItem ); extern BOOL SETUPAPI RestartListEmpty ( VOID ); extern VOID SETUPAPI RestoreCursor ( HCURSOR hcursorPrev ); extern VOID SETUPAPI RestoreMemInf ( VOID * pvMemInf ); extern VOID * SETUPAPI SaveMemInf ( VOID ); extern UINT SETUPAPI SearchForLocationForSharedFile ( HKEY hRegRootKey, SZ szRegDbKey, SZ szRegValueName, UINT uiRegDbField, SZ szWinIniSect, SZ szWinIniKey, UINT uiWinIniField, SZ szDefSharedPath, SZ szVersion, SZ szLangSrc, SZ szBuf, UINT cbBufMax ); extern VOID SETUPAPI SetAbout ( SZ szAbout1, SZ szAbout2 ); extern BOOL SETUPAPI SetBeepingMode ( BOOL fMode ); extern VOID SETUPAPI SetBitmap ( SZ szDll, UINT idBitmap ); extern VOID SETUPAPI SetCopyGaugePosition ( int x, int y ); extern BOOL SETUPAPI SetCopyMode ( BOOL fMode ); extern BOOL SETUPAPI SetDecompMode ( BOOL fMode ); extern BOOL SETUPAPI SetRegKeyValue32 ( HKEY hRootKey, CSZC cszcSubKey, CSZC cszcValueName, DWORD fdwType, CONST BYTE* lpbData, DWORD cbData ); extern BOOL SETUPAPI SetRegKeyValue32Ex (HKEY hKey,HKEY hRootKey, CSZC cszcRegKey, CSZC cszcValueName, DWORD fdwType,CONST BYTE* lpbData, DWORD cbData,BOOL fClose ); extern BOOL SETUPAPI GetRegKeyValue32Ex (HKEY hKey,CSZC cszcValueName, PDWORD pdwType,PBYTE pbData, UINT cbData, BOOL fClose ); extern VOID SETUPAPI SetRestartDir ( SZ szDir ); extern SM SETUPAPI SetSilentMode ( SM smSilentMode ); extern UINT SETUPAPI SetSizeCheckMode ( SCKM sckmMode ); extern VOID SETUPAPI SetSymbolValue ( SZ szSymbol, SZ szValue ); extern BOOL SETUPAPI SetTimeValue ( UINT uiHours, UINT uiMinutes, UINT uiSeconds ); extern VOID SETUPAPI SetTitle ( SZ sz ); extern VOID SETUPAPI ShowProgmanGroup ( SZ szGroup, UINT Cmd, CMO cmo ); extern HCURSOR SETUPAPI ShowWaitCursor ( VOID ); extern VOID SETUPAPI StampResource ( SZ szFilePath, UINT uiResType, UINT uiResId, SZ szData, UINT cbData, BOOL fNotCopied ); extern VOID SETUPAPI SuppressLongFileNames ( VOID ); extern VOID SETUPAPI UIPop ( UINT cDlgs ); extern VOID SETUPAPI UIPopAll ( VOID ); extern UINT SETUPAPI UIStartDlg ( SZ szDll, UINT Dlg, SZ szDlgProc, UINT HelpDlg, SZ szHelpProc, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI UIStartExeDlg ( HINSTANCE hinstExe, UINT Dlg, FARPROC lpfnDlgProc, UINT HelpDlg, FARPROC lpfnHelpProc, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI UIStartExeDlgWinHelp ( HINSTANCE hinstExe, UINT Dlg, FARPROC lpfnDlgProc, SZ szFile, DWORD* rgdwHelpID, SZ szBuf, UINT cbBufMax ); extern UINT SETUPAPI UsGetListLength ( SZ szSym ); extern VOID SETUPAPI WriteLogDivider ( VOID ); extern UINT SETUPAPI EnsurePathExists( SZ szFullPathDst ); extern BOOL SETUPAPI FRemoveOurDir ( SZ szFullPath, BOOL fStrip ); #if defined(UI_HOOK) extern HMODULE SETUPAPI HmodUIHookDll(VOID); #endif /* UI_HOOK */ #undef SZ #undef CSZ #undef SZC #undef CSZC #ifdef __cplusplus } /* End of extern "C" { */ #endif #endif /* SETUPAPI_H */