Index: goopdate/cred_dialog.cc |
diff --git a/goopdate/cred_dialog.cc b/goopdate/cred_dialog.cc |
deleted file mode 100644 |
index e7d60f2976b6e56807e06e7d7083da165a00ea46..0000000000000000000000000000000000000000 |
--- a/goopdate/cred_dialog.cc |
+++ /dev/null |
@@ -1,155 +0,0 @@ |
-// Copyright 2011 Google Inc. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// ======================================================================== |
- |
-#include <wincred.h> |
-#include "omaha/base/debug.h" |
-#include "omaha/base/logging.h" |
-#include "omaha/base/scoped_impersonation.h" |
-#include "omaha/base/system_info.h" |
-#include "omaha/common/goopdate_utils.h" |
-#include "omaha/client/resource.h" |
-#include "omaha/goopdate/cred_dialog.h" |
- |
-namespace omaha { |
- |
-STDMETHODIMP CredentialDialogBase::QueryUserForCredentials( |
- ULONG_PTR owner_hwnd, |
- BSTR server, |
- BSTR caption, |
- BSTR* username, |
- BSTR* password) { |
- ASSERT1(server && wcslen(server)); |
- ASSERT1(caption); |
- ASSERT1(username); |
- ASSERT1(password); |
- |
- CORE_LOG(L3, (_T("[LaunchCredentialDialog][COM server launching dialog]"))); |
- |
- if (!::IsWindow(reinterpret_cast<HWND>(owner_hwnd))) { |
- return E_INVALIDARG; |
- } |
- |
- if (!server || !wcslen(server) || !caption) { |
- return E_INVALIDARG; |
- } |
- |
- if (!username || !password) { |
- return E_POINTER; |
- } |
- |
- CString message; |
- message.LoadString(IDS_PROXY_PROMPT_MESSAGE); |
- message.FormatMessage(message, server); |
- |
- CString capt_cstr(caption); |
- if (capt_cstr.IsEmpty()) { |
- capt_cstr.LoadString(IDS_PRODUCT_DISPLAY_NAME); |
- } |
- |
- CString user; |
- CString pass; |
- DWORD result = DisplayDialog(reinterpret_cast<HWND>(owner_hwnd), |
- server, |
- message, |
- capt_cstr, |
- &user, |
- &pass); |
- |
- if (result == NO_ERROR) { |
- user.SetSysString(username); |
- ::SecureZeroMemory(user.GetBuffer(), user.GetAllocLength() * sizeof(TCHAR)); |
- pass.SetSysString(password); |
- ::SecureZeroMemory(pass.GetBuffer(), pass.GetAllocLength() * sizeof(TCHAR)); |
- return S_OK; |
- } |
- |
- return HRESULT_FROM_WIN32(result); |
-} |
- |
-DWORD CredentialDialogBase::DisplayDialog( |
- HWND hwnd, |
- LPCTSTR server, |
- LPCTSTR message, |
- LPCTSTR caption, |
- CString* username_out, |
- CString* password_out) { |
- scoped_library credui_lib(::LoadLibrary(L"credui.dll")); |
- ASSERT1(credui_lib); |
- if (!credui_lib) { |
- CORE_LOG(L3, (_T("[CredUIPromptForCredentialsW not available]"))); |
- return ERROR_NOT_READY; |
- } |
- |
- typedef BOOL (__stdcall *CredUIPromptForCredentialsW_type)( |
- PCREDUI_INFO pUiInfo, |
- PCTSTR pszTargetName, |
- PCtxtHandle Reserved, |
- DWORD dwAuthError, |
- PCTSTR pszUserName, |
- ULONG ulUserNameMaxChars, |
- PCTSTR pszPassword, |
- ULONG ulPasswordMaxChars, |
- PBOOL pfSave, |
- DWORD dwFlags); |
- CredUIPromptForCredentialsW_type CredUIPromptForCredentialsW_fn = |
- reinterpret_cast<CredUIPromptForCredentialsW_type>( |
- GetProcAddress(get(credui_lib), "CredUIPromptForCredentialsW")); |
- ASSERT1(CredUIPromptForCredentialsW_fn || SystemInfo::IsRunningOnW2K()); |
- if (!CredUIPromptForCredentialsW_fn) { |
- CORE_LOG(L3, (_T("[CredUIPromptForCredentialsW not available]"))); |
- return ERROR_NOT_READY; |
- } |
- |
- wchar_t temp_username[CREDUI_MAX_USERNAME_LENGTH + 1] = {}; |
- wchar_t temp_password[CREDUI_MAX_PASSWORD_LENGTH + 1] = {}; |
- BOOL check; |
- CREDUI_INFO info = {0}; |
- info.cbSize = sizeof(info); |
- info.hwndParent = hwnd; |
- info.pszMessageText = message; |
- info.pszCaptionText = caption; |
- |
- DWORD result; |
- do { |
- temp_username[0] = L'\0'; |
- temp_password[0] = L'\0'; |
- result = CredUIPromptForCredentialsW_fn( |
- &info, |
- server, |
- NULL, |
- 0, |
- temp_username, |
- CREDUI_MAX_USERNAME_LENGTH, |
- temp_password, |
- CREDUI_MAX_PASSWORD_LENGTH, |
- &check, |
- CREDUI_FLAGS_ALWAYS_SHOW_UI | CREDUI_FLAGS_GENERIC_CREDENTIALS | |
- CREDUI_FLAGS_DO_NOT_PERSIST); |
- CORE_LOG(L3, (_T("[CredUIPromptForCredentialsW returned %d]"), result)); |
- } while (result == NO_ERROR && (!temp_username[0] || !temp_password[0])); |
- |
- if (result == NO_ERROR) { |
- username_out->SetString(temp_username); |
- password_out->SetString(temp_password); |
- } |
- |
- ::SecureZeroMemory(temp_username, sizeof(temp_username)); |
- ::SecureZeroMemory(temp_password, sizeof(temp_password)); |
- |
- return result; |
-} |
- |
-} // namespace omaha |
- |