[PATCH 18/27] [Kernel32]: ActCtx: added support for the description element in assembly

Eric Pouech eric.pouech at wanadoo.fr
Mon May 7 14:51:38 CDT 2007


---

 dlls/kernel32/actctx.c |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/dlls/kernel32/actctx.c b/dlls/kernel32/actctx.c
index 333b791..a7da6e4 100644
--- a/dlls/kernel32/actctx.c
+++ b/dlls/kernel32/actctx.c
@@ -397,6 +397,7 @@ done:
 #define COMINTERFACEPROXYSTUB_ELEM      "comInterfaceProxyStub"
 #define DEPENDENCY_ELEM                 "dependency"
 #define DEPENDENTASSEMBLY_ELEM          "dependentAssembly"
+#define DESCRIPTION_ELEM                "description"
 #define FILE_ELEM                       "file"
 #define NOINHERIT_ELEM                  "noInherit"
 #define NOINHERITABLE_ELEM              "noInheritable"
@@ -773,6 +774,34 @@ static BOOL parse_window_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll)
     return ret;
 }
 
+static BOOL parse_description_elem(xmlbuf_t* xmlbuf)
+{
+    xmlstr_t    elem, content;
+    BOOL        end = FALSE, ret = TRUE;
+
+    if (!parse_expect_no_attr(xmlbuf, &end) || end ||
+        !parse_text_content(xmlbuf, &content))
+        return FALSE;
+
+    TRACE("Got description %s\n", debugstr_xmlstr(&content));
+
+    while (ret && (ret = next_xml_elem(xmlbuf, &elem)))
+    {
+        if (xmlstr_cmp(&elem, ELEM_END(DESCRIPTION_ELEM)))
+        {
+            ret = parse_end_element(xmlbuf);
+            break;
+        }
+        else
+        {
+            WARN("wrong elem %s\n", debugstr_xmlstr(&elem));
+            ret = FALSE;
+        }
+    }
+
+    return ret;
+}
+
 static BOOL parse_com_interface_external_proxy_stub_elem(xmlbuf_t* xmlbuf,
                                                          struct assembly* assembly)
 {
@@ -1054,6 +1083,10 @@ static BOOL parse_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl,
             ret = parse_end_element(xmlbuf);
             break;
         }
+        else if (xmlstr_cmp(&elem, DESCRIPTION_ELEM))
+        {
+            ret = parse_description_elem(xmlbuf);
+        }
         else if (xmlstr_cmp(&elem, COMINTERFACEEXTERNALPROXYSTUB_ELEM))
         {
             ret = parse_com_interface_external_proxy_stub_elem(xmlbuf, assembly);





More information about the wine-patches mailing list