ReactOS  0.4.15-dev-2991-g632fa1c
dialogs.c
Go to the documentation of this file.
1 #ifdef __REACTOS__
2 #include "precomp.h"
3 #else
4 /*
5  * Wininet
6  *
7  * Copyright 2003 Mike McCormack for CodeWeavers Inc.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22  */
23 
24 #include "ws2tcpip.h"
25 
26 #include <stdarg.h>
27 
28 #include "windef.h"
29 #include "winbase.h"
30 #include "winuser.h"
31 #include "winreg.h"
32 #include "wininet.h"
33 #include "winnetwk.h"
34 #include "wine/debug.h"
35 #include "winerror.h"
36 #define NO_SHLWAPI_STREAM
37 #include "shlwapi.h"
38 #include "cryptuiapi.h"
39 
40 #include "internet.h"
41 #include "resource.h"
42 #endif /* defined(__REACTOS__) */
43 
44 #define MAX_STRING_LEN 1024
45 
47 
49 {
55 };
56 
57 /***********************************************************************
58  * WININET_GetAuthRealm
59  *
60  * Determine the name of the (basic) Authentication realm
61  */
62 static BOOL WININET_GetAuthRealm( HINTERNET hRequest, LPWSTR szBuf, DWORD sz, BOOL proxy )
63 {
64  LPWSTR p, q;
65  DWORD index, query;
66 
67  if (proxy)
69  else
71 
72  /* extract the Realm from the response and show it */
73  index = 0;
74  if( !HttpQueryInfoW( hRequest, query, szBuf, &sz, &index) )
75  return FALSE;
76 
77  /*
78  * FIXME: maybe we should check that we're
79  * dealing with 'Basic' Authentication
80  */
81  p = wcschr( szBuf, ' ' );
82  if( !p || wcsncmp( p+1, L"realm=", lstrlenW(L"realm=") ) )
83  {
84  ERR("response wrong? (%s)\n", debugstr_w(szBuf));
85  return FALSE;
86  }
87 
88  /* remove quotes */
89  p += 7;
90  if( *p == '"' )
91  {
92  p++;
93  q = wcsrchr( p, '"' );
94  if( q )
95  *q = 0;
96  }
97  lstrcpyW( szBuf, p );
98 
99  return TRUE;
100 }
101 
102 /* These two are not defined in the public headers */
105 
106 /***********************************************************************
107  * WININET_GetSetPassword
108  */
109 static BOOL WININET_GetSetPassword( HWND hdlg, LPCWSTR szServer,
110  LPCWSTR szRealm, BOOL bSet )
111 {
112  WCHAR szResource[0x80], szUserPass[0x40];
113  LPWSTR p;
114  HWND hUserItem, hPassItem;
115  DWORD r, dwMagic = 19;
116  UINT r_len, u_len;
117  WORD sz;
118 
119  hUserItem = GetDlgItem( hdlg, IDC_USERNAME );
120  hPassItem = GetDlgItem( hdlg, IDC_PASSWORD );
121 
122  /* now try fetch the username and password */
123  lstrcpyW( szResource, szServer);
124  lstrcatW( szResource, L"/");
125  lstrcatW( szResource, szRealm);
126 
127  /*
128  * WNetCachePassword is only concerned with the length
129  * of the data stored (which we tell it) and it does
130  * not use strlen() internally so we can add WCHAR data
131  * instead of ASCII data and get it back the same way.
132  */
133  if( bSet )
134  {
135  szUserPass[0] = 0;
136  GetWindowTextW( hUserItem, szUserPass, ARRAY_SIZE( szUserPass ) - 1 );
137  lstrcatW(szUserPass, L":");
138  u_len = lstrlenW( szUserPass );
139  GetWindowTextW( hPassItem, szUserPass+u_len, ARRAY_SIZE( szUserPass ) - u_len );
140 
141  r_len = (lstrlenW( szResource ) + 1)*sizeof(WCHAR);
142  u_len = (lstrlenW( szUserPass ) + 1)*sizeof(WCHAR);
143  r = WNetCachePassword( (CHAR*)szResource, r_len,
144  (CHAR*)szUserPass, u_len, dwMagic, 0 );
145 
146  return ( r == WN_SUCCESS );
147  }
148 
149  sz = sizeof szUserPass;
150  r_len = (lstrlenW( szResource ) + 1)*sizeof(WCHAR);
151  r = WNetGetCachedPassword( (CHAR*)szResource, r_len,
152  (CHAR*)szUserPass, &sz, dwMagic );
153  if( r != WN_SUCCESS )
154  return FALSE;
155 
156  p = wcschr( szUserPass, ':' );
157  if( p )
158  {
159  *p = 0;
160  SetWindowTextW( hUserItem, szUserPass );
161  SetWindowTextW( hPassItem, p+1 );
162  }
163 
164  return TRUE;
165 }
166 
167 /***********************************************************************
168  * WININET_SetAuthorization
169  */
172 {
173  http_session_t *session = request->session;
174  LPWSTR p, q;
175 
177  if( !p )
178  return FALSE;
179 
181  if( !q )
182  {
183  heap_free(p);
184  return FALSE;
185  }
186 
187  if (proxy)
188  {
189  appinfo_t *hIC = session->appInfo;
190 
191  heap_free(hIC->proxyUsername);
192  hIC->proxyUsername = p;
193 
194  heap_free(hIC->proxyPassword);
195  hIC->proxyPassword = q;
196  }
197  else
198  {
199  heap_free(session->userName);
200  session->userName = p;
201 
202  heap_free(session->password);
203  session->password = q;
204  }
205 
206  return TRUE;
207 }
208 
209 /***********************************************************************
210  * WININET_ProxyPasswordDialog
211  */
213  HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
214 {
215  HWND hitem;
217  WCHAR szRealm[0x80];
218 
219  if( uMsg == WM_INITDIALOG )
220  {
221  TRACE("WM_INITDIALOG (%08lx)\n", lParam);
222 
223  /* save the parameter list */
226 
227  /* extract the Realm from the proxy response and show it */
228  if( WININET_GetAuthRealm( params->req->hdr.hInternet,
229  szRealm, ARRAY_SIZE( szRealm ), TRUE ) )
230  {
231  hitem = GetDlgItem( hdlg, IDC_REALM );
232  SetWindowTextW( hitem, szRealm );
233  }
234 
235  hitem = GetDlgItem( hdlg, IDC_PROXY );
236  SetWindowTextW( hitem, params->req->session->appInfo->proxy );
237 
238  WININET_GetSetPassword( hdlg, params->req->session->appInfo->proxy, szRealm, FALSE );
239 
240  return TRUE;
241  }
242 
243  params = (struct WININET_ErrorDlgParams*)
245 
246  switch( uMsg )
247  {
248  case WM_COMMAND:
249  if( wParam == IDOK )
250  {
251  WCHAR username[0x20], password[0x20];
252 
253  username[0] = 0;
254  hitem = GetDlgItem( hdlg, IDC_USERNAME );
255  if( hitem )
257 
258  password[0] = 0;
259  hitem = GetDlgItem( hdlg, IDC_PASSWORD );
260  if( hitem )
262 
263  hitem = GetDlgItem( hdlg, IDC_SAVEPASSWORD );
264  if( hitem &&
265  SendMessageW( hitem, BM_GETSTATE, 0, 0 ) &&
266  WININET_GetAuthRealm( params->req->hdr.hInternet,
267  szRealm, ARRAY_SIZE( szRealm ), TRUE) )
268  WININET_GetSetPassword( hdlg, params->req->session->appInfo->proxy, szRealm, TRUE );
270 
272  return TRUE;
273  }
274  if( wParam == IDCANCEL )
275  {
276  EndDialog( hdlg, 0 );
277  return TRUE;
278  }
279  break;
280  }
281  return FALSE;
282 }
283 
284 /***********************************************************************
285  * WININET_PasswordDialog
286  */
288  HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
289 {
290  HWND hitem;
292  WCHAR szRealm[0x80];
293 
294  if( uMsg == WM_INITDIALOG )
295  {
296  TRACE("WM_INITDIALOG (%08lx)\n", lParam);
297 
298  /* save the parameter list */
301 
302  /* extract the Realm from the response and show it */
303  if( WININET_GetAuthRealm( params->req->hdr.hInternet,
304  szRealm, ARRAY_SIZE( szRealm ), FALSE ) )
305  {
306  hitem = GetDlgItem( hdlg, IDC_REALM );
307  SetWindowTextW( hitem, szRealm );
308  }
309 
310  hitem = GetDlgItem( hdlg, IDC_SERVER );
311  SetWindowTextW( hitem, params->req->session->hostName );
312 
313  WININET_GetSetPassword( hdlg, params->req->session->hostName, szRealm, FALSE );
314 
315  return TRUE;
316  }
317 
318  params = (struct WININET_ErrorDlgParams*)
320 
321  switch( uMsg )
322  {
323  case WM_COMMAND:
324  if( wParam == IDOK )
325  {
326  WCHAR username[0x20], password[0x20];
327 
328  username[0] = 0;
329  hitem = GetDlgItem( hdlg, IDC_USERNAME );
330  if( hitem )
332 
333  password[0] = 0;
334  hitem = GetDlgItem( hdlg, IDC_PASSWORD );
335  if( hitem )
337 
338  hitem = GetDlgItem( hdlg, IDC_SAVEPASSWORD );
339  if( hitem &&
340  SendMessageW( hitem, BM_GETSTATE, 0, 0 ) &&
341  WININET_GetAuthRealm( params->req->hdr.hInternet,
342  szRealm, ARRAY_SIZE( szRealm ), FALSE ))
343  {
344  WININET_GetSetPassword( hdlg, params->req->session->hostName, szRealm, TRUE );
345  }
347 
349  return TRUE;
350  }
351  if( wParam == IDCANCEL )
352  {
353  EndDialog( hdlg, 0 );
354  return TRUE;
355  }
356  break;
357  }
358  return FALSE;
359 }
360 
361 /***********************************************************************
362  * WININET_InvalidCertificateDialog
363  */
365  HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
366 {
368  HWND hitem;
369  WCHAR buf[1024];
370 
371  if( uMsg == WM_INITDIALOG )
372  {
373  TRACE("WM_INITDIALOG (%08lx)\n", lParam);
374 
375  /* save the parameter list */
378 
379  switch( params->dwError )
380  {
383  break;
386  break;
389  break;
391  /* FIXME: We should fetch information about the
392  * certificate here and show all the relevant errors.
393  */
395  break;
396  default:
397  FIXME( "No message for error %d\n", params->dwError );
398  buf[0] = '\0';
399  }
400 
401  hitem = GetDlgItem( hdlg, IDC_CERT_ERROR );
402  SetWindowTextW( hitem, buf );
403 
404  return TRUE;
405  }
406 
407  params = (struct WININET_ErrorDlgParams*)
409 
410  switch( uMsg )
411  {
412  case WM_COMMAND:
413  if( wParam == IDOK )
414  {
416  {
417  http_request_t *req = params->req;
418  DWORD flags, size = sizeof(flags);
419 
421  switch( params->dwError )
422  {
425  break;
428  break;
431  break;
434  break;
444  break;
445  }
446  /* FIXME: Use helper function */
451  }
452 
453  EndDialog( hdlg, ERROR_SUCCESS );
454  return TRUE;
455  }
456  if( wParam == IDCANCEL )
457  {
458  TRACE("Pressed cancel.\n");
459 
460  EndDialog( hdlg, ERROR_CANCELLED );
461  return TRUE;
462  }
463  break;
464  }
465 
466  return FALSE;
467 }
468 
469 /***********************************************************************
470  * InternetErrorDlg
471  */
474 {
478 
479  TRACE("%p %p %d %08x %p\n", hWnd, hRequest, dwError, dwFlags, lppvData);
480 
482  return ERROR_INVALID_HANDLE;
483 
484  if(hRequest) {
485  req = (http_request_t*)get_handle_object(hRequest);
486  if(!req)
487  return ERROR_INVALID_HANDLE;
488  if(req->hdr.htype != WH_HHTTPREQ)
489  return ERROR_SUCCESS; /* Yes, that was tested */
490  }
491 
492  params.req = req;
493  params.hWnd = hWnd;
494  params.dwError = dwError;
495  params.dwFlags = dwFlags;
496  params.lppvData = lppvData;
497 
498  switch( dwError )
499  {
500  case ERROR_SUCCESS:
503  break;
504  if(!req)
505  return ERROR_INVALID_HANDLE;
506 
507  switch(req->status_code) {
511  break;
512  case HTTP_STATUS_DENIED:
515  break;
516  default:
517  WARN("unhandled status %u\n", req->status_code);
518  }
519  break;
520  }
528  break;
529  }
530  if(!req)
531  return ERROR_INVALID_HANDLE;
532 
533 
535  FIXME("%08x contains unsupported flags.\n", dwFlags);
536 
539  break;
542  FIXME("Need to display dialog for error %d\n", dwError);
543  res = ERROR_SUCCESS;
544  break;
545  default:
547  }
548 
549  if(req)
551  return res;
552 }
553 
554 /***********************************************************************
555  * InternetShowSecurityInfoByURLA (@)
556  */
558 {
559  FIXME("stub: %s %p\n", url, window);
560  return FALSE;
561 }
562 
563 /***********************************************************************
564  * InternetShowSecurityInfoByURLW (@)
565  */
567 {
568  FIXME("stub: %s %p\n", debugstr_w(url), window);
569  return FALSE;
570 }
571 
572 /***********************************************************************
573  * ParseX509EncodedCertificateForListBoxEntry (@)
574  */
576 {
577  FIXME("stub: %p %d %s %p\n", cert, len, debugstr_a(szlistbox), listbox);
579 }
580 
581 /***********************************************************************
582  * ShowX509EncodedCertificate (@)
583  */
585 {
587  cert, len);
588  DWORD ret;
589 
590  if (certContext)
591  {
593 
594  memset(&view, 0, sizeof(view));
595  view.hwndParent = parent;
596  view.pCertContext = certContext;
598  ret = ERROR_SUCCESS;
599  else
600  ret = GetLastError();
601  CertFreeCertificateContext(certContext);
602  }
603  else
604  ret = GetLastError();
605  return ret;
606 }
static INT_PTR WINAPI WININET_ProxyPasswordDialog(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialogs.c:212
#define ERROR_INTERNET_SEC_CERT_CN_INVALID
Definition: wininet.h:2026
int proxy
Definition: main.c:67
#define IDOK
Definition: winuser.h:824
#define SECURITY_FLAG_IGNORE_UNKNOWN_CA
Definition: winhttp.h:281
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
#define ERROR_SUCCESS
Definition: deptool.c:10
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define WN_SUCCESS
Definition: winnetwk.h:111
BOOL WINAPI InternetShowSecurityInfoByURLW(LPCWSTR url, HWND window)
Definition: dialogs.c:566
#define TRUE
Definition: types.h:120
#define ERROR_INTERNET_SEC_CERT_REV_FAILED
Definition: wininet.h:2044
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define BM_GETSTATE
Definition: winuser.h:1902
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
char CHAR
Definition: xmlstorage.h:175
#define WARN(fmt,...)
Definition: debug.h:112
#define ERROR_INVALID_HANDLE
Definition: compat.h:98
static BOOL WININET_GetSetPassword(HWND hdlg, LPCWSTR szServer, LPCWSTR szRealm, BOOL bSet)
Definition: dialogs.c:109
#define HTTP_QUERY_PROXY_AUTHENTICATE
Definition: wininet.h:1564
#define IDC_PROXY
Definition: mprres.h:28
HWND hWnd
Definition: settings.c:17
http_request_t * req
Definition: dialogs.c:50
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
UINT_PTR WPARAM
Definition: windef.h:207
BOOL WINAPI InternetShowSecurityInfoByURLA(LPCSTR url, HWND window)
Definition: dialogs.c:557
#define GetWindowLongPtrW
Definition: winuser.h:4804
#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID
Definition: winhttp.h:283
int32_t INT_PTR
Definition: typedefs.h:64
char * LPSTR
Definition: xmlstorage.h:182
#define HTTP_QUERY_WWW_AUTHENTICATE
Definition: wininet.h:1563
#define lstrlenW
Definition: compat.h:609
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
WPARAM wParam
Definition: combotst.c:138
LPWSTR proxyUsername
Definition: internet.h:295
#define IDD_AUTHDLG
Definition: resource.h:27
static INT_PTR WINAPI WININET_PasswordDialog(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialogs.c:287
#define IDD_PROXYDLG
Definition: mprres.h:26
#define SECURITY_FLAG_IGNORE_REVOCATION
Definition: wininet.h:829
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
static BOOL WININET_GetAuthRealm(HINTERNET hRequest, LPWSTR szBuf, DWORD sz, BOOL proxy)
Definition: dialogs.c:62
unsigned char * LPBYTE
Definition: typedefs.h:53
#define FLAGS_ERROR_UI_FILTER_FOR_ERRORS
Definition: wininet.h:1906
#define FALSE
Definition: types.h:117
GLenum const GLfloat * params
Definition: glext.h:5645
#define FLAGS_ERROR_UI_FLAGS_NO_UI
Definition: wininet.h:1909
HMODULE WININET_hModule
Definition: internet.c:73
unsigned int BOOL
Definition: ntddk_ex.h:94
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178
#define IDS_CERT_DATE_INVALID
Definition: resource.h:40
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:111
#define FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS
Definition: wininet.h:1907
#define IDS_CERT_ERRORS
Definition: resource.h:42
#define GWLP_USERDATA
Definition: treelist.c:63
object_header_t hdr
Definition: internet.h:345
#define ERROR_INTERNET_SEC_CERT_ERRORS
Definition: wininet.h:2042
LONG_PTR LPARAM
Definition: windef.h:208
#define IDD_INVCERTDLG
Definition: resource.h:26
static BYTE cert[]
Definition: msg.c:1437
DWORD security_flags
Definition: internet.h:81
GLuint index
Definition: glext.h:6031
const char * LPCSTR
Definition: xmlstorage.h:183
#define HTTP_STATUS_DENIED
Definition: winhttp.h:256
DWORD WINAPI WNetCachePassword(LPSTR, WORD, LPSTR, WORD, BYTE, WORD)
Definition: pwcache.c:85
static WCHAR username[]
Definition: url.c:32
netconn_t * netconn
Definition: internet.h:351
#define IDC_SAVEPASSWORD
Definition: mprres.h:32
LPWSTR proxyPassword
Definition: internet.h:296
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
#define IDS_CERT_CA_INVALID
Definition: resource.h:39
r parent
Definition: btrfs.c:2944
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
static const WCHAR url[]
Definition: encode.c:1432
#define WINAPI
Definition: msvc.h:6
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
#define _SECURITY_FLAG_CERT_INVALID_CN
Definition: internet.h:474
#define IDS_CERT_CN_INVALID
Definition: resource.h:41
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
GLbitfield flags
Definition: glext.h:7161
DWORD security_flags
Definition: internet.h:352
#define IDC_USERNAME
Definition: resource.h:77
int ret
BOOL WINAPI HttpQueryInfoW(HINTERNET hHttpRequest, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex)
Definition: http.c:3870
#define index(s, c)
Definition: various.h:29
static const WCHAR L[]
Definition: oid.c:1250
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
T1_FIELD_DICT_PRIVATE password
Definition: t1tokens.h:64
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
GLenum GLsizei len
Definition: glext.h:6722
static BOOL WININET_SetAuthorization(http_request_t *request, LPWSTR username, LPWSTR password, BOOL proxy)
Definition: dialogs.c:170
#define WM_COMMAND
Definition: winuser.h:1722
#define wcsrchr
Definition: compat.h:16
static IHTMLWindow2 * window
Definition: events.c:77
#define ERROR_INTERNET_FORCE_RETRY
Definition: wininet.h:2021
unsigned char BYTE
Definition: xxhash.c:193
HINTERNET hInternet
Definition: internet.h:275
#define HTTP_STATUS_PROXY_AUTH_REQ
Definition: winhttp.h:262
#define ERROR_INTERNET_POST_IS_NON_SECURE
Definition: wininet.h:2031
BOOL WININET_Release(object_header_t *info)
Definition: internet.c:211
uint16_t * LPWORD
Definition: typedefs.h:56
WINE_DEFAULT_DEBUG_CHANNEL(wininet)
#define ERR(fmt,...)
Definition: debug.h:110
#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID
Definition: winhttp.h:282
DWORD status_code
Definition: internet.h:357
#define ERROR_INTERNET_SEC_CERT_DATE_INVALID
Definition: wininet.h:2025
#define ERROR_INTERNET_INVALID_CA
Definition: wininet.h:2033
#define ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR
Definition: wininet.h:2027
#define lstrcpyW
Definition: compat.h:608
#define ERROR_CANCELLED
Definition: winerror.h:726
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1412
BOOL is_valid_netconn(netconn_t *) DECLSPEC_HIDDEN
#define INTERNET_OPTION_SECURITY_FLAGS
Definition: wininet.h:725
static INT_PTR WINAPI WININET_InvalidCertificateDialog(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialogs.c:364
#define ARRAY_SIZE(a)
Definition: main.h:24
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define _SECURITY_FLAG_CERT_INVALID_DATE
Definition: internet.h:475
DWORD WINAPI WNetGetCachedPassword(LPSTR, WORD, LPSTR, LPWORD, BYTE)
Definition: pwcache.c:180
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
BOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged)
Definition: main.c:4395
Definition: tftpd.h:85
#define ERROR_INTERNET_INCORRECT_PASSWORD
Definition: wininet.h:2003
DWORD WINAPI ParseX509EncodedCertificateForListBoxEntry(LPBYTE cert, DWORD len, LPSTR szlistbox, LPDWORD listbox)
Definition: dialogs.c:575
#define ERROR_NOT_SUPPORTED
Definition: compat.h:100
BOOL WINAPI InternetQueryOptionW(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufferLength)
Definition: internet.c:2697
GLuint res
Definition: glext.h:9613
uint32_t * LPDWORD
Definition: typedefs.h:59
static IOleDocumentView * view
Definition: activex.c:1749
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102
#define _SECURITY_FLAG_CERT_INVALID_CA
Definition: internet.h:473
#define SECURITY_FLAG_SECURE
Definition: winhttp.h:285
#define SetWindowLongPtrW
Definition: winuser.h:5321
#define IDC_CERT_ERROR
Definition: resource.h:36
DWORD WINAPI ShowX509EncodedCertificate(HWND parent, LPBYTE cert, DWORD len)
Definition: dialogs.c:584
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
GLfloat GLfloat p
Definition: glext.h:8902
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define IDCANCEL
Definition: winuser.h:825
#define memset(x, y, z)
Definition: compat.h:39
#define WM_INITDIALOG
Definition: winuser.h:1721
LPARAM lParam
Definition: combotst.c:139
GLenum query
Definition: glext.h:7781
WH_TYPE htype
Definition: internet.h:273
DWORD WINAPI InternetErrorDlg(HWND hWnd, HINTERNET hRequest, DWORD dwError, DWORD dwFlags, LPVOID *lppvData)
Definition: dialogs.c:472
object_header_t * get_handle_object(HINTERNET hinternet)
Definition: internet.c:176
#define IDC_REALM
Definition: mprres.h:29
#define IDC_SERVER
Definition: resource.h:35
#define IDC_PASSWORD
Definition: resource.h:17
static BOOL heap_free(void *mem)
Definition: appwiz.h:75
#define _SECURITY_FLAG_CERT_REV_FAILED
Definition: internet.h:472