xref: /reactos/sdk/include/psdk/winineti.h (revision f64bdd07)
1 /*
2  * Copyright (C) 2007 Francois Gouget
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 
19 #ifndef _WINE_WININETI_H_
20 #define _WINE_WININETI_H_
21 
22 /* FIXME: #include <iedial.h> */
23 #include <schannel.h>
24 #include <sspi.h>
25 
26 typedef struct _INTERNET_CACHE_CONFIG_PATH_ENTRYA
27 {
28     CHAR CachePath[MAX_PATH];
29     DWORD dwCacheSize;
30 } INTERNET_CACHE_CONFIG_PATH_ENTRYA, *LPINTERNET_CACHE_CONFIG_PATH_ENTRYA;
31 
32 typedef struct _INTERNET_CACHE_CONFIG_PATH_ENTRYW
33 {
34     WCHAR CachePath[MAX_PATH];
35     DWORD dwCacheSize;
36 } INTERNET_CACHE_CONFIG_PATH_ENTRYW, *LPINTERNET_CACHE_CONFIG_PATH_ENTRYW;
37 
38 DECL_WINELIB_TYPE_AW(INTERNET_CACHE_CONFIG_PATH_ENTRY)
39 DECL_WINELIB_TYPE_AW(LPINTERNET_CACHE_CONFIG_PATH_ENTRY)
40 
41 typedef struct _INTERNET_CACHE_CONFIG_INFOA
42 {
43     DWORD dwStructSize;
44     DWORD dwContainer;
45     DWORD dwQuota;
46     DWORD dwReserved4;
47     BOOL fPerUser;
48     DWORD dwSyncMode;
49     DWORD dwNumCachePaths;
50     __C89_NAMELESS union
51     {
52         __C89_NAMELESS struct
53         {
54             CHAR CachePath[MAX_PATH];
55             DWORD dwCacheSize;
56         } __C89_NAMELESSSTRUCTNAME;
57         INTERNET_CACHE_CONFIG_PATH_ENTRYA CachePaths[ANYSIZE_ARRAY];
58     } __C89_NAMELESSUNIONNAME;
59     DWORD dwNormalUsage;
60     DWORD dwExemptUsage;
61 } INTERNET_CACHE_CONFIG_INFOA, *LPINTERNET_CACHE_CONFIG_INFOA;
62 
63 typedef struct _INTERNET_CACHE_CONFIG_INFOW
64 {
65     DWORD dwStructSize;
66     DWORD dwContainer;
67     DWORD dwQuota;
68     DWORD dwReserved4;
69     BOOL  fPerUser;
70     DWORD dwSyncMode;
71     DWORD dwNumCachePaths;
72     __C89_NAMELESS union
73     {
74         __C89_NAMELESS struct
75         {
76             WCHAR CachePath[MAX_PATH];
77             DWORD dwCacheSize;
78         } __C89_NAMELESSSTRUCTNAME;
79         INTERNET_CACHE_CONFIG_PATH_ENTRYW CachePaths[ANYSIZE_ARRAY];
80     } __C89_NAMELESSUNIONNAME;
81     DWORD dwNormalUsage;
82     DWORD dwExemptUsage;
83 } INTERNET_CACHE_CONFIG_INFOW, *LPINTERNET_CACHE_CONFIG_INFOW;
84 
85 DECL_WINELIB_TYPE_AW(INTERNET_CACHE_CONFIG_INFO)
86 DECL_WINELIB_TYPE_AW(LPINTERNET_CACHE_CONFIG_INFO)
87 
88 typedef enum {
89     WININET_SYNC_MODE_NEVER = 0,
90     WININET_SYNC_MODE_ON_EXPIRY,
91     WININET_SYNC_MODE_ONCE_PER_SESSION,
92     WININET_SYNC_MODE_ALWAYS,
93     WININET_SYNC_MODE_AUTOMATIC,
94     WININET_SYNC_MODE_DEFAULT = WININET_SYNC_MODE_AUTOMATIC
95 } WININET_SYNC_MODE;
96 
97 /* Flags for GetUrlCacheConfigInfoA/W and SetUrlCacheConfigInfoA/W */
98 #define CACHE_CONFIG_FORCE_CLEANUP_FC        0x00000020
99 #define CACHE_CONFIG_DISK_CACHE_PATHS_FC     0x00000040
100 #define CACHE_CONFIG_SYNC_MODE_FC            0x00000080
101 #define CACHE_CONFIG_CONTENT_PATHS_FC        0x00000100
102 #define CACHE_CONFIG_COOKIES_PATHS_FC        0x00000200
103 #define CACHE_CONFIG_HISTORY_PATHS_FC        0x00000400
104 #define CACHE_CONFIG_QUOTA_FC                0x00000800
105 #define CACHE_CONFIG_USER_MODE_FC            0x00001000
106 #define CACHE_CONFIG_CONTENT_USAGE_FC        0x00002000
107 #define CACHE_CONFIG_STICKY_CONTENT_USAGE_FC 0x00004000
108 
109 #define ERROR_INTERNET_NO_NEW_CONTAINERS            (INTERNET_ERROR_BASE + 51)
110 #define ERROR_INTERNET_SOURCE_PORT_IN_USE           (INTERNET_ERROR_BASE + 58)
111 #define ERROR_INTERNET_INSECURE_FALLBACK_REQUIRED   (INTERNET_ERROR_BASE + 59)
112 #define ERROR_INTERNET_PROXY_ALERT                  (INTERNET_ERROR_BASE + 61)
113 #define ERROR_INTERNET_NO_CM_CONNECTION             (INTERNET_ERROR_BASE + 80)
114 #define ERROR_HTTP_PUSH_STATUS_CODE_NOT_SUPPORTED   (INTERNET_ERROR_BASE + 147)
115 #define ERROR_HTTP_PUSH_RETRY_NOT_SUPPORTED         (INTERNET_ERROR_BASE + 148)
116 #define ERROR_HTTP_PUSH_ENABLE_FAILED               (INTERNET_ERROR_BASE + 149)
117 
118 #define ERROR_INTERNET_OFFLINE                      ERROR_INTERNET_DISCONNECTED
119 
120 #ifdef __cplusplus
121 extern "C" {
122 #endif
123 
124 DWORD       WINAPI DeleteIE3Cache(HWND,HINSTANCE,LPSTR,int);
125 BOOL        WINAPI GetDiskInfoA(PCSTR,PDWORD,PDWORDLONG,PDWORDLONG);
126 BOOL        WINAPI GetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,LPDWORD,DWORD);
127 BOOL        WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,LPDWORD,DWORD);
128 #define     GetUrlCacheConfigInfo WINELIB_NAME_AW(GetUrlCacheConfigInfo)
129 BOOL        WINAPI IncrementUrlCacheHeaderData(DWORD,LPDWORD);
130 BOOL        WINAPI InternetQueryFortezzaStatus(DWORD*,DWORD_PTR);
131 BOOL        WINAPI IsUrlCacheEntryExpiredA(LPCSTR,DWORD,FILETIME*);
132 BOOL        WINAPI IsUrlCacheEntryExpiredW(LPCWSTR,DWORD,FILETIME*);
133 #define     IsUrlCacheEntryExpired WINELIB_NAME_AW(IsUrlCacheEntryExpired)
134 BOOL        WINAPI SetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,DWORD);
135 BOOL        WINAPI SetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,DWORD);
136 #define     SetUrlCacheConfigInfo WINELIB_NAME_AW(SetUrlCacheConfigInfo)
137 BOOL        WINAPI InternetGetSecurityInfoByURLA(LPSTR,PCCERT_CHAIN_CONTEXT*,DWORD*);
138 BOOL        WINAPI InternetGetSecurityInfoByURLW(LPCWSTR,PCCERT_CHAIN_CONTEXT*,DWORD*);
139 #define     InternetGetSecurityInfoByURL WINELIB_NAME_AW(InternetGetSecurityInfoByURL)
140 
141 #ifdef __cplusplus
142 }
143 #endif
144 
145 #endif /* _WINE_WININETI_H_ */
146