mshtml: Properly handle fragment-only navigation.
[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
25 typedef struct _INTERNET_CACHE_CONFIG_PATH_ENTRYA
26 {
27     CHAR CachePath[MAX_PATH];
28     DWORD dwCacheSize;
29 } INTERNET_CACHE_CONFIG_PATH_ENTRYA, *LPINTERNET_CACHE_CONFIG_PATH_ENTRYA;
30
31 typedef struct _INTERNET_CACHE_CONFIG_PATH_ENTRYW
32 {
33     WCHAR CachePath[MAX_PATH];
34     DWORD dwCacheSize;
35 } INTERNET_CACHE_CONFIG_PATH_ENTRYW, *LPINTERNET_CACHE_CONFIG_PATH_ENTRYW;
36
37 DECL_WINELIB_TYPE_AW(INTERNET_CACHE_CONFIG_PATH_ENTRY)
38 DECL_WINELIB_TYPE_AW(LPINTERNET_CACHE_CONFIG_PATH_ENTRY)
39
40 typedef struct _INTERNET_CACHE_CONFIG_INFOA
41 {
42     DWORD dwStructSize;
43     DWORD dwContainer;
44     DWORD dwQuota;
45     DWORD dwReserved4;
46     BOOL fPerUser;
47     DWORD dwSyncMode;
48     DWORD dwNumCachePaths;
49     __C89_NAMELESS union
50     {
51         __C89_NAMELESS struct
52         {
53             CHAR CachePath[MAX_PATH];
54             DWORD dwCacheSize;
55         } __C89_NAMELESSSTRUCTNAME;
56         INTERNET_CACHE_CONFIG_PATH_ENTRYA CachePaths[ANYSIZE_ARRAY];
57     } __C89_NAMELESSUNIONNAME;
58     DWORD dwNormalUsage;
59     DWORD dwExemptUsage;
60 } INTERNET_CACHE_CONFIG_INFOA, *LPINTERNET_CACHE_CONFIG_INFOA;
61
62 typedef struct _INTERNET_CACHE_CONFIG_INFOW
63 {
64     DWORD dwStructSize;
65     DWORD dwContainer;
66     DWORD dwQuota;
67     DWORD dwReserved4;
68     BOOL  fPerUser;
69     DWORD dwSyncMode;
70     DWORD dwNumCachePaths;
71     __C89_NAMELESS union
72     {
73         __C89_NAMELESS struct
74         {
75             WCHAR CachePath[MAX_PATH];
76             DWORD dwCacheSize;
77         } __C89_NAMELESSSTRUCTNAME;
78         INTERNET_CACHE_CONFIG_PATH_ENTRYW CachePaths[ANYSIZE_ARRAY];
79     } __C89_NAMELESSUNIONNAME;
80     DWORD dwNormalUsage;
81     DWORD dwExemptUsage;
82 } INTERNET_CACHE_CONFIG_INFOW, *LPINTERNET_CACHE_CONFIG_INFOW;
83
84 DECL_WINELIB_TYPE_AW(INTERNET_CACHE_CONFIG_INFO)
85 DECL_WINELIB_TYPE_AW(LPINTERNET_CACHE_CONFIG_INFO)
86
87 typedef enum {
88     WININET_SYNC_MODE_NEVER = 0,
89     WININET_SYNC_MODE_ON_EXPIRY,
90     WININET_SYNC_MODE_ONCE_PER_SESSION,
91     WININET_SYNC_MODE_ALWAYS,
92     WININET_SYNC_MODE_AUTOMATIC,
93     WININET_SYNC_MODE_DEFAULT = WININET_SYNC_MODE_AUTOMATIC
94 } WININET_SYNC_MODE;
95
96 /* Flags for GetUrlCacheConfigInfoA/W and SetUrlCacheConfigInfoA/W */
97 #define CACHE_CONFIG_FORCE_CLEANUP_FC        0x00000020
98 #define CACHE_CONFIG_DISK_CACHE_PATHS_FC     0x00000040
99 #define CACHE_CONFIG_SYNC_MODE_FC            0x00000080
100 #define CACHE_CONFIG_CONTENT_PATHS_FC        0x00000100
101 #define CACHE_CONFIG_COOKIES_PATHS_FC        0x00000200
102 #define CACHE_CONFIG_HISTORY_PATHS_FC        0x00000400
103 #define CACHE_CONFIG_QUOTA_FC                0x00000800
104 #define CACHE_CONFIG_USER_MODE_FC            0x00001000
105 #define CACHE_CONFIG_CONTENT_USAGE_FC        0x00002000
106 #define CACHE_CONFIG_STICKY_CONTENT_USAGE_FC 0x00004000
107
108 #ifdef __cplusplus
109 extern "C" {
110 #endif
111
112 DWORD       WINAPI DeleteIE3Cache(HWND,HINSTANCE,LPSTR,int);
113 BOOL        WINAPI GetDiskInfoA(PCSTR,PDWORD,PDWORDLONG,PDWORDLONG);
114 BOOL        WINAPI GetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,LPDWORD,DWORD);
115 BOOL        WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,LPDWORD,DWORD);
116 #define     GetUrlCacheConfigInfo WINELIB_NAME_AW(GetUrlCacheConfigInfo)
117 BOOL        WINAPI IncrementUrlCacheHeaderData(DWORD,LPDWORD);
118 BOOL        WINAPI InternetQueryFortezzaStatus(DWORD*,DWORD_PTR);
119 BOOL        WINAPI IsUrlCacheEntryExpiredA(LPCSTR,DWORD,FILETIME*);
120 BOOL        WINAPI IsUrlCacheEntryExpiredW(LPCWSTR,DWORD,FILETIME*);
121 #define     IsUrlCacheEntryExpired WINELIB_NAME_AW(IsUrlCacheEntryExpired)
122 BOOL        WINAPI SetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA,DWORD);
123 BOOL        WINAPI SetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,DWORD);
124 #define     SetUrlCacheConfigInfo WINELIB_NAME_AW(SetUrlCacheConfigInfo)
125
126 #ifdef __cplusplus
127 }
128 #endif
129
130 #endif /* _WINE_WININETI_H_ */