[3/6] wintrust: Implement CryptCATAdminResolveCatalogPath and CryptCATCatalogInfoFromContext.

Hans Leidekker hans at codeweavers.com
Tue Dec 23 04:50:46 CST 2008


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-patches mailing list