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
22 /* FIXME: #include <cfgmgr32.h> */
28 #ifndef S_ASYNCHRONOUS
29 #define S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x401E8L)
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)
196 FileSaveMarkNotExistA(
197 _In_opt_ LPSTR pszFileList
,
198 _In_opt_ LPSTR pszDir
,
199 _In_opt_ LPSTR pszBaseName
);
203 FileSaveMarkNotExistW(
204 _In_opt_ LPWSTR pszFileList
,
205 _In_opt_ LPWSTR pszDir
,
206 _In_opt_ LPWSTR pszBaseName
);
208 #define FileSaveMarkNotExist WINELIB_NAME_AW(FileSaveMarkNotExist)
210 HRESULT WINAPI
FileSaveRestoreA(HWND hDlg
, LPSTR pszFileList
, LPSTR pszDir
,
211 LPSTR pszBaseName
, DWORD dwFlags
);
212 HRESULT WINAPI
FileSaveRestoreW(HWND hDlg
, LPWSTR pszFileList
, LPWSTR pszDir
,
213 LPWSTR pszBaseName
, DWORD dwFlags
);
214 #define FileSaveRestore WINELIB_NAME_AW(FileSaveRestore)
215 HRESULT WINAPI
FileSaveRestoreOnINFA(HWND hWnd
, LPCSTR pszTitle
, LPCSTR pszINF
,
216 LPCSTR pszSection
, LPCSTR pszBackupDir
, LPCSTR pszBaseBackupFile
, DWORD dwFlags
);
217 HRESULT WINAPI
FileSaveRestoreOnINFW(HWND hWnd
, LPCWSTR pszTitle
, LPCWSTR pszINF
,
218 LPCWSTR pszSection
, LPCWSTR pszBackupDir
, LPCWSTR pszBaseBackupFile
, DWORD dwFlags
);
219 #define FileSaveRestoreOnINF WINELIB_NAME_AW(FileSaveRestoreOnINF)
220 HRESULT WINAPI
GetVersionFromFileA(LPCSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
221 HRESULT WINAPI
GetVersionFromFileW(LPCWSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
222 #define GetVersionFromFile WINELIB_NAME_AW(GetVersionFromFile)
223 HRESULT WINAPI
GetVersionFromFileExA(LPCSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
224 HRESULT WINAPI
GetVersionFromFileExW(LPCWSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
225 #define GetVersionFromFileEx WINELIB_NAME_AW(GetVersionFromFileEx)
226 BOOL WINAPI
IsNTAdmin(DWORD
,LPDWORD
);
227 INT WINAPI
LaunchINFSectionA(HWND
,HINSTANCE
,LPSTR
,INT
);
228 INT WINAPI
LaunchINFSectionW(HWND
,HINSTANCE
,LPWSTR
,INT
);
229 #define LaunchINFSection WINELIB_NAME_AW(LaunchINFSection)
247 #define LaunchINFSectionEx WINELIB_NAME_AW(LaunchINFSectionEx)
249 DWORD WINAPI
NeedRebootInit(VOID
);
250 BOOL WINAPI
NeedReboot(DWORD dwRebootCheck
);
251 HRESULT WINAPI
OpenINFEngineA(LPCSTR pszInfFilename
, LPCSTR pszInstallSection
,
252 DWORD dwFlags
, HINF
*phInf
, PVOID pvReserved
);
253 HRESULT WINAPI
OpenINFEngineW(LPCWSTR pszInfFilename
, LPCWSTR pszInstallSection
,
254 DWORD dwFlags
, HINF
*phInf
, PVOID pvReserved
);
255 #define OpenINFEngine WINELIB_NAME_AW(OpenINFEngine)
256 HRESULT WINAPI
RebootCheckOnInstallA(HWND hWnd
, LPCSTR pszINF
, LPCSTR pszSec
, DWORD dwReserved
);
257 HRESULT WINAPI
RebootCheckOnInstallW(HWND hWnd
, LPCWSTR pszINF
, LPCWSTR pszSec
, DWORD dwReserved
);
258 #define RebootCheckOnInstall WINELIB_NAME_AW(RebootCheckOnInstall)
259 HRESULT WINAPI
RegInstallA(HMODULE hm
, LPCSTR pszSection
, const STRTABLEA
* pstTable
);
260 HRESULT WINAPI
RegInstallW(HMODULE hm
, LPCWSTR pszSection
, const STRTABLEW
* pstTable
);
261 #define RegInstall WINELIB_NAME_AW(RegInstall)
267 _In_opt_ LPSTR pszTitleString
,
268 _In_ HKEY hkBackupKey
);
274 _In_opt_ LPWSTR pszTitleString
,
275 _In_ HKEY hkBackupKey
);
277 #define RegRestoreAll WINELIB_NAME_AW(RegRestoreAll)
279 HRESULT WINAPI
RegSaveRestoreA(HWND hWnd
, LPCSTR pszTitleString
, HKEY hkBackupKey
,
280 LPCSTR pcszRootKey
, LPCSTR pcszSubKey
, LPCSTR pcszValueName
, DWORD dwFlags
);
281 HRESULT WINAPI
RegSaveRestoreW(HWND hWnd
, LPCWSTR pszTitleString
, HKEY hkBackupKey
,
282 LPCWSTR pcszRootKey
, LPCWSTR pcszSubKey
, LPCWSTR pcszValueName
, DWORD dwFlags
);
283 #define RegSaveRestore WINELIB_NAME_AW(RegSaveRestore)
284 HRESULT WINAPI
RegSaveRestoreOnINFA(HWND hWnd
, LPCSTR pszTitle
, LPCSTR pszINF
,
285 LPCSTR pszSection
, HKEY hHKLMBackKey
, HKEY hHKCUBackKey
, DWORD dwFlags
);
286 HRESULT WINAPI
RegSaveRestoreOnINFW(HWND hWnd
, LPCWSTR pszTitle
, LPCWSTR pszINF
,
287 LPCWSTR pszSection
, HKEY hHKLMBackKey
, HKEY hHKCUBackKey
, DWORD dwFlags
);
288 #define RegSaveRestoreOnINF WINELIB_NAME_AW(RegSaveRestoreOnINF)
289 HRESULT WINAPI
RunSetupCommandA(HWND hWnd
,
290 LPCSTR szCmdName
, LPCSTR szInfSection
, LPCSTR szDir
, LPCSTR lpszTitle
,
291 HANDLE
*phEXE
, DWORD dwFlags
, LPVOID pvReserved
);
292 HRESULT WINAPI
RunSetupCommandW(HWND hWnd
,
293 LPCWSTR szCmdName
, LPCWSTR szInfSection
, LPCWSTR szDir
, LPCWSTR lpszTitle
,
294 HANDLE
*phEXE
, DWORD dwFlags
, LPVOID pvReserved
);
295 #define RunSetupCommand WINELIB_NAME_AW(RunSetupCommand)
296 HRESULT WINAPI
SetPerUserSecValuesA(PERUSERSECTIONA
* pPerUser
);
297 HRESULT WINAPI
SetPerUserSecValuesW(PERUSERSECTIONW
* pPerUser
);
298 #define SetPerUserSecValues WINELIB_NAME_AW(SetPerUserSecValues)
303 _In_ LPCSTR pszInfFilename
,
304 _In_ LPCSTR pszInstallSection
,
305 _In_ LPCSTR pszTranslateSection
,
306 _In_ LPCSTR pszTranslateKey
,
307 _Out_writes_opt_(dwBufferSize
) LPSTR pszBuffer
,
308 _In_ DWORD dwBufferSize
,
309 _Out_ PDWORD pdwRequiredSize
,
310 _Reserved_ PVOID pvReserved
);
315 _In_ LPCWSTR pszInfFilename
,
316 _In_ LPCWSTR pszInstallSection
,
317 _In_ LPCWSTR pszTranslateSection
,
318 _In_ LPCWSTR pszTranslateKey
,
319 _Out_writes_opt_(dwBufferSize
) LPWSTR pszBuffer
,
320 _In_ DWORD dwBufferSize
,
321 _Out_ PDWORD pdwRequiredSize
,
322 _Reserved_ PVOID pvReserved
);
324 #define TranslateInfString WINELIB_NAME_AW(TranslateInfString)
325 HRESULT WINAPI
TranslateInfStringExA(HINF hInf
, LPCSTR pszInfFilename
,
326 LPCSTR pszTranslateSection
, LPCSTR pszTranslateKey
, LPSTR pszBuffer
,
327 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
328 HRESULT WINAPI
TranslateInfStringExW(HINF hInf
, LPCWSTR pszInfFilename
,
329 LPCWSTR pszTranslateSection
, LPCWSTR pszTranslateKey
, LPWSTR pszBuffer
,
330 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
331 #define TranslateInfStringEx WINELIB_NAME_AW(TranslateInfStringEx)
332 HRESULT WINAPI
UserInstStubWrapperA(HWND hWnd
, HINSTANCE hInstance
, LPSTR pszParms
, INT nShow
);
333 HRESULT WINAPI
UserInstStubWrapperW(HWND hWnd
, HINSTANCE hInstance
, LPWSTR pszParms
, INT nShow
);
334 #define UserInstStubWrapper WINELIB_NAME_AW(UserInstStubWrapper)
335 HRESULT WINAPI
UserUnInstStubWrapperA(HWND hWnd
, HINSTANCE hInstance
, LPSTR pszParms
, INT nShow
);
336 HRESULT WINAPI
UserUnInstStubWrapperW(HWND hWnd
, HINSTANCE hInstance
, LPWSTR pszParms
, INT nShow
);
337 #define UserUnInstStubWrapper WINELIB_NAME_AW(UserUnInstStubWrapper)
343 #endif /* __WINE_ADVPUB_H */