void khm_hide_main_window(void) { khm_handle csp_notices = NULL; khm_int32 show_warning = FALSE; if (khm_nCmdShow != SW_MINIMIZE && KHM_SUCCEEDED(khc_open_space(NULL, L"CredWindow\\Notices", KHM_PERM_WRITE, &csp_notices)) && KHM_SUCCEEDED(khc_read_int32(csp_notices, L"MinimizeWarning", &show_warning)) && show_warning != 0) { khui_alert * alert; wchar_t title[KHUI_MAXCCH_TITLE]; wchar_t msg[KHUI_MAXCCH_MESSAGE]; LoadString(khm_hInstance, IDS_WARN_WM_TITLE, title, ARRAYLENGTH(title)); LoadString(khm_hInstance, IDS_WARN_WM_MSG, msg, ARRAYLENGTH(msg)); khui_alert_create_simple(title, msg, KHERR_INFO, &alert); khui_alert_set_flags(alert, KHUI_ALERT_FLAG_REQUEST_BALLOON, KHUI_ALERT_FLAG_REQUEST_BALLOON); khui_alert_show(alert); khc_write_int32(csp_notices, L"MinimizeWarning", 0); } if (csp_notices != NULL) khc_close_space(csp_notices); ShowWindow(khm_hwnd_main, SW_HIDE); }
KHMEXP khm_int32 KHMAPI khui_alert_show_simple(const wchar_t * title, const wchar_t * message, khm_int32 severity) { khui_alert * a = NULL; khm_int32 rv; rv = khui_alert_create_simple(title, message, severity, &a); if(KHM_FAILED(rv)) return rv; rv = khui_alert_show(a); khui_alert_release(a); return rv; }
void khm_cred_obtain_new_creds(wchar_t * title) { khui_new_creds * nc; LPNETID_DLGINFO pdlginfo; khm_size cb; if (!khm_cred_begin_dialog()) return; khui_cw_create_cred_blob(&nc); nc->subtype = KMSG_CRED_NEW_CREDS; dialog_nc = nc; khui_context_get(&nc->ctx); kcdb_identpro_get_ui_cb((void *) &nc->ident_cb); if (nc->ident_cb == NULL) { wchar_t title[256]; wchar_t msg[512]; wchar_t suggestion[512]; khui_alert * a; LoadString(khm_hInstance, IDS_ERR_TITLE_NO_IDENTPRO, title, ARRAYLENGTH(title)); LoadString(khm_hInstance, IDS_ERR_MSG_NO_IDENTPRO, msg, ARRAYLENGTH(msg)); LoadString(khm_hInstance, IDS_ERR_SUGG_NO_IDENTPRO, suggestion, ARRAYLENGTH(suggestion)); khui_alert_create_simple(title, msg, KHERR_ERROR, &a); khui_alert_set_suggestion(a, suggestion); khui_alert_show(a); khui_alert_release(a); khui_context_release(&nc->ctx); nc->result = KHUI_NC_RESULT_CANCEL; khm_cred_end_dialog(nc); khui_cw_destroy_cred_blob(nc); return; } if (title) { if (SUCCEEDED(StringCbLength(title, KHUI_MAXCB_TITLE, &cb))) { cb += sizeof(wchar_t); nc->window_title = PMALLOC(cb); #ifdef DEBUG assert(nc->window_title); #endif StringCbCopy(nc->window_title, cb, title); } } else if (nc->ctx.cb_vparam == sizeof(NETID_DLGINFO) && (pdlginfo = nc->ctx.vparam) && pdlginfo->size == NETID_DLGINFO_V1_SZ && pdlginfo->in.title[0] && SUCCEEDED(StringCchLength(pdlginfo->in.title, NETID_TITLE_SZ, &cb))) { cb = (cb + 1) * sizeof(wchar_t); nc->window_title = PMALLOC(cb); #ifdef DEBUG assert(nc->window_title); #endif StringCbCopy(nc->window_title, cb, pdlginfo->in.title); } khm_create_newcredwnd(khm_hwnd_main, nc); if (nc->hwnd != NULL) { _begin_task(KHERR_CF_TRANSITIVE); _report_sr0(KHERR_NONE, IDS_CTX_NEW_CREDS); _describe(); kmq_post_message(KMSG_CRED, KMSG_CRED_NEW_CREDS, 0, (void *) nc); _end_task(); } else { khui_context_release(&nc->ctx); nc->result = KHUI_NC_RESULT_CANCEL; khm_cred_end_dialog(nc); khui_cw_destroy_cred_blob(nc); } }