[08/10] wintrust: Implement CryptCATAdminResolveCatalogPath and CryptCATCatalogInfoFromContext.
Hans Leidekker
hans at codeweavers.com
Mon Dec 22 07:20:20 CST 2008
diff --git a/dlls/wintrust/crypt.c b/dlls/wintrust/crypt.c
index e9432f0..9dba5f9 100644
--- a/dlls/wintrust/crypt.c
+++ b/dlls/wintrust/crypt.c
@@ -474,6 +474,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)
@@ -738,6 +761,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