1 #include <_mingw_unicode.h>
2 /*
3  * Copyright (C) 2007 Francois Gouget
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19 
20 #ifndef _WINE_WININETI_H_
21 #define _WINE_WININETI_H_
22 
23 /* FIXME: #include <iedial.h> */
24 #include <schannel.h>
25 #include <sspi.h>
26 
27 typedef struct _INTERNET_CACHE_CONFIG_PATH_ENTRYA
28 {
29     CHAR CachePath[MAX_PATH];
30     DWORD dwCacheSize;
31 } INTERNET_CACHE_CONFIG_PATH_ENTRYA, *LPINTERNET_CACHE_CONFIG_PATH_ENTRYA;
32 
33 typedef struct _INTERNET_CACHE_CONFIG_PATH_ENTRYW
34 {
35     WCHAR CachePath[MAX_PATH];
36     DWORD dwCacheSize;
37 } INTERNET_CACHE_CONFIG_PATH_ENTRYW, *LPINTERNET_CACHE_CONFIG_PATH_ENTRYW;
38 
39 __MINGW_TYPEDEF_AW(INTERNET_CACHE_CONFIG_PATH_ENTRY)
40 __MINGW_TYPEDEF_AW(LPINTERNET_CACHE_CONFIG_PATH_ENTRY)
41 
42 typedef struct _INTERNET_CACHE_CONFIG_INFOA
43 {
44     DWORD dwStructSize;
45     DWORD dwContainer;
46     DWORD dwQuota;
47     DWORD dwReserved4;
48     WINBOOL fPerUser;
49     DWORD dwSyncMode;
50     DWORD dwNumCachePaths;
51     __C89_NAMELESS union
52     {
53         __C89_NAMELESS struct
54         {
55             CHAR CachePath[MAX_PATH];
56             DWORD dwCacheSize;
57         } __C89_NAMELESSSTRUCTNAME;
58         INTERNET_CACHE_CONFIG_PATH_ENTRYA CachePaths[ANYSIZE_ARRAY];
59     } __C89_NAMELESSUNIONNAME;
60     DWORD dwNormalUsage;
61     DWORD dwExemptUsage;
62 } INTERNET_CACHE_CONFIG_INFOA, *LPINTERNET_CACHE_CONFIG_INFOA;
63 
64 typedef struct _INTERNET_CACHE_CONFIG_INFOW
65 {
66     DWORD dwStructSize;
67     DWORD dwContainer;
68     DWORD dwQuota;
69     DWORD dwReserved4;
70     WINBOOL  fPerUser;
71     DWORD dwSyncMode;
72     DWORD dwNumCachePaths;
73     __C89_NAMELESS union
74     {
75         __C89_NAMELESS struct
76         {
77             WCHAR CachePath[MAX_PATH];
78             DWORD dwCacheSize;
79         } __C89_NAMELESSSTRUCTNAME;
80         INTERNET_CACHE_CONFIG_PATH_ENTRYW CachePaths[ANYSIZE_ARRAY];
81     } __C89_NAMELESSUNIONNAME;
82     DWORD dwNormalUsage;
83     DWORD dwExemptUsage;
84 } INTERNET_CACHE_CONFIG_INFOW, *LPINTERNET_CACHE_CONFIG_INFOW;
85 
86 __MINGW_TYPEDEF_AW(INTERNET_CACHE_CONFIG_INFO)
87 __MINGW_TYPEDEF_AW(LPINTERNET_CACHE_CONFIG_INFO)
88 
89 typedef enum {
90     WININET_SYNC_MODE_NEVER = 0,
91     WININET_SYNC_MODE_ON_EXPIRY,
92     WININET_SYNC_MODE_ONCE_PER_SESSION,
93     WININET_SYNC_MODE_ALWAYS,
94     WININET_SYNC_MODE_AUTOMATIC,
95     WININET_SYNC_MODE_DEFAULT = WININET_SYNC_MODE_AUTOMATIC
96 } WININET_SYNC_MODE;
97 
98 /* Flags for GetUrlCacheConfigInfoA/W and SetUrlCacheConfigInfoA/W */
99 #define CACHE_CONFIG_FORCE_CLEANUP_FC        0x00000020
100 #define CACHE_CONFIG_DISK_CACHE_PATHS_FC     0x00000040
101 #define CACHE_CONFIG_SYNC_MODE_FC            0x00000080
102 #define CACHE_CONFIG_CONTENT_PATHS_FC        0x00000100
103 #define CACHE_CONFIG_COOKIES_PATHS_FC        0x00000200
104 #define CACHE_CONFIG_HISTORY_PATHS_FC        0x00000400
105 #define CACHE_CONFIG_QUOTA_FC                0x00000800
106 #define CACHE_CONFIG_USER_MODE_FC            0x00001000
107 #define CACHE_CONFIG_CONTENT_USAGE_FC        0x00002000
108 #define CACHE_CONFIG_STICKY_CONTENT_USAGE_FC 0x00004000
109 
110 #define ERROR_INTERNET_NO_NEW_CONTAINERS            (INTERNET_ERROR_BASE + 51)
111 #define ERROR_INTERNET_SOURCE_PORT_IN_USE           (INTERNET_ERROR_BASE + 58)
112 #define ERROR_INTERNET_INSECURE_FALLBACK_REQUIRED   (INTERNET_ERROR_BASE + 59)
113 #define ERROR_INTERNET_PROXY_ALERT                  (INTERNET_ERROR_BASE + 61)
114 #define ERROR_INTERNET_NO_CM_CONNECTION             (INTERNET_ERROR_BASE + 80)
115 #define ERROR_HTTP_PUSH_STATUS_CODE_NOT_SUPPORTED   (INTERNET_ERROR_BASE + 147)
116 #define ERROR_HTTP_PUSH_RETRY_NOT_SUPPORTED         (INTERNET_ERROR_BASE + 148)
117 #define ERROR_HTTP_PUSH_ENABLE_FAILED               (INTERNET_ERROR_BASE + 149)
118 
119 #define ERROR_INTERNET_OFFLINE                      ERROR_INTERNET_DISCONNECTED
120 
121 #ifdef __cplusplus
122 extern "C" {
123 #endif
124 
125 DWORD       WINAPI DeleteIE3Cache(HWND,HINSTANCE,LPSTR,int);
126 WINBOOL     WINAPI GetDiskInfoA(PCSTR,PDWORD,PDWORDLONG,PDWORDLONG);
127 WINBOOL     WINAPI GetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,LPDWORD,DWORD);
128 WINBOOL     WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,LPDWORD,DWORD);
129 #define     GetUrlCacheConfigInfo __MINGW_NAME_AW(GetUrlCacheConfigInfo)
130 WINBOOL     WINAPI IncrementUrlCacheHeaderData(DWORD,LPDWORD);
131 WINBOOL     WINAPI InternetQueryFortezzaStatus(DWORD*,DWORD_PTR);
132 WINBOOL     WINAPI IsUrlCacheEntryExpiredA(LPCSTR,DWORD,FILETIME*);
133 WINBOOL     WINAPI IsUrlCacheEntryExpiredW(LPCWSTR,DWORD,FILETIME*);
134 #define     IsUrlCacheEntryExpired __MINGW_NAME_AW(IsUrlCacheEntryExpired)
135 DWORD       WINAPI ParseX509EncodedCertificateForListBoxEntry(LPBYTE,DWORD,LPSTR,LPDWORD);
136 WINBOOL     WINAPI SetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,DWORD);
137 WINBOOL     WINAPI SetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,DWORD);
138 #define     SetUrlCacheConfigInfo __MINGW_NAME_AW(SetUrlCacheConfigInfo)
139 WINBOOL     WINAPI InternetGetSecurityInfoByURLA(LPSTR,PCCERT_CHAIN_CONTEXT*,DWORD*);
140 WINBOOL     WINAPI InternetGetSecurityInfoByURLW(LPCWSTR,PCCERT_CHAIN_CONTEXT*,DWORD*);
141 #define     InternetGetSecurityInfoByURL __MINGW_NAME_AW(InternetGetSecurityInfoByURL)
142 
143 #ifdef __cplusplus
144 }
145 #endif
146 
147 #endif /* _WINE_WININETI_H_ */
148