winhttp: Make strings in WINHTTP_PROXY_INFO non-const.
[wine] / include / winineti.h
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 #ifdef __cplusplus
110 extern "C" {
111 #endif
112
113 DWORD       WINAPI DeleteIE3Cache(HWND,HINSTANCE,LPSTR,int);
114 BOOL        WINAPI GetDiskInfoA(PCSTR,PDWORD,PDWORDLONG,PDWORDLONG);
115 BOOL        WINAPI GetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,LPDWORD,DWORD);
116 BOOL        WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,LPDWORD,DWORD);
117 #define     GetUrlCacheConfigInfo WINELIB_NAME_AW(GetUrlCacheConfigInfo)
118 BOOL        WINAPI IncrementUrlCacheHeaderData(DWORD,LPDWORD);
119 BOOL        WINAPI InternetQueryFortezzaStatus(DWORD*,DWORD_PTR);
120 BOOL        WINAPI IsUrlCacheEntryExpiredA(LPCSTR,DWORD,FILETIME*);
121 BOOL        WINAPI IsUrlCacheEntryExpiredW(LPCWSTR,DWORD,FILETIME*);
122 #define     IsUrlCacheEntryExpired WINELIB_NAME_AW(IsUrlCacheEntryExpired)
123 BOOL        WINAPI SetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,DWORD);
124 BOOL        WINAPI SetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,DWORD);
125 #define     SetUrlCacheConfigInfo WINELIB_NAME_AW(SetUrlCacheConfigInfo)
126 BOOL        WINAPI InternetGetSecurityInfoByURLA(LPSTR,PCCERT_CHAIN_CONTEXT*,DWORD*);
127 BOOL        WINAPI InternetGetSecurityInfoByURLW(LPCWSTR,PCCERT_CHAIN_CONTEXT*,DWORD*);
128 #define     InternetGetSecurityInfoByURL WINELIB_NAME_AW(InternetGetSecurityInfoByURL)
129
130 #ifdef __cplusplus
131 }
132 #endif
133
134 #endif /* _WINE_WININETI_H_ */