Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Gets the XML markup of an application-specific Object element.
Syntax
HRESULT GetXml(
[out] UINT8 **xmlMarkup,
[out] UINT32 *count
);
Parameters
[out] xmlMarkup
A pointer to a buffer that contains the XML markup of an Object element and includes the opening and closing Object tags.
In the buffer, XML markup is preceded by a byte order mark that corresponds to the encoding of the markup.
Supported encodings and byte order mark values.
Encoding | Description | Byte order mark |
---|---|---|
UTF8 | UTF-8 | EF BB BF |
UTF16LE | UTF-16, little endian | FF FE |
UTF16BE | UTF-16, big endian | FE FF |
For an example of a buffer with a byte order mark, see the Remarks section.
[out] count
A pointer to the size of the xmlMarkup buffer.
Return value
The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.
Return code | Description |
---|---|
|
The method succeeded. |
|
At least one of the xmlMarkup, and count parameters is NULL. |
Remarks
This method allocates memory used by the buffer returned in xmlMarkup. If the method succeeds, call the CoTaskMemFree function to free the memory.
Serialized application-specific Object elements in signature markup can be added, removed, or modified by replacing the signature markup.
To replace signature markup, call the IOpcDigitalSignatureManager::ReplaceSignatureXml method. The caller must ensure that addition, deletion, or modification of application-specific Object elements does not break the signature.
To sign an application-specific Object element or a child of that element, create a reference to the XML element to be signed. Create the reference by calling the IOpcSignatureReferenceSet::Create method with the referenceUri parameter value set to "#" followed by the Id attribute value of the referenced element. For example, if the Id attribute of the referenced element is "Application", set referenceUri to "#Application".
The following table shows a byte order mark at the beginning of an xmlMarkup buffer that contains "<Object Id="id1"></Object>":
Buffer Byte Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ... |
---|---|---|---|---|---|---|---|---|---|
UTF8 Value | EF | BB | BF | '<' | 'O' | 'b' | 'j' | 'e' | ... |
UTF16LE Value | FF | FE | '<' | 00 | 'O' | 00 | 'b' | 00 | ... |
Thread Safety
Packaging objects are not thread-safe.
For more information, see the Getting Started with the Packaging API.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 7 [desktop apps only] |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Target Platform | Windows |
Header | msopc.h |
See also
Getting Started with the Packaging API
Overviews
Packaging API Programming Guide
Packaging Digital Signature Interfaces
Reference