ReactOS 0.4.15-dev-7788-g1ad9096
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 */
63{
64 LPWSTR p, q;
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 */
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
192 hIC->proxyUsername = p;
193
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
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
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
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
483
484 if(hRequest) {
486 if(!req)
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)
506
507 switch(req->status_code) {
511 break;
515 break;
516 default:
517 WARN("unhandled status %u\n", req->status_code);
518 }
519 break;
520 }
528 break;
529 }
530 if(!req)
532
533
535 FIXME("%08x contains unsupported flags.\n", dwFlags);
536
539 break;
542 FIXME("Need to display dialog for error %d\n", dwError);
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;
599 else
600 ret = GetLastError();
601 CertFreeCertificateContext(certContext);
602 }
603 else
604 ret = GetLastError();
605 return ret;
606}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
HWND hWnd
Definition: settings.c:17
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define index(s, c)
Definition: various.h:29
#define ARRAY_SIZE(A)
Definition: main.h:33
#define IDC_USERNAME
Definition: resource.h:82
#define FIXME(fmt,...)
Definition: debug.h:111
#define WARN(fmt,...)
Definition: debug.h:112
#define ERR(fmt,...)
Definition: debug.h:110
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define IDC_PASSWORD
Definition: resource.h:20
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
BOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged)
Definition: main.c:4413
#define wcschr
Definition: compat.h:17
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102
#define wcsrchr
Definition: compat.h:16
#define ERROR_NOT_SUPPORTED
Definition: compat.h:100
#define ERROR_INVALID_HANDLE
Definition: compat.h:98
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750
DWORD WINAPI ParseX509EncodedCertificateForListBoxEntry(LPBYTE cert, DWORD len, LPSTR szlistbox, LPDWORD listbox)
Definition: dialogs.c:575
BOOL WINAPI InternetShowSecurityInfoByURLA(LPCSTR url, HWND window)
Definition: dialogs.c:557
static BOOL WININET_GetSetPassword(HWND hdlg, LPCWSTR szServer, LPCWSTR szRealm, BOOL bSet)
Definition: dialogs.c:109
static BOOL WININET_SetAuthorization(http_request_t *request, LPWSTR username, LPWSTR password, BOOL proxy)
Definition: dialogs.c:170
DWORD WINAPI WNetGetCachedPassword(LPSTR, WORD, LPSTR, LPWORD, BYTE)
Definition: pwcache.c:180
static BOOL WININET_GetAuthRealm(HINTERNET hRequest, LPWSTR szBuf, DWORD sz, BOOL proxy)
Definition: dialogs.c:62
static INT_PTR WINAPI WININET_InvalidCertificateDialog(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialogs.c:364
DWORD WINAPI WNetCachePassword(LPSTR, WORD, LPSTR, WORD, BYTE, WORD)
Definition: pwcache.c:85
BOOL WINAPI InternetShowSecurityInfoByURLW(LPCWSTR url, HWND window)
Definition: dialogs.c:566
DWORD WINAPI InternetErrorDlg(HWND hWnd, HINTERNET hRequest, DWORD dwError, DWORD dwFlags, LPVOID *lppvData)
Definition: dialogs.c:472
static INT_PTR WINAPI WININET_PasswordDialog(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialogs.c:287
static INT_PTR WINAPI WININET_ProxyPasswordDialog(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialogs.c:212
DWORD WINAPI ShowX509EncodedCertificate(HWND parent, LPBYTE cert, DWORD len)
Definition: dialogs.c:584
BOOL WINAPI HttpQueryInfoW(HINTERNET hHttpRequest, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex)
Definition: http.c:3870
BOOL WINAPI InternetQueryOptionW(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufferLength)
Definition: internet.c:2697
BOOL WININET_Release(object_header_t *info)
Definition: internet.c:211
object_header_t * get_handle_object(HINTERNET hinternet)
Definition: internet.c:176
HMODULE WININET_hModule
Definition: internet.c:73
#define IDS_CERT_CN_INVALID
Definition: resource.h:41
#define IDS_CERT_DATE_INVALID
Definition: resource.h:40
#define IDC_CERT_ERROR
Definition: resource.h:36
#define IDD_INVCERTDLG
Definition: resource.h:26
#define IDS_CERT_ERRORS
Definition: resource.h:42
#define IDD_AUTHDLG
Definition: resource.h:27
#define IDS_CERT_CA_INVALID
Definition: resource.h:39
#define IDC_SERVER
Definition: resource.h:35
r parent
Definition: btrfs.c:3010
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
int proxy
Definition: main.c:67
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
GLsizeiptr size
Definition: glext.h:5919
GLuint res
Definition: glext.h:9613
GLuint index
Definition: glext.h:6031
GLenum const GLfloat * params
Definition: glext.h:5645
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLbitfield flags
Definition: glext.h:7161
GLfloat GLfloat p
Definition: glext.h:8902
GLenum GLsizei len
Definition: glext.h:6722
#define _SECURITY_FLAG_CERT_REV_FAILED
Definition: internet.h:472
#define _SECURITY_FLAG_CERT_INVALID_CN
Definition: internet.h:474
@ WH_HHTTPREQ
Definition: internet.h:240
#define _SECURITY_FLAG_CERT_INVALID_DATE
Definition: internet.h:475
BOOL is_valid_netconn(netconn_t *) DECLSPEC_HIDDEN
#define _SECURITY_FLAG_CERT_INVALID_CA
Definition: internet.h:473
#define debugstr_a
Definition: kernel32.h:31
#define debugstr_w
Definition: kernel32.h:32
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
static const WCHAR url[]
Definition: encode.c:1432
static BYTE cert[]
Definition: msg.c:1437
static IHTMLWindow2 * window
Definition: events.c:77
static WCHAR password[]
Definition: url.c:33
static WCHAR username[]
Definition: url.c:32
#define IDC_REALM
Definition: mprres.h:29
#define IDC_PROXY
Definition: mprres.h:28
#define IDC_SAVEPASSWORD
Definition: mprres.h:32
#define IDD_PROXYDLG
Definition: mprres.h:26
unsigned int UINT
Definition: ndis.h:50
#define L(x)
Definition: ntvdm.h:50
_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)
#define memset(x, y, z)
Definition: compat.h:39
#define TRACE(s)
Definition: solgame.cpp:4
http_request_t * req
Definition: dialogs.c:50
WH_TYPE htype
Definition: internet.h:273
HINTERNET hInternet
Definition: internet.h:275
LPWSTR proxyPassword
Definition: internet.h:296
LPWSTR proxyUsername
Definition: internet.h:295
DWORD security_flags
Definition: internet.h:352
object_header_t hdr
Definition: internet.h:345
netconn_t * netconn
Definition: internet.h:351
DWORD status_code
Definition: internet.h:357
DWORD security_flags
Definition: internet.h:81
Definition: tftpd.h:86
#define GWLP_USERDATA
Definition: treelist.c:63
int32_t INT_PTR
Definition: typedefs.h:64
unsigned char * LPBYTE
Definition: typedefs.h:53
uint16_t * LPWORD
Definition: typedefs.h:56
uint32_t * LPDWORD
Definition: typedefs.h:59
int ret
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1412
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
LONG_PTR LPARAM
Definition: windef.h:208
UINT_PTR WPARAM
Definition: windef.h:207
#define WINAPI
Definition: msvc.h:6
#define ERROR_CANCELLED
Definition: winerror.h:726
#define HTTP_STATUS_PROXY_AUTH_REQ
Definition: winhttp.h:262
#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID
Definition: winhttp.h:282
#define SECURITY_FLAG_SECURE
Definition: winhttp.h:285
#define HTTP_STATUS_DENIED
Definition: winhttp.h:256
#define SECURITY_FLAG_IGNORE_UNKNOWN_CA
Definition: winhttp.h:281
#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID
Definition: winhttp.h:283
#define INTERNET_OPTION_SECURITY_FLAGS
Definition: wininet.h:725
#define ERROR_INTERNET_SEC_CERT_CN_INVALID
Definition: wininet.h:2026
#define HTTP_QUERY_PROXY_AUTHENTICATE
Definition: wininet.h:1564
#define ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR
Definition: wininet.h:2027
#define FLAGS_ERROR_UI_FILTER_FOR_ERRORS
Definition: wininet.h:1906
#define ERROR_INTERNET_INVALID_CA
Definition: wininet.h:2033
#define ERROR_INTERNET_INCORRECT_PASSWORD
Definition: wininet.h:2003
#define ERROR_INTERNET_SEC_CERT_DATE_INVALID
Definition: wininet.h:2025
#define ERROR_INTERNET_FORCE_RETRY
Definition: wininet.h:2021
#define FLAGS_ERROR_UI_FLAGS_NO_UI
Definition: wininet.h:1909
#define SECURITY_FLAG_IGNORE_REVOCATION
Definition: wininet.h:829
#define ERROR_INTERNET_POST_IS_NON_SECURE
Definition: wininet.h:2031
#define HTTP_QUERY_WWW_AUTHENTICATE
Definition: wininet.h:1563
#define ERROR_INTERNET_SEC_CERT_REV_FAILED
Definition: wininet.h:2044
#define ERROR_INTERNET_SEC_CERT_ERRORS
Definition: wininet.h:2042
#define FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS
Definition: wininet.h:1907
#define WN_SUCCESS
Definition: winnetwk.h:111
#define BM_GETSTATE
Definition: winuser.h:1920
#define GetWindowLongPtrW
Definition: winuser.h:4829
#define IDCANCEL
Definition: winuser.h:831
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define WM_COMMAND
Definition: winuser.h:1740
#define WM_INITDIALOG
Definition: winuser.h:1739
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define IDOK
Definition: winuser.h:830
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define SetWindowLongPtrW
Definition: winuser.h:5346
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
const char * LPCSTR
Definition: xmlstorage.h:183
char * LPSTR
Definition: xmlstorage.h:182
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
char CHAR
Definition: xmlstorage.h:175
unsigned char BYTE
Definition: xxhash.c:193