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