Compartilhar via


Método IOpcSignatureCustomObject::GetXml (msopc.h)

Obtém a marcação XML de um elemento Object específico do aplicativo.

Sintaxe

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

Parâmetros

[out] xmlMarkup

Um ponteiro para um buffer que contém a marcação XML de um elemento Object e inclui as marcas de objeto de abertura e fechamento.

No buffer, a marcação XML é precedida por uma marca de ordem de byte que corresponde à codificação da marcação.

Codificações com suporte e valores de marca de ordem de bytes .

Codificação Descrição Marca de ordem de byte
UTF8 UTF-8 EF BB BF
UTF16LE UTF-16, little endian FF FE
UTF16BE UTF-16, big endian FE FF
 

Para obter um exemplo de um buffer com uma marca de ordem de byte, consulte a seção Comentários.

[out] count

Um ponteiro para o tamanho do buffer xmlMarkup .

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_POINTER
Pelo menos um dos parâmetros xmlMarkup e count é NULL.

Comentários

Esse método aloca memória usada pelo buffer retornado em xmlMarkup. Se o método for bem-sucedido, chame a função CoTaskMemFree para liberar a memória.

Elementos object específicos do aplicativo serializados na marcação de assinatura podem ser adicionados, removidos ou modificados substituindo a marcação de assinatura.

Para substituir a marcação de assinatura, chame o método IOpcDigitalSignatureManager::ReplaceSignatureXml . O chamador deve garantir que a adição, exclusão ou modificação de elementos Object específicos do aplicativo não interrompa a assinatura.

Para assinar um elemento Object específico do aplicativo ou um filho desse elemento, crie uma referência ao elemento XML a ser assinado. Crie a referência chamando o método IOpcSignatureReferenceSet::Create com o valor do parâmetro referenceUri definido como "#" seguido pelo valor do atributo Id do elemento referenciado. Por exemplo, se o atributo ID do elemento referenciado for "Application", defina referenceUri como "#Application".

A tabela a seguir mostra uma marca de pedido de byte no início de um buffer xmlMarkup que contém "<Object Id="id1"></Object>":

Índice de bytes de buffer 0 1 2 3 4 5 6 7 ...
Valor UTF8 EF BB BF '<' 'O' 'b' 'j' 'e' ...
Valor de UTF16LE FF FE '<' 00 'O' 00 'b' 00 ...
 

Acesso thread-safe

Os objetos de empacotamento não são thread-safe.

Para obter mais informações, consulte o Introdução com a API de Empacotamento.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho msopc.h

Confira também

Principais interfaces de empacotamento

Introdução com a API de Empacotamento

IOpcDigitalSignatureManager

IOpcSignatureCustomObject

IOpcSignatureReferenceSet

Visões gerais

Guia de Programação da API de Empacotamento

Referência da API de Empacotamento

Exemplos de API de empacotamento

Empacotando interfaces de assinatura digital

Interfaces de empacotamento

Referência