IOpcDigitalSignatureManager::ReplaceSignatureXml メソッド (msopc.h)
指定した署名パーツに格納されている既存の署名マークアップを置き換えます。
構文
HRESULT ReplaceSignatureXml(
[in] IOpcPartUri *signaturePartName,
[in] const UINT8 *newSignatureXml,
[in] UINT32 count,
[out, retval] IOpcDigitalSignature **digitalSignature
);
パラメーター
[in] signaturePartName
既存の署名マークアップを格納する署名パーツのパーツ名を表す IOpcPartUri インターフェイス ポインター。
[in] newSignatureXml
既存のマークアップを置き換える署名マークアップを含むバッファー。
[in] count
newSignatureXml バッファーのサイズ。
[out, retval] digitalSignature
newSignatureXml で渡される署名マークアップから派生した署名を表す新しい IOpcDigitalSignature インターフェイスへのポインター。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード/値 | 説明 |
---|---|
|
メソッドが成功しました。 |
|
signaturePartName、newSignatureXml、および digitalSignature パラメーターの少なくとも 1 つが NULL です。 |
|
newSignatureXml バッファーには、パッケージ Object 要素を参照する複数の Reference 要素が含まれていますが、このような Reference は 1 つだけ許可されます。 |
|
newSignatureXml バッファーには、同じ Id 属性を持つ複数の SignatureProperty 要素が含まれています。 |
|
newSignatureXml バッファーでは、Reference 要素はパッケージの外部にあるオブジェクトを参照します。 参照 要素は、内部のパーツまたは Object 要素を指す必要があります。 |
|
サポートされていない正規化メソッドが要求されたか、 newSignatureXml バッファーで使用されました。 |
|
newSignatureXml バッファーでは、リレーションシップ変換の使用と変換の選択基準を示す Transform 要素が、OPC で指定されたスキーマに準拠していません。 |
|
newSignatureXml バッファーには、厳密に 1 つの署名の署名マークアップが含まれていません。 |
|
newSignatureXml バッファーのサイズは 0 ですが、このバッファーのサイズは 0 より大きい必要があります。 |
|
newSignatureXml バッファーでは、リレーションシップ変換の後に正規化メソッドが続かない。リレーションシップ変換の後に正規化メソッドを指定する必要があります。 |
|
newSignatureXml バッファーで、パッケージ固有の Object 要素への参照が見つかりませんでした。 |
|
newSignatureXml バッファーのシグネチャ マークアップでは、シグネチャ メソッド アルゴリズムが指定されていません。 |
|
newSignatureXml バッファーで、SignatureProperties 要素が見つかりませんでした。 |
|
newSignatureXml バッファーで、SignatureProperties 要素の SignatureProperty 子要素が見つかりませんでした。 |
|
newSignatureXml バッファーでは、Id 属性値が "idSignatureTime" の SignatureProperty 要素が存在しないか、正しく構築されていません。 |
|
newSignatureXml バッファーでは、Reference 要素に対して複数のリレーションシップ変換が指定されていますが、許可されるリレーションシップ変換は 1 つだけです。 |
|
newSignatureXml バッファー内の Reference 要素の URI 属性値には、参照されるパーツのコンテンツ タイプは含まれません。 |
|
newSignatureXml バッファーでは、SignatureProperty 要素に必要な Target 属性がありません。 |
|
newSignatureXml バッファーにある Reference 要素には URI 属性が必要ですが、 属性がありません。 |
|
パッケージは署名されていません。そのため、署名マークアップを置き換えることはできません。 |
|
指定した部分が存在しません。 |
注釈
このメソッドは、 newSignatureXml パラメーター内の新しい署名マークアップから派生した署名を検証しません。
呼び出し元は、指定された署名部分の既存の署名マークアップを置き換える新しい署名マークアップが署名を中断しないことを確認する必要があります。
このメソッドは、既存の署名マークアップを変更します。指定された署名部分をソースとして持つ証明書とリレーションシップは保持されます。
スレッド セーフ
パッケージ 化オブジェクトはスレッド セーフではありません。
詳細については、Packaging API を使用したはじめにに関するページを参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | msopc.h |
こちらもご覧ください
概要
参照