IOpcSignatureRelationshipReferenceSet::Create メソッド (msopc.h)

リレーションシップ パーツへの参照を表す IOpcSignatureRelationshipReference インターフェイス ポインターを作成し、新しいインターフェイス ポインターをセットに追加します。 参照するリレーションシップ パーツに格納されているリレーションシップのすべてまたはサブセットが、署名用に選択されます。

構文

HRESULT Create(
  [in]          IOpcUri                            *sourceUri,
  [in]          LPCWSTR                            digestMethod,
  [in]          OPC_RELATIONSHIPS_SIGNING_OPTION   relationshipSigningOption,
  [in]          IOpcRelationshipSelectorSet        *selectorSet,
  [in]          OPC_CANONICALIZATION_METHOD        transformMethod,
  [out, retval] IOpcSignatureRelationshipReference **relationshipReference
);

パラメーター

[in] sourceUri

署名用に選択するリレーションシップのソース URI を表す IOpcUri インターフェイス ポインター。

[in] digestMethod

選択するリレーションシップに使用するダイジェスト メソッド。 既定のダイジェスト メソッドを使用するには、このパラメーターに NULL を 渡します。

大事なIOpcDigitalSignatureManager::Sign が呼び出される前に、IOpcSigningOptions::SetDefaultDigestMethod メソッドを呼び出して、既定のダイジェスト メソッドを設定する必要があります。
 

[in] relationshipSigningOption

署名のために選択したリレーションシップに、参照するリレーションシップ パーツ内のリレーションシップのすべてまたはサブセットが含まれるかどうかを示す 値です。

relationshipSigningOption 値が他のパラメーターに与える影響については、「解説」を参照してください。

[in] selectorSet

署名用に選択するリレーションシップ パーツ内のリレーションシップのサブセットを識別するために使用できる IOpcRelationshipSelectorSet インターフェイス ポインター。

relationshipSigningOptionOPC_RELATIONSHIP_SIGN_PARTに設定されている場合、selectorSetNULL です

selectorSet 値の詳細については、「解説」を参照してください。

[in] transformMethod

選択したリレーションシップのリレーションシップ マークアップに適用する正規化方法を表す 値。

relationshipSigningOptionOPC_RELATIONSHIP_SIGN_USING_SELECTORS設定されている場合、transformMethod の値は無視されます。

relationshipSigningOptionOPC_RELATIONSHIP_SIGN_USING_SELECTORSに設定されている場合に適用される変換メソッドの詳細については、「解説」を参照してください。

[out, retval] relationshipReference

参照されるリレーションシップ パーツを表す新しい IOpcSignatureRelationshipReference インターフェイス ポインター。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
relationshipSigningOption パラメーターで渡された値が、有効なOPC_RELATIONSHIPS_SIGNING_OPTION列挙値ではありません。
E_INVALIDARG
transformMethod パラメーターで渡される値は、有効なOPC_CANONICALIZATION_METHOD列挙値ではありません。
E_POINTER
sourceUri パラメーターは NULL です
E_UNEXPECTED
relationshipSigningOption パラメーターに OPC_RELATIONSHIP_SIGN_PART の値が渡されている間、selectorSet パラメーターは NULL に渡されません。

注釈

このメソッドは、リレーションシップ パーツへの参照を作成します。 参照されるリレーションシップ パーツに格納されているリレーションシップのすべてまたはサブセットは、署名の生成時に署名できます。

リレーションシップ パーツ内のすべてのリレーションシップに署名するには、 relationshipSigningOption パラメーター値を OPC_RELATIONSHIP_SIGN_PART に設定し、 selectorSet パラメーター値を NULL に設定して、このメソッドを呼び出 します

リレーションシップ パーツ内のリレーションシップのサブセットに署名するには、 relationshipSigningOption パラメーター値を OPC_RELATIONSHIP_SIGN_USING_SELECTORS に設定し、 selectorSet パラメーター値を IOpcRelationshipSelectorSet インターフェイス ポインターに設定して、このメソッドを呼び出します。 IOpcRelationshipSelectorSet インターフェイス ポインターを作成するには、CreateRelationshipSelectorSet メソッドを呼び出します。

次の表は、すべてのリレーションシップまたはリレーションシップのサブセット (参照するリレーションシップ パーツに格納されている) を署名するかどうかを示す参照を作成するために、このメソッドで必要なパラメーター値をまとめたものです。

説明 relationshipSigningOption selectorSet
リレーションシップ パーツ内のすべてのリレーションシップに署名する OPC_RELATIONSHIP_SIGN_PART NULL
リレーションシップ パーツ内のリレーションシップのサブセットに署名する OPC_RELATIONSHIP_SIGN_USING_SELECTORS IOpcRelationshipSelectorSet インターフェイス ポインター
 

リレーションシップのサブセットに署名する場合、指定された変換メソッドは無視されます。 代わりに、シグネチャが生成されるときに適用される最初の変換はリレーションシップ変換で、2 つ目は OPC_CANONICALIZATION_C14N 正規化メソッドです。

IOpcSignatureRelationshipReference インターフェイス ポインターが作成され、セットに追加されると、それが表す参照はパッケージの保存時に保存されます。

署名されないリレーションシップは、署名を無効にすることなく、パッケージに削除、変更、または追加できます。 署名のためにリレーションシップのサブセットが選択されていて、そのサブセットが変更された場合、署名は無効になります。

大事な 選択したサブセットは、参照されるリレーションシップ パーツに追加または変更されたリレーションシップのリレーションシップの種類が、サブセット内の 1 つ以上のリレーションシップを選択するために使用されたリレーションシップの種類と一致する場合に変更できます。
 

スレッド セーフ

パッケージ 化オブジェクトはスレッド セーフではありません。

詳細については、Packaging API を使用したはじめにに関するページを参照してください。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー msopc.h

こちらもご覧ください

コア パッケージ インターフェイス

Packaging API を使用したはじめに

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

概要

パッケージ化 API プログラミング ガイド

パッケージ化 API リファレンス

API サンプルのパッケージ化

デジタル署名インターフェイスのパッケージ化

インターフェイスのパッケージ化

参照