📄 setupx.h
字号:
#define VCPM_VSTATLAST 0x07FF
enum tagVCPM_VSTAT {
VCPM_VSTATSTART = VCPM_VSTATFIRST,
VCPM_VSTATEND,
VCPM_VSTATREAD,
VCPM_VSTATWRITE,
VCPM_VSTATNEWDISK,
VCPM_VSTATCLOSESTART, // Start of VCP close
VCPM_VSTATCLOSEEND, // upon leaving VCP close
VCPM_VSTATBACKUPSTART, // Backup is beginning
VCPM_VSTATBACKUPEND, // Backup is finished
VCPM_VSTATRENAMESTART, // Rename phase start/end
VCPM_VSTATRENAMEEND,
VCPM_VSTATCOPYSTART, // Acutal copy phase
VCPM_VSTATCOPYEND,
VCPM_VSTATDELETESTART, // Delete phase
VCPM_VSTATDELETEEND,
VCPM_VSTATPATHCHECKSTART, // Check for valid paths
VCPM_VSTATPATHCHECKEND,
VCPM_VSTATCERTIFYSTART, // Certify phase
VCPM_VSTATCERTIFYEND,
VCPM_VSTATUSERABORT, // User wants to quit.
VCPM_VSTATYIELD, // Do a yield.
/* Remaining messages reserved for future use */
};
/*---------------------------------------------------------------------------*
* Destination info callbacks
*---------------------------------------------------------------------------*/
/* BUGBUG -- find a reasonable message range for this */
#define VCPM_PATHCLASS 0x08
#define VCPM_PATHFIRST 0x0800
#define VCPM_PATHLAST 0x08FF
enum tagVCPM_PATH{
VCPM_BUILDPATH = VCPM_PATHFIRST,
VCPM_UNIQUEPATH,
VCPM_CHECKPATH,
};
// #define VCPM_BUILDPATH 0x83
/*--------------------------------------------------------------------------*
* Patch processing callbacks
*---------------------------------------------------------------------------*/
/* BUGBUG -- find a reasonable message range for this */
#define VCPM_PATCHCLASS 0x09
#define VCPM_PATCHFIRST 0x0900
#define VCPM_PATCHLAST 0x09FF
// filepatchbefore -- try to patch before the copy action
// filepatchafter -- try to patch after the copy action
enum tagVCPM_PATCH{
VCPM_FILEPATCHBEFORECPY = VCPM_PATCHFIRST,
VCPM_FILEPATCHAFTERCPY,
VCPM_FILEPATCHINFOPEN,
VCPM_FILEPATCHINFCLOSE,
};
/*--------------------------------------------------------------------------*
* Certificate processing callbacks
*---------------------------------------------------------------------------*/
/* BUGBUG -- find a reasonable message range for this */
#define VCPM_CERTCLASS 0x0A
#define VCPM_CERTFIRST 0x0A00
#define VCPM_CERTLAST 0x0AFF
// filepatchbefore -- try to patch before the copy action
// filepatchafter -- try to patch after the copy action
enum tagVCPM_CERT{
VCPM_FILECERTIFY = VCPM_CERTFIRST,
VCPM_FILECERTIFYWARN,
};
/*****************************************************************************/
void WINAPI VcpAddMRUPath( LPCSTR lpszPath );
#define SZ_INSTALL_LOCATIONS "InstallLocationsMRU"
RETERR WINAPI VcpOpen(VIFPROC vifproc, LPARAM lparamMsgRef);
RETERR WINAPI VcpClose(WORD fl, LPCSTR lpszBackupDest);
RETERR WINAPI VcpFlush(WORD fl, LPCSTR lpszBackupDest);
#define VCPFL_ABANDON 0x0000 /* Abandon all pending file copies */
#define VCPFL_BACKUP 0x0001 /* Perform backup */
#define VCPFL_COPY 0x0002 /* Copy files */
#define VCPFL_BACKUPANDCOPY (VCPFL_BACKUP | VCPFL_COPY)
#define VCPFL_INSPECIFIEDORDER 0x0004 /* Do not sort before copying */
#define VCPFL_DELETE 0x0008
#define VCPFL_RENAME 0x0010
#define VCPFL_ALL (VCPFL_COPY | VCPFL_DELETE | VCPFL_RENAME )
typedef int (CALLBACK *VCPENUMPROC)(LPVIRTNODE lpvn, LPARAM lparamRef);
int WINAPI vcpEnumFiles(VCPENUMPROC vep, LPARAM lparamRef);
enum tag_VCPM_EXPLAIN{
VCPEX_SRC_DISK,
VCPEX_SRC_CABINET,
VCPEX_SRC_LOCN,
VCPEX_DST_LOCN,
VCPEX_SRC_FILE,
VCPEX_DST_FILE,
VCPEX_DST_FILE_FINAL,
VCPEX_DOS_ERROR,
VCPEX_MESSAGE,
VCPEX_DOS_SOLUTION,
VCPEX_SRC_FULL,
VCPEX_DST_FULL,
VCPEX_DST_FULL_FINAL
};
LPCSTR WINAPI VcpExplain( LPVIRTNODE lpVn, DWORD dwWhat );
/* Flag bits that can be set via VcpQueueCopy */
// Various Lparams for files
#define VNLP_SYSCRITICAL 0x0001 // This file should not be skipped
#define VNLP_SETUPCRITICAL 0x0002 // This file cannot be skipped
#define VNLP_NOVERCHECK 0x0004 // This file must not be VerResolved.
#define VNLP_FORCETEMP 0x0008 // This file must left as a temp name
#define VNLP_IFEXISTS 0x0010 // File skipped if already on machine
#define VNLP_KEEPNEWER 0x0020 // If the dest file is newer - keep it (frosting)
#define VNLP_PATCHIFEXIST 0x0040 // patch only the file exists, if file not there,
#define VNLP_NOPATCH 0x0080 // per file base turn on/off patch option (default patch on)
#define VNLP_CATALOGCERT 0x0100 // This file is a catalog certificate.
#define VNLP_NEEDCERTIFY 0x0200 // This file need to be certified.
#define VNLP_COPYIFEXISTS 0x0400 // if dest file exists, copy it.
// VcpEnumFiles Flags.
#define VEN_OP 0x00ff /* Operation field */
#define VEN_NOP 0x0000 /* Do nothing */
#define VEN_DELETE 0x0001 /* Delete current item */
#define VEN_SET 0x0002 /* Change value of current item */
#define VEN_FL 0xff00 /* Flags field */
#define VEN_STOP 0x0100 /* Stop enumeration after this item */
#define VEN_ERROR 0x8000 /* Stop enumeration after this item
* and ignore the OP field */
// BUGBUG: add the other VCP stuff necessary to use this
// BUGBUG: remove the lpsz*Dir fields, make overload the LDID with them
RETERR WINAPI VcpQueueCopy(LPCSTR lpszSrcFileName, LPCSTR lpszDstFileName,
LPCSTR lpszSrcDir, LPCSTR lpszDstDir,
LOGDISKID ldidSrc, LOGDISKID ldidDst,
LPEXPANDVTBL lpExpandVtbl, WORD fl,
LPARAM lParam);
RETERR WINAPI VcpQueueDelete( LPCSTR lpszDstFileName,
LPCSTR lpszDstDir,
LOGDISKID ldidDst,
LPARAM lParamRef );
RETERR WINAPI VcpQueueRename( LPCSTR lpszSrcFileName,
LPCSTR lpszDstFileName,
LPCSTR lpszSrcDir,
LPCSTR lpszDstDir,
LOGDISKID ldidSrc,
LOGDISKID ldidDst,
LPARAM lParam );
RETERR WINAPI vcpRegisterSourcePath( LPCSTR lpszKey, LPARAM lpExtra,
LPCSTR lpszPath );
RETERR WINAPI vcpGetSourcePath( LPCSTR lpszKey, LPARAM lpExtra,
LPSTR lpszBuf, UINT uBufSize );
#endif // NOVCP
#ifndef NOINF
/***************************************************************************/
//
// Inf Parser API declaration and definitions
//
/***************************************************************************/
enum _ERR_IP
{
ERR_IP_INVALID_FILENAME = (IP_ERROR + 1),
ERR_IP_ALLOC_ERR,
ERR_IP_INVALID_SECT_NAME,
ERR_IP_OUT_OF_HANDLES,
ERR_IP_INF_NOT_FOUND,
ERR_IP_INVALID_INFFILE,
ERR_IP_INVALID_HINF,
ERR_IP_INVALID_FIELD,
ERR_IP_SECT_NOT_FOUND,
ERR_IP_END_OF_SECTION,
ERR_IP_PROFILE_NOT_FOUND,
ERR_IP_LINE_NOT_FOUND,
ERR_IP_FILEREAD,
ERR_IP_TOOMANYINFFILES,
ERR_IP_INVALID_SAVERESTORE,
ERR_IP_INVALID_INFTYPE
};
#define INFTYPE_TEXT 0
#define INFTYPE_EXECUTABLE 1
#define MAX_SECT_NAME_LEN 64
typedef struct _INF NEAR * HINF;
typedef struct _INFLINE FAR * HINFLINE; // tolken to inf line
RETERR WINAPI IpOpen(LPCSTR pszFileSpec, HINF FAR * lphInf);
RETERR WINAPI IpOpenEx(LPCSTR pszFileSpec, HINF FAR * lphInf, UINT InfType);
RETERR WINAPI IpOpenAppend(LPCSTR pszFileSpec, HINF hInf);
RETERR WINAPI IpOpenAppendEx(LPCSTR pszFileSpec, HINF hInf, UINT InfType);
RETERR WINAPI IpSaveRestorePosition(HINF hInf, BOOL bSave);
RETERR WINAPI IpClose(HINF hInf);
RETERR WINAPI IpGetLineCount(HINF hInf, LPCSTR lpszSection, int FAR * lpCount);
RETERR WINAPI IpFindFirstLine(HINF hInf, LPCSTR lpszSect, LPCSTR lpszKey, HINFLINE FAR * lphRet);
RETERR WINAPI IpFindNextLine(HINF hInf, HINFLINE FAR * lphRet);
RETERR WINAPI IpFindNextMatchLine(HINF hInf, LPCSTR lpszKey, HINFLINE FAR * lphRet);
RETERR WINAPI IpGetProfileString(HINF hInf, LPCSTR lpszSec, LPCSTR lpszKey, LPSTR lpszBuf, int iBufSize);
RETERR WINAPI IpGetFieldCount(HINF hInf, HINFLINE hInfLine, int FAR * lpCount);
RETERR WINAPI IpGetFileName(HINF hInf, LPSTR lpszBuf, int iBufSize);
RETERR WINAPI IpGetIntField(HINF hInf, HINFLINE hInfLine, int iField, int FAR * lpVal);
RETERR WINAPI IpGetLongField(HINF hInf, HINFLINE hInfLine, int iField, long FAR * lpVal);
RETERR WINAPI IpGetStringField(HINF hInf, HINFLINE hInfLine, int iField, LPSTR lpBuf, int iBufSize, int FAR * lpuCount);
RETERR WINAPI IpGetVersionString(LPSTR lpszInfFile, LPSTR lpszValue, LPSTR lpszBuf, int cbBuf, LPSTR lpszDefaultValue);
RETERR WINAPI IpOpenValidate( LPCSTR lpszInfFile, HINF FAR * lphInf,
DWORD dwVer, DWORD dwFlags) ;
RETERR WINAPI IpGetDriverDate
(
LPSTR lpszInfName,
UINT infType,
LPSTR lpszSectionName,
LPWORD lpwDate
);
RETERR WINAPI IpGetDriverVersion
(
LPSTR lpszInfName,
UINT infType,
LPSTR lpszSectionName,
LPSTR lpszVersion,
WORD cbVersion
);
RETERR WINAPI IpGetDriverClass
(
LPSTR lpszInfName,
LPSTR lpszClassName,
WORD cbClass
);
#endif // NOINF
#ifndef NOTEXTPROC
/***************************************************************************/
//
// Text processing API declaration and definitions
//
/***************************************************************************/
/* Relative/absolute positioning */
#define SEC_SET 1 // Absolute positioning (relative to the start)
#define SEC_END 2 // Realtive to the end
#define SEC_CUR 3 // Relative to the current line.
#define SEC_OPENALWAYS 1 // Always open a section, no error if it does not exist
#define SEC_OPENEXISTING 2 // Open an existing section, an error given if it does not exist.
#define SEC_OPENNEWALWAYS 3 // Open a section (present or not) and discard its contents.
#define SEC_OPENNEWEXISTING 4 // Open an existing section (discarding its contents). Error if not existing
// Flags for TP_OpenFile().
//
// Use autoexec/config.sys key delimiters
//
#define TP_WS_KEEP 1
// If TP code running under SETUP, the foll. flag specifies whether
// to cache this file or not! Use this, if you want to read a whole
// file in when doing the TpOpenSection()!
//
#define TP_WS_DONTCACHE 2
// The following are simple errors
enum {
ERR_TP_NOT_FOUND = (TP_ERROR + 1), // line, section, file etc.
// not necessarily terminal
ERR_TP_NO_MEM, // couldn't perform request - generally terminal
ERR_TP_READ, // could not read the disc - terminal
ERR_TP_WRITE, // could not write the data - terminal.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -