From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- dlls/cryptxml/cryptxml.c | 17 +++++++++++++++++ dlls/cryptxml/cryptxml.spec | 2 +- include/cryptxml.h | 1 + 3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/cryptxml/cryptxml.c b/dlls/cryptxml/cryptxml.c index 2a508ee4625..bf6bf046083 100644 --- a/dlls/cryptxml/cryptxml.c +++ b/dlls/cryptxml/cryptxml.c @@ -123,3 +123,20 @@ HRESULT WINAPI CryptXmlClose( HCRYPTXML handle ) free( obj ); return S_OK; } + +HRESULT WINAPI CryptXmlGetDocContext( HCRYPTXML handle, const CRYPT_XML_DOC_CTXT **ctx ) +{ + struct xmldoc *doc = (struct xmldoc *)handle; + + TRACE( "handle %p, ctx %p\n", handle, ctx ); + + if (!doc || !ctx) return E_INVALIDARG; + if (doc->hdr.magic != DOC_MAGIC) + { + *ctx = NULL; + return CRYPT_XML_E_HANDLE; + } + + *ctx = &doc->ctx; + return S_OK; +} diff --git a/dlls/cryptxml/cryptxml.spec b/dlls/cryptxml/cryptxml.spec index bce70dcf2d3..af3235ae85c 100644 --- a/dlls/cryptxml/cryptxml.spec +++ b/dlls/cryptxml/cryptxml.spec @@ -6,7 +6,7 @@ @ stub CryptXmlEnumAlgorithmInfo @ stub CryptXmlFindAlgorithmInfo @ stub CryptXmlGetAlgorithmInfo -@ stub CryptXmlGetDocContext +@ stdcall CryptXmlGetDocContext(ptr ptr) @ stub CryptXmlGetReference @ stub CryptXmlGetSignature @ stub CryptXmlGetStatus diff --git a/include/cryptxml.h b/include/cryptxml.h index 388ce73ff07..81f8da9010e 100644 --- a/include/cryptxml.h +++ b/include/cryptxml.h @@ -296,6 +296,7 @@ typedef struct _CRYPT_XML_STATUS #define CRYPT_XML_STATUS_OPENED_TO_ENCODE 0x80000000
HRESULT WINAPI CryptXmlClose(HCRYPTXML handle); +HRESULT WINAPI CryptXmlGetDocContext(HCRYPTXML handle, const CRYPT_XML_DOC_CTXT **context); HRESULT WINAPI CryptXmlOpenToDecode(const CRYPT_XML_TRANSFORM_CHAIN_CONFIG *config, DWORD flags, const CRYPT_XML_PROPERTY *property, ULONG property_count, const CRYPT_XML_BLOB *blob, HCRYPTXML *handle);