From 0b53ba31f9ff7696013bf45113cafb5f60ce026b Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 17 Jun 2020 13:22:09 +0800 Subject: [PATCH] prntvpt: Add support for PageResolution to ticket XML writer. Signed-off-by: Dmitry Timoshkov Signed-off-by: Alexandre Julliard --- dlls/prntvpt/ticket.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/dlls/prntvpt/ticket.c b/dlls/prntvpt/ticket.c index e90dc5100ba..b9dfdb10aeb 100644 --- a/dlls/prntvpt/ticket.c +++ b/dlls/prntvpt/ticket.c @@ -889,6 +889,34 @@ static HRESULT write_PageScaling(IXMLDOMElement *root, const struct ticket *tick return hr; } +static HRESULT write_PageResolution(IXMLDOMElement *root, const struct ticket *ticket) +{ + IXMLDOMElement *feature, *option = NULL, *property; + HRESULT hr; + + hr = create_Feature(root, L"psk:PageResolution", &feature); + if (hr != S_OK) return hr; + + hr = create_Option(feature, NULL, &option); + if (hr != S_OK) goto fail; + + hr = create_ScoredProperty(option, L"psk:ResolutionX", &property); + if (hr != S_OK) goto fail; + hr = write_int_value(property, ticket->page.resolution.x); + IXMLDOMElement_Release(property); + if (hr != S_OK) goto fail; + + hr = create_ScoredProperty(option, L"psk:ResolutionY", &property); + if (hr != S_OK) goto fail; + hr = write_int_value(property, ticket->page.resolution.y); + IXMLDOMElement_Release(property); + +fail: + if (option) IXMLDOMElement_Release(option); + IXMLDOMElement_Release(feature); + return hr; +} + static HRESULT write_attributes(IXMLDOMElement *element) { HRESULT hr; @@ -932,6 +960,8 @@ static HRESULT write_ticket(IStream *stream, const struct ticket *ticket, EPrint if (hr != S_OK) goto fail; hr = write_PageScaling(root, ticket); if (hr != S_OK) goto fail; + hr = write_PageResolution(root, ticket); + if (hr != S_OK) goto fail; hr = IStream_Write(stream, xmldecl, strlen(xmldecl), NULL); if (hr != S_OK) goto fail;