2 * Copyright 2004 Huw D M Davies
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.
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.
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
18 #ifndef __WINE_ADVPUB_H
19 #define __WINE_ADVPUB_H
28 #ifndef S_ASYNCHRONOUS
29 #define S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x401E8)
32 typedef struct _CabInfoA
37 CHAR szSrcPath
[MAX_PATH
];
39 } CABINFOA
, *PCABINFOA
;
41 typedef struct _CabInfoW
46 WCHAR szSrcPath
[MAX_PATH
];
48 } CABINFOW
, *PCABINFOW
;
50 DECL_WINELIB_TYPE_AW(CABINFO
)
51 DECL_WINELIB_TYPE_AW(PCABINFO
)
53 typedef struct _PERUSERSECTIONA
55 CHAR szGUID
[39 /*MAX_GUID_STRING_LEN*/ + 20];
58 CHAR szStub
[MAX_PATH
* 4];
63 } PERUSERSECTIONA
, *PPERUSERSECTIONA
;
65 typedef struct _PERUSERSECTIONW
67 WCHAR szGUID
[39 /*MAX_GUID_STRING_LEN*/ + 20];
68 WCHAR szDispName
[128];
70 WCHAR szStub
[MAX_PATH
* 4];
75 } PERUSERSECTIONW
, *PPERUSERSECTIONW
;
77 DECL_WINELIB_TYPE_AW(PERUSERSECTION
)
78 DECL_WINELIB_TYPE_AW(PPERUSERSECTION
)
80 typedef struct _StrEntryA
84 } STRENTRYA
, *LPSTRENTRYA
;
86 typedef struct _StrEntryW
90 } STRENTRYW
, *LPSTRENTRYW
;
92 DECL_WINELIB_TYPE_AW(STRENTRY
)
93 DECL_WINELIB_TYPE_AW(LPSTRENTRY
)
95 typedef struct _StrTableA
99 } STRTABLEA
, *LPSTRTABLEA
;
100 typedef const STRTABLEA CSTRTABLEA
, *LPCSTRTABLEA
;
102 typedef struct _StrTableW
106 } STRTABLEW
, *LPSTRTABLEW
;
107 typedef const STRTABLEW CSTRTABLEW
, *LPCSTRTABLEW
;
109 DECL_WINELIB_TYPE_AW(STRTABLE
)
110 DECL_WINELIB_TYPE_AW(CSTRTABLE
)
111 DECL_WINELIB_TYPE_AW(LPSTRTABLE
)
112 DECL_WINELIB_TYPE_AW(LPCSTRTABLE
)
114 /* Flags for AddDelBackupEntry */
115 #define AADBE_ADD_ENTRY 0x01
116 #define AADBE_DEL_ENTRY 0x02
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
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
138 /* Flags for DelNode */
139 #define ADN_DEL_IF_EMPTY 0x00000001
140 #define ADN_DONT_DEL_SUBDIRS 0x00000002
141 #define ADN_DONT_DEL_DIR 0x00000004
142 #define ADN_DEL_UNC_PATHS 0x00000008
144 /* Flags for RegRestoreAll, RegSaveRestore, RegSaveRestoreOnINF */
145 #define IE4_RESTORE 0x00000001
146 #define IE4_BACKNEW 0x00000002
147 #define IE4_NODELETENEW 0x00000004
148 #define IE4_NOMESSAGES 0x00000008
149 #define IE4_NOPROGRESS 0x00000010
150 #define IE4_NOENUMKEY 0x00000020
151 #define IE4_NO_CRC_MAPPING 0x00000040
152 #define IE4_REGSECTION 0x00000080
153 #define IE4_FRDOALL 0x00000100
154 #define IE4_UPDREFCNT 0x00000200
155 #define IE4_USEREFCNT 0x00000400
156 #define IE4_EXTRAINCREFCNT 0x00000800
158 /* Flags for file save and restore functions */
159 #define AFSR_RESTORE IE4_RESTORE
160 #define AFSR_BACKNEW IE4_BACKNEW
161 #define AFSR_NODELETENEW IE4_NODELETENEW
162 #define AFSR_NOMESSAGES IE4_NOMESSAGES
163 #define AFSR_NOPROGRESS IE4_NOPROGRESS
164 #define AFSR_UPDREFCNT IE4_UPDREFCNT
165 #define AFSR_USEREFCNT IE4_USEREFCNT
166 #define AFSR_EXTRAINCREFCNT IE4_EXTRAINCREFCNT
168 HRESULT WINAPI
AddDelBackupEntryA(LPCSTR lpcszFileList
, LPCSTR lpcszBackupDir
,
169 LPCSTR lpcszBaseName
, DWORD dwFlags
);
170 HRESULT WINAPI
AddDelBackupEntryW(LPCWSTR lpcszFileList
, LPCWSTR lpcszBackupDir
,
171 LPCWSTR lpcszBaseName
, DWORD dwFlags
);
172 #define AddDelBackupEntry WINELIB_NAME_AW(AddDelBackupEntry)
173 HRESULT WINAPI
AdvInstallFileA(HWND hwnd
, LPCSTR lpszSourceDir
,
174 LPCSTR lpszSourceFile
, LPCSTR lpszDestDir
, LPCSTR lpszDestFile
,
175 DWORD dwFlags
, DWORD dwReserved
);
176 HRESULT WINAPI
AdvInstallFileW(HWND hwnd
, LPCWSTR lpszSourceDir
,
177 LPCWSTR lpszSourceFile
, LPCWSTR lpszDestDir
, LPCWSTR lpszDestFile
,
178 DWORD dwFlags
, DWORD dwReserved
);
179 #define AdvInstallFile WINELIB_NAME_AW(AdvInstallFile)
180 HRESULT WINAPI
CloseINFEngine(HINF hInf
);
181 HRESULT WINAPI
DelNodeA(LPCSTR pszFileOrDirName
, DWORD dwFlags
);
182 HRESULT WINAPI
DelNodeW(LPCWSTR pszFileOrDirName
, DWORD dwFlags
);
183 #define DelNode WINELIB_NAME_AW(DelNode)
184 HRESULT WINAPI
DelNodeRunDLL32A(HWND
,HINSTANCE
,LPSTR
,INT
);
185 HRESULT WINAPI
DelNodeRunDLL32W(HWND
,HINSTANCE
,LPWSTR
,INT
);
186 #define DelNodeRunDLL32 WINELIB_NAME_AW(DelNodeRunDLL32)
187 HRESULT WINAPI
ExecuteCabA( HWND hwnd
, CABINFOA
* pCab
, LPVOID pReserved
);
188 HRESULT WINAPI
ExecuteCabW( HWND hwnd
, CABINFOW
* pCab
, LPVOID pReserved
);
189 #define ExecuteCab WINELIB_NAME_AW(ExecuteCab)
190 HRESULT WINAPI
ExtractFilesA(LPCSTR
,LPCSTR
,DWORD
,LPCSTR
,LPVOID
,DWORD
);
191 HRESULT WINAPI
ExtractFilesW(LPCWSTR
,LPCWSTR
,DWORD
,LPCWSTR
,LPVOID
,DWORD
);
192 #define ExtractFiles WINELIB_NAME_AW(ExtractFiles)
193 HRESULT WINAPI
FileSaveMarkNotExistA(LPSTR pszFileList
, LPSTR pszDir
, LPSTR pszBaseName
);
194 HRESULT WINAPI
FileSaveMarkNotExistW(LPWSTR pszFileList
, LPWSTR pszDir
, LPWSTR pszBaseName
);
195 #define FileSaveMarkNotExist WINELIB_NAME_AW(FileSaveMarkNotExist)
196 HRESULT WINAPI
FileSaveRestoreA(HWND hDlg
, LPSTR pszFileList
, LPSTR pszDir
,
197 LPSTR pszBaseName
, DWORD dwFlags
);
198 HRESULT WINAPI
FileSaveRestoreW(HWND hDlg
, LPWSTR pszFileList
, LPWSTR pszDir
,
199 LPWSTR pszBaseName
, DWORD dwFlags
);
200 #define FileSaveRestore WINELIB_NAME_AW(FileSaveRestore)
201 HRESULT WINAPI
FileSaveRestoreOnINFA(HWND hWnd
, LPCSTR pszTitle
, LPCSTR pszINF
,
202 LPCSTR pszSection
, LPCSTR pszBackupDir
, LPCSTR pszBaseBackupFile
, DWORD dwFlags
);
203 HRESULT WINAPI
FileSaveRestoreOnINFW(HWND hWnd
, LPCWSTR pszTitle
, LPCWSTR pszINF
,
204 LPCWSTR pszSection
, LPCWSTR pszBackupDir
, LPCWSTR pszBaseBackupFile
, DWORD dwFlags
);
205 #define FileSaveRestoreOnINF WINELIB_NAME_AW(FileSaveRestoreOnINF)
206 HRESULT WINAPI
GetVersionFromFileA(LPCSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
207 HRESULT WINAPI
GetVersionFromFileW(LPCWSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
208 #define GetVersionFromFile WINELIB_NAME_AW(GetVersionFromFile)
209 HRESULT WINAPI
GetVersionFromFileExA(LPCSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
210 HRESULT WINAPI
GetVersionFromFileExW(LPCWSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
211 #define GetVersionFromFileEx WINELIB_NAME_AW(GetVersionFromFileEx)
212 BOOL WINAPI
IsNTAdmin(DWORD
,LPDWORD
);
213 INT WINAPI
LaunchINFSectionA(HWND
,HINSTANCE
,LPSTR
,INT
);
214 INT WINAPI
LaunchINFSectionW(HWND
,HINSTANCE
,LPWSTR
,INT
);
215 #define LaunchINFSection WINELIB_NAME_AW(LaunchINFSection)
216 HRESULT WINAPI
LaunchINFSectionExA(HWND
,HINSTANCE
,LPSTR
,INT
);
217 HRESULT WINAPI
LaunchINFSectionExW(HWND
,HINSTANCE
,LPWSTR
,INT
);
218 #define LaunchINFSectionEx WINELIB_NAME_AW(LaunchINFSectionEx)
219 DWORD WINAPI
NeedRebootInit(VOID
);
220 BOOL WINAPI
NeedReboot(DWORD dwRebootCheck
);
221 HRESULT WINAPI
OpenINFEngineA(LPCSTR pszInfFilename
, LPCSTR pszInstallSection
,
222 DWORD dwFlags
, HINF
*phInf
, PVOID pvReserved
);
223 HRESULT WINAPI
OpenINFEngineW(LPCWSTR pszInfFilename
, LPCWSTR pszInstallSection
,
224 DWORD dwFlags
, HINF
*phInf
, PVOID pvReserved
);
225 #define OpenINFEngine WINELIB_NAME_AW(OpenINFEngine)
226 HRESULT WINAPI
RebootCheckOnInstallA(HWND hWnd
, LPCSTR pszINF
, LPCSTR pszSec
, DWORD dwReserved
);
227 HRESULT WINAPI
RebootCheckOnInstallW(HWND hWnd
, LPCWSTR pszINF
, LPCWSTR pszSec
, DWORD dwReserved
);
228 #define RebootCheckOnInstall WINELIB_NAME_AW(RebootCheckOnInstall)
229 HRESULT WINAPI
RegInstallA(HMODULE hm
, LPCSTR pszSection
, const STRTABLEA
* pstTable
);
230 HRESULT WINAPI
RegInstallW(HMODULE hm
, LPCWSTR pszSection
, const STRTABLEW
* pstTable
);
231 #define RegInstall WINELIB_NAME_AW(RegInstall)
232 HRESULT WINAPI
RegRestoreAllA(HWND hWnd
, LPSTR pszTitleString
, HKEY hkBackupKey
);
233 HRESULT WINAPI
RegRestoreAllW(HWND hWnd
, LPWSTR pszTitleString
, HKEY hkBackupKey
);
234 #define RegRestoreAll WINELIB_NAME_AW(RegRestoreAll)
235 HRESULT WINAPI
RegSaveRestoreA(HWND hWnd
, LPCSTR pszTitleString
, HKEY hkBackupKey
,
236 LPCSTR pcszRootKey
, LPCSTR pcszSubKey
, LPCSTR pcszValueName
, DWORD dwFlags
);
237 HRESULT WINAPI
RegSaveRestoreW(HWND hWnd
, LPCWSTR pszTitleString
, HKEY hkBackupKey
,
238 LPCWSTR pcszRootKey
, LPCWSTR pcszSubKey
, LPCWSTR pcszValueName
, DWORD dwFlags
);
239 #define RegSaveRestore WINELIB_NAME_AW(RegSaveRestore)
240 HRESULT WINAPI
RegSaveRestoreOnINFA(HWND hWnd
, LPCSTR pszTitle
, LPCSTR pszINF
,
241 LPCSTR pszSection
, HKEY hHKLMBackKey
, HKEY hHKCUBackKey
, DWORD dwFlags
);
242 HRESULT WINAPI
RegSaveRestoreOnINFW(HWND hWnd
, LPCWSTR pszTitle
, LPCWSTR pszINF
,
243 LPCWSTR pszSection
, HKEY hHKLMBackKey
, HKEY hHKCUBackKey
, DWORD dwFlags
);
244 #define RegSaveRestoreOnINF WINELIB_NAME_AW(RegSaveRestoreOnINF)
245 HRESULT WINAPI
RunSetupCommandA(HWND hWnd
,
246 LPCSTR szCmdName
, LPCSTR szInfSection
, LPCSTR szDir
, LPCSTR lpszTitle
,
247 HANDLE
*phEXE
, DWORD dwFlags
, LPVOID pvReserved
);
248 HRESULT WINAPI
RunSetupCommandW(HWND hWnd
,
249 LPCWSTR szCmdName
, LPCWSTR szInfSection
, LPCWSTR szDir
, LPCWSTR lpszTitle
,
250 HANDLE
*phEXE
, DWORD dwFlags
, LPVOID pvReserved
);
251 #define RunSetupCommand WINELIB_NAME_AW(RunSetupCommand)
252 HRESULT WINAPI
SetPerUserSecValuesA(PERUSERSECTIONA
* pPerUser
);
253 HRESULT WINAPI
SetPerUserSecValuesW(PERUSERSECTIONW
* pPerUser
);
254 #define SetPerUserSecValues WINELIB_NAME_AW(SetPerUserSecValues)
255 HRESULT WINAPI
TranslateInfStringA(LPCSTR pszInfFilename
, LPCSTR pszInstallSection
,
256 LPCSTR pszTranslateSection
, LPCSTR pszTranslateKey
, LPSTR pszBuffer
,
257 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
258 HRESULT WINAPI
TranslateInfStringW(LPCWSTR pszInfFilename
, LPCWSTR pszInstallSection
,
259 LPCWSTR pszTranslateSection
, LPCWSTR pszTranslateKey
, LPWSTR pszBuffer
,
260 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
261 #define TranslateInfString WINELIB_NAME_AW(TranslateInfString)
262 HRESULT WINAPI
TranslateInfStringExA(HINF hInf
, LPCSTR pszInfFilename
,
263 LPCSTR pszTranslateSection
, LPCSTR pszTranslateKey
, LPSTR pszBuffer
,
264 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
265 HRESULT WINAPI
TranslateInfStringExW(HINF hInf
, LPCWSTR pszInfFilename
,
266 LPCWSTR pszTranslateSection
, LPCWSTR pszTranslateKey
, LPWSTR pszBuffer
,
267 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
268 #define TranslateInfStringEx WINELIB_NAME_AW(TranslateInfStringEx)
269 HRESULT WINAPI
UserInstStubWrapperA(HWND hWnd
, HINSTANCE hInstance
, LPSTR pszParms
, INT nShow
);
270 HRESULT WINAPI
UserInstStubWrapperW(HWND hWnd
, HINSTANCE hInstance
, LPWSTR pszParms
, INT nShow
);
271 #define UserInstStubWrapper WINELIB_NAME_AW(UserInstStubWrapper)
272 HRESULT WINAPI
UserUnInstStubWrapperA(HWND hWnd
, HINSTANCE hInstance
, LPSTR pszParms
, INT nShow
);
273 HRESULT WINAPI
UserUnInstStubWrapperW(HWND hWnd
, HINSTANCE hInstance
, LPWSTR pszParms
, INT nShow
);
274 #define UserUnInstStubWrapper WINELIB_NAME_AW(UserUnInstStubWrapper)
280 #endif /* __WINE_ADVPUB_H */