IOpcSignatureCustomObject::GetXml 方法 (msopc.h)

获取特定于应用程序的 Object 元素的 XML 标记。

语法

HRESULT GetXml(
  [out] UINT8  **xmlMarkup,
  [out] UINT32 *count
);

参数

[out] xmlMarkup

指向缓冲区的指针,该缓冲区包含 Object 元素的 XML 标记,并包含开始和结束 Object 标记。

在缓冲区中,XML 标记前面是对应于标记编码的 字节顺序标记

支持的编码和 字节顺序标记 值。

编码 说明 字节顺序标记
UTF8 UTF-8 EF BB BF
UTF16LE UTF-16,little endian FF FE
UTF16BE UTF-16,big endian FE FF
 

有关具有 字节顺序标记的缓冲区的示例,请参阅“备注”部分。

[out] count

指向 xmlMarkup 缓冲区大小的指针。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_POINTER
至少一个 xmlMarkupcount 参数为 NULL

注解

此方法分配 xmlMarkup 中返回的缓冲区使用的内存。 如果方法成功,请调用 CoTaskMemFree 函数以释放内存。

签名标记中特定于应用程序的 序列化对象 元素可以通过替换签名标记来添加、删除或修改。

若要替换签名标记,请调用 IOpcDigitalSignatureManager::ReplaceSignatureXml 方法。 调用方必须确保添加、删除或修改特定于应用程序的 Object 元素不会破坏签名。

若要对特定于应用程序的 Object 元素或该元素的子元素进行签名,请创建对要签名的 XML 元素的引用。 通过调用 IOpcSignatureReferenceSet::Create 方法创建引用,并将 referenceUri 参数值设置为“#”,后跟被引用元素的 Id 属性值。 例如,如果引用元素的 Id 属性为“Application”,请将 referenceUri 设置为“#Application”。

下表显示了包含“Object Id=”id1“></Object>”<的 xmlMarkup 缓冲区开头的字节顺序标记

缓冲区字节索引 0 1 2 3 4 5 6 7 ...
UTF8 值 EF BB BF '<' 'O' 'b' 'j' 'e' ...
UTF16LE值 FF FE '<' 00 'O' 00 'b' 00 ...
 

线程安全性

打包对象不是线程安全的。

有关详细信息,请参阅打包 API 的入门

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 msopc.h

另请参阅

核心打包接口

使用打包 API 入门

IOpcDigitalSignatureManager

IOpcSignatureCustomObject

IOpcSignatureReferenceSet

概述

打包 API 编程指南

打包 API 参考

打包 API 示例

打包数字签名接口

打包接口

引用