IOpcSignatureRelationshipReferenceSet
COM公式ドキュメント
署名対象のリレーションシップを含む Relationships パートへの参照を表す、IOpcSignatureRelationshipReference インターフェイスポインターの順序なしセットです。
解説(Remarks)
Relationships パートへの参照を表す IOpcSignatureRelationshipReference インターフェイスポインターを作成するには、Create メソッドを呼び出します。この参照は、署名の生成時に、その Relationships パート内のすべてのリレーションシップを署名するのか、一部のみを署名するのかを示します。
IOpcSignatureRelationshipReferenceSet インターフェイスポインターを取得するには、IOpcSigningOptions::GetSignatureRelationshipReferenceSet メソッドを呼び出します。
IOpcSignatureRelationshipReference インターフェイスポインターが作成されてセットに追加されると、それが表す参照はパッケージの保存時に保存されます。
IOpcSignatureRelationshipReference インターフェイスポインターがセットから削除されると、それが表す参照はパッケージの保存時に保存されません。
スレッドセーフ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Relationships パートへの参照を表す IOpcSignatureRelationshipReference インターフェイスポインターを作成し、新しいインターフェイスポインターをセットに追加します。
| sourceUri | IOpcUri* | in | 署名対象として選択されるリレーションシップのソース URI を表す IOpcUri インターフェイスポインターです。 |
| digestMethod | LPWSTR | in | 選択されるリレーションシップに使用されるダイジェストメソッドです。既定のダイジェストメソッドを使用するには、このパラメーターに NULL を渡します。 重要 既定のダイジェストメソッドは、IOpcDigitalSignatureManager::Sign を呼び出す前に、IOpcSigningOptions::SetDefaultDigestMethod メソッドを呼び出して設定しておく必要があります。
|
| relationshipSigningOption | OPC_RELATIONSHIPS_SIGNING_OPTION | in | 署名対象として選択されるリレーションシップが、参照対象の Relationships パート内のすべてのリレーションシップであるか、その一部であるかを示す値です。 relationshipSigningOption の値が他のパラメーターに与える影響については、「解説」を参照してください。 |
| selectorSet | IOpcRelationshipSelectorSet* | in | 参照対象の Relationships パート内で、署名対象として選択するリレーションシップの一部を特定するために使用できる IOpcRelationshipSelectorSet インターフェイスポインターです。 relationshipSigningOption が OPC_RELATIONSHIP_SIGN_PART に設定されている場合、selectorSet は NULL です。 selectorSet の値については、「解説」を参照してください。 |
| transformMethod | OPC_CANONICALIZATION_METHOD | in | 選択されたリレーションシップのリレーションシップマークアップに適用される正規化メソッドを示す値です。 relationshipSigningOption が OPC_RELATIONSHIP_SIGN_USING_SELECTORS に設定されている場合、transformMethod の値は無視されます。 relationshipSigningOption が OPC_RELATIONSHIP_SIGN_USING_SELECTORS に設定されている場合に適用される変換メソッドの詳細については、「解説」を参照してください。 |
| relationshipReference | IOpcSignatureRelationshipReference** | out | 参照された Relationships パートを表す、新しい IOpcSignatureRelationshipReference インターフェイスポインターです。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| relationshipSigningOption パラメーターに渡された値が、有効な OPC_RELATIONSHIPS_SIGNING_OPTION 列挙値ではありません。 | |
| transformMethod パラメーターに渡された値が、有効な OPC_CANONICALIZATION_METHOD 列挙値ではありません。 | |
| sourceUri パラメーターが NULL です。 | |
| relationshipSigningOption パラメーターに OPC_RELATIONSHIP_SIGN_PART の値が渡されているにもかかわらず、selectorSet パラメーターに NULL が渡されていません。 |
解説(Remarks)
このメソッドは Relationships パートへの参照を作成します。参照された Relationships パートに格納されているリレーションシップは、署名の生成時にすべてを署名することも、一部のみを署名することもできます。
Relationships パート内のすべてのリレーションシップに署名するには、relationshipSigningOption パラメーターの値を OPC_RELATIONSHIP_SIGN_PART に、selectorSet パラメーターの値を NULL に設定してこのメソッドを呼び出します。
Relationships パート内のリレーションシップの一部に署名するには、relationshipSigningOption パラメーターの値を OPC_RELATIONSHIP_SIGN_USING_SELECTORS に、selectorSet パラメーターの値を IOpcRelationshipSelectorSet インターフェイスポインターに設定してこのメソッドを呼び出します。IOpcRelationshipSelectorSet インターフェイスポインターを作成するには、CreateRelationshipSelectorSet メソッドを呼び出します。
次の表は、参照対象の Relationships パートに格納されているリレーションシップのすべてに署名するか一部に署名するかを示す参照を作成するために、このメソッドで必要となるパラメーター値をまとめたものです。
| 説明 | relationshipSigningOption の値 | selectorSet の値 |
|---|---|---|
| Relationships パート内のすべてのリレーションシップに署名する | OPC_RELATIONSHIP_SIGN_PART | NULL |
| Relationships パート内のリレーションシップの一部に署名する | OPC_RELATIONSHIP_SIGN_USING_SELECTORS | IOpcRelationshipSelectorSet インターフェイスポインター |
リレーションシップの一部に署名する場合、指定された変換メソッドは無視されます。代わりに、署名の生成時には、最初に Relationships Transform が適用され、次に OPC_CANONICALIZATION_C14N 正規化メソッドが適用されます。
IOpcSignatureRelationshipReference インターフェイスポインターが作成されてセットに追加されると、それが表す参照はパッケージの保存時に保存されます。
署名されないリレーションシップは、署名を無効にすることなくパッケージから削除、変更、または追加できます。署名対象としてリレーションシップの一部が選択されており、その一部が変更された場合、署名は無効になります。
スレッドセーフ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
Create メソッドの selectorSet パラメーター値として使用する IOpcRelationshipSelectorSet インターフェイスポインターを作成します。
| selectorSet | IOpcRelationshipSelectorSet** | out | 新しい IOpcRelationshipSelectorSet インターフェイスポインターです。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| selectorSet パラメーターが NULL です。 |
解説(Remarks)
参照対象の Relationships パートに格納されているリレーションシップのうち、署名の生成時に署名する一部を選択するには、relationshipSigningOption パラメーターの値を OPC_RELATIONSHIP_SIGN_USING_SELECTORS に、selectorSet パラメーターの値をこのメソッドで作成した IOpcRelationshipSelectorSet インターフェイスポインターに設定して、Create メソッドを呼び出します。
スレッドセーフ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
指定された IOpcSignatureRelationshipReference インターフェイスポインターをセットから削除します。
| relationshipReference | IOpcSignatureRelationshipReference* | in | 削除する IOpcSignatureRelationshipReference インターフェイスポインターです。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| relationshipReference パラメーターが NULL です。 |
解説(Remarks)
IOpcSignatureRelationshipReference インターフェイスポインターがセットから削除されると、それが表す参照はパッケージの保存時に保存されません。
スレッドセーフ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
セット内の IOpcSignatureRelationshipReference インターフェイスポインターの列挙子を取得します。
| relationshipReferenceEnumerator | IOpcSignatureRelationshipReferenceEnumerator** | out | セット内の IOpcSignatureRelationshipReference インターフェイスポインターの列挙子へのポインターです。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| relationshipReferenceEnumerator パラメーターが NULL です。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IOpcSignatureRelationshipReferenceSet "{9F863CA5-3631-404C-828D-807E0715069B}"
#usecom global IOpcSignatureRelationshipReferenceSet IID_IOpcSignatureRelationshipReferenceSet "{}"
#comfunc global IOpcSignatureRelationshipReferenceSet_Create 3 sptr,wstr,int,sptr,int,sptr
#comfunc global IOpcSignatureRelationshipReferenceSet_CreateRelationshipSelectorSet 4 sptr
#comfunc global IOpcSignatureRelationshipReferenceSet_Delete 5 sptr
#comfunc global IOpcSignatureRelationshipReferenceSet_GetEnumerator 6 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。