From ddab29b7d16bc0184f33cf63887dd8c74c0ad201 Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Wed, 13 Feb 2008 22:06:44 +0100 Subject: [PATCH] advapi32: Add a rudimentary implementation of CredGetSessionTypes(). --- dlls/advapi32/advapi32.spec | 2 +- dlls/advapi32/cred.c | 20 ++++++++++++++++++++ include/wincred.h | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec index 738b4df8988..17dac6db795 100644 --- a/dlls/advapi32/advapi32.spec +++ b/dlls/advapi32/advapi32.spec @@ -107,7 +107,7 @@ @ stdcall CredEnumerateA(str long ptr ptr) @ stdcall CredEnumerateW(wstr long ptr ptr) @ stdcall CredFree(ptr) -# @ stub CredGetSessionTypes +@ stdcall CredGetSessionTypes(long ptr) # @ stub CredGetTargetInfoA # @ stub CredGetTargetInfoW # @ stub CredIsMarshaledCredentialA diff --git a/dlls/advapi32/cred.c b/dlls/advapi32/cred.c index e81a171191f..ab988da350e 100644 --- a/dlls/advapi32/cred.c +++ b/dlls/advapi32/cred.c @@ -1670,3 +1670,23 @@ BOOL WINAPI CredWriteW(PCREDENTIALW Credential, DWORD Flags) } return TRUE; } + +/****************************************************************************** + * CredGetSessionTypes [ADVAPI32.@] + */ +WINADVAPI BOOL WINAPI CredGetSessionTypes(DWORD persistCount, LPDWORD persists) +{ + TRACE("(%u, %p)\n", persistCount, persists); + + memset(persists, CRED_PERSIST_NONE, persistCount*sizeof(*persists)); + if (CRED_TYPE_GENERIC < persistCount) + { + persists[CRED_TYPE_GENERIC] = CRED_PERSIST_ENTERPRISE; + + if (CRED_TYPE_DOMAIN_PASSWORD < persistCount) + { + persists[CRED_TYPE_DOMAIN_PASSWORD] = CRED_PERSIST_ENTERPRISE; + } + } + return TRUE; +} diff --git a/include/wincred.h b/include/wincred.h index 2b606a4b876..58650637118 100644 --- a/include/wincred.h +++ b/include/wincred.h @@ -185,6 +185,7 @@ WINADVAPI BOOL WINAPI CredEnumerateA(LPCSTR,DWORD,DWORD *,PCREDENTIALA **); WINADVAPI BOOL WINAPI CredEnumerateW(LPCWSTR,DWORD,DWORD *,PCREDENTIALW **); #define CredEnumerate WINELIB_NAME_AW(CredEnumerate) WINADVAPI VOID WINAPI CredFree(PVOID); +WINADVAPI BOOL WINAPI CredGetSessionTypes(DWORD,LPDWORD); WINADVAPI BOOL WINAPI CredReadA(LPCSTR,DWORD,DWORD,PCREDENTIALA *); WINADVAPI BOOL WINAPI CredReadW(LPCWSTR,DWORD,DWORD,PCREDENTIALW *); #define CredRead WINELIB_NAME_AW(CredRead)