Reactos
at master 347 lines 13 kB view raw
1/* 2 * Copyright 2004 Huw D M Davies 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18#ifndef __WINE_ADVPUB_H 19#define __WINE_ADVPUB_H 20 21#include <setupapi.h> 22/* FIXME: #include <cfgmgr32.h> */ 23 24#ifdef __cplusplus 25extern "C" { 26#endif 27 28#ifndef S_ASYNCHRONOUS 29#define S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x401E8L) 30#endif 31 32typedef struct _CabInfoA 33{ 34 LPSTR pszCab; 35 LPSTR pszInf; 36 LPSTR pszSection; 37 CHAR szSrcPath[MAX_PATH]; 38 DWORD dwFlags; 39} CABINFOA, *PCABINFOA; 40 41typedef struct _CabInfoW 42{ 43 LPWSTR pszCab; 44 LPWSTR pszInf; 45 LPWSTR pszSection; 46 WCHAR szSrcPath[MAX_PATH]; 47 DWORD dwFlags; 48} CABINFOW, *PCABINFOW; 49 50DECL_WINELIB_TYPE_AW(CABINFO) 51DECL_WINELIB_TYPE_AW(PCABINFO) 52 53typedef struct _PERUSERSECTIONA 54{ 55 CHAR szGUID[39 /*MAX_GUID_STRING_LEN*/ + 20]; 56 CHAR szDispName[128]; 57 CHAR szLocale[10]; 58 CHAR szStub[MAX_PATH * 4]; 59 CHAR szVersion[32]; 60 CHAR szCompID[128]; 61 DWORD dwIsInstalled; 62 BOOL bRollback; 63} PERUSERSECTIONA, *PPERUSERSECTIONA; 64 65typedef struct _PERUSERSECTIONW 66{ 67 WCHAR szGUID[39 /*MAX_GUID_STRING_LEN*/ + 20]; 68 WCHAR szDispName[128]; 69 WCHAR szLocale[10]; 70 WCHAR szStub[MAX_PATH * 4]; 71 WCHAR szVersion[32]; 72 WCHAR szCompID[128]; 73 DWORD dwIsInstalled; 74 BOOL bRollback; 75} PERUSERSECTIONW, *PPERUSERSECTIONW; 76 77DECL_WINELIB_TYPE_AW(PERUSERSECTION) 78DECL_WINELIB_TYPE_AW(PPERUSERSECTION) 79 80typedef struct _StrEntryA 81{ 82 LPSTR pszName; 83 LPSTR pszValue; 84} STRENTRYA, *LPSTRENTRYA; 85 86typedef struct _StrEntryW 87{ 88 LPWSTR pszName; 89 LPWSTR pszValue; 90} STRENTRYW, *LPSTRENTRYW; 91 92DECL_WINELIB_TYPE_AW(STRENTRY) 93DECL_WINELIB_TYPE_AW(LPSTRENTRY) 94 95typedef struct _StrTableA 96{ 97 DWORD cEntries; 98 STRENTRYA* pse; 99} STRTABLEA, *LPSTRTABLEA; 100typedef const STRTABLEA CSTRTABLEA, *LPCSTRTABLEA; 101 102typedef struct _StrTableW 103{ 104 DWORD cEntries; 105 STRENTRYW* pse; 106} STRTABLEW, *LPSTRTABLEW; 107typedef const STRTABLEW CSTRTABLEW, *LPCSTRTABLEW; 108 109DECL_WINELIB_TYPE_AW(STRTABLE) 110DECL_WINELIB_TYPE_AW(CSTRTABLE) 111DECL_WINELIB_TYPE_AW(LPSTRTABLE) 112DECL_WINELIB_TYPE_AW(LPCSTRTABLE) 113 114/* Flags for AddDelBackupEntry */ 115#define AADBE_ADD_ENTRY 0x01 116#define AADBE_DEL_ENTRY 0x02 117 118/* Flags for AdvInstallFile */ 119#define AIF_WARNIFSKIP 0x00000001 120#define AIF_NOSKIP 0x00000002 121#define AIF_NOVERSIONCHECK 0x00000004 122#define AIF_FORCE_FILE_IN_USE 0x00000008 123#define AIF_NOOVERWRITE 0x00000010 124#define AIF_NO_VERSION_DIALOG 0x00000020 125#define AIF_REPLACEONLY 0x00000400 126#define AIF_NOLANGUAGECHECK 0x10000000 127#define AIF_QUIET 0x20000000 128 129/* Flags for RunSetupCommand */ 130#define RSC_FLAG_INF 0x00000001 131#define RSC_FLAG_SKIPDISKSPACECHECK 0x00000002 132#define RSC_FLAG_QUIET 0x00000004 133#define RSC_FLAG_NGCONV 0x00000008 134#define RSC_FLAG_UPDHLPDLLS 0x00000010 135#define RSC_FLAG_DELAYREGISTEROCX 0x00000200 136#define RSC_FLAG_SETUPAPI 0x00000400 137 138/* Flags for LaunchINFSection */ 139#define LIS_QUIET 0x00000001 140#define LIS_NOGRPCONV 0x00000002 141 142/* Flags for DelNode */ 143#define ADN_DEL_IF_EMPTY 0x00000001 144#define ADN_DONT_DEL_SUBDIRS 0x00000002 145#define ADN_DONT_DEL_DIR 0x00000004 146#define ADN_DEL_UNC_PATHS 0x00000008 147 148/* Flags for RegRestoreAll, RegSaveRestore, RegSaveRestoreOnINF */ 149#define IE4_RESTORE 0x00000001 150#define IE4_BACKNEW 0x00000002 151#define IE4_NODELETENEW 0x00000004 152#define IE4_NOMESSAGES 0x00000008 153#define IE4_NOPROGRESS 0x00000010 154#define IE4_NOENUMKEY 0x00000020 155#define IE4_NO_CRC_MAPPING 0x00000040 156#define IE4_REGSECTION 0x00000080 157#define IE4_FRDOALL 0x00000100 158#define IE4_UPDREFCNT 0x00000200 159#define IE4_USEREFCNT 0x00000400 160#define IE4_EXTRAINCREFCNT 0x00000800 161 162/* Flags for file save and restore functions */ 163#define AFSR_RESTORE IE4_RESTORE 164#define AFSR_BACKNEW IE4_BACKNEW 165#define AFSR_NODELETENEW IE4_NODELETENEW 166#define AFSR_NOMESSAGES IE4_NOMESSAGES 167#define AFSR_NOPROGRESS IE4_NOPROGRESS 168#define AFSR_UPDREFCNT IE4_UPDREFCNT 169#define AFSR_USEREFCNT IE4_USEREFCNT 170#define AFSR_EXTRAINCREFCNT IE4_EXTRAINCREFCNT 171 172HRESULT WINAPI AddDelBackupEntryA(LPCSTR lpcszFileList, LPCSTR lpcszBackupDir, 173 LPCSTR lpcszBaseName, DWORD dwFlags); 174HRESULT WINAPI AddDelBackupEntryW(LPCWSTR lpcszFileList, LPCWSTR lpcszBackupDir, 175 LPCWSTR lpcszBaseName, DWORD dwFlags); 176#define AddDelBackupEntry WINELIB_NAME_AW(AddDelBackupEntry) 177HRESULT WINAPI AdvInstallFileA(HWND hwnd, LPCSTR lpszSourceDir, 178 LPCSTR lpszSourceFile, LPCSTR lpszDestDir, LPCSTR lpszDestFile, 179 DWORD dwFlags, DWORD dwReserved); 180HRESULT WINAPI AdvInstallFileW(HWND hwnd, LPCWSTR lpszSourceDir, 181 LPCWSTR lpszSourceFile, LPCWSTR lpszDestDir, LPCWSTR lpszDestFile, 182 DWORD dwFlags, DWORD dwReserved); 183#define AdvInstallFile WINELIB_NAME_AW(AdvInstallFile) 184HRESULT WINAPI CloseINFEngine(HINF hInf); 185HRESULT WINAPI DelNodeA(LPCSTR pszFileOrDirName, DWORD dwFlags); 186HRESULT WINAPI DelNodeW(LPCWSTR pszFileOrDirName, DWORD dwFlags); 187#define DelNode WINELIB_NAME_AW(DelNode) 188HRESULT WINAPI DelNodeRunDLL32A(HWND,HINSTANCE,LPSTR,INT); 189HRESULT WINAPI DelNodeRunDLL32W(HWND,HINSTANCE,LPWSTR,INT); 190#define DelNodeRunDLL32 WINELIB_NAME_AW(DelNodeRunDLL32) 191HRESULT WINAPI ExecuteCabA( HWND hwnd, CABINFOA* pCab, LPVOID pReserved ); 192HRESULT WINAPI ExecuteCabW( HWND hwnd, CABINFOW* pCab, LPVOID pReserved ); 193#define ExecuteCab WINELIB_NAME_AW(ExecuteCab) 194HRESULT WINAPI ExtractFilesA(LPCSTR,LPCSTR,DWORD,LPCSTR,LPVOID,DWORD); 195HRESULT WINAPI ExtractFilesW(LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPVOID,DWORD); 196#define ExtractFiles WINELIB_NAME_AW(ExtractFiles) 197 198HRESULT 199WINAPI 200FileSaveMarkNotExistA( 201 _In_opt_ LPSTR pszFileList, 202 _In_opt_ LPSTR pszDir, 203 _In_opt_ LPSTR pszBaseName); 204 205HRESULT 206WINAPI 207FileSaveMarkNotExistW( 208 _In_opt_ LPWSTR pszFileList, 209 _In_opt_ LPWSTR pszDir, 210 _In_opt_ LPWSTR pszBaseName); 211 212#define FileSaveMarkNotExist WINELIB_NAME_AW(FileSaveMarkNotExist) 213 214HRESULT WINAPI FileSaveRestoreA(HWND hDlg, LPSTR pszFileList, LPSTR pszDir, 215 LPSTR pszBaseName, DWORD dwFlags); 216HRESULT WINAPI FileSaveRestoreW(HWND hDlg, LPWSTR pszFileList, LPWSTR pszDir, 217 LPWSTR pszBaseName, DWORD dwFlags); 218#define FileSaveRestore WINELIB_NAME_AW(FileSaveRestore) 219HRESULT WINAPI FileSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF, 220 LPCSTR pszSection, LPCSTR pszBackupDir, LPCSTR pszBaseBackupFile, DWORD dwFlags); 221HRESULT WINAPI FileSaveRestoreOnINFW(HWND hWnd, LPCWSTR pszTitle, LPCWSTR pszINF, 222 LPCWSTR pszSection, LPCWSTR pszBackupDir, LPCWSTR pszBaseBackupFile, DWORD dwFlags); 223#define FileSaveRestoreOnINF WINELIB_NAME_AW(FileSaveRestoreOnINF) 224HRESULT WINAPI GetVersionFromFileA(LPCSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); 225HRESULT WINAPI GetVersionFromFileW(LPCWSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); 226#define GetVersionFromFile WINELIB_NAME_AW(GetVersionFromFile) 227HRESULT WINAPI GetVersionFromFileExA(LPCSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); 228HRESULT WINAPI GetVersionFromFileExW(LPCWSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); 229#define GetVersionFromFileEx WINELIB_NAME_AW(GetVersionFromFileEx) 230BOOL WINAPI IsNTAdmin(DWORD,LPDWORD); 231INT WINAPI LaunchINFSectionA(HWND,HINSTANCE,LPSTR,INT); 232INT WINAPI LaunchINFSectionW(HWND,HINSTANCE,LPWSTR,INT); 233#define LaunchINFSection WINELIB_NAME_AW(LaunchINFSection) 234 235HRESULT 236WINAPI 237LaunchINFSectionExA( 238 _In_opt_ HWND, 239 _In_opt_ HINSTANCE, 240 _In_ LPSTR, 241 _In_ INT); 242 243HRESULT 244WINAPI 245LaunchINFSectionExW( 246 _In_opt_ HWND, 247 _In_opt_ HINSTANCE, 248 _In_ LPWSTR, 249 _In_ INT); 250 251#define LaunchINFSectionEx WINELIB_NAME_AW(LaunchINFSectionEx) 252 253DWORD WINAPI NeedRebootInit(VOID); 254BOOL WINAPI NeedReboot(DWORD dwRebootCheck); 255HRESULT WINAPI OpenINFEngineA(LPCSTR pszInfFilename, LPCSTR pszInstallSection, 256 DWORD dwFlags, HINF *phInf, PVOID pvReserved); 257HRESULT WINAPI OpenINFEngineW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection, 258 DWORD dwFlags, HINF *phInf, PVOID pvReserved); 259#define OpenINFEngine WINELIB_NAME_AW(OpenINFEngine) 260HRESULT WINAPI RebootCheckOnInstallA(HWND hWnd, LPCSTR pszINF, LPCSTR pszSec, DWORD dwReserved); 261HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF, LPCWSTR pszSec, DWORD dwReserved); 262#define RebootCheckOnInstall WINELIB_NAME_AW(RebootCheckOnInstall) 263HRESULT WINAPI RegInstallA(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable); 264HRESULT WINAPI RegInstallW(HMODULE hm, LPCWSTR pszSection, const STRTABLEW* pstTable); 265#define RegInstall WINELIB_NAME_AW(RegInstall) 266 267HRESULT 268WINAPI 269RegRestoreAllA( 270 _In_opt_ HWND hWnd, 271 _In_opt_ LPSTR pszTitleString, 272 _In_ HKEY hkBackupKey); 273 274HRESULT 275WINAPI 276RegRestoreAllW( 277 _In_opt_ HWND hWnd, 278 _In_opt_ LPWSTR pszTitleString, 279 _In_ HKEY hkBackupKey); 280 281#define RegRestoreAll WINELIB_NAME_AW(RegRestoreAll) 282 283HRESULT WINAPI RegSaveRestoreA(HWND hWnd, LPCSTR pszTitleString, HKEY hkBackupKey, 284 LPCSTR pcszRootKey, LPCSTR pcszSubKey, LPCSTR pcszValueName, DWORD dwFlags); 285HRESULT WINAPI RegSaveRestoreW(HWND hWnd, LPCWSTR pszTitleString, HKEY hkBackupKey, 286 LPCWSTR pcszRootKey, LPCWSTR pcszSubKey, LPCWSTR pcszValueName, DWORD dwFlags); 287#define RegSaveRestore WINELIB_NAME_AW(RegSaveRestore) 288HRESULT WINAPI RegSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF, 289 LPCSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags); 290HRESULT WINAPI RegSaveRestoreOnINFW(HWND hWnd, LPCWSTR pszTitle, LPCWSTR pszINF, 291 LPCWSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags); 292#define RegSaveRestoreOnINF WINELIB_NAME_AW(RegSaveRestoreOnINF) 293HRESULT WINAPI RunSetupCommandA(HWND hWnd, 294 LPCSTR szCmdName, LPCSTR szInfSection, LPCSTR szDir, LPCSTR lpszTitle, 295 HANDLE *phEXE, DWORD dwFlags, LPVOID pvReserved); 296HRESULT WINAPI RunSetupCommandW(HWND hWnd, 297 LPCWSTR szCmdName, LPCWSTR szInfSection, LPCWSTR szDir, LPCWSTR lpszTitle, 298 HANDLE *phEXE, DWORD dwFlags, LPVOID pvReserved); 299#define RunSetupCommand WINELIB_NAME_AW(RunSetupCommand) 300HRESULT WINAPI SetPerUserSecValuesA(PERUSERSECTIONA* pPerUser); 301HRESULT WINAPI SetPerUserSecValuesW(PERUSERSECTIONW* pPerUser); 302#define SetPerUserSecValues WINELIB_NAME_AW(SetPerUserSecValues) 303 304HRESULT 305WINAPI 306TranslateInfStringA( 307 _In_ LPCSTR pszInfFilename, 308 _In_ LPCSTR pszInstallSection, 309 _In_ LPCSTR pszTranslateSection, 310 _In_ LPCSTR pszTranslateKey, 311 _Out_writes_opt_(dwBufferSize) LPSTR pszBuffer, 312 _In_ DWORD dwBufferSize, 313 _Out_ PDWORD pdwRequiredSize, 314 _Reserved_ PVOID pvReserved); 315 316HRESULT 317WINAPI 318TranslateInfStringW( 319 _In_ LPCWSTR pszInfFilename, 320 _In_ LPCWSTR pszInstallSection, 321 _In_ LPCWSTR pszTranslateSection, 322 _In_ LPCWSTR pszTranslateKey, 323 _Out_writes_opt_(dwBufferSize) LPWSTR pszBuffer, 324 _In_ DWORD dwBufferSize, 325 _Out_ PDWORD pdwRequiredSize, 326 _Reserved_ PVOID pvReserved); 327 328#define TranslateInfString WINELIB_NAME_AW(TranslateInfString) 329HRESULT WINAPI TranslateInfStringExA(HINF hInf, LPCSTR pszInfFilename, 330 LPCSTR pszTranslateSection, LPCSTR pszTranslateKey, LPSTR pszBuffer, 331 DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); 332HRESULT WINAPI TranslateInfStringExW(HINF hInf, LPCWSTR pszInfFilename, 333 LPCWSTR pszTranslateSection, LPCWSTR pszTranslateKey, LPWSTR pszBuffer, 334 DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); 335#define TranslateInfStringEx WINELIB_NAME_AW(TranslateInfStringEx) 336HRESULT WINAPI UserInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow); 337HRESULT WINAPI UserInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow); 338#define UserInstStubWrapper WINELIB_NAME_AW(UserInstStubWrapper) 339HRESULT WINAPI UserUnInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow); 340HRESULT WINAPI UserUnInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow); 341#define UserUnInstStubWrapper WINELIB_NAME_AW(UserUnInstStubWrapper) 342 343#ifdef __cplusplus 344} 345#endif 346 347#endif /* __WINE_ADVPUB_H */