widl: Always check the runtimeclass interfaces presence.
[wine/zf.git] / include / advpub.h
blob7823e0a5c20d4618d016ecf4b44ab3096712941b
1 /*
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
21 #include <setupapi.h>
22 #include <cfgmgr32.h>
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
28 #ifndef S_ASYNCHRONOUS
29 #define S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x401E8)
30 #endif
32 typedef struct _CabInfoA
34 LPSTR pszCab;
35 LPSTR pszInf;
36 LPSTR pszSection;
37 CHAR szSrcPath[MAX_PATH];
38 DWORD dwFlags;
39 } CABINFOA, *PCABINFOA;
41 typedef struct _CabInfoW
43 LPWSTR pszCab;
44 LPWSTR pszInf;
45 LPWSTR pszSection;
46 WCHAR szSrcPath[MAX_PATH];
47 DWORD dwFlags;
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];
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;
65 typedef struct _PERUSERSECTIONW
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;
77 DECL_WINELIB_TYPE_AW(PERUSERSECTION)
78 DECL_WINELIB_TYPE_AW(PPERUSERSECTION)
80 typedef struct _StrEntryA
82 LPSTR pszName;
83 LPSTR pszValue;
84 } STRENTRYA, *LPSTRENTRYA;
86 typedef struct _StrEntryW
88 LPWSTR pszName;
89 LPWSTR pszValue;
90 } STRENTRYW, *LPSTRENTRYW;
92 DECL_WINELIB_TYPE_AW(STRENTRY)
93 DECL_WINELIB_TYPE_AW(LPSTRENTRY)
95 typedef struct _StrTableA
97 DWORD cEntries;
98 STRENTRYA* pse;
99 } STRTABLEA, *LPSTRTABLEA;
100 typedef const STRTABLEA CSTRTABLEA, *LPCSTRTABLEA;
102 typedef struct _StrTableW
104 DWORD cEntries;
105 STRENTRYW* pse;
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 LaunchINFSection */
139 #define LIS_QUIET 0x00000001
140 #define LIS_NOGRPCONV 0x00000002
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
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
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
172 HRESULT WINAPI AddDelBackupEntryA(LPCSTR lpcszFileList, LPCSTR lpcszBackupDir,
173 LPCSTR lpcszBaseName, DWORD dwFlags);
174 HRESULT WINAPI AddDelBackupEntryW(LPCWSTR lpcszFileList, LPCWSTR lpcszBackupDir,
175 LPCWSTR lpcszBaseName, DWORD dwFlags);
176 #define AddDelBackupEntry WINELIB_NAME_AW(AddDelBackupEntry)
177 HRESULT WINAPI AdvInstallFileA(HWND hwnd, LPCSTR lpszSourceDir,
178 LPCSTR lpszSourceFile, LPCSTR lpszDestDir, LPCSTR lpszDestFile,
179 DWORD dwFlags, DWORD dwReserved);
180 HRESULT 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)
184 HRESULT WINAPI CloseINFEngine(HINF hInf);
185 HRESULT WINAPI DelNodeA(LPCSTR pszFileOrDirName, DWORD dwFlags);
186 HRESULT WINAPI DelNodeW(LPCWSTR pszFileOrDirName, DWORD dwFlags);
187 #define DelNode WINELIB_NAME_AW(DelNode)
188 HRESULT WINAPI DelNodeRunDLL32A(HWND,HINSTANCE,LPSTR,INT);
189 HRESULT WINAPI DelNodeRunDLL32W(HWND,HINSTANCE,LPWSTR,INT);
190 #define DelNodeRunDLL32 WINELIB_NAME_AW(DelNodeRunDLL32)
191 HRESULT WINAPI ExecuteCabA( HWND hwnd, CABINFOA* pCab, LPVOID pReserved );
192 HRESULT WINAPI ExecuteCabW( HWND hwnd, CABINFOW* pCab, LPVOID pReserved );
193 #define ExecuteCab WINELIB_NAME_AW(ExecuteCab)
194 HRESULT WINAPI ExtractFilesA(LPCSTR,LPCSTR,DWORD,LPCSTR,LPVOID,DWORD);
195 HRESULT WINAPI ExtractFilesW(LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPVOID,DWORD);
196 #define ExtractFiles WINELIB_NAME_AW(ExtractFiles)
197 HRESULT WINAPI FileSaveMarkNotExistA(LPSTR pszFileList, LPSTR pszDir, LPSTR pszBaseName);
198 HRESULT WINAPI FileSaveMarkNotExistW(LPWSTR pszFileList, LPWSTR pszDir, LPWSTR pszBaseName);
199 #define FileSaveMarkNotExist WINELIB_NAME_AW(FileSaveMarkNotExist)
200 HRESULT WINAPI FileSaveRestoreA(HWND hDlg, LPSTR pszFileList, LPSTR pszDir,
201 LPSTR pszBaseName, DWORD dwFlags);
202 HRESULT WINAPI FileSaveRestoreW(HWND hDlg, LPWSTR pszFileList, LPWSTR pszDir,
203 LPWSTR pszBaseName, DWORD dwFlags);
204 #define FileSaveRestore WINELIB_NAME_AW(FileSaveRestore)
205 HRESULT WINAPI FileSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF,
206 LPCSTR pszSection, LPCSTR pszBackupDir, LPCSTR pszBaseBackupFile, DWORD dwFlags);
207 HRESULT WINAPI FileSaveRestoreOnINFW(HWND hWnd, LPCWSTR pszTitle, LPCWSTR pszINF,
208 LPCWSTR pszSection, LPCWSTR pszBackupDir, LPCWSTR pszBaseBackupFile, DWORD dwFlags);
209 #define FileSaveRestoreOnINF WINELIB_NAME_AW(FileSaveRestoreOnINF)
210 HRESULT WINAPI GetVersionFromFileA(LPCSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion);
211 HRESULT WINAPI GetVersionFromFileW(LPCWSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion);
212 #define GetVersionFromFile WINELIB_NAME_AW(GetVersionFromFile)
213 HRESULT WINAPI GetVersionFromFileExA(LPCSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion);
214 HRESULT WINAPI GetVersionFromFileExW(LPCWSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion);
215 #define GetVersionFromFileEx WINELIB_NAME_AW(GetVersionFromFileEx)
216 BOOL WINAPI IsNTAdmin(DWORD,LPDWORD);
217 INT WINAPI LaunchINFSectionA(HWND,HINSTANCE,LPSTR,INT);
218 INT WINAPI LaunchINFSectionW(HWND,HINSTANCE,LPWSTR,INT);
219 #define LaunchINFSection WINELIB_NAME_AW(LaunchINFSection)
220 HRESULT WINAPI LaunchINFSectionExA(HWND,HINSTANCE,LPSTR,INT);
221 HRESULT WINAPI LaunchINFSectionExW(HWND,HINSTANCE,LPWSTR,INT);
222 #define LaunchINFSectionEx WINELIB_NAME_AW(LaunchINFSectionEx)
223 DWORD WINAPI NeedRebootInit(VOID);
224 BOOL WINAPI NeedReboot(DWORD dwRebootCheck);
225 HRESULT WINAPI OpenINFEngineA(LPCSTR pszInfFilename, LPCSTR pszInstallSection,
226 DWORD dwFlags, HINF *phInf, PVOID pvReserved);
227 HRESULT WINAPI OpenINFEngineW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection,
228 DWORD dwFlags, HINF *phInf, PVOID pvReserved);
229 #define OpenINFEngine WINELIB_NAME_AW(OpenINFEngine)
230 HRESULT WINAPI RebootCheckOnInstallA(HWND hWnd, LPCSTR pszINF, LPCSTR pszSec, DWORD dwReserved);
231 HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF, LPCWSTR pszSec, DWORD dwReserved);
232 #define RebootCheckOnInstall WINELIB_NAME_AW(RebootCheckOnInstall)
233 HRESULT WINAPI RegInstallA(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable);
234 HRESULT WINAPI RegInstallW(HMODULE hm, LPCWSTR pszSection, const STRTABLEW* pstTable);
235 #define RegInstall WINELIB_NAME_AW(RegInstall)
236 HRESULT WINAPI RegRestoreAllA(HWND hWnd, LPSTR pszTitleString, HKEY hkBackupKey);
237 HRESULT WINAPI RegRestoreAllW(HWND hWnd, LPWSTR pszTitleString, HKEY hkBackupKey);
238 #define RegRestoreAll WINELIB_NAME_AW(RegRestoreAll)
239 HRESULT WINAPI RegSaveRestoreA(HWND hWnd, LPCSTR pszTitleString, HKEY hkBackupKey,
240 LPCSTR pcszRootKey, LPCSTR pcszSubKey, LPCSTR pcszValueName, DWORD dwFlags);
241 HRESULT WINAPI RegSaveRestoreW(HWND hWnd, LPCWSTR pszTitleString, HKEY hkBackupKey,
242 LPCWSTR pcszRootKey, LPCWSTR pcszSubKey, LPCWSTR pcszValueName, DWORD dwFlags);
243 #define RegSaveRestore WINELIB_NAME_AW(RegSaveRestore)
244 HRESULT WINAPI RegSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF,
245 LPCSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags);
246 HRESULT WINAPI RegSaveRestoreOnINFW(HWND hWnd, LPCWSTR pszTitle, LPCWSTR pszINF,
247 LPCWSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags);
248 #define RegSaveRestoreOnINF WINELIB_NAME_AW(RegSaveRestoreOnINF)
249 HRESULT WINAPI RunSetupCommandA(HWND hWnd,
250 LPCSTR szCmdName, LPCSTR szInfSection, LPCSTR szDir, LPCSTR lpszTitle,
251 HANDLE *phEXE, DWORD dwFlags, LPVOID pvReserved);
252 HRESULT WINAPI RunSetupCommandW(HWND hWnd,
253 LPCWSTR szCmdName, LPCWSTR szInfSection, LPCWSTR szDir, LPCWSTR lpszTitle,
254 HANDLE *phEXE, DWORD dwFlags, LPVOID pvReserved);
255 #define RunSetupCommand WINELIB_NAME_AW(RunSetupCommand)
256 HRESULT WINAPI SetPerUserSecValuesA(PERUSERSECTIONA* pPerUser);
257 HRESULT WINAPI SetPerUserSecValuesW(PERUSERSECTIONW* pPerUser);
258 #define SetPerUserSecValues WINELIB_NAME_AW(SetPerUserSecValues)
259 HRESULT WINAPI TranslateInfStringA(LPCSTR pszInfFilename, LPCSTR pszInstallSection,
260 LPCSTR pszTranslateSection, LPCSTR pszTranslateKey, LPSTR pszBuffer,
261 DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved);
262 HRESULT WINAPI TranslateInfStringW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection,
263 LPCWSTR pszTranslateSection, LPCWSTR pszTranslateKey, LPWSTR pszBuffer,
264 DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved);
265 #define TranslateInfString WINELIB_NAME_AW(TranslateInfString)
266 HRESULT WINAPI TranslateInfStringExA(HINF hInf, LPCSTR pszInfFilename,
267 LPCSTR pszTranslateSection, LPCSTR pszTranslateKey, LPSTR pszBuffer,
268 DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved);
269 HRESULT WINAPI TranslateInfStringExW(HINF hInf, LPCWSTR pszInfFilename,
270 LPCWSTR pszTranslateSection, LPCWSTR pszTranslateKey, LPWSTR pszBuffer,
271 DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved);
272 #define TranslateInfStringEx WINELIB_NAME_AW(TranslateInfStringEx)
273 HRESULT WINAPI UserInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow);
274 HRESULT WINAPI UserInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow);
275 #define UserInstStubWrapper WINELIB_NAME_AW(UserInstStubWrapper)
276 HRESULT WINAPI UserUnInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow);
277 HRESULT WINAPI UserUnInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow);
278 #define UserUnInstStubWrapper WINELIB_NAME_AW(UserUnInstStubWrapper)
280 #ifdef __cplusplus
282 #endif
284 #endif /* __WINE_ADVPUB_H */