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

IXpsSignatureRequest

COM
IIDac58950b-7208-4b2d-b2c4-951083d3b8eb継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

署名要求の各構成要素にアクセスします。

解説(Remarks)

IXpsSignatureRequest インターフェイスは、SignatureDefinitons パートのマークアップ内にある単一の SignatureDefinition 要素に対応します。

この SignatureDefinition 要素のマークアップについては、XML Paper Specification のセクション 10.2.2 で説明されています。

すべての署名要求は、署名ブロックの要求コレクションに格納されます。これらは、インスタンス化の元となった IXpsSignatureBlock インターフェイスから独立して存在することはできません。

メソッド 12

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

vtbl 3 HRESULT GetIntent(LPWSTR* intent)

署名の意図または意味を記述する文字列を設定します。(IXpsSignatureRequest.GetIntent)

intentLPWSTR*out署名者が署名の対象とする、署名意図に関する同意文。

戻り値

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

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

解説(Remarks)

署名意図の文字列は、その署名が署名者にとって何を意味するのかを記述します。たとえば、署名意図の文字列が「I have read and agree with the contents of this document」である場合、デジタル署名が存在することは、署名者がそのドキュメントの内容を読み、その内容に同意したことを意味します。

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

vtbl 4 HRESULT SetIntent(LPWSTR intent)

署名の意図または意味を記述する文字列を設定します。(IXpsSignatureRequest.SetIntent)

intentLPWSTRin署名の意図または意味を記述する文字列。

戻り値

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

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

解説(Remarks)

署名意図の文字列は、その署名が署名者にとって何を意味するのかを記述します。たとえば、署名意図の文字列が「I have read and agree with the contents of this document」である場合、デジタル署名が存在することは、署名者がそのドキュメントの内容を読み、その内容に同意したことを意味します。

vtbl 5 HRESULT GetRequestedSigner(LPWSTR* signerName)

パッケージに署名した人物、または署名を要求している人物の識別情報を取得します。

signerNameLPWSTR*outパッケージに署名した人物、または署名を要求している人物の識別情報。

戻り値

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

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

解説(Remarks)

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

vtbl 6 HRESULT SetRequestedSigner(LPWSTR signerName)

パッケージに署名した人物、または署名を要求された人物の識別情報を設定します。

signerNameLPWSTRinパッケージに署名した人物、または署名を要求している人物の識別情報。

戻り値

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

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

要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を取得します。

dateStringLPWSTR*out

要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を格納する文字列。

この文字列は、UTC タイムゾーンオフセットを含む YYYY-MM-DDThh:mmZ 形式、または UTC タイムゾーンオフセットを含まない YYYY-MM-DDThh:mm 形式のいずれかで書式設定されます。たとえば、タイムゾーンオフセットを含まない場合、2008 年 7 月 4 日の午後 7 時 30 分 29 秒は 2008-07-04T19:30:29 と表されます。

戻り値

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

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

解説(Remarks)

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

vtbl 8 HRESULT SetRequestSignByDate(LPWSTR dateString)

要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を設定します。

dateStringLPWSTRin

要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を格納する文字列。

この文字列は、UTC タイムゾーンオフセット付きの YYYY-MM-DDThh:mmZ 形式で書式設定する必要があります。たとえば、2008 年 7 月 4 日の太平洋標準時 午前 7 時 30 分 29 秒は、UTC 時刻の 2008-07-04T15:30:29Z として表されます。

戻り値

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

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

パッケージの署名場所に関する法的管轄区域を取得します。

placeLPWSTR*outパッケージの署名場所に関する法的管轄区域

戻り値

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

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

解説(Remarks)

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

vtbl 10 HRESULT SetSigningLocale(LPWSTR place)

パッケージの署名場所に関する法的管轄区域を設定します。

placeLPWSTRinパッケージの署名場所に関する法的管轄区域。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
placeNULL です。
E_UNEXPECTED
インターフェイスが署名マネージャーに接続されていません。
vtbl 11 HRESULT GetSpotLocation(INT* pageIndex, IOpcPartUri** pagePartName, FLOAT* x, FLOAT* y)

可視のデジタル署名またはデジタル署名要求が表示されるページと、そのページ上の位置を取得します。

pageIndexINT*out署名またはデジタル署名要求を含む FixedPage パートのインデックス値。署名要求にスポットの位置が指定されていない場合は、–1 が返されます。
pagePartNameIOpcPartUri**outデジタル署名を表示する FixedPage を含むパートの IOpcPartUri インターフェイスへのポインター。
xFLOAT*outページ上の署名スポットの x 座標値。
yFLOAT*outページ上の署名スポットの y 座標値。

戻り値

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

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

解説(Remarks)

署名スポットの位置は、ページの左上隅を基準とした XPS 単位で指定されます。1 インチあたり 96 XPS 単位です。

vtbl 12 HRESULT SetSpotLocation(INT pageIndex, FLOAT x, FLOAT y)

可視のデジタル署名またはデジタル署名要求を表示するページと、そのページ上の位置を指定します。

pageIndexINTin

XPS ドキュメント内で、可視のデジタル署名またはデジタル署名要求を含む FixedPage パートのインデックス値。

このパラメーターの値が –1 の場合、SpotLocation 要素は SignatureDefinitions のマークアップに書き込まれません。

このパラメーターの値が –1 でない場合は、この要求を含む署名ブロックが関連付けられている FixedDocument パートに存在するページ番号でなければなりません。

xFLOATinページ上の署名スポットの x 座標値。
yFLOATinページ上の署名スポットの y 座標値。

戻り値

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

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

解説(Remarks)

署名スポットの位置は、ページの左上隅を基準とした XPS 単位で指定されます。1 インチあたり 96 XPS 単位です。

vtbl 13 HRESULT GetRequestId(LPWSTR* requestId)

署名要求の一意の識別子を取得します。

requestIdLPWSTR*out署名要求の一意の識別子。

戻り値

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

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

解説(Remarks)

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

requestId パラメーターは、SignatureDefinition 要素の SpotID 属性の値を受け取ります。SpotID 属性は必須であり、xs:ID (XML ID) 形式に従う必要がありますが、既存の SignatureDefinitions パートについては、推奨形式に準拠しているかどうかは検査されません。Windows Presentation Foundation (WPF) アプリケーションによって生成された一部の XPS ドキュメントでは、ID が数字で始まっている場合があります。

vtbl 14 HRESULT GetSignature(IXpsSignature** signature)

署名要求と同じ一意の識別子を持つ XPS デジタル署名を含む IXpsSignature インターフェイスへのポインターを取得します。

signatureIXpsSignature**out署名要求と同じ一意の識別子を持つ XPS デジタル署名を含む IXpsSignature インターフェイスへのポインター。一致する署名が見つからない場合は、NULL ポインターが返されます。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
signatureNULL です。
E_UNEXPECTED
インターフェイスが署名マネージャーに接続されていません。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IXpsSignatureRequest "{AC58950B-7208-4B2D-B2C4-951083D3B8EB}"
#usecom global IXpsSignatureRequest IID_IXpsSignatureRequest "{}"
#comfunc global IXpsSignatureRequest_GetIntent             3 var
#comfunc global IXpsSignatureRequest_SetIntent             4 wstr
#comfunc global IXpsSignatureRequest_GetRequestedSigner    5 var
#comfunc global IXpsSignatureRequest_SetRequestedSigner    6 wstr
#comfunc global IXpsSignatureRequest_GetRequestSignByDate  7 var
#comfunc global IXpsSignatureRequest_SetRequestSignByDate  8 wstr
#comfunc global IXpsSignatureRequest_GetSigningLocale      9 var
#comfunc global IXpsSignatureRequest_SetSigningLocale      10 wstr
#comfunc global IXpsSignatureRequest_GetSpotLocation       11 var,sptr,var,var
#comfunc global IXpsSignatureRequest_SetSpotLocation       12 int,float,float
#comfunc global IXpsSignatureRequest_GetRequestId          13 var
#comfunc global IXpsSignatureRequest_GetSignature          14 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。