IXpsSignatureManager::Sign メソッド (xpsdigitalsignature.h)
署名オプションで指定された XPS パッケージの内容に署名し、結果のデジタル署名を返します。
構文
HRESULT Sign(
[in] IXpsSigningOptions *signOptions,
[in] const CERT_CONTEXT *x509Certificate,
[out, retval] IXpsSignature **signature
);
パラメーター
[in] signOptions
署名オプションを含む IXpsSigningOptions インターフェイスへのポインター。
IXpsSigningOptions インターフェイスの SignatureMethod プロパティと DigestMethod プロパティは、そのインターフェイスへのポインターを signOptions パラメーターで使用する前に初期化する必要があります。
[in] x509Certificate
署名に使用する X.509 証明書を含む CERT_CONTEXT 構造体へのポインター。
[out, retval] signature
新しいデジタル署名を含む IXpsSignature インターフェイスへのポインター。
成功した場合、このメソッドは署名パーツを作成し、それをパッケージに追加し、 シグネチャ ではそのシグネチャ パーツのインターフェイスへのポインターを返します。
戻り値
このメソッドは HRESULT を返します。 使用可能な値には、次の表に含まれる値が含まれますが、これらに限定されません。 この表に記載されていない戻り値については、「 XPS デジタル署名 API エラー と XPS ドキュメント エラー」を参照してください。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
マークアップ互換性要素が想定されていないことを指定した XPS_SIGN_FLAGS 値。ただし、マークアップ互換性要素が見つかりました。 |
|
signOptions は、認識されたインターフェイスの実装を指していません。 XPS ドキュメント API インターフェイスのカスタム実装はサポートされていません。 |
|
署名マネージャーで XPS パッケージがまだ開かれていない。 |
注釈
新しいシグネチャを追加しても、 LoadPackageFile メソッドまたは LoadPackageStream メソッドを呼び出して読み取られた元のファイルまたはストリームは上書きされません。 署名は、パッケージが保存されるまで XPS パッケージのメモリ内コピーに追加されます (SavePackageToFile メソッドまたは SavePackageToStream メソッドを呼び出します)。
新しいシグネチャにマークアップ互換性要素を含むパーツが含まれている場合、既定では、このメソッドは XPS_E_MARKUP_COMPATIBILITY_ELEMENTS というエラーで失敗します。 この動作をオーバーライドするには、IXpsSigningOptions::SetFlags を呼び出します。これにより、signOptions パラメーターによって参照される IXpsSigningOptions インターフェイスでXPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY フラグが設定されます。
このメソッドが戻り値のリストにない HRESULT 値を返す場合は、署名マネージャーを解放して再作成する必要があります。
このメソッドは、新しい署名が既存の署名を中断した場合でも成功します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | xpsdigitalsignature.h |