Hans Leidekker : wintrust: Implement CryptCATAdminResolveCatalogPath and CryptCATCatalogInfoFromContext .
Alexandre Julliard
julliard at winehq.org
Tue Dec 23 13:41:01 CST 2008
Module: wine
Branch: master
Commit: 615d023bf1468c27444996f5e9d99991cd0e3779
URL: http://source.winehq.org/git/wine.git/?a=commit;h=615d023bf1468c27444996f5e9d99991cd0e3779
Author: Hans Leidekker <hans at codeweavers.com>
Date: Tue Dec 23 11:50:46 2008 +0100
wintrust: Implement CryptCATAdminResolveCatalogPath and CryptCATCatalogInfoFromContext.
---
dlls/wintrust/crypt.c | 42 ++++++++++++++++++++++++++++++++++++++++++
dlls/wintrust/wintrust.spec | 4 ++--
2 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/dlls/wintrust/crypt.c b/dlls/wintrust/crypt.c
index 7b30ede..44ab4bb 100644
--- a/dlls/wintrust/crypt.c
+++ b/dlls/wintrust/crypt.c
@@ -475,6 +475,29 @@ BOOL WINAPI CryptCATAdminRemoveCatalog(HCATADMIN hCatAdmin, LPCWSTR pwszCatalogF
}
/***********************************************************************
+ * CryptCATAdminResolveCatalogPath (WINTRUST.@)
+ */
+BOOL WINAPI CryptCATAdminResolveCatalogPath(HCATADMIN hcatadmin, WCHAR *catalog_file,
+ CATALOG_INFO *info, DWORD flags)
+{
+ static const WCHAR slashW[] = {'\\',0};
+ struct catadmin *ca = hcatadmin;
+
+ TRACE("%p %s %p %x\n", hcatadmin, debugstr_w(catalog_file), info, flags);
+
+ if (!ca || ca->magic != CATADMIN_MAGIC || !info || info->cbStruct != sizeof(*info) || flags)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+ strcpyW(info->wszCatalogFile, ca->path);
+ strcatW(info->wszCatalogFile, slashW);
+ strcatW(info->wszCatalogFile, catalog_file);
+
+ return TRUE;
+}
+
+/***********************************************************************
* CryptCATClose (WINTRUST.@)
*/
BOOL WINAPI CryptCATClose(HANDLE hCatalog)
@@ -683,6 +706,25 @@ out:
}
/***********************************************************************
+ * CryptCATCatalogInfoFromContext (WINTRUST.@)
+ */
+BOOL WINAPI CryptCATCatalogInfoFromContext(HCATINFO hcatinfo, CATALOG_INFO *info, DWORD flags)
+{
+ struct catinfo *ci = hcatinfo;
+
+ TRACE("%p, %p, %x\n", hcatinfo, info, flags);
+
+ if (!hcatinfo || hcatinfo == INVALID_HANDLE_VALUE || ci->magic != CATINFO_MAGIC ||
+ flags || !info || info->cbStruct != sizeof(*info))
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+ strcpyW(info->wszCatalogFile, ci->file);
+ return TRUE;
+}
+
+/***********************************************************************
* CryptCATOpen (WINTRUST.@)
*/
HANDLE WINAPI CryptCATOpen(LPWSTR pwszFileName, DWORD fdwOpenFlags, HCRYPTPROV hProv,
diff --git a/dlls/wintrust/wintrust.spec b/dlls/wintrust/wintrust.spec
index 6f83282..bc5fd41 100644
--- a/dlls/wintrust/wintrust.spec
+++ b/dlls/wintrust/wintrust.spec
@@ -8,7 +8,7 @@
@ stdcall CryptCATAdminReleaseCatalogContext(long long long)
@ stdcall CryptCATAdminReleaseContext(long long)
@ stdcall CryptCATAdminRemoveCatalog(ptr wstr long)
-@ stub CryptCATAdminResolveCatalogPath
+@ stdcall CryptCATAdminResolveCatalogPath(ptr wstr ptr long)
@ stub CryptCATCDFClose
@ stub CryptCATCDFEnumAttributes
@ stub CryptCATCDFEnumAttributesWithCDFTag
@@ -17,7 +17,7 @@
@ stub CryptCATCDFEnumMembersByCDFTag
@ stub CryptCATCDFEnumMembersByCDFTagEx
@ stub CryptCATCDFOpen
-@ stub CryptCATCatalogInfoFromContext
+@ stdcall CryptCATCatalogInfoFromContext(ptr ptr long)
@ stdcall CryptCATClose(long)
@ stub CryptCATEnumerateAttr
@ stub CryptCATEnumerateCatAttr
More information about the wine-cvs
mailing list