[2/6] wsdapi: Add code to create SOAP envelope from header and body elements.
Vincent Povirk
madewokherd at gmail.com
Fri Jul 28 15:00:12 CDT 2017
+ wideStringLength = lstrlenW(wideString);
+ sizeNeeded = WideCharToMultiByte(CP_UTF8, 0, wideString,
wideStringLength, NULL, 0, NULL, NULL);
+
+ if (sizeNeeded < 0)
+ {
+ return NULL;
+ }
+
+ newString = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeNeeded + 1);
+ WideCharToMultiByte(CP_UTF8, 0, wideString, wideStringLength,
newString, sizeNeeded, NULL, NULL);
This would be much simpler if you passed in -1 as the wide string
length. Using HEAP_ZERO_MEMORY to null-terminate the string is a bit
weird.
+ else if (curNode->Type == TextType)
+ {
+ textNode = WSDAllocateLinkedMemory(parent, sizeof(WSDXML_TEXT));
+ if (textNode == NULL) goto cleanup;
+
+ textNode->Node.Next = NULL;
+ textNode->Node.Parent = parent;
+ textNode->Node.Type = TextType;
+ textNode->Text = duplicate_string(textNode, ((WSDXML_TEXT
*)curNode)->Text);
+ if (textNode->Text == NULL) goto cleanup;
+ }
I'm not sure, but I think you need to add textNode as a child of newElement?
+ /* SequenceID attribute */
+ if (header->AppSequence->SequenceId != NULL)
+ {
+ if (!add_string_attribute(xmlContext, appSequenceElement,
discoveryNsUri, sequenceIdString, header->AppSequence->SequenceId))
goto cleanup;
+ }
Do we need the namespace for SequenceID?
More information about the wine-devel
mailing list