comctl32: A couple fixes for tab icon offsets.
[wine] / include / advpub.h
1 /*
2  * Copyright 2004 Huw D M Davies
3  *
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.
8  *
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.
13  *
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
17  */
18 #ifndef __WINE_ADVPUB_H
19 #define __WINE_ADVPUB_H
20
21 #include <setupapi.h>
22 /* FIXME: #include <cfgmgr32.h> */
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 typedef struct _CabInfoA
29 {
30     LPSTR  pszCab;
31     LPSTR  pszInf;
32     LPSTR  pszSection;
33     CHAR   szSrcPath[MAX_PATH];
34     DWORD  dwFlags;
35 } CABINFOA, *PCABINFOA;
36
37 typedef struct _CabInfoW
38 {
39     LPWSTR pszCab;
40     LPWSTR pszInf;
41     LPWSTR pszSection;
42     WCHAR  szSrcPath[MAX_PATH];
43     DWORD  dwFlags;
44 } CABINFOW, *PCABINFOW;
45
46 DECL_WINELIB_TYPE_AW(CABINFO)
47 DECL_WINELIB_TYPE_AW(PCABINFO)
48
49 typedef struct _PERUSERSECTIONA
50 {
51     CHAR  szGUID[39 /*MAX_GUID_STRING_LEN*/ + 20];
52     CHAR  szDispName[128];
53     CHAR  szLocale[10];
54     CHAR  szStub[MAX_PATH * 4];
55     CHAR  szVersion[32];
56     CHAR  szCompID[128];
57     DWORD dwIsInstalled;
58     BOOL  bRollback;
59 } PERUSERSECTIONA, *PPERUSERSECTIONA;
60
61 typedef struct _PERUSERSECTIONW
62 {
63     WCHAR szGUID[39 /*MAX_GUID_STRING_LEN*/ + 20];
64     WCHAR szDispName[128];
65     WCHAR szLocale[10];
66     WCHAR szStub[MAX_PATH * 4];
67     WCHAR szVersion[32];
68     WCHAR szCompID[128];
69     DWORD dwIsInstalled;
70     BOOL  bRollback;
71 } PERUSERSECTIONW, *PPERUSERSECTIONW;
72
73 DECL_WINELIB_TYPE_AW(PERUSERSECTION)
74 DECL_WINELIB_TYPE_AW(PPERUSERSECTION)
75
76 typedef struct _StrEntryA
77 {
78     LPSTR pszName;
79     LPSTR pszValue;
80 } STRENTRYA, *LPSTRENTRYA;
81
82 typedef struct _StrEntryW
83 {
84     LPWSTR pszName;
85     LPWSTR pszValue;
86 } STRENTRYW, *LPSTRENTRYW;
87
88 DECL_WINELIB_TYPE_AW(STRENTRY)
89 DECL_WINELIB_TYPE_AW(LPSTRENTRY)
90
91 typedef struct _StrTableA
92 {
93     DWORD cEntries;
94     STRENTRYA* pse;
95 } STRTABLEA, *LPSTRTABLEA;
96 typedef const STRTABLEA CSTRTABLEA, *LPCSTRTABLEA;
97
98 typedef struct _StrTableW
99 {
100     DWORD cEntries;
101     STRENTRYW* pse;
102 } STRTABLEW, *LPSTRTABLEW;
103 typedef const STRTABLEW CSTRTABLEW, *LPCSTRTABLEW;
104
105 DECL_WINELIB_TYPE_AW(STRTABLE)
106 DECL_WINELIB_TYPE_AW(CSTRTABLE)
107 DECL_WINELIB_TYPE_AW(LPSTRTABLE)
108 DECL_WINELIB_TYPE_AW(LPCSTRTABLE)
109
110 /* Flags for AddDelBackupEntry */
111 #define AADBE_ADD_ENTRY             0x01
112 #define AADBE_DEL_ENTRY             0x02
113
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
124
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
133
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
139
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
153
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
163
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)
271
272 #ifdef __cplusplus
273 }
274 #endif
275
276 #endif /* __WINE_ADVPUB_H */