Module: wine Branch: master Commit: ddab29b7d16bc0184f33cf63887dd8c74c0ad201 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ddab29b7d16bc0184f33cf6388...
Author: Francois Gouget fgouget@free.fr Date: Wed Feb 13 22:06:44 2008 +0100
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 deletions(-)
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec index 738b4df..17dac6d 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 e81a171..ab988da 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 2b606a4..5865063 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)