iOpcDigitalSignature::GetNamespaces 方法 (msopc.h)

获取签名标记的 Signature 元素的前缀和命名空间映射。

语法

HRESULT GetNamespaces(
  [out] LPWSTR **prefixes,
  [out] LPWSTR **namespaces,
  [out] UINT32 *count
);

parameters

[out] prefixes

指向 XML 前缀字符串缓冲区的指针。 如果方法成功,请调用 CoTaskMemFree 函数以释放缓冲区中每个字符串的内存,然后释放缓冲区本身的内存。

[out] namespaces

指向 XML 命名空间字符串缓冲区的指针。 如果方法成功,请调用 CoTaskMemFree 函数以释放缓冲区中每个字符串的内存,然后释放缓冲区本身的内存。

[out] count

前缀命名空间缓冲区的大小。

返回值

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

返回代码 说明
S_OK
方法成功。
E_POINTER
prefixes 参数为 NULL
E_POINTER
命名空间参数为 NULL
E_POINTER
count 参数为 NULL

注解

前缀命名空间缓冲区按索引相互映射。

此方法分配 前缀命名空间 中返回的缓冲区以及每个缓冲区中包含的字符串使用的内存。

示例

以下代码演示如何使用 CoTaskMemFree 释放缓冲区及其包含的字符串的内存。

// Prepare to call GetNamespaces
LPWSTR* prefixes = NULL;
LPWSTR* namespaces = NULL;
UINT32 count = 0;

// Call to GetNamespaces succeeds
if ( SUCCEEDED( signature->GetNamespaces(&prefixes, &namespaces, &count) ) )
{
    // Process strings in prefixes and namespaces as needed for the application

    // Free memory for each string
    for (UINT32 i = 0; i < count; i++)
    {
        CoTaskMemFree(prefixes[i]);
        CoTaskMemFree(namespaces[i]);
    }
    // Free memory for the buffers
    CoTaskMemFree(prefixes);
    CoTaskMemFree(namespaces);
}

要求

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

请参阅

核心打包接口

数字签名概述

使用打包 API 入门

IOpcDigitalSignature

概述

打包 API 编程指南

打包 API 参考

打包 API 示例

打包数字签名接口

打包接口

引用