Freigeben über


IOpcSignatureCustomObject::GetXml-Methode (msopc.h)

Ruft das XML-Markup eines anwendungsspezifischen Object-Elements ab.

Syntax

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

Parameter

[out] xmlMarkup

Ein Zeiger auf einen Puffer, der das XML-Markup eines Object-Elements und die öffnenden und schließenden Object-Tags enthält.

Im Puffer wird dem XML-Markup eine Bytereihenfolgenmarkierung vorangestellt, die der Codierung des Markups entspricht.

Unterstützte Codierungen und Bytereihenfolgenwerte .

Codieren BESCHREIBUNG Bytereihenfolge-Marke
UTF8 UTF-8 EF BB BF
UTF16LE UTF-16, little endian FF FE
UTF16BE UTF-16, Big Endian FE FF
 

Ein Beispiel für einen Puffer mit einer Bytereihenfolgenmarkierung finden Sie im Abschnitt Hinweise.

[out] count

Ein Zeiger auf die Größe des xmlMarkup-Puffers .

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_POINTER
Mindestens einer der XmlMarkup-Parameter, und count ist NULL.

Hinweise

Diese Methode ordnet Arbeitsspeicher zu, der von dem in xmlMarkup zurückgegebenen Puffer verwendet wird. Wenn die Methode erfolgreich ist, rufen Sie die CoTaskMemFree-Funktion auf, um den Arbeitsspeicher freizugeben.

Serialisierte anwendungsspezifische Object-Elemente im Signaturmarkup können hinzugefügt, entfernt oder geändert werden, indem das Signaturmarkup ersetzt wird.

Rufen Sie zum Ersetzen von Signaturmarkup die IOpcDigitalSignatureManager::ReplaceSignatureXml-Methode auf. Der Aufrufer muss sicherstellen, dass das Hinzufügen, Löschen oder Ändern anwendungsspezifischer Object-Elemente die Signatur nicht unterbricht.

Um ein anwendungsspezifisches Object-Element oder ein untergeordnetes Element dieses Elements zu signieren, erstellen Sie einen Verweis auf das zu signierende XML-Element. Erstellen Sie den Verweis, indem Sie die IOpcSignatureReferenceSet::Create-Methode aufrufen, wobei der referenceUri-Parameterwert auf "#" festgelegt ist, gefolgt vom Id-Attributwert des Elements, auf das verwiesen wird. Wenn das Id-Attribut des Elements, auf das verwiesen wird, beispielsweise "Application" lautet, legen Sie referenceUri auf "#Application" fest.

Die folgende Tabelle zeigt eine Bytereihenfolgenmarkierung am Anfang eines xmlMarkup-Puffers , der "<Object ID="id1"></Object>" enthält:

Pufferbyteindex 0 1 2 3 4 5 6 7 ...
UTF8-Wert EF BB BF '<' 'O' 'b' "j" 'e' ...
UTF16LE-Wert FF FE '<' 00 'O' 00 'b' 00 ...
 

Threadsicherheit

Das Packen von Objekten ist nicht threadsicher.

Weitere Informationen finden Sie in der Erste Schritte mit der Paketerstellungs-API.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile msopc.h

Weitere Informationen

Kernpaketschnittstellen

Erste Schritte mit der Verpackungs-API

IOpcDigitalSignatureManager

IOpcSignatureCustomObject

IOpcSignatureReferenceSet

Übersichten

Programmierhandbuch zur Paketerstellungs-API

Verpackungs-API-Referenz

Beispiele für die Paket-API

Verpacken von Schnittstellen für digitale Signaturen

Verpackungsschnittstellen

Referenz