msxml3: Return E_INVALIDARG when value is NULL.
[wine] / include / winhttp.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_WINHTTP_H
20 #define __WINE_WINHTTP_H
21
22 #define WINHTTPAPI
23 #define BOOLAPI WINHTTPAPI BOOL WINAPI
24
25
26 typedef LPVOID HINTERNET;
27 typedef HINTERNET *LPHINTERNET;
28
29 #define INTERNET_DEFAULT_PORT           0
30 #define INTERNET_DEFAULT_HTTP_PORT      80
31 #define INTERNET_DEFAULT_HTTPS_PORT     443
32 typedef WORD INTERNET_PORT;
33 typedef INTERNET_PORT *LPINTERNET_PORT;
34
35 #define INTERNET_SCHEME_HTTP            1
36 #define INTERNET_SCHEME_HTTPS           2
37 typedef int INTERNET_SCHEME, *LPINTERNET_SCHEME;
38
39 typedef struct
40 {
41     DWORD   dwStructSize;
42     LPWSTR  lpszScheme;
43     DWORD   dwSchemeLength;
44     INTERNET_SCHEME nScheme;
45     LPWSTR  lpszHostName;
46     DWORD   dwHostNameLength;
47     INTERNET_PORT nPort;
48     LPWSTR  lpszUserName;
49     DWORD   dwUserNameLength;
50     LPWSTR  lpszPassword;
51     DWORD   dwPasswordLength;
52     LPWSTR  lpszUrlPath;
53     DWORD   dwUrlPathLength;
54     LPWSTR  lpszExtraInfo;
55     DWORD   dwExtraInfoLength;
56 } URL_COMPONENTS, *LPURL_COMPONENTS;
57 typedef URL_COMPONENTS URL_COMPONENTSW;
58 typedef LPURL_COMPONENTS LPURL_COMPONENTSW;
59
60 typedef struct
61 {
62     DWORD_PTR dwResult;
63     DWORD dwError;
64 } WINHTTP_ASYNC_RESULT, *LPWINHTTP_ASYNC_RESULT;
65
66 typedef struct
67 {
68     FILETIME ftExpiry;
69     FILETIME ftStart;
70     LPWSTR lpszSubjectInfo;
71     LPWSTR lpszIssuerInfo;
72     LPWSTR lpszProtocolName;
73     LPWSTR lpszSignatureAlgName;
74     LPWSTR lpszEncryptionAlgName;
75     DWORD dwKeySize;
76 } WINHTTP_CERTIFICATE_INFO;
77
78 typedef struct
79 {
80     DWORD dwAccessType;
81     LPCWSTR lpszProxy;
82     LPCWSTR lpszProxyBypass;
83 } WINHTTP_PROXY_INFO, *LPWINHTTP_PROXY_INFO;
84 typedef WINHTTP_PROXY_INFO WINHTTP_PROXY_INFOW;
85 typedef LPWINHTTP_PROXY_INFO LPWINHTTP_PROXY_INFOW;
86
87 typedef struct
88 {
89     BOOL   fAutoDetect;
90     LPWSTR lpszAutoConfigUrl;
91     LPWSTR lpszProxy;
92     LPWSTR lpszProxyBypass;
93 } WINHTTP_CURRENT_USER_IE_PROXY_CONFIG;
94
95
96 #ifdef __cplusplus
97 extern "C" {
98 #endif
99
100 BOOL        WINAPI WinHttpCheckPlatform(void);
101 BOOL        WINAPI WinHttpGetIEProxyConfigForCurrentUser(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG* config);
102
103 #ifdef __cplusplus
104 }
105 #endif
106
107 #endif  /* __WINE_WINHTTP_H */