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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #ifndef __WINE_ADVPUB_H
19 #define __WINE_ADVPUB_H
22 /* FIXME: #include <cfgmgr32.h> */
28 typedef struct _CabInfoA
33 CHAR szSrcPath
[MAX_PATH
];
35 } CABINFOA
, *PCABINFOA
;
37 typedef struct _CabInfoW
42 WCHAR szSrcPath
[MAX_PATH
];
44 } CABINFOW
, *PCABINFOW
;
46 DECL_WINELIB_TYPE_AW(CABINFO
)
47 DECL_WINELIB_TYPE_AW(PCABINFO
)
49 typedef struct _PERUSERSECTIONA
51 CHAR szGUID
[39 /*MAX_GUID_STRING_LEN*/ + 20];
54 CHAR szStub
[MAX_PATH
* 4];
59 } PERUSERSECTIONA
, *PPERUSERSECTIONA
;
61 typedef struct _PERUSERSECTIONW
63 WCHAR szGUID
[39 /*MAX_GUID_STRING_LEN*/ + 20];
64 WCHAR szDispName
[128];
66 WCHAR szStub
[MAX_PATH
* 4];
71 } PERUSERSECTIONW
, *PPERUSERSECTIONW
;
73 DECL_WINELIB_TYPE_AW(PERUSERSECTION
)
74 DECL_WINELIB_TYPE_AW(PPERUSERSECTION
)
76 typedef struct _StrEntryA
80 } STRENTRYA
, *LPSTRENTRYA
;
82 typedef struct _StrEntryW
86 } STRENTRYW
, *LPSTRENTRYW
;
88 DECL_WINELIB_TYPE_AW(STRENTRY
)
89 DECL_WINELIB_TYPE_AW(LPSTRENTRY
)
91 typedef struct _StrTableA
95 } STRTABLEA
, *LPSTRTABLEA
;
96 typedef const STRTABLEA CSTRTABLEA
, *LPCSTRTABLEA
;
98 typedef struct _StrTableW
102 } STRTABLEW
, *LPSTRTABLEW
;
103 typedef const STRTABLEW CSTRTABLEW
, *LPCSTRTABLEW
;
105 DECL_WINELIB_TYPE_AW(STRTABLE
)
106 DECL_WINELIB_TYPE_AW(CSTRTABLE
)
107 DECL_WINELIB_TYPE_AW(LPSTRTABLE
)
108 DECL_WINELIB_TYPE_AW(LPCSTRTABLE
)
110 /* Flags for AddDelBackupEntry */
111 #define AADBE_ADD_ENTRY 0x01
112 #define AADBE_DEL_ENTRY 0x02
114 /* Flags for AdvInstallFile */
115 #define AIF_WARNIFSKIP 0x00000001
116 #define AIF_NOSKIP 0x00000002
117 #define AIF_NOVERSIONCHECK 0x00000004
118 #define AIF_FORCE_FILE_IN_USE 0x00000008
119 #define AIF_NOOVERWRITE 0x00000010
120 #define AIF_NO_VERSION_DIALOG 0x00000020
121 #define AIF_REPLACEONLY 0x00000400
122 #define AIF_NOLANGUAGECHECK 0x10000000
123 #define AIF_QUIET 0x20000000
125 /* Flags for RunSetupCommand */
126 #define RSC_FLAG_INF 0x00000001
127 #define RSC_FLAG_SKIPDISKSPACECHECK 0x00000002
128 #define RSC_FLAG_QUIET 0x00000004
129 #define RSC_FLAG_NGCONV 0x00000008
130 #define RSC_FLAG_UPDHLPDLLS 0x00000010
131 #define RSC_FLAG_DELAYREGISTEROCX 0x00000200
132 #define RSC_FLAG_SETUPAPI 0x00000400
134 /* Flags for DelNode */
135 #define ADN_DEL_IF_EMPTY 0x00000001
136 #define ADN_DONT_DEL_SUBDIRS 0x00000002
137 #define ADN_DONT_DEL_DIR 0x00000004
138 #define ADN_DEL_UNC_PATHS 0x00000008
140 /* Flags for RegRestoreAll, RegSaveRestore, RegSaveRestoreOnINF */
141 #define IE4_RESTORE 0x00000001
142 #define IE4_BACKNEW 0x00000002
143 #define IE4_NODELETENEW 0x00000004
144 #define IE4_NOMESSAGES 0x00000008
145 #define IE4_NOPROGRESS 0x00000010
146 #define IE4_NOENUMKEY 0x00000020
147 #define IE4_NO_CRC_MAPPING 0x00000040
148 #define IE4_REGSECTION 0x00000080
149 #define IE4_FRDOALL 0x00000100
150 #define IE4_UPDREFCNT 0x00000200
151 #define IE4_USEREFCNT 0x00000400
152 #define IE4_EXTRAINCREFCNT 0x00000800
154 /* Flags for file save and restore functions */
155 #define AFSR_RESTORE IE4_RESTORE
156 #define AFSR_BACKNEW IE4_BACKNEW
157 #define AFSR_NODELETENEW IE4_NODELETENEW
158 #define AFSR_NOMESSAGES IE4_NOMESSAGES
159 #define AFSR_NOPROGRESS IE4_NOPROGRESS
160 #define AFSR_UPDREFCNT IE4_UPDREFCNT
161 #define AFSR_USEREFCNT IE4_USEREFCNT
162 #define AFSR_EXTRAINCREFCNT IE4_EXTRAINCREFCNT
164 HRESULT WINAPI
AddDelBackupEntryA(LPCSTR lpcszFileList
, LPCSTR lpcszBackupDir
,
165 LPCSTR lpcszBaseName
, DWORD dwFlags
);
166 HRESULT WINAPI
AddDelBackupEntryW(LPCWSTR lpcszFileList
, LPCWSTR lpcszBackupDir
,
167 LPCWSTR lpcszBaseName
, DWORD dwFlags
);
168 #define AddDelBackupEntry WINELIB_NAME_AW(AddDelBackupEntry)
169 HRESULT WINAPI
AdvInstallFileA(HWND hwnd
, LPCSTR lpszSourceDir
,
170 LPCSTR lpszSourceFile
, LPCSTR lpszDestDir
, LPCSTR lpszDestFile
,
171 DWORD dwFlags
, DWORD dwReserved
);
172 HRESULT WINAPI
AdvInstallFileW(HWND hwnd
, LPCWSTR lpszSourceDir
,
173 LPCWSTR lpszSourceFile
, LPCWSTR lpszDestDir
, LPCWSTR lpszDestFile
,
174 DWORD dwFlags
, DWORD dwReserved
);
175 #define AdvInstallFile WINELIB_NAME_AW(AdvInstallFile)
176 HRESULT WINAPI
CloseINFEngine(HINF hInf
);
177 HRESULT WINAPI
DelNodeA(LPCSTR pszFileOrDirName
, DWORD dwFlags
);
178 HRESULT WINAPI
DelNodeW(LPCWSTR pszFileOrDirName
, DWORD dwFlags
);
179 #define DelNode WINELIB_NAME_AW(DelNode)
180 HRESULT WINAPI
DelNodeRunDLL32A(HWND
,HINSTANCE
,LPSTR
,INT
);
181 HRESULT WINAPI
DelNodeRunDLL32W(HWND
,HINSTANCE
,LPWSTR
,INT
);
182 #define DelNodeRunDLL32 WINELIB_NAME_AW(DelNodeRunDLL32)
183 HRESULT WINAPI
ExecuteCabA( HWND hwnd
, CABINFOA
* pCab
, LPVOID pReserved
);
184 HRESULT WINAPI
ExecuteCabW( HWND hwnd
, CABINFOW
* pCab
, LPVOID pReserved
);
185 #define ExecuteCab WINELIB_NAME_AW(ExecuteCab)
186 HRESULT WINAPI
ExtractFilesA(LPCSTR
,LPCSTR
,DWORD
,LPCSTR
,LPVOID
,DWORD
);
187 HRESULT WINAPI
ExtractFilesW(LPCWSTR
,LPCWSTR
,DWORD
,LPCWSTR
,LPVOID
,DWORD
);
188 #define ExtractFiles WINELIB_NAME_AW(ExtractFiles)
189 HRESULT WINAPI
FileSaveMarkNotExistA(LPSTR pszFileList
, LPSTR pszDir
, LPSTR pszBaseName
);
190 HRESULT WINAPI
FileSaveMarkNotExistW(LPWSTR pszFileList
, LPWSTR pszDir
, LPWSTR pszBaseName
);
191 #define FileSaveMarkNotExist WINELIB_NAME_AW(FileSaveMarkNotExist)
192 HRESULT WINAPI
FileSaveRestoreA(HWND hDlg
, LPSTR pszFileList
, LPSTR pszDir
,
193 LPSTR pszBaseName
, DWORD dwFlags
);
194 HRESULT WINAPI
FileSaveRestoreW(HWND hDlg
, LPWSTR pszFileList
, LPWSTR pszDir
,
195 LPWSTR pszBaseName
, DWORD dwFlags
);
196 #define FileSaveRestore WINELIB_NAME_AW(FileSaveRestore)
197 HRESULT WINAPI
FileSaveRestoreOnINFA(HWND hWnd
, LPCSTR pszTitle
, LPCSTR pszINF
,
198 LPCSTR pszSection
, LPCSTR pszBackupDir
, LPCSTR pszBaseBackupFile
, DWORD dwFlags
);
199 HRESULT WINAPI
FileSaveRestoreOnINFW(HWND hWnd
, LPCWSTR pszTitle
, LPCWSTR pszINF
,
200 LPCWSTR pszSection
, LPCWSTR pszBackupDir
, LPCWSTR pszBaseBackupFile
, DWORD dwFlags
);
201 #define FileSaveRestoreOnINF WINELIB_NAME_AW(FileSaveRestoreOnINF)
202 HRESULT WINAPI
GetVersionFromFileA(LPCSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
203 HRESULT WINAPI
GetVersionFromFileW(LPCWSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
204 #define GetVersionFromFile WINELIB_NAME_AW(GetVersionFromFile)
205 HRESULT WINAPI
GetVersionFromFileExA(LPCSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
206 HRESULT WINAPI
GetVersionFromFileExW(LPCWSTR lpszFilename
, LPDWORD pdwMSVer
, LPDWORD pdwLSVer
, BOOL bVersion
);
207 #define GetVersionFromFileEx WINELIB_NAME_AW(GetVersionFromFileEx)
208 BOOL WINAPI
IsNTAdmin(DWORD
,LPDWORD
);
209 INT WINAPI
LaunchINFSectionA(HWND
,HINSTANCE
,LPSTR
,INT
);
210 INT WINAPI
LaunchINFSectionW(HWND
,HINSTANCE
,LPWSTR
,INT
);
211 #define LaunchINFSection WINELIB_NAME_AW(LaunchINFSection)
212 HRESULT WINAPI
LaunchINFSectionExA(HWND
,HINSTANCE
,LPSTR
,INT
);
213 HRESULT WINAPI
LaunchINFSectionExW(HWND
,HINSTANCE
,LPWSTR
,INT
);
214 #define LaunchINFSectionEx WINELIB_NAME_AW(LaunchINFSectionEx)
215 DWORD WINAPI
NeedRebootInit(VOID
);
216 BOOL WINAPI
NeedReboot(DWORD dwRebootCheck
);
217 HRESULT WINAPI
OpenINFEngineA(LPCSTR pszInfFilename
, LPCSTR pszInstallSection
,
218 DWORD dwFlags
, HINF
*phInf
, PVOID pvReserved
);
219 HRESULT WINAPI
OpenINFEngineW(LPCWSTR pszInfFilename
, LPCWSTR pszInstallSection
,
220 DWORD dwFlags
, HINF
*phInf
, PVOID pvReserved
);
221 #define OpenINFEngine WINELIB_NAME_AW(OpenINFEngine)
222 HRESULT WINAPI
RebootCheckOnInstallA(HWND hWnd
, LPCSTR pszINF
, LPSTR pszSec
, DWORD dwReserved
);
223 HRESULT WINAPI
RebootCheckOnInstallW(HWND hWnd
, LPCWSTR pszINF
, LPWSTR pszSec
, DWORD dwReserved
);
224 #define RebootCheckOnInstall WINELIB_NAME_AW(RebootCheckOnInstall)
225 HRESULT WINAPI
RegInstallA(HMODULE hm
, LPCSTR pszSection
, const STRTABLEA
* pstTable
);
226 HRESULT WINAPI
RegInstallW(HMODULE hm
, LPCWSTR pszSection
, const STRTABLEW
* pstTable
);
227 #define RegInstall WINELIB_NAME_AW(RegInstall)
228 HRESULT WINAPI
RegRestoreAllA(HWND hWnd
, LPSTR pszTitleString
, HKEY hkBackupKey
);
229 HRESULT WINAPI
RegRestoreAllW(HWND hWnd
, LPWSTR pszTitleString
, HKEY hkBackupKey
);
230 #define RegRestoreAll WINELIB_NAME_AW(RegRestoreAll)
231 HRESULT WINAPI
RegSaveRestoreA(HWND hWnd
, LPCSTR pszTitleString
, HKEY hkBackupKey
,
232 LPCSTR pcszRootKey
, LPCSTR pcszSubKey
, LPCSTR pcszValueName
, DWORD dwFlags
);
233 HRESULT WINAPI
RegSaveRestoreW(HWND hWnd
, LPCWSTR pszTitleString
, HKEY hkBackupKey
,
234 LPCWSTR pcszRootKey
, LPCWSTR pcszSubKey
, LPCWSTR pcszValueName
, DWORD dwFlags
);
235 #define RegSaveRestore WINELIB_NAME_AW(RegSaveRestore)
236 HRESULT WINAPI
RegSaveRestoreOnINFA(HWND hWnd
, LPCSTR pszTitle
, LPCSTR pszINF
,
237 LPCSTR pszSection
, HKEY hHKLMBackKey
, HKEY hHKCUBackKey
, DWORD dwFlags
);
238 HRESULT WINAPI
RegSaveRestoreOnINFW(HWND hWnd
, LPCWSTR pszTitle
, LPCWSTR pszINF
,
239 LPCWSTR pszSection
, HKEY hHKLMBackKey
, HKEY hHKCUBackKey
, DWORD dwFlags
);
240 #define RegSaveRestoreOnINF WINELIB_NAME_AW(RegSaveRestoreOnINF)
241 HRESULT WINAPI
RunSetupCommandA(HWND hWnd
,
242 LPCSTR szCmdName
, LPCSTR szInfSection
, LPCSTR szDir
, LPCSTR lpszTitle
,
243 HANDLE
*phEXE
, DWORD dwFlags
, LPVOID pvReserved
);
244 HRESULT WINAPI
RunSetupCommandW(HWND hWnd
,
245 LPCWSTR szCmdName
, LPCWSTR szInfSection
, LPCWSTR szDir
, LPCWSTR lpszTitle
,
246 HANDLE
*phEXE
, DWORD dwFlags
, LPVOID pvReserved
);
247 #define RunSetupCommand WINELIB_NAME_AW(RunSetupCommand)
248 HRESULT WINAPI
SetPerUserSecValuesA(PPERUSERSECTIONA pPerUser
);
249 HRESULT WINAPI
SetPerUserSecValuesW(PPERUSERSECTIONW pPerUser
);
250 #define SetPerUserSecValues WINELIB_NAME_AW(SetPerUserSecValues)
251 HRESULT WINAPI
TranslateInfStringA(LPCSTR pszInfFilename
, LPCSTR pszInstallSection
,
252 LPCSTR pszTranslateSection
, LPCSTR pszTranslateKey
, LPSTR pszBuffer
,
253 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
254 HRESULT WINAPI
TranslateInfStringW(LPCWSTR pszInfFilename
, LPCWSTR pszInstallSection
,
255 LPCWSTR pszTranslateSection
, LPCWSTR pszTranslateKey
, LPWSTR pszBuffer
,
256 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
257 #define TranslateInfString WINELIB_NAME_AW(TranslateInfString)
258 HRESULT WINAPI
TranslateInfStringExA(HINF hInf
, LPCSTR pszInfFilename
,
259 LPCSTR pszTranslateSection
, LPCSTR pszTranslateKey
, LPSTR pszBuffer
,
260 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
261 HRESULT WINAPI
TranslateInfStringExW(HINF hInf
, LPCWSTR pszInfFilename
,
262 LPCWSTR pszTranslateSection
, LPCWSTR pszTranslateKey
, LPWSTR pszBuffer
,
263 DWORD dwBufferSize
, PDWORD pdwRequiredSize
, PVOID pvReserved
);
264 #define TranslateInfStringEx WINELIB_NAME_AW(TranslateInfStringEx)
265 HRESULT WINAPI
UserInstStubWrapperA(HWND hWnd
, HINSTANCE hInstance
, LPSTR pszParms
, INT nShow
);
266 HRESULT WINAPI
UserInstStubWrapperW(HWND hWnd
, HINSTANCE hInstance
, LPWSTR pszParms
, INT nShow
);
267 #define UserInstStubWrapper WINELIB_NAME_AW(UserInstStubWrapper)
268 HRESULT WINAPI
UserUnInstStubWrapperA(HWND hWnd
, HINSTANCE hInstance
, LPSTR pszParms
, INT nShow
);
269 HRESULT WINAPI
UserUnInstStubWrapperW(HWND hWnd
, HINSTANCE hInstance
, LPWSTR pszParms
, INT nShow
);
270 #define UserUnInstStubWrapper WINELIB_NAME_AW(UserUnInstStubWrapper)
276 #endif /* __WINE_ADVPUB_H */