Home | History | Annotate | Download | only in include
      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 _ADVPUB_H_
      7 #define _ADVPUB_H_
      8 
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13 #ifndef S_ASYNCHRONOUS
     14 #define S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x401e8)
     15 #endif
     16 
     17 #define achRUNSETUPCOMMANDFUNCTION "RunSetupCommand"
     18 
     19   HRESULT WINAPI RunSetupCommand(HWND hWnd,LPCSTR szCmdName,LPCSTR szInfSection,LPCSTR szDir,LPCSTR lpszTitle,HANDLE *phEXE,DWORD dwFlags,LPVOID pvReserved);
     20 
     21   typedef HRESULT (WINAPI *RUNSETUPCOMMAND)(HWND hWnd,LPCSTR szCmdName,LPCSTR szInfSection,LPCSTR szDir,LPCSTR szTitle,HANDLE *phEXE,DWORD dwFlags,LPVOID pvReserved);
     22 
     23 #define RSC_FLAG_INF 1
     24 #define RSC_FLAG_SKIPDISKSPACECHECK 2
     25 #define RSC_FLAG_QUIET 4
     26 #define RSC_FLAG_NGCONV 8
     27 #define RSC_FLAG_UPDHLPDLLS 16
     28 #define RSC_FLAG_DELAYREGISTEROCX 512
     29 #define RSC_FLAG_SETUPAPI 1024
     30 
     31 #define achNEEDREBOOTINITFUNCTION "NeedRebootInit"
     32 
     33   DWORD WINAPI NeedRebootInit(VOID);
     34 
     35   typedef DWORD (WINAPI *NEEDREBOOTINIT)(VOID);
     36 
     37 #define achNEEDREBOOTFUNCTION "NeedReboot"
     38 
     39   WINBOOL WINAPI NeedReboot(DWORD dwRebootCheck);
     40 
     41   typedef WINBOOL (WINAPI *NEEDREBOOT)(DWORD dwRebootCheck);
     42 
     43 #define achPRECHECKREBOOT "RebootCheckOnInstall"
     44 
     45   HRESULT WINAPI RebootCheckOnInstall(HWND hwnd,PCSTR pszINF,PCSTR pszSec,DWORD dwReserved);
     46 
     47   typedef HRESULT (WINAPI *REBOOTCHECKONINSTALL)(HWND,PCSTR,PCSTR,DWORD);
     48 
     49 #define c_szTRANSLATEINFSTRING "TranslateInfString"
     50 
     51   HRESULT WINAPI TranslateInfString(PCSTR pszInfFilename,PCSTR pszInstallSection,PCSTR pszTranslateSection,PCSTR pszTranslateKey,PSTR pszBuffer,DWORD dwBufferSize,PDWORD pdwRequiredSize,PVOID pvReserved);
     52 
     53   typedef HRESULT (WINAPI *TRANSLATEINFSTRING)(PCSTR pszInfFilename,PCSTR pszInstallSection,PCSTR pszTranslateSection,PCSTR pszTranslateKey,PSTR pszBuffer,DWORD dwBufferSize,PDWORD pdwRequiredSize,PVOID pvReserved);
     54 
     55 #define achREGINSTALL "RegInstall"
     56 
     57   typedef struct _StrEntry {
     58     LPSTR pszName;
     59     LPSTR pszValue;
     60   } STRENTRY,*LPSTRENTRY;
     61 
     62   typedef const STRENTRY CSTRENTRY;
     63   typedef CSTRENTRY *LPCSTRENTRY;
     64 
     65   typedef struct _StrTable {
     66     DWORD cEntries;
     67     LPSTRENTRY pse;
     68   } STRTABLE,*LPSTRTABLE;
     69 
     70   typedef const STRTABLE CSTRTABLE;
     71   typedef CSTRTABLE *LPCSTRTABLE;
     72 
     73   HRESULT WINAPI RegInstall(HMODULE hm,LPCSTR pszSection,LPCSTRTABLE pstTable);
     74 
     75   typedef HRESULT (WINAPI *REGINSTALL)(HMODULE hm,LPCSTR pszSection,LPCSTRTABLE pstTable);
     76 
     77 #define achLAUNCHINFSECTIONEX "LaunchINFSectionEx"
     78 
     79   HRESULT WINAPI LaunchINFSectionEx(HWND hwnd,HINSTANCE hInstance,PSTR pszParms,INT nShow);
     80 
     81   typedef HRESULT (WINAPI *LAUNCHINFSECTIONEX)(HWND hwnd,HINSTANCE hInst,PSTR pszParams,INT nShow);
     82 
     83 #define ALINF_QUIET 4
     84 #define ALINF_NGCONV 8
     85 #define ALINF_UPDHLPDLLS 16
     86 #define ALINF_BKINSTALL 32
     87 #define ALINF_ROLLBACK 64
     88 #define ALINF_CHECKBKDATA 128
     89 #define ALINF_ROLLBKDOALL 256
     90 #define ALINF_DELAYREGISTEROCX 512
     91 
     92 #define achEXECUTECAB "ExecuteCab"
     93 
     94   typedef struct _CabInfo {
     95     PSTR pszCab;
     96     PSTR pszInf;
     97     PSTR pszSection;
     98     char szSrcPath[MAX_PATH];
     99     DWORD dwFlags;
    100   } CABINFO,*PCABINFO;
    101 
    102   HRESULT WINAPI ExecuteCab(HWND hwnd,PCABINFO pCab,LPVOID pReserved);
    103 
    104   typedef HRESULT (WINAPI *EXECUTECAB)(HWND hwnd,PCABINFO pCab,LPVOID pReserved);
    105 
    106 #define AIF_WARNIFSKIP 0x00000001
    107 #define AIF_NOSKIP 0x00000002
    108 #define AIF_NOVERSIONCHECK 0x00000004
    109 #define AIF_FORCE_FILE_IN_USE 0x00000008
    110 #define AIF_NOOVERWRITE 0x00000010
    111 
    112 #define AIF_NO_VERSION_DIALOG 0x00000020
    113 #define AIF_REPLACEONLY 0x00000400
    114 
    115 #define AIF_NOLANGUAGECHECK 0x10000000
    116 
    117 #define AIF_QUIET 0x20000000
    118 
    119 #define achADVINSTALLFILE "AdvInstallFile"
    120 
    121   HRESULT WINAPI AdvInstallFile(HWND hwnd,LPCSTR lpszSourceDir,LPCSTR lpszSourceFile,LPCSTR lpszDestDir,LPCSTR lpszDestFile,DWORD dwFlags,DWORD dwReserved);
    122 
    123   typedef HRESULT (WINAPI *ADVINSTALLFILE)(HWND hwnd,LPCSTR lpszSourceDir,LPCSTR lpszSourceFile,LPCSTR lpszDestDir,LPCSTR lpszDestFile,DWORD dwFlags,DWORD dwReserved);
    124 
    125 #define IE4_RESTORE 0x00000001
    126 #define IE4_BACKNEW 0x00000002
    127 #define IE4_NODELETENEW 0x00000004
    128 #define IE4_NOMESSAGES 0x00000008
    129 #define IE4_NOPROGRESS 0x00000010
    130 #define IE4_NOENUMKEY 0x00000020
    131 #define IE4_NO_CRC_MAPPING 0x00000040
    132 
    133 #define IE4_REGSECTION 0x00000080
    134 #define IE4_FRDOALL 0x00000100
    135 #define IE4_UPDREFCNT 0x00000200
    136 #define IE4_USEREFCNT 0x00000400
    137 #define IE4_EXTRAINCREFCNT 0x00000800
    138 
    139 #define IE4_REMOVREGBKDATA 0x00001000
    140 
    141   HRESULT WINAPI RegSaveRestore(HWND hWnd,PCSTR pszTitleString,HKEY hkBckupKey,PCSTR pcszRootKey,PCSTR pcszSubKey,PCSTR pcszValueName,DWORD dwFlags);
    142 
    143   typedef HRESULT (WINAPI *REGSAVERESTORE)(HWND hWnd,PCSTR pszTitleString,HKEY hkBckupKey,PCSTR pcszRootKey,PCSTR pcszSubKey,PCSTR pcszValueName,DWORD dwFlags);
    144 
    145   HRESULT WINAPI RegSaveRestoreOnINF(HWND hWnd,PCSTR pszTitle,PCSTR pszINF,PCSTR pszSection,HKEY hHKLMBackKey,HKEY hHKCUBackKey,DWORD dwFlags);
    146 
    147   typedef HRESULT (WINAPI *REGSAVERESTOREONINF)(HWND hWnd,PCSTR pszTitle,PCSTR pszINF,PCSTR pszSection,HKEY hHKLMBackKey,HKEY hHKCUBackKey,DWORD dwFlags);
    148 
    149 #define ARSR_RESTORE IE4_RESTORE
    150 #define ARSR_NOMESSAGES IE4_NOMESSAGES
    151 #define ARSR_REGSECTION IE4_REGSECTION
    152 #define ARSR_REMOVREGBKDATA IE4_REMOVREGBKDATA
    153 
    154 #define REG_SAVE_LOG_KEY "RegSaveLogFile"
    155 #define REG_RESTORE_LOG_KEY "RegRestoreLogFile"
    156 
    157   HRESULT WINAPI RegRestoreAll(HWND hWnd,PSTR pszTitleString,HKEY hkBckupKey);
    158   typedef HRESULT (WINAPI *REGRESTOREALL)(HWND hWnd,PSTR pszTitleString,HKEY hkBckupKey);
    159 
    160   HRESULT WINAPI FileSaveRestore(HWND hDlg,LPSTR lpFileList,LPSTR lpDir,LPSTR lpBaseName,DWORD dwFlags);
    161 
    162   typedef HRESULT (WINAPI *FILESAVERESTORE)(HWND hDlg,LPSTR lpFileList,LPSTR lpDir,LPSTR lpBaseName,DWORD dwFlags);
    163 
    164   HRESULT WINAPI FileSaveRestoreOnINF(HWND hWnd,PCSTR pszTitle,PCSTR pszINF,PCSTR pszSection,PCSTR pszBackupDir,PCSTR pszBaseBackupFile,DWORD dwFlags);
    165 
    166   typedef HRESULT (WINAPI *FILESAVERESTOREONINF)(HWND hDlg,PCSTR pszTitle,PCSTR pszINF,PCSTR pszSection,PCSTR pszBackupDir,PCSTR pszBaseBackFile,DWORD dwFlags);
    167 
    168 #define AFSR_RESTORE IE4_RESTORE
    169 #define AFSR_BACKNEW IE4_BACKNEW
    170 #define AFSR_NODELETENEW IE4_NODELETENEW
    171 #define AFSR_NOMESSAGES IE4_NOMESSAGES
    172 #define AFSR_NOPROGRESS IE4_NOPROGRESS
    173 #define AFSR_UPDREFCNT IE4_UPDREFCNT
    174 #define AFSR_USEREFCNT IE4_USEREFCNT
    175 #define AFSR_EXTRAINCREFCNT IE4_EXTRAINCREFCNT
    176 
    177   HRESULT WINAPI AddDelBackupEntry(LPCSTR lpcszFileList,LPCSTR lpcszBackupDir,LPCSTR lpcszBaseName,DWORD dwFlags);
    178 
    179   typedef HRESULT (WINAPI *ADDDELBACKUPENTRY)(LPCSTR lpcszFileList,LPCSTR lpcszBackupDir,LPCSTR lpcszBaseName,DWORD dwFlags);
    180 
    181 #define AADBE_ADD_ENTRY 0x01
    182 #define AADBE_DEL_ENTRY 0x02
    183 
    184   HRESULT WINAPI FileSaveMarkNotExist(LPSTR lpFileList,LPSTR lpDir,LPSTR lpBaseName);
    185 
    186   typedef HRESULT (WINAPI *FILESAVEMARKNOTEXIST)(LPSTR lpFileList,LPSTR lpDir,LPSTR lpBaseName);
    187 
    188   HRESULT WINAPI GetVersionFromFile(LPSTR lpszFilename,LPDWORD pdwMSVer,LPDWORD pdwLSVer,WINBOOL bVersion);
    189 
    190   typedef HRESULT (WINAPI *GETVERSIONFROMFILE)(LPSTR lpszFilename,LPDWORD pdwMSVer,LPDWORD pdwLSVer,WINBOOL bVersion);
    191 
    192   HRESULT WINAPI GetVersionFromFileEx(LPSTR lpszFilename,LPDWORD pdwMSVer,LPDWORD pdwLSVer,WINBOOL bVersion);
    193 
    194   typedef HRESULT (WINAPI *GETVERSIONFROMFILE)(LPSTR lpszFilename,LPDWORD pdwMSVer,LPDWORD pdwLSVer,WINBOOL bVersion);
    195 
    196 #define achISNTADMIN "IsNTAdmin"
    197 
    198   WINBOOL WINAPI IsNTAdmin(DWORD dwReserved,DWORD *lpdwReserved);
    199 
    200   typedef WINBOOL (WINAPI *ISNTADMIN)(DWORD,DWORD *);
    201 
    202 #define ADN_DEL_IF_EMPTY 0x00000001
    203 #define ADN_DONT_DEL_SUBDIRS 0x00000002
    204 #define ADN_DONT_DEL_DIR 0x00000004
    205 #define ADN_DEL_UNC_PATHS 0x00000008
    206 
    207 #define achDELNODE "DelNode"
    208 
    209   HRESULT WINAPI DelNode(LPCSTR pszFileOrDirName,DWORD dwFlags);
    210 
    211   typedef HRESULT (WINAPI *DELNODE)(LPCSTR pszFileOrDirName,DWORD dwFlags);
    212 
    213 #define achDELNODERUNDLL32 "DelNodeRunDLL32"
    214 
    215   HRESULT WINAPI DelNodeRunDLL32(HWND hwnd,HINSTANCE hInstance,PSTR pszParms,INT nShow);
    216 
    217   typedef HRESULT (WINAPI *DELNODERUNDLL32)(HWND hwnd,HINSTANCE hInst,PSTR pszParams,INT nShow);
    218   typedef PVOID HINF;
    219 
    220   HRESULT WINAPI OpenINFEngine(PCSTR pszInfFilename,PCSTR pszInstallSection,DWORD dwFlags,HINF *phInf,PVOID pvReserved);
    221   HRESULT WINAPI TranslateInfStringEx(HINF hInf,PCSTR pszInfFilename,PCSTR pszTranslateSection,PCSTR pszTranslateKey,PSTR pszBuffer,DWORD dwBufferSize,PDWORD pdwRequiredSize,PVOID pvReserved);
    222   HRESULT WINAPI CloseINFEngine(HINF hInf);
    223   HRESULT WINAPI ExtractFiles(LPCSTR pszCabName,LPCSTR pszExpandDir,DWORD dwFlags,LPCSTR pszFileList,LPVOID lpReserved,DWORD dwReserved);
    224   INT WINAPI LaunchINFSection(HWND,HINSTANCE,PSTR,INT);
    225 
    226 #define LIS_QUIET 0x0001
    227 #define LIS_NOGRPCONV 0x0002
    228 
    229 #define RUNCMDS_QUIET 0x00000001
    230 #define RUNCMDS_NOWAIT 0x00000002
    231 #define RUNCMDS_DELAYPOSTCMD 0x00000004
    232 
    233 #define awchMSIE4GUID L"{89820200-ECBD-11cf-8B85-00AA005B4383}"
    234 #define achUserInstStubWrapper "UserInstStubWrapper"
    235 #define achUserUnInstStubWrapper "UserUnInstStubWrapper"
    236 
    237   typedef HRESULT (WINAPI *USERINSTSTUBWRAPPER)(HWND hwnd,HINSTANCE hInst,PSTR pszParams,INT nShow);
    238   typedef HRESULT (WINAPI *USERUNINSTSTUBWRAPPER)(HWND hwnd,HINSTANCE hInst,PSTR pszParams,INT nShow);
    239 
    240   HRESULT WINAPI UserInstStubWrapper(HWND hwnd,HINSTANCE hInstance,PSTR pszParms,INT nShow);
    241   HRESULT WINAPI UserUnInstStubWrapper(HWND hwnd,HINSTANCE hInstance,PSTR pszParms,INT nShow);
    242 
    243   typedef struct _PERUSERSECTION {
    244     char szGUID[39+20];
    245     char szDispName[128];
    246     char szLocale[10];
    247     char szStub[MAX_PATH*4];
    248     char szVersion[32];
    249     char szCompID[128];
    250     DWORD dwIsInstalled;
    251     WINBOOL bRollback;
    252   } PERUSERSECTION,*PPERUSERSECTION;
    253 
    254   HRESULT WINAPI SetPerUserSecValues(PPERUSERSECTION pPerUser);
    255 
    256 #define achSetPerUserSecValues "SetPerUserSecValues"
    257 
    258   typedef HRESULT (WINAPI *SETPERUSERSECVALUES)(PPERUSERSECTION pPerUser);
    259 
    260 #ifdef __cplusplus
    261 }
    262 #endif
    263 #endif
    264