共用方式為


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

IOpcUri 介面指標,代表要選取要簽署之關聯性的來源 URI。

[in] digestMethod

要用於選取關聯性的摘要方法。 若要使用預設摘要方法,請在此參數中傳遞 NULL

重要呼叫 IOpcDigitalSignatureManager::Sign 之前,必須先呼叫 IOpcSigningOptions::SetDefaultDigestMethod 方法來設定預設摘要方法。
 

[in] relationshipSigningOption

值,指出選取要簽署的關聯性包含要參考之關聯性部分中的所有關聯性或關聯性子集。

如需 relationshipSigningOption 值對其他參數的影響相關信息,請參閱。

[in] selectorSet

IOpcRelationshipSelectorSet 介面指標,可用來識別要選取要簽署之關聯性部分的關聯性子集。

如果 relationshipSigningOption 設定為 OPC_RELATIONSHIP_SIGN_PART,selectorSet 會是 NULL

如需 selectorSet 值的相關信息,請參閱。

[in] transformMethod

值,描述要套用至所選關聯性之關聯性標記的標準化方法。

如果 relationshipSigningOption 設定 OPC_RELATIONSHIP_SIGN_USING_SELECTORS則會忽略 transformMethod 的值。

如需 當 relationshipSigningOption 設定為 OPC_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

備註

這個方法會建立關聯性元件的參考。 產生簽章時,可以簽署儲存在參考關聯性元件中之關聯性的所有或子集。

若要簽署 Relationship 元件中的所有關聯性,請呼叫這個方法,並將 relationshipSigningOption 參數值設定為 OPC_RELATIONSHIP_SIGN_PART ,並將 selectorSet 參數值設定為 NULL

若要在 Relationship 元件中簽署關聯性的子集,請呼叫這個方法,並將 relationshipSigningOption 參數值設定為 OPC_RELATIONSHIP_SIGN_USING_SELECTORS ,並將 selectorSet 參數值設定為 IOpcRelationshipSelectorSet 介面指標。 若要建立 IOpcRelationshipSelectorSet 介面指標,請呼叫 CreateRelationshipSelectorSet 方法。

下表摘要說明這個方法建立參考所需的參數值,這個參考會指出所有關聯性或關聯性子集 (儲存在要參考之關聯性部分) 進行簽署。

Description relationshipSigningOption 價值 selectorSet 價值
簽署關聯性元件中的所有關聯性 OPC_RELATIONSHIP_SIGN_PART NULL
在關聯性部分簽署關聯性的子集 OPC_RELATIONSHIP_SIGN_USING_SELECTORS IOpcRelationshipSelectorSet 介面指標
 

如果要簽署關聯性的子集,則會忽略指定的轉換方法。 相反地,產生簽章時,套用的第一個轉換是關聯性轉換,而第二個則是 OPC_CANONICALIZATION_C14N 標準化方法。

建立 IOpcSignatureRelationshipReference 介面指標並新增至集合時,它會在儲存封裝時儲存它所代表的參考。

不會簽署的關聯性可以移除、修改或新增至套件,而不會使簽章失效。 如果已選取關聯性子集進行簽署,且子集已改變,簽章將會失效。

重要 如果在參考的關聯性元件中加入或修改之關聯性的關聯性類型符合用來選取子集中一或多個關聯性的關聯性類型,則可改變選取的子集。
 

執行緒安全性

封裝物件不是安全線程。

如需詳細資訊,請參閱使用封裝 API 使用者入門

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 msopc.h

另請參閱

核心封裝介面

使用封裝 API 使用者入門

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

概觀

封裝 API 程式設計指南

封裝 API 參考

封裝 API 範例

封裝數位簽名介面

封裝介面

參考