#pragma warning(disable:4001) //////////////////////////////////////////////////////////////////////////////// // File: ACMHOOK.H // Purpose: Types, data structures, and function definitions for // hooking out the standard acme ui // Notes: I - input // O - output //////////////////////////////////////////////////////////////////////////////// #if defined(__cplusplus) extern "C" { #endif //__cplusplus #define cbMaxSz 256 // maximum string buffer size #define DECL __cdecl // calling convention of hook procedures typedef enum { // Dialog Hook Return Code shrcOk, // proceed with setup shrcCancel, // cancel/quit button was pushed shrcIgnore, // ignore button was pushed shrcOption, // "change option" button was pushed shrcDirectory, // "change directory" button was pushed shrcRefresh, // activation change - refresh data shrcFail, // error occurred - cancel setup shrcNone, // don't remove any shared components shrcKeep, // don't remove this shared component shrcRemoveAll, // remove all app/shared components shrcRemove, // remove this shared component shrcReinstall, // re install components shrcFrameRegisterFail, // error registering class shrcFrameCreateFail // error creating frame window } SHRC; typedef struct { // Hook Data LONG cb; // structure size (I) CHAR rgchHelpFile[cbMaxSz]; // help file (I) DWORD dwHelpContext; // help context (I) } HD, *PHD; typedef struct { // Welcome Dialog Hook Data HD hd; // common hook data BOOL fMaint; // maintenace mode setup (I) } WDHD, *PWDHD; typedef SHRC (DECL *LPFNSHRCWDH)(PWDHD); // Welcome Dialog Hook typedef struct { // Modules in Use Dialog Hook Data HD hd; // common hook data CHAR rgchModuleList[cbMaxSz]; // names of modules in use (I) } MUDHD, *PMUDHD; typedef SHRC (DECL *LPFNSHRCMUDH)(PMUDHD); // Modules in Use Dialog Hook typedef enum { // Copy Disincentive Dialog Hook Mode cddhmNameOrg, // allow the name and org to be modified cddhmName, // allow only the name to be modified cddhmOrg // allow only the org to be modified } CDDHM; typedef struct { // Copy Disincentive Dialog Hook Data HD hd; // common hook data CDDHM cddhm; // CD mode (I) CHAR rgchName[cbMaxSz]; // name string (I/O) CHAR rgchOrg[cbMaxSz]; // organization string (I/O) } CDDHD, *PCDDHD; typedef SHRC (DECL *LPFNSHRCCDDH)(PCDDHD); // Copy Disincentive Dialog Hook typedef enum { // Serial Number Dialog Hook Mode sndhmNormal, // the normal/default functionality sndhmCDKey, // the cdkey functionality sndhmOEM // the OEM functionality } SNDHM; typedef struct { // Serial Number Dialog Hook Data HD hd; // common hook data CHAR rgchSerNum[cbMaxSz]; // serial number string (I/O) SNDHM sndhm; // serial number dialog hook mode (I) } SNDHD, *PSNDHD; typedef SHRC (DECL *LPFNSHRCSNDH)(PSNDHD); // Serial Number Dialog Hook typedef enum { // Already Used Dialog Hook Mode audhmBad, // setup.ini corrupted audhmOrg, // organization used audhmName, // name used audhmBoth // both name and org used } AUDHM; typedef struct { // Already Used Dialog Hook Data HD hd; // common hook data AUDHM audhm; // mode (I) CHAR rgchName[cbMaxSz]; // name string (I) CHAR rgchOrg[cbMaxSz]; // organization string (I) } AUDHD, *PAUDHD; typedef SHRC (DECL *LPFNSHRCAUDH)(PAUDHD); // Already Used Dialog Hook typedef struct { // Disk Locked Dialog Hook Data HD hd; // common hook data CHAR rgchDir[cbMaxSz]; // directory string (I) } DLDHD, *PDLDHD; typedef SHRC (DECL *LPFNSHRCDLDH)(PDLDHD); // Disk Locked Dialog Hook typedef enum { // Copy Disincentive Dialog Hook Mode cpdhmRemind, // piracy reminder cpdhmWarn, // piracy warning cpdhmWarn2 // nasty ;-) piracy warning } CPDHM; typedef struct { // CD Piracy Dialog Hook Data HD hd; // common hook data CPDHM cpdhm; // mode (I) } CPDHD, *PCPDHD; typedef SHRC (DECL *LPFNSHRCCPDH)(PCPDHD); // CD Piracy Dialog Hook typedef enum { // DiRectory Dialog Hook Mode drdhmNotExistDir, // directory does not exist drdhmAppExistsOld, // older version in directory drdhmAppExistsNew // new version in directory } DRDHM; typedef struct { // DiRectory Dialog Hook Data HD hd; // common hook data DRDHM drdhm; // mode (I) CHAR rgchComponent[cbMaxSz]; // component name string (I) CHAR rgchPath[cbMaxSz]; // path (I) } DRDHD, *PDRDHD; typedef SHRC (DECL *LPFNSHRCDRDH)(PDRDHD); // DiRectory Dialog Hook typedef struct { // Get Path Dialog Hook Data HD hd; // common hook data CHAR rgchFilename[cbMaxSz]; // filename string - may be "" (I) CHAR rgchVersion[cbMaxSz]; // version string - may be "" (I) CHAR rgchSrcDir[cbMaxSz]; // source distory string - may be "" (I) LONG cSubNodeMax; // count of maximumum subnodes (I) BOOL fAllowExtendedChars; // if extended characters allowed (I) CHAR rgchComponent[cbMaxSz]; // component name string - may be "" (I) BOOL fNeedNewEmptyDir; // the directory should be empty (I) CHAR rgchPath[cbMaxSz]; // path to edit (I/O) } GPDHD, *PGPDHD; typedef SHRC (DECL *LPFNSHRCGPDH)(PGPDHD); // Get Path Dialog Hook typedef struct { // App Main BuTtoN CHAR rgchLabel[cbMaxSz]; // button label string (I) CHAR rgchText[cbMaxSz]; // description string (I) HBITMAP hbm; // bitmap for button (I) } AMBTN, *PAMBTN; typedef struct { // App Main Dialog Hook Data HD hd; // common hook data LONG iambtnSelected; // which button selected (I/O) LONG cambtn; // number of buttons (I) CHAR rgchPath[cbMaxSz]; // directory path (I) HGLOBAL hrgambtn; // button data (I) } AMDHD, *PAMDHD; typedef SHRC (DECL *LPFNSHRCAMDH)(PAMDHD); // App Main Dialog Hook typedef struct { // ProgMan Dialog Hook Data HD hd; // common hook data CHAR rgchGroup[cbMaxSz]; // suggested group name (I/O) LONG crgchExisting; // number of existing groups (I) HGLOBAL hrgrgchExisting; // existing group names (I) // [crgchExisting][cbMaxSz] } PMDHD, *PPMDHD; typedef SHRC (DECL *LPFNSHRCPMDH)(PPMDHD); // ProgMan Dialog Hook Data typedef struct { // ReBoot Dialog Hook Data HD hd; // common hook data } RBDHD, *PRBDHD; typedef SHRC (DECL *LPFNSHRCRBDH)(PRBDHD); // ReBoot Dialog Hook typedef struct { // Reboot Failed Dialog Hook Data HD hd; // common hook data } RFDHD, *PRFDHD; typedef SHRC (DECL *LPFNSHRCRFDH)(PRFDHD); // Reboot Failed Dialog Hook typedef enum { // eXiT Dialog Hook Mode xtdhmOk, // installation was successful xtdhmError, // installation failed xtdhmQuit // installation was cancelled } XTDHM; typedef struct { // eXiT Dialog Hook Data HD hd; // common hook data XTDHM xtdhm; // mode (I) } XTDHD, *PXTDHD; typedef SHRC (DECL *LPFNSHRCXTDH)(PXTDHD); // eXiT Dialog Hook typedef struct { // Disk Space iTeMs CHAR rgchDesc[cbMaxSz]; // description string (I) CHAR rgchSize[cbMaxSz]; // size (I) } DSTM, *PDSTM; typedef struct { // Disk Space iTeMs LONG cbReq; // bytes required on current drive (I) LONG cbNeed; // bytes needed on current drive (I) } DSDRV, *PDSDRV; typedef struct { // Disk Space Dialog Hook Data HD hd; // common hook data BOOL fAdmin; // whether in admin mode or not (I) LONG idsdrvCur; // the selected drive (I/O) LONG cdstm; // number of items (I) HGLOBAL hrgdstm; // the items LONG cdsdrv; // number of drives (I) HGLOBAL hrgdsdrv; // the drives } DSDHD, *PDSDHD; typedef SHRC (DECL *LPFNSHRCDSDH)(PDSDHD); // Disk Space Dialog Hook typedef struct { // OPtions Dialog iTeMs CHAR rgchTitle[cbMaxSz]; // title string (for listbox) (I) CHAR rgchDesc[cbMaxSz]; // description string (I) CHAR rgchDir[cbMaxSz]; // the directory string (I) LONG cb; // number of bytes item requires (I) BOOL fChecked; // if the item is chosen (I/O) BOOL fChangeOption; // enable the "change option" button BOOL fChangeDirectory; // enable the "change directory" button BOOL fVital; // the item is vital } OPTM, *POPTM; typedef struct { // OPtions Dialog Hook Data HD hd; // common hook data BOOL fMaint; // maintenace mode setup (I) BOOL fTop; // if top level dialog (I) LONG coptm; // number of option items (I) LONG ioptmCur; // currently selected item (I/O) CHAR rgchDrvCur[cbMaxSz]; // drive of currently selected item (I) LONG cbDrvCurReq; // bytes needed on current drive (I) LONG cbDrvCurAvail; // bytes available on current drive (I) LONG cToAdd; // number of items to add (I) LONG cToRemove; // number of items to remove (I) HGLOBAL hrgoptm; // the option items (I) } OPDHD, *POPDHD; typedef SHRC (DECL *LPFNSHRCOPDH)(POPDHD); // OPtions Dialog Hook typedef struct { // Admin Warn Hook Data HD hd; // common hook data } AWDHD, *PAWDHD; typedef SHRC (DECL *LPFNSHRCAWDH)(PAWDHD); // Admin Warn Hook typedef struct { // MsApps directory Hook Data HD hd; // common hook data CHAR rgchPath[cbMaxSz]; // directory path (I) } MADHD, *PMADHD; typedef SHRC (DECL *LPFNSHRCMADH)(PMADHD); // MsApps directory Hook typedef enum { // Confirm Server Dialog Hook Mode' csdhmName, // use server name csdhmLetter // use drive letter } CSDHM; typedef struct { // Confirm Server Dialog Hook Data HD hd; // common hook data CHAR rgchName[cbMaxSz]; // component name (I) CHAR rgchPath[cbMaxSz]; // directory path (I) CHAR rgchNetPath[cbMaxSz]; // network path (I/O) CHAR rgchServer[cbMaxSz]; // network server (I/O) CHAR chDrive; // drive letter (I/O) CSDHM csdhm; // use name or drive letter (O) } CSDHD, *PCSDHD; typedef SHRC (DECL *LPFNSHRCCSDH)(PCSDHD); // Confirm Server Dialog Hook typedef enum { // Shared Files Dialog Hook Mode sfdhmServer, // put shared files on server; sfdhmLocal, // put shared files on local hard drive sfdhmChoice // user can choose in network mode } SFDHM; typedef struct { // Shared Files Dialog Hook Data HD hd; // common hook data BOOL fAdmin; // whether in admin mode or not (I) SFDHM sfdhm; // shared files mode (O) } SFDHD, *PSFDHD; typedef SHRC (DECL *LPFNSHRCSFDH)(PSFDHD); // Shared Files Dialog Hook typedef struct { // Remove Shared Dialog Hook Data HD hd; // common hook data CHAR rgchComponent[cbMaxSz]; // component name (I) } RSDHD, *PRSDHD; typedef SHRC (DECL *LPFNSHRCRSDH)(PRSDHD); // Remove Shared Dialog Hook typedef struct { // Ask Quit Dialog Hook Data HD hd; // common hook data } AQDHD, *PAQDHD; typedef SHRC (DECL *LPFNSHRCAQDH)(PAQDHD); // Ask Quit Dialog Hook typedef struct { // Invalid Net Path Dialog Hook Data HD hd; // common hook data } INDHD, *PINDHD; typedef SHRC (DECL *LPFNSHRCINDH)(PINDHD); // Invalid Net Path Dialog Hook typedef struct { // No Connection Dialog Hook Data HD hd; // common hook data } NCDHD, *PNCDHD; typedef SHRC (DECL *LPFNSHRCNCDH)(PNCDHD); // No Connection Dialog Hook typedef enum { // Start Modeless Dialog Hook Mode smdhmSearching, // searching for components smdhmCheckingDisk, // checking disk space smdhmModifyingSys // modifying system } SMDHM; typedef struct { // Start Modeless Dialog Hook HD hd; // common hook data SMDHM smdhm; // modeless dialog type (I) HWND hwndParent; // parent for modeless dialog (I) DWORD dwHook; // value for End Modeless (O) } SMDHD, *PSMDHD; typedef SHRC (DECL *LPFNSHRCSMDH)(PSMDHD); // Start Modeless Dialog Hook typedef struct { // End Modeless Dialog Hook HD hd; // common hook data DWORD dwHook; // value from Start Modeless (I) } EMDHD, *PEMDHD; typedef SHRC (DECL *LPFNSHRCEMDH)(PEMDHD); // End Modeless Dialog Hook typedef struct { // Create Frame Hook Data LONG cbCFHD; // structure size (I) WNDCLASS wc; // default RegisterClass data (I) CREATESTRUCT cs; // default CreateWindow data (I) HWND hwndFrame; // new frame window handle (O) int nCmdShow; // default parm for ShowWindow (I) } CFHD, *PCFHD; typedef SHRC (DECL *LPFNSHRCCFH)(PCFHD); // Create Frame Hook typedef struct { // Message Box Hook Data LONG cbMBHD; // structure size (I) HWND hwndOwner; // handle of owner window (I) LPCSTR lpszText; // text in message box (I) LPCSTR lpszTitle; // title of message box (I) UINT uStyle; // style of message box (I) int idRet; // return value of message box (O) } MBHD, *PMBHD; typedef SHRC (DECL *LPFNSHRCMBH)(PMBHD); // Message Box Hook typedef struct { // Gauge Init Hook Data LONG cbGIHD; // structure size (I) } GIHD, *PGIHD; typedef SHRC (DECL *LPFNSHRCGIH)(PGIHD); // Gauge Init Hook typedef struct { // Gauge Open Hook Data LONG cbGOHD; // structure size (I) HWND hwndParent; // handle of parent (frame) window (I) BOOL *pfAbort; // flag to set when cancel pushed } GOHD, *PGOHD; typedef SHRC (DECL *LPFNSHRCGOH)(PGOHD); // Gauge Open Hook typedef struct { // Gauge Close Hook Data LONG cbGCHD; // structure size (I) } GCHD, *PGCHD; typedef SHRC (DECL *LPFNSHRCGCH)(PGCHD); // Gauge Close Hook typedef struct { // Gauge Title Hook Data LONG cbGTHD; // structure size (I) CHAR rgchTitle[cbMaxSz]; // new title string (I) } GTHD, *PGTHD; typedef SHRC (DECL *LPFNSHRCGTH)(PGTHD); // Gauge Title Hook typedef struct { // Gauge teXt Hook Data LONG cbGXHD; // structure size (I) CHAR rgchSrc[cbMaxSz]; // new source string (I) CHAR rgchDst[cbMaxSz]; // new destination string (I) } GXHD, *PGXHD; typedef SHRC (DECL *LPFNSHRCGXH)(PGXHD); // Gauge teXt Hook typedef struct { // Gauge Range Hook Data LONG cbGRHD; // structure size (I) LONG iLim; // new range limit (I) } GRHD, *PGRHD; typedef SHRC (DECL *LPFNSHRCGRH)(PGRHD); // Gauge Range Hook typedef struct { // Gauge Position Hook Data LONG cbGPHD; // structure size (I) LONG iCur; // new current position (I) } GPHD, *PGPHD; typedef SHRC (DECL *LPFNSHRCGPH)(PGPHD); // Gauge Position Hook typedef struct { // Gauge Delta Hook Data LONG cbGDHD; // structure size (I) LONG dCur; // delta to current position (I) } GDHD, *PGDHD; typedef SHRC (DECL *LPFNSHRCGDH)(PGDHD); // Gauge Delta Hook typedef struct { // Gauge Yield Hook Data LONG cbGYHD; // structure size (I) } GYHD, *PGYHD; typedef SHRC (DECL *LPFNSHRCGYH)(PGYHD); // Gauge Yield Hook typedef struct { // Filecopy Warning Hook Data LONG cbFWHD; // structure size (I) CHAR rgchPath[cbMaxSz]; // path to file being copied } FWHD, *PFWHD; typedef SHRC (DECL *LPFNSHRCFWH)(PFWHD); // Filecopy Warning Hook #if defined(__cplusplus) } #endif //__cplusplus #pragma warning(default:4001)