|  | /* | 
|  | * Copyright 2004 Huw D M Davies | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  | #ifndef __WINE_ADVPUB_H | 
|  | #define __WINE_ADVPUB_H | 
|  |  | 
|  | #include <setupapi.h> | 
|  | #include <cfgmgr32.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #ifndef S_ASYNCHRONOUS | 
|  | #define S_ASYNCHRONOUS  _HRESULT_TYPEDEF_(0x401E8L) | 
|  | #endif | 
|  |  | 
|  | typedef struct _CabInfoA | 
|  | { | 
|  | LPSTR  pszCab; | 
|  | LPSTR  pszInf; | 
|  | LPSTR  pszSection; | 
|  | CHAR   szSrcPath[MAX_PATH]; | 
|  | DWORD  dwFlags; | 
|  | } CABINFOA, *PCABINFOA; | 
|  |  | 
|  | typedef struct _CabInfoW | 
|  | { | 
|  | LPWSTR pszCab; | 
|  | LPWSTR pszInf; | 
|  | LPWSTR pszSection; | 
|  | WCHAR  szSrcPath[MAX_PATH]; | 
|  | DWORD  dwFlags; | 
|  | } CABINFOW, *PCABINFOW; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(CABINFO) | 
|  | DECL_WINELIB_TYPE_AW(PCABINFO) | 
|  |  | 
|  | typedef struct _PERUSERSECTIONA | 
|  | { | 
|  | CHAR  szGUID[39 /*MAX_GUID_STRING_LEN*/ + 20]; | 
|  | CHAR  szDispName[128]; | 
|  | CHAR  szLocale[10]; | 
|  | CHAR  szStub[MAX_PATH * 4]; | 
|  | CHAR  szVersion[32]; | 
|  | CHAR  szCompID[128]; | 
|  | DWORD dwIsInstalled; | 
|  | BOOL  bRollback; | 
|  | } PERUSERSECTIONA, *PPERUSERSECTIONA; | 
|  |  | 
|  | typedef struct _PERUSERSECTIONW | 
|  | { | 
|  | WCHAR szGUID[39 /*MAX_GUID_STRING_LEN*/ + 20]; | 
|  | WCHAR szDispName[128]; | 
|  | WCHAR szLocale[10]; | 
|  | WCHAR szStub[MAX_PATH * 4]; | 
|  | WCHAR szVersion[32]; | 
|  | WCHAR szCompID[128]; | 
|  | DWORD dwIsInstalled; | 
|  | BOOL  bRollback; | 
|  | } PERUSERSECTIONW, *PPERUSERSECTIONW; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(PERUSERSECTION) | 
|  | DECL_WINELIB_TYPE_AW(PPERUSERSECTION) | 
|  |  | 
|  | typedef struct _StrEntryA | 
|  | { | 
|  | LPSTR pszName; | 
|  | LPSTR pszValue; | 
|  | } STRENTRYA, *LPSTRENTRYA; | 
|  |  | 
|  | typedef struct _StrEntryW | 
|  | { | 
|  | LPWSTR pszName; | 
|  | LPWSTR pszValue; | 
|  | } STRENTRYW, *LPSTRENTRYW; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(STRENTRY) | 
|  | DECL_WINELIB_TYPE_AW(LPSTRENTRY) | 
|  |  | 
|  | typedef struct _StrTableA | 
|  | { | 
|  | DWORD cEntries; | 
|  | STRENTRYA* pse; | 
|  | } STRTABLEA, *LPSTRTABLEA; | 
|  | typedef const STRTABLEA CSTRTABLEA, *LPCSTRTABLEA; | 
|  |  | 
|  | typedef struct _StrTableW | 
|  | { | 
|  | DWORD cEntries; | 
|  | STRENTRYW* pse; | 
|  | } STRTABLEW, *LPSTRTABLEW; | 
|  | typedef const STRTABLEW CSTRTABLEW, *LPCSTRTABLEW; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(STRTABLE) | 
|  | DECL_WINELIB_TYPE_AW(CSTRTABLE) | 
|  | DECL_WINELIB_TYPE_AW(LPSTRTABLE) | 
|  | DECL_WINELIB_TYPE_AW(LPCSTRTABLE) | 
|  |  | 
|  | /* Flags for AddDelBackupEntry */ | 
|  | #define AADBE_ADD_ENTRY             0x01 | 
|  | #define AADBE_DEL_ENTRY             0x02 | 
|  |  | 
|  | /* Flags for AdvInstallFile */ | 
|  | #define AIF_WARNIFSKIP              0x00000001 | 
|  | #define AIF_NOSKIP                  0x00000002 | 
|  | #define AIF_NOVERSIONCHECK          0x00000004 | 
|  | #define AIF_FORCE_FILE_IN_USE       0x00000008 | 
|  | #define AIF_NOOVERWRITE             0x00000010 | 
|  | #define AIF_NO_VERSION_DIALOG       0x00000020 | 
|  | #define AIF_REPLACEONLY             0x00000400 | 
|  | #define AIF_NOLANGUAGECHECK         0x10000000 | 
|  | #define AIF_QUIET                   0x20000000 | 
|  |  | 
|  | /* Flags for RunSetupCommand */ | 
|  | #define RSC_FLAG_INF                0x00000001 | 
|  | #define RSC_FLAG_SKIPDISKSPACECHECK 0x00000002 | 
|  | #define RSC_FLAG_QUIET              0x00000004 | 
|  | #define RSC_FLAG_NGCONV             0x00000008 | 
|  | #define RSC_FLAG_UPDHLPDLLS         0x00000010 | 
|  | #define RSC_FLAG_DELAYREGISTEROCX   0x00000200 | 
|  | #define RSC_FLAG_SETUPAPI           0x00000400 | 
|  |  | 
|  | /* Flags for DelNode */ | 
|  | #define ADN_DEL_IF_EMPTY            0x00000001 | 
|  | #define ADN_DONT_DEL_SUBDIRS        0x00000002 | 
|  | #define ADN_DONT_DEL_DIR            0x00000004 | 
|  | #define ADN_DEL_UNC_PATHS           0x00000008 | 
|  |  | 
|  | /* Flags for RegRestoreAll, RegSaveRestore, RegSaveRestoreOnINF */ | 
|  | #define  IE4_RESTORE                0x00000001 | 
|  | #define  IE4_BACKNEW                0x00000002 | 
|  | #define  IE4_NODELETENEW            0x00000004 | 
|  | #define  IE4_NOMESSAGES             0x00000008 | 
|  | #define  IE4_NOPROGRESS             0x00000010 | 
|  | #define  IE4_NOENUMKEY              0x00000020 | 
|  | #define  IE4_NO_CRC_MAPPING         0x00000040 | 
|  | #define  IE4_REGSECTION             0x00000080 | 
|  | #define  IE4_FRDOALL                0x00000100 | 
|  | #define  IE4_UPDREFCNT              0x00000200 | 
|  | #define  IE4_USEREFCNT              0x00000400 | 
|  | #define  IE4_EXTRAINCREFCNT         0x00000800 | 
|  |  | 
|  | /* Flags for file save and restore functions */ | 
|  | #define  AFSR_RESTORE               IE4_RESTORE | 
|  | #define  AFSR_BACKNEW               IE4_BACKNEW | 
|  | #define  AFSR_NODELETENEW           IE4_NODELETENEW | 
|  | #define  AFSR_NOMESSAGES            IE4_NOMESSAGES | 
|  | #define  AFSR_NOPROGRESS            IE4_NOPROGRESS | 
|  | #define  AFSR_UPDREFCNT             IE4_UPDREFCNT | 
|  | #define  AFSR_USEREFCNT             IE4_USEREFCNT | 
|  | #define  AFSR_EXTRAINCREFCNT        IE4_EXTRAINCREFCNT | 
|  |  | 
|  | HRESULT WINAPI AddDelBackupEntryA(LPCSTR lpcszFileList, LPCSTR lpcszBackupDir, | 
|  | LPCSTR lpcszBaseName, DWORD dwFlags); | 
|  | HRESULT WINAPI AddDelBackupEntryW(LPCWSTR lpcszFileList, LPCWSTR lpcszBackupDir, | 
|  | LPCWSTR lpcszBaseName, DWORD dwFlags); | 
|  | #define AddDelBackupEntry WINELIB_NAME_AW(AddDelBackupEntry) | 
|  | HRESULT WINAPI AdvInstallFileA(HWND hwnd, LPCSTR lpszSourceDir, | 
|  | LPCSTR lpszSourceFile, LPCSTR lpszDestDir, LPCSTR lpszDestFile, | 
|  | DWORD dwFlags, DWORD dwReserved); | 
|  | HRESULT WINAPI AdvInstallFileW(HWND hwnd, LPCWSTR lpszSourceDir, | 
|  | LPCWSTR lpszSourceFile, LPCWSTR lpszDestDir, LPCWSTR lpszDestFile, | 
|  | DWORD dwFlags, DWORD dwReserved); | 
|  | #define AdvInstallFile WINELIB_NAME_AW(AdvInstallFile) | 
|  | HRESULT WINAPI CloseINFEngine(HINF hInf); | 
|  | HRESULT WINAPI DelNodeA(LPCSTR pszFileOrDirName, DWORD dwFlags); | 
|  | HRESULT WINAPI DelNodeW(LPCWSTR pszFileOrDirName, DWORD dwFlags); | 
|  | #define DelNode WINELIB_NAME_AW(DelNode) | 
|  | HRESULT WINAPI DelNodeRunDLL32A(HWND,HINSTANCE,LPSTR,INT); | 
|  | HRESULT WINAPI DelNodeRunDLL32W(HWND,HINSTANCE,LPWSTR,INT); | 
|  | #define DelNodeRunDLL32 WINELIB_NAME_AW(DelNodeRunDLL32) | 
|  | HRESULT WINAPI ExecuteCabA( HWND hwnd, CABINFOA* pCab, LPVOID pReserved ); | 
|  | HRESULT WINAPI ExecuteCabW( HWND hwnd, CABINFOW* pCab, LPVOID pReserved ); | 
|  | #define ExecuteCab WINELIB_NAME_AW(ExecuteCab) | 
|  | HRESULT WINAPI ExtractFilesA(LPCSTR,LPCSTR,DWORD,LPCSTR,LPVOID,DWORD); | 
|  | HRESULT WINAPI ExtractFilesW(LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPVOID,DWORD); | 
|  | #define ExtractFiles WINELIB_NAME_AW(ExtractFiles) | 
|  | HRESULT WINAPI FileSaveMarkNotExistA(LPSTR pszFileList, LPSTR pszDir, LPSTR pszBaseName); | 
|  | HRESULT WINAPI FileSaveMarkNotExistW(LPWSTR pszFileList, LPWSTR pszDir, LPWSTR pszBaseName); | 
|  | #define FileSaveMarkNotExist WINELIB_NAME_AW(FileSaveMarkNotExist) | 
|  | HRESULT WINAPI FileSaveRestoreA(HWND hDlg, LPSTR pszFileList, LPSTR pszDir, | 
|  | LPSTR pszBaseName, DWORD dwFlags); | 
|  | HRESULT WINAPI FileSaveRestoreW(HWND hDlg, LPWSTR pszFileList, LPWSTR pszDir, | 
|  | LPWSTR pszBaseName, DWORD dwFlags); | 
|  | #define FileSaveRestore WINELIB_NAME_AW(FileSaveRestore) | 
|  | HRESULT WINAPI FileSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF, | 
|  | LPCSTR pszSection, LPCSTR pszBackupDir, LPCSTR pszBaseBackupFile, DWORD dwFlags); | 
|  | HRESULT WINAPI FileSaveRestoreOnINFW(HWND hWnd, LPCWSTR pszTitle, LPCWSTR pszINF, | 
|  | LPCWSTR pszSection, LPCWSTR pszBackupDir, LPCWSTR pszBaseBackupFile, DWORD dwFlags); | 
|  | #define FileSaveRestoreOnINF WINELIB_NAME_AW(FileSaveRestoreOnINF) | 
|  | HRESULT WINAPI GetVersionFromFileA(LPCSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); | 
|  | HRESULT WINAPI GetVersionFromFileW(LPCWSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); | 
|  | #define GetVersionFromFile WINELIB_NAME_AW(GetVersionFromFile) | 
|  | HRESULT WINAPI GetVersionFromFileExA(LPCSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); | 
|  | HRESULT WINAPI GetVersionFromFileExW(LPCWSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion); | 
|  | #define GetVersionFromFileEx WINELIB_NAME_AW(GetVersionFromFileEx) | 
|  | BOOL WINAPI IsNTAdmin(DWORD,LPDWORD); | 
|  | INT WINAPI LaunchINFSectionA(HWND,HINSTANCE,LPSTR,INT); | 
|  | INT WINAPI LaunchINFSectionW(HWND,HINSTANCE,LPWSTR,INT); | 
|  | #define LaunchINFSection WINELIB_NAME_AW(LaunchINFSection) | 
|  | HRESULT WINAPI LaunchINFSectionExA(HWND,HINSTANCE,LPSTR,INT); | 
|  | HRESULT WINAPI LaunchINFSectionExW(HWND,HINSTANCE,LPWSTR,INT); | 
|  | #define LaunchINFSectionEx WINELIB_NAME_AW(LaunchINFSectionEx) | 
|  | DWORD WINAPI NeedRebootInit(VOID); | 
|  | BOOL WINAPI NeedReboot(DWORD dwRebootCheck); | 
|  | HRESULT WINAPI OpenINFEngineA(LPCSTR pszInfFilename, LPCSTR pszInstallSection, | 
|  | DWORD dwFlags, HINF *phInf, PVOID pvReserved); | 
|  | HRESULT WINAPI OpenINFEngineW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection, | 
|  | DWORD dwFlags, HINF *phInf, PVOID pvReserved); | 
|  | #define OpenINFEngine WINELIB_NAME_AW(OpenINFEngine) | 
|  | HRESULT WINAPI RebootCheckOnInstallA(HWND hWnd, LPCSTR pszINF, LPCSTR pszSec, DWORD dwReserved); | 
|  | HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF, LPCWSTR pszSec, DWORD dwReserved); | 
|  | #define RebootCheckOnInstall WINELIB_NAME_AW(RebootCheckOnInstall) | 
|  | HRESULT WINAPI RegInstallA(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable); | 
|  | HRESULT WINAPI RegInstallW(HMODULE hm, LPCWSTR pszSection, const STRTABLEW* pstTable); | 
|  | #define RegInstall WINELIB_NAME_AW(RegInstall) | 
|  | HRESULT WINAPI RegRestoreAllA(HWND hWnd, LPSTR pszTitleString, HKEY hkBackupKey); | 
|  | HRESULT WINAPI RegRestoreAllW(HWND hWnd, LPWSTR pszTitleString, HKEY hkBackupKey); | 
|  | #define RegRestoreAll WINELIB_NAME_AW(RegRestoreAll) | 
|  | HRESULT WINAPI RegSaveRestoreA(HWND hWnd, LPCSTR pszTitleString, HKEY hkBackupKey, | 
|  | LPCSTR pcszRootKey, LPCSTR pcszSubKey, LPCSTR pcszValueName, DWORD dwFlags); | 
|  | HRESULT WINAPI RegSaveRestoreW(HWND hWnd, LPCWSTR pszTitleString, HKEY hkBackupKey, | 
|  | LPCWSTR pcszRootKey, LPCWSTR pcszSubKey, LPCWSTR pcszValueName, DWORD dwFlags); | 
|  | #define RegSaveRestore WINELIB_NAME_AW(RegSaveRestore) | 
|  | HRESULT WINAPI RegSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF, | 
|  | LPCSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags); | 
|  | HRESULT WINAPI RegSaveRestoreOnINFW(HWND hWnd, LPCWSTR pszTitle, LPCWSTR pszINF, | 
|  | LPCWSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags); | 
|  | #define RegSaveRestoreOnINF WINELIB_NAME_AW(RegSaveRestoreOnINF) | 
|  | HRESULT WINAPI RunSetupCommandA(HWND hWnd, | 
|  | LPCSTR szCmdName, LPCSTR szInfSection, LPCSTR szDir, LPCSTR lpszTitle, | 
|  | HANDLE *phEXE, DWORD dwFlags, LPVOID pvReserved); | 
|  | HRESULT WINAPI RunSetupCommandW(HWND hWnd, | 
|  | LPCWSTR szCmdName, LPCWSTR szInfSection, LPCWSTR szDir, LPCWSTR lpszTitle, | 
|  | HANDLE *phEXE, DWORD dwFlags, LPVOID pvReserved); | 
|  | #define RunSetupCommand WINELIB_NAME_AW(RunSetupCommand) | 
|  | HRESULT WINAPI SetPerUserSecValuesA(PERUSERSECTIONA* pPerUser); | 
|  | HRESULT WINAPI SetPerUserSecValuesW(PERUSERSECTIONW* pPerUser); | 
|  | #define SetPerUserSecValues WINELIB_NAME_AW(SetPerUserSecValues) | 
|  | HRESULT WINAPI TranslateInfStringA(LPCSTR pszInfFilename, LPCSTR pszInstallSection, | 
|  | LPCSTR pszTranslateSection, LPCSTR pszTranslateKey, LPSTR pszBuffer, | 
|  | DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); | 
|  | HRESULT WINAPI TranslateInfStringW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection, | 
|  | LPCWSTR pszTranslateSection, LPCWSTR pszTranslateKey, LPWSTR pszBuffer, | 
|  | DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); | 
|  | #define TranslateInfString WINELIB_NAME_AW(TranslateInfString) | 
|  | HRESULT WINAPI TranslateInfStringExA(HINF hInf, LPCSTR pszInfFilename, | 
|  | LPCSTR pszTranslateSection, LPCSTR pszTranslateKey, LPSTR pszBuffer, | 
|  | DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); | 
|  | HRESULT WINAPI TranslateInfStringExW(HINF hInf, LPCWSTR pszInfFilename, | 
|  | LPCWSTR pszTranslateSection, LPCWSTR pszTranslateKey, LPWSTR pszBuffer, | 
|  | DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); | 
|  | #define TranslateInfStringEx WINELIB_NAME_AW(TranslateInfStringEx) | 
|  | HRESULT WINAPI UserInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow); | 
|  | HRESULT WINAPI UserInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow); | 
|  | #define UserInstStubWrapper WINELIB_NAME_AW(UserInstStubWrapper) | 
|  | HRESULT WINAPI UserUnInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow); | 
|  | HRESULT WINAPI UserUnInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow); | 
|  | #define UserUnInstStubWrapper WINELIB_NAME_AW(UserUnInstStubWrapper) | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* __WINE_ADVPUB_H */ |