Module: wine Branch: master Commit: a22dcd1ad0b628b2e414bc8d6cbfa97ea87ab001 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a22dcd1ad0b628b2e414bc8d6c...
Author: Eric Pouech eric.pouech@wanadoo.fr Date: Thu Jul 19 17:54:53 2007 +0200
ntdll: Added parsing of public key token in manifests.
---
dlls/ntdll/actctx.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index e73cdaa..18a4001 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -90,6 +90,7 @@ struct assembly_identity { WCHAR *name; WCHAR *arch; + WCHAR *public_key; struct version version; enum assembly_id_type type; }; @@ -181,6 +182,7 @@ struct actctx_loader #define MANIFESTVERSION_ATTR "manifestVersion" #define NAME_ATTR "name" #define PROCESSORARCHITECTURE_ATTR "processorArchitecture" +#define PUBLICKEYTOKEN_ATTR "publicKeyToken" #define TLBID_ATTR "tlbid" #define TYPE_ATTR "type" #define VERSION_ATTR "version" @@ -287,6 +289,7 @@ static void free_assembly_identity(struct assembly_identity *ai) { RtlFreeHeap( GetProcessHeap(), 0, ai->name ); RtlFreeHeap( GetProcessHeap(), 0, ai->arch ); + RtlFreeHeap( GetProcessHeap(), 0, ai->public_key ); }
static struct entity* add_entity(struct dll_redirect* dll, DWORD kind) @@ -627,6 +630,10 @@ static BOOL parse_assembly_identity_elem(xmlbuf_t* xmlbuf, ACTIVATION_CONTEXT* a { if (!(ai->arch = xmlstrdupW(&attr_value))) return FALSE; } + else if (xmlstr_cmp(&attr_name, PUBLICKEYTOKEN_ATTR)) + { + if (!(ai->public_key = xmlstrdupW(&attr_value))) return FALSE; + } else { WARN("unknown attr %s=%s\n", debugstr_xmlstr(&attr_name),