Win32 API 日本語リファレンス
ホームStorage.Xps › IXpsSigningOptions

IXpsSigningOptions

COM
IID7718eae4-3215-49be-af5b-594fef7fcfa6継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

新しい署名で使用される個々の署名オプションへのアクセスを提供します。

解説(Remarks)

このインターフェイスの新しいインスタンスを作成するには、IXpsSignatureManager::CreateSigningOptions を呼び出します。

IXpsSignatureManager::CreateSigningOptions によってこのインターフェイスの新しいインスタンスが返された時点では、SignatureMethod プロパティと DigestMethod プロパティは初期化されていません。新しいインターフェイスを Sign メソッドの引数として使用する前に、これらのプロパティを初期化する必要があります。

メソッド 17

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetSignatureId(LPWSTR* signatureId)

Signature 要素の Id 属性の値を取得します。(IXpsSigningOptions.GetSignatureId)

signatureIdLPWSTR*outSignature 要素の Id 属性の値。Id 属性が存在しない場合、このメソッドは空の文字列を返します。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、signatureId で返される文字列が使用するメモリを割り当てます。signatureIdNULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。

署名 ID の既定値は空の文字列です。

vtbl 4 HRESULT SetSignatureId(LPWSTR signatureId)

Signature 要素の Id 属性の値を設定します。(IXpsSigningOptions.SetSignatureId)

signatureIdLPWSTRinSignature 要素の Id 属性として設定する文字列値。このパラメーターが NULL の場合、Id 属性はクリアされます。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT GetSignatureMethod(LPWSTR* signatureMethod)

署名メソッドを取得します。

signatureMethodLPWSTR*out

URI として表現された署名メソッド。署名メソッドが設定されていない場合は、NULL ポインターが返されます。

次の署名メソッドが Windows 7 でテストされています。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

署名の前に署名メソッドを設定する必要があります。

IXpsSignatureManager::CreateSigningOptions によってこのインターフェイスの新しいインスタンスが返された時点では、SignatureMethod プロパティと DigestMethod プロパティは有効ではありません。新しいインターフェイスを Sign メソッドの引数として使用する前に、これらを初期化する必要があります。

このメソッドは、signatureMethod で返される文字列が使用するメモリを割り当てます。signatureMethodNULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。

vtbl 6 HRESULT SetSignatureMethod(LPWSTR signatureMethod)

署名メソッドを設定します。

signatureMethodLPWSTRin

URI として表現された署名メソッド。

このパラメーターは有効な署名メソッドを参照している必要があります。次の署名メソッドが Windows 7 でテストされています。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

署名の前に署名メソッドを設定する必要があります。

IXpsSignatureManager::CreateSigningOptions によってこのインターフェイスの新しいインスタンスが返された時点では、SignatureMethod プロパティと DigestMethod プロパティは初期化されていません。新しいインターフェイスを Sign メソッドの引数として使用する前に、これらを初期化する必要があります。

signatureMethod の URI は、http://www.w3.org/2000/09/xmldsig#rsa-sha1 のような有効な署名アルゴリズムの URI であり、かつ署名証明書でサポートされている必要があります。

vtbl 7 HRESULT GetDigestMethod(LPWSTR* digestMethod)

現在のダイジェストメソッドを取得します。

digestMethodLPWSTR*out

現在のダイジェストメソッド。

次のダイジェストメソッドが Windows 7 でテストされています。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

署名の前にダイジェストメソッドを設定する必要があります。

IXpsSignatureManager::CreateSigningOptions によってこのインターフェイスの新しいインスタンスが返された時点では、SignatureMethod プロパティと DigestMethod プロパティは有効ではありません。新しいインターフェイスを Sign メソッドの引数として使用する前に、これらを初期化する必要があります。

このメソッドは、digestMethod で返される文字列が使用するメモリを割り当てます。digestMethodNULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。

vtbl 8 HRESULT SetDigestMethod(LPWSTR digestMethod)

ダイジェストメソッドの URI を設定します。

digestMethodLPWSTRin

ダイジェストメソッドの URI。

このパラメーターは有効なダイジェストメソッドの URI を参照している必要があります。次のダイジェストメソッドが Windows 7 でテストされています。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

署名の前にダイジェストメソッドを設定する必要があります。

IXpsSignatureManager::CreateSigningOptions によってこのインターフェイスの新しいインスタンスが返された時点では、SignatureMethod プロパティと DigestMethod プロパティは初期化されていません。新しいインターフェイスを Sign メソッドの引数として使用する前に、これらを初期化する必要があります。

パート、リレーションシップ、および署名参照のダイジェストに使用されるアルゴリズムの URI を識別する文字列を設定します。有効な URI の例を次に示します。http://www.w3.org/2000/09/xmldsig#sha1

署名証明書、署名メソッド、およびダイジェストメソッドは、相互に互換性がある必要があります。

vtbl 9 HRESULT GetSignaturePartName(IOpcPartUri** signaturePartName)

ドキュメントの署名パートのパート名を取得します。

signaturePartNameIOpcPartUri**out

ドキュメントの署名パートのパート名を格納する IOpcPartUri インターフェイスへのポインター。

署名パート名が設定されていない場合は、NULL ポインターが返されます。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 10 HRESULT SetSignaturePartName(IOpcPartUri* signaturePartName)

ドキュメントの署名パートのパート名を設定します。

signaturePartNameIOpcPartUri*in

ドキュメントの署名パートのパート名を格納する IOpcPartUri インターフェイス。

このパラメーターが NULL の場合、このメソッドは署名パート用にランダムで一意なパート名を生成します。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT GetPolicy(XPS_SIGN_POLICY* policy)

署名ポリシーを指定する XPS_SIGN_POLICY 値を取得します。

policyXPS_SIGN_POLICY*out署名ポリシーを指定する XPS_SIGN_POLICY 値の論理和 (OR)

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれます (これらに限定されません)。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
policyNULL です。
E_UNEXPECTED
インターフェイスが署名マネージャーに接続されていません。

解説(Remarks)

XPS_SIGN_POLICY 値が設定されていても、署名対象のパッケージ内に対応するパートが存在しない場合は、リレーションシップの種類のみが署名されます。

vtbl 12 HRESULT SetPolicy(XPS_SIGN_POLICY policy)

署名ポリシーを表す XPS_SIGN_POLICY 値を設定します。

policyXPS_SIGN_POLICYin署名ポリシーとして設定する XPS_SIGN_POLICY 値の論理和 (OR)

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

XPS_SIGN_POLICY 値が設定されていても、署名対象のパッケージ内に対応するパートが存在しない場合は、リレーションシップの種類のみが署名されます。

vtbl 13 HRESULT GetSigningTimeFormat(OPC_SIGNATURE_TIME_FORMAT* timeFormat)

署名時刻文字列の形式を取得します。

timeFormatOPC_SIGNATURE_TIME_FORMAT*out署名時刻文字列の形式を指定する OPC_SIGNATURE_TIME_FORMAT 値。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

timeFormat で渡される日時文字列の形式について詳しくは、OPC_SIGNATURE_TIME_FORMAT を参照してください。

署名時刻の形式が設定されていない場合は、既定の形式として OPC_SIGNATURE_TIME_FORMAT_MILLISECONDS が使用されます。

vtbl 14 HRESULT SetSigningTimeFormat(OPC_SIGNATURE_TIME_FORMAT timeFormat)

署名時刻文字列の形式を設定します。

timeFormatOPC_SIGNATURE_TIME_FORMATin署名時刻文字列の形式を指定する OPC_SIGNATURE_TIME_FORMAT 値。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

timeFormat で渡される日時文字列の形式について詳しくは、OPC_SIGNATURE_TIME_FORMAT を参照してください。

署名時刻の形式が設定されていない場合は、既定の形式として OPC_SIGNATURE_TIME_FORMAT_MILLISECONDS が使用されます。

vtbl 15 HRESULT GetCustomObjects(IOpcSignatureCustomObjectSet** customObjectSet)

署名のカスタムオブジェクトのセットを格納する IOpcSignatureCustomObjectSet インターフェイスへのポインターを取得します。

customObjectSetIOpcSignatureCustomObjectSet**out署名のカスタムオブジェクトのセットを格納する IOpcSignatureCustomObjectSet インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドが返すカスタムオブジェクトのセットは空です。このセットにカスタムオブジェクトを追加するには、customObjectSet で返されるインターフェイスの Create メソッドを呼び出します。

カスタムオブジェクトに署名する必要がある場合は、そのオブジェクトへの参照をカスタムオブジェクトのセットに追加する必要があります。カスタム参照の追加については、GetCustomReferences を参照してください。

vtbl 16 HRESULT GetCustomReferences(IOpcSignatureReferenceSet** customReferenceSet)

署名のカスタム参照のセットを格納する IOpcSignatureReferenceSet インターフェイスへのポインターを取得します。

customReferenceSetIOpcSignatureReferenceSet**out署名のカスタム参照のセットを格納する IOpcSignatureReferenceSet インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドが返すカスタム参照のセットは空です。このセットにカスタム参照を追加するには、customReferenceSet で返されるインターフェイスの Create メソッドを呼び出します。

カスタムオブジェクトに署名する必要がある場合は、そのオブジェクトへの参照をカスタムオブジェクトのセットに追加する必要があります。カスタム参照の追加については、GetCustomReferences を参照してください。

vtbl 17 HRESULT GetCertificateSet(IOpcCertificateSet** certificateSet)

署名に追加の証明書を追加するために使用できる IOpcCertificateSet インターフェイスを取得します。

certificateSetIOpcCertificateSet**outIOpcCertificateSet インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドの呼び出しは省略可能で、アプリケーションが署名に署名証明書を追加するための手段を提供します。このセット内の追加の証明書は、署名証明書とは別に扱われます。

vtbl 18 HRESULT GetFlags(XPS_SIGN_FLAGS* flags)

この署名に使用する署名フラグを指定する XPS_SIGN_FLAGS 値を取得します。

flagsXPS_SIGN_FLAGS*outこの署名に使用する署名フラグを指定する XPS_SIGN_FLAGS 値。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 19 HRESULT SetFlags(XPS_SIGN_FLAGS flags)

この署名に使用する署名フラグを指定する XPS_SIGN_FLAGS 値を設定します。

flagsXPS_SIGN_FLAGSinこの署名に使用する署名フラグを指定する XPS_SIGN_FLAGS 値。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IXpsSigningOptions "{7718EAE4-3215-49BE-AF5B-594FEF7FCFA6}"
#usecom global IXpsSigningOptions IID_IXpsSigningOptions "{}"
#comfunc global IXpsSigningOptions_GetSignatureId        3 var
#comfunc global IXpsSigningOptions_SetSignatureId        4 wstr
#comfunc global IXpsSigningOptions_GetSignatureMethod    5 var
#comfunc global IXpsSigningOptions_SetSignatureMethod    6 wstr
#comfunc global IXpsSigningOptions_GetDigestMethod       7 var
#comfunc global IXpsSigningOptions_SetDigestMethod       8 wstr
#comfunc global IXpsSigningOptions_GetSignaturePartName  9 sptr
#comfunc global IXpsSigningOptions_SetSignaturePartName  10 sptr
#comfunc global IXpsSigningOptions_GetPolicy             11 var
#comfunc global IXpsSigningOptions_SetPolicy             12 int
#comfunc global IXpsSigningOptions_GetSigningTimeFormat  13 var
#comfunc global IXpsSigningOptions_SetSigningTimeFormat  14 int
#comfunc global IXpsSigningOptions_GetCustomObjects      15 sptr
#comfunc global IXpsSigningOptions_GetCustomReferences   16 sptr
#comfunc global IXpsSigningOptions_GetCertificateSet     17 sptr
#comfunc global IXpsSigningOptions_GetFlags              18 var
#comfunc global IXpsSigningOptions_SetFlags              19 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。