42#define TOOLID_INCORRECTPASSWORD 1
43#define TOOLID_CAPSLOCKON 2
45#define ID_CAPSLOCKPOP 1
65 0, 0, { (
DWORD_PTR)(__FILE__
": csPendingCredentials") }
78 case DLL_WINE_PREATTACH:
131 ERR(
"CredWriteW failed with error %d\n",
ret);
167 if (!credentials[
i]->UserName)
185 for (
j = 0;
j <
i;
j++)
186 if (credentials[
j]->UserName
187 && !
lstrcmpW(credentials[
i]->UserName, credentials[
j]->UserName))
197 comboitem.
iItem = -1;
210 if (
params->hwndBalloonTip)
222 ERR(
"failed to load IDS_INCORRECTPASSWORD\n");
226 toolinfo.
cbSize =
sizeof(toolinfo);
228 toolinfo.
hwnd = hwndDlg;
239 ERR(
"failed to load IDS_CAPSLOCKON\n");
258 if (!
params->pszUsername[0])
262 if (
params->fBalloonTipActive)
267 ERR(
"failed to load IDS_INCORRECTPASSWORDTITLE\n");
273 memset(&toolinfo, 0,
sizeof(toolinfo));
274 toolinfo.
cbSize =
sizeof(toolinfo);
275 toolinfo.
hwnd = hwndDlg;
282 x = rcPassword.
right - 12;
300 if (
params->fBalloonTipActive)
305 ERR(
"failed to load IDS_IDSCAPSLOCKONTITLE\n");
311 memset(&toolinfo, 0,
sizeof(toolinfo));
312 toolinfo.
cbSize =
sizeof(toolinfo);
313 toolinfo.
hwnd = hwndDlg;
320 x = rcPassword.
left + 12;
337 if (!
params->hwndBalloonTip)
340 memset(&toolinfo, 0,
sizeof(toolinfo));
342 toolinfo.
cbSize =
sizeof(toolinfo);
343 toolinfo.
hwnd = hwndDlg;
391 if (
params->pszMessageText)
406 if (
params->pszUsername[0])
416 if (
params->pszCaptionText)
467 if (len_target + 1 <
params->ulUsernameMaxChars)
468 params->pszUsername[len_target] =
'\\';
469 if (len_target + 2 <
params->ulUsernameMaxChars)
470 params->pszUsername[len_target + 1] =
'\0';
472 else if (
params->ulUsernameMaxChars > 0)
473 params->pszUsername[0] =
'\0';
477 if (
params->ulUsernameMaxChars)
483 params->ulPasswordMaxChars);
577 FIXME(
"no support for type %u credentials\n", credentials[
i]->
Type);
581 lstrlenW(credentials[
i]->UserName) < len_username &&
582 credentials[
i]->CredentialBlobSize /
sizeof(
WCHAR) < len_password)
584 TRACE(
"found existing credential for %s\n",
debugstr_w(credentials[
i]->UserName));
587 memcpy(
password, credentials[
i]->CredentialBlob, credentials[
i]->CredentialBlobSize);
606 ULONG ulUsernameMaxChars,
615 TRACE(
"(%p, %s, %p, %d, %s, %d, %p, %d, %p, 0x%08x)\n", pUIInfo,
617 ulUsernameMaxChars, pszPassword, ulPasswordMaxChars, pfSave,
dwFlags);
633 params.pszTargetName = pszTargetName;
646 params.pszUsername = pszUsername;
647 params.ulUsernameMaxChars = ulUsernameMaxChars;
648 params.pszPassword = pszPassword;
649 params.ulPasswordMaxChars = ulPasswordMaxChars;
663 TRACE(
"dialog cancelled\n");
726 TRACE(
"(%s, %s)\n",
debugstr_w(pszTargetName), bConfirm ?
"TRUE" :
"FALSE");
765 ULONG ulMaxDomainChars)
770 ulMaxUserChars, pszDomain, ulMaxDomainChars);
772 if (!pszUserName || !pszUser || !ulMaxUserChars || !pszDomain ||
781 if (
p - pszUserName > ulMaxDomainChars - 1)
783 if (
lstrlenW(
p + 1) > ulMaxUserChars - 1)
786 memcpy(pszDomain, pszUserName, (
p - pszUserName)*
sizeof(
WCHAR));
787 pszDomain[
p - pszUserName] =
'\0';
795 if (
p + 1 - pszUserName > ulMaxUserChars - 1)
797 if (
lstrlenW(
p + 1) > ulMaxDomainChars - 1)
800 memcpy(pszUser, pszUserName, (
p - pszUserName)*
sizeof(
WCHAR));
801 pszUser[
p - pszUserName] =
'\0';
806 if (
lstrlenW(pszUserName) > ulMaxUserChars - 1)
821 pszPassword, bPersist);
832 pszPassword, bPersist);
843 *ppszUsername =
NULL;
854 *ppszUsername =
NULL;
876 static const WCHAR basicW[] = {
'B',
'a',
's',
'i',
'c',0};
877 static const WCHAR ntlmW[] = {
'N',
'T',
'L',
'M',0};
878 static const WCHAR negotiateW[] = {
'N',
'e',
'g',
'o',
't',
'i',
'a',
't',
'e',0};
887 FIXME(
"(%s, %p, %u, %s, %p, %p, %p, %x) stub\n",
debugstr_w(
target),
info,
924 DWORD size =
sizeof(*id), len_domain = 0;
941 size += (len_username + 1) *
sizeof(
WCHAR);
942 size += (len_domain + 1) *
sizeof(
WCHAR);
943 size += (len_password + 1) *
sizeof(
WCHAR);
949 id->UserLength = len_username;
950 ptr += len_username + 1;
955 id->DomainLength = len_domain;
956 ptr += len_domain + 1;
961 id->DomainLength = 0;
965 id->PasswordLength = len_password;
978 const void *in_buf,
ULONG in_buf_size,
void **out_buf,
981 FIXME(
"(%p, %u, %p, %p, %u, %p, %p, %p, %08x) stub\n",
info,
error, package, in_buf, in_buf_size,
982 out_buf, out_buf_size, save,
flags );
1003 FIXME(
"(%08x, %p, %u, %p, %p, %p, %p, %p, %p) stub\n",
flags,
buf,
size,
username, len_username,
static DWORD const fdwReason
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void user(int argc, const char *argv[])
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
VOID WINAPI InitCommonControls(void)
BOOL WINAPI SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIDSubclass, DWORD_PTR dwRef)
BOOL WINAPI RemoveWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uID)
LRESULT WINAPI DefSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
DWORD WINAPI CredUIStoreSSOCredA(PCSTR pszRealm, PCSTR pszUsername, PCSTR pszPassword, BOOL bPersist)
BOOL WINAPI CredUnPackAuthenticationBufferW(DWORD flags, void *buf, DWORD size, WCHAR *username, DWORD *len_username, WCHAR *domain, DWORD *len_domain, WCHAR *password, DWORD *len_password)
#define TOOLID_CAPSLOCKON
DWORD WINAPI CredUIReadSSOCredW(PCWSTR pszRealm, PWSTR *ppszUsername)
static void CredDialogCreateBalloonTip(HWND hwndDlg, struct cred_dialog_params *params)
#define TOOLID_INCORRECTPASSWORD
static void CredDialogFillUsernameCombo(HWND hwndUsername, const struct cred_dialog_params *params)
static void CredDialogCommandOk(HWND hwndDlg, struct cred_dialog_params *params)
static BOOL find_existing_credential(const WCHAR *target, WCHAR *username, ULONG len_username, WCHAR *password, ULONG len_password)
DWORD WINAPI CredUIPromptForCredentialsW(PCREDUI_INFOW pUIInfo, PCWSTR pszTargetName, PCtxtHandle Reserved, DWORD dwAuthError, PWSTR pszUsername, ULONG ulUsernameMaxChars, PWSTR pszPassword, ULONG ulPasswordMaxChars, PBOOL pfSave, DWORD dwFlags)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
static LRESULT CALLBACK CredDialogPasswordSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
static CRITICAL_SECTION_DEBUG critsect_debug
DWORD WINAPI CredUIReadSSOCredA(PCSTR pszRealm, PSTR *ppszUsername)
DWORD WINAPI CredUIConfirmCredentialsW(PCWSTR pszTargetName, BOOL bConfirm)
static struct list pending_credentials_list
static void CredDialogShowIncorrectPasswordBalloon(HWND hwndDlg, struct cred_dialog_params *params)
BOOL WINAPI CredPackAuthenticationBufferW(DWORD flags, WCHAR *username, WCHAR *password, BYTE *buf, DWORD *size)
static void CredDialogShowCapsLockBalloon(HWND hwndDlg, struct cred_dialog_params *params)
static BOOL CredDialogInit(HWND hwndDlg, struct cred_dialog_params *params)
static BOOL CredDialogCapsLockOn(void)
static DWORD save_credentials(PCWSTR pszTargetName, PCWSTR pszUsername, PCWSTR pszPassword, BOOL generic)
static HINSTANCE hinstCredUI
static void CredDialogHideBalloonTip(HWND hwndDlg, struct cred_dialog_params *params)
DWORD WINAPI CredUIParseUserNameW(PCWSTR pszUserName, PWSTR pszUser, ULONG ulMaxUserChars, PWSTR pszDomain, ULONG ulMaxDomainChars)
static CRITICAL_SECTION csPendingCredentials
static INT_PTR CALLBACK CredDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
DWORD WINAPI CredUIStoreSSOCredW(PCWSTR pszRealm, PCWSTR pszUsername, PCWSTR pszPassword, BOOL bPersist)
ULONG SEC_ENTRY SspiPromptForCredentialsW(PCWSTR target, void *info, DWORD error, PCWSTR package, PSEC_WINNT_AUTH_IDENTITY_OPAQUE input_id, PSEC_WINNT_AUTH_IDENTITY_OPAQUE *output_id, BOOL *save, DWORD sspi_flags)
DWORD WINAPI CredUIPromptForWindowsCredentialsW(CREDUI_INFOW *info, DWORD error, ULONG *package, const void *in_buf, ULONG in_buf_size, void **out_buf, ULONG *out_buf_size, BOOL *save, DWORD flags)
BOOL WINAPI CredUIInitControls(void)
#define IDS_INCORRECTPASSWORD
#define IDS_CAPSLOCKONTITLE
#define IDS_MESSAGEFORMAT
#define IDS_INCORRECTPASSWORDTITLE
#define ERROR_INSUFFICIENT_BUFFER
VOID WINAPI CredFree(PVOID Buffer)
BOOL WINAPI CredEnumerateW(LPCWSTR Filter, DWORD Flags, DWORD *Count, PCREDENTIALW **Credentials)
BOOL WINAPI CredWriteW(PCREDENTIALW Credential, DWORD Flags)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define HeapFree(x, y, z)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLint GLint GLint GLint GLint GLint y
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static IN DWORD IN LPVOID lpvReserved
#define memcpy(s1, s2, n)
unsigned __int3264 UINT_PTR
_In_ SUBCLASSPROC _In_ UINT_PTR uIdSubclass
#define TTM_TRACKPOSITION
_In_ SUBCLASSPROC _In_ UINT_PTR _In_ DWORD_PTR dwRefData
#define TTM_TRACKACTIVATE
#define SSPIPFC_CREDPROV_DO_NOT_SAVE
#define SSPIPFC_NO_CHECKBOX
static const WCHAR basicW[]
static const WCHAR negotiateW[]
static const WCHAR ntlmW[]
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
PCREDENTIAL_ATTRIBUTEW Attributes
LIST_ENTRY ProcessLocksList
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
BOOL WINAPI LockSetForegroundWindow(UINT uLockCode)
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define CREDUI_FLAGS_EXPECT_CONFIRMATION
#define CREDUI_FLAGS_ALWAYS_SHOW_UI
#define CREDUI_FLAGS_GENERIC_CREDENTIALS
#define CRED_PERSIST_ENTERPRISE
#define CREDUI_FLAGS_INCORRECT_PASSWORD
#define CREDUI_FLAGS_PERSIST
#define CREDUI_FLAGS_DO_NOT_PERSIST
#define CRED_TYPE_DOMAIN_PASSWORD
#define CRED_TYPE_GENERIC
#define CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX
#define CREDUI_MAX_USERNAME_LENGTH
#define CREDUI_MAX_PASSWORD_LENGTH
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_Reserved_ PVOID Reserved
#define ERROR_NO_SUCH_PACKAGE
#define ERROR_INVALID_FLAGS
HWND WINAPI GetFocus(void)
#define GetWindowLongPtrW
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
HWND WINAPI SetFocus(_In_opt_ HWND)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
int WINAPI GetWindowTextLengthW(_In_ HWND)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
HWND WINAPI GetParent(_In_ HWND)
#define MAKEINTRESOURCEW(i)
#define SetWindowLongPtrW
BOOL WINAPI DestroyWindow(_In_ HWND)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
SHORT WINAPI GetKeyState(_In_ int)
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)