~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/advpub.h

Version: ~ [ wine-1.0-rc1 ] ~ [ wine-0.9.61 ] ~ [ wine-0.9.60 ] ~ [ wine-0.9.59 ] ~ [ wine-0.9.58 ] ~ [ wine-0.9.57 ] ~ [ wine-0.9.56 ] ~ [ wine-0.9.55 ] ~ [ wine-0.9.54 ] ~ [ wine-0.9.53 ] ~ [ wine-0.9.52 ] ~ [ wine-0.9.51 ] ~ [ wine-0.9.50 ] ~ [ wine-0.9.49 ] ~ [ wine-0.9.48 ] ~ [ wine-0.9.47 ] ~ [ wine-0.9.46 ] ~ [ wine-0.9.45 ] ~ [ wine-0.9.44 ] ~ [ wine-0.9.43 ] ~ [ wine-0.9.42 ] ~ [ wine-0.9.41 ] ~ [ wine-0.9.40 ] ~ [ wine-0.9.39 ] ~ [ wine-0.9.38 ] ~ [ wine-0.9.37 ] ~ [ wine-0.9.36 ] ~ [ wine-0.9.35 ] ~ [ wine-0.9.34 ] ~ [ wine-0.9.33 ] ~ [ wine-0.9.32 ] ~ [ wine-0.9.31 ] ~ [ wine-0.9.30 ] ~ [ wine-0.9.29 ] ~ [ wine-0.9.28 ] ~ [ wine-0.9.27 ] ~ [ wine-0.9.26 ] ~ [ wine-0.9.25 ] ~ [ wine-0.9.24 ] ~ [ wine-0.9.23 ] ~ [ wine-0.9.22 ] ~ [ wine-0.9.21 ] ~ [ wine-0.9.20 ] ~ [ wine-0.9.19 ] ~ [ wine-0.9.18 ] ~ [ wine-0.9.17 ] ~ [ wine-0.9.16 ] ~ [ wine-0.9.15 ] ~ [ wine-0.9.14 ] ~ [ wine-0.9.13 ] ~ [ wine-0.9.12 ] ~ [ wine-0.9.11 ] ~ [ wine-0.9.10 ] ~ [ wine-0.9.9 ] ~ [ wine-0.9.8 ] ~ [ wine-0.9.7 ] ~ [ wine-0.9.6 ] ~ [ wine-0.9.5 ] ~ [ wine-0.9.4 ] ~ [ wine-0.9.3 ] ~ [ wine-0.9.2 ] ~ [ wine-0.9.1 ] ~ [ wine-0.9 ] ~ [ wine20050930 ] ~ [ wine20050830 ] ~ [ wine20050725 ] ~ [ wine20050628 ] ~ [ wine20050524 ] ~ [ wine20050419 ] ~ [ wine20050310 ] ~ [ wine20050211 ] ~ [ wine20050111 ] ~ [ wine20041201 ] ~ [ wine20041019 ] ~ [ wine20040914 ] ~ [ wine20040813 ] ~ [ wine20040716 ] ~ [ wine20040615 ] ~ [ wine20040505 ] ~ [ wine20040408 ] ~ [ wine20040309 ] ~ [ wine20040213 ] ~ [ wine20040121 ] ~ [ wine20031212 ] ~ [ wine20031118 ] ~ [ wine20031016 ] ~ [ wine20030911 ] ~ [ wine20030813 ] ~ [ wine20030709 ] ~ [ wine20030618 ] ~ [ wine20030508 ] ~ [ wine20030408 ] ~ [ wine20030318 ] ~ [ wine20030219 ] ~ [ wine20030115 ] ~ [ wine20021219 ] ~ [ wine20021125 ] ~ [ wine20021031 ] ~ [ wine20021007 ] ~ [ wine20020904 ] ~ [ wine20020804 ] ~ [ wine20020710 ] ~ [ wine20020605 ] ~ [ wine20020509 ] ~ [ wine20020411 ] ~ [ wine20020310 ] ~ [ wine20020228 ] ~ [ wine20011226 ] ~ [ wine20011108 ] ~ [ wine20011004 ] ~ [ wine20010824 ] ~ [ wine20010731 ] ~ [ wine20010629 ] ~ [ wine20010510 ] ~ [ wine20010418 ] ~ [ wine20010326 ] ~ [ wine20010305 ] ~ [ wine20010216 ] ~ [ wine20010112 ] ~ [ wine20001222 ] ~ [ wine20001202 ] ~ [ wine20001026 ] ~ [ wine20001002 ] ~ [ wine20000909 ] ~ [ wine20000821 ] ~ [ wine20000801 ] ~ [ wine20000716 ] ~ [ wine20000326 ] ~ [ wine20000227 ] ~ [ wine20000130 ] ~ [ wine20000109 ] ~

  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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 17  */
 18 #ifndef __WINE_ADVPUB_H
 19 #define __WINE_ADVPUB_H
 20 
 21 #include <setupapi.h>
 22 #include <cfgmgr32.h>
 23 
 24 #ifdef __cplusplus
 25 extern "C" {
 26 #endif
 27 
 28 #ifndef S_ASYNCHRONOUS
 29 #define S_ASYNCHRONOUS  _HRESULT_TYPEDEF_(0x401E8L)
 30 #endif
 31 
 32 typedef struct _CabInfoA
 33 {
 34     LPSTR  pszCab;
 35     LPSTR  pszInf;
 36     LPSTR  pszSection;
 37     CHAR   szSrcPath[MAX_PATH];
 38     DWORD  dwFlags;
 39 } CABINFOA, *PCABINFOA;
 40 
 41 typedef struct _CabInfoW
 42 {
 43     LPWSTR pszCab;
 44     LPWSTR pszInf;
 45     LPWSTR pszSection;
 46     WCHAR  szSrcPath[MAX_PATH];
 47     DWORD  dwFlags;
 48 } CABINFOW, *PCABINFOW;
 49 
 50 DECL_WINELIB_TYPE_AW(CABINFO)
 51 DECL_WINELIB_TYPE_AW(PCABINFO)
 52 
 53 typedef struct _PERUSERSECTIONA
 54 {
 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;
 64 
 65 typedef struct _PERUSERSECTIONW
 66 {
 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;
 76 
 77 DECL_WINELIB_TYPE_AW(PERUSERSECTION)
 78 DECL_WINELIB_TYPE_AW(PPERUSERSECTION)
 79 
 80 typedef struct _StrEntryA
 81 {
 82     LPSTR pszName;
 83     LPSTR pszValue;
 84 } STRENTRYA, *LPSTRENTRYA;
 85 
 86 typedef struct _StrEntryW
 87 {
 88     LPWSTR pszName;
 89     LPWSTR pszValue;
 90 } STRENTRYW, *LPSTRENTRYW;
 91 
 92 DECL_WINELIB_TYPE_AW(STRENTRY)
 93 DECL_WINELIB_TYPE_AW(LPSTRENTRY)
 94 
 95 typedef struct _StrTableA
 96 {
 97     DWORD cEntries;
 98     STRENTRYA* pse;
 99 } STRTABLEA, *LPSTRTABLEA;
100 typedef const STRTABLEA CSTRTABLEA, *LPCSTRTABLEA;
101 
102 typedef struct _StrTableW
103 {
104     DWORD cEntries;
105     STRENTRYW* pse;
106 } STRTABLEW, *LPSTRTABLEW;
107 typedef const STRTABLEW CSTRTABLEW, *LPCSTRTABLEW;
108 
109 DECL_WINELIB_TYPE_AW(STRTABLE)
110 DECL_WINELIB_TYPE_AW(CSTRTABLE)
111 DECL_WINELIB_TYPE_AW(LPSTRTABLE)
112 DECL_WINELIB_TYPE_AW(LPCSTRTABLE)
113 
114 /* Flags for AddDelBackupEntry */
115 #define AADBE_ADD_ENTRY             0x01
116 #define AADBE_DEL_ENTRY             0x02
117 
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
128 
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
137 
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
143 
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
157 
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
167 
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)
275 
276 #ifdef __cplusplus
277 }
278 #endif
279 
280 #endif /* __WINE_ADVPUB_H */
281 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.