IXpsSignatureRequest
COM公式ドキュメント
署名要求の各構成要素にアクセスします。
解説(Remarks)
IXpsSignatureRequest インターフェイスは、SignatureDefinitons パートのマークアップ内にある単一の SignatureDefinition 要素に対応します。
この SignatureDefinition 要素のマークアップについては、XML Paper Specification のセクション 10.2.2 で説明されています。
すべての署名要求は、署名ブロックの要求コレクションに格納されます。これらは、インスタンス化の元となった IXpsSignatureBlock インターフェイスから独立して存在することはできません。
メソッド 12
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
署名の意図または意味を記述する文字列を設定します。(IXpsSignatureRequest.GetIntent)
| intent | LPWSTR* | out | 署名者が署名の対象とする、署名意図に関する同意文。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| intent が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
署名意図の文字列は、その署名が署名者にとって何を意味するのかを記述します。たとえば、署名意図の文字列が「I have read and agree with the contents of this document」である場合、デジタル署名が存在することは、署名者がそのドキュメントの内容を読み、その内容に同意したことを意味します。
このメソッドは、intent で返される文字列に使用されるメモリを割り当てます。intent が NULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。
署名の意図または意味を記述する文字列を設定します。(IXpsSignatureRequest.SetIntent)
| intent | LPWSTR | in | 署名の意図または意味を記述する文字列。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| intent が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
署名意図の文字列は、その署名が署名者にとって何を意味するのかを記述します。たとえば、署名意図の文字列が「I have read and agree with the contents of this document」である場合、デジタル署名が存在することは、署名者がそのドキュメントの内容を読み、その内容に同意したことを意味します。
パッケージに署名した人物、または署名を要求している人物の識別情報を取得します。
| signerName | LPWSTR* | out | パッケージに署名した人物、または署名を要求している人物の識別情報。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| signerName が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
このメソッドは、signerName で返される文字列に使用されるメモリを割り当てます。signerName が NULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。
パッケージに署名した人物、または署名を要求された人物の識別情報を設定します。
| signerName | LPWSTR | in | パッケージに署名した人物、または署名を要求している人物の識別情報。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| signerName が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を取得します。
| dateString | LPWSTR* | out | 要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を格納する文字列。 この文字列は、UTC タイムゾーンオフセットを含む |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| dateString が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
このメソッドは、dateString で返される文字列に使用されるメモリを割り当てます。dateString が NULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。
要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を設定します。
| dateString | LPWSTR | in | 要求された署名者がドキュメントの指定されたパートに署名しなければならない期限の日時を格納する文字列。 この文字列は、UTC タイムゾーンオフセット付きの |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| dateString が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
パッケージの署名場所に関する法的管轄区域を取得します。
| place | LPWSTR* | out | パッケージの署名場所に関する法的管轄区域 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| place が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
このメソッドは、place で返される文字列に使用されるメモリを割り当てます。place が NULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。
パッケージの署名場所に関する法的管轄区域を設定します。
| place | LPWSTR | in | パッケージの署名場所に関する法的管轄区域。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| place が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
可視のデジタル署名またはデジタル署名要求が表示されるページと、そのページ上の位置を取得します。
| pageIndex | INT* | out | 署名またはデジタル署名要求を含む FixedPage パートのインデックス値。署名要求にスポットの位置が指定されていない場合は、–1 が返されます。 |
| pagePartName | IOpcPartUri** | out | デジタル署名を表示する FixedPage を含むパートの IOpcPartUri インターフェイスへのポインター。 |
| x | FLOAT* | out | ページ上の署名スポットの x 座標値。 |
| y | FLOAT* | out | ページ上の署名スポットの y 座標値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pageIndex、pagePartName、x、または y が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
署名スポットの位置は、ページの左上隅を基準とした XPS 単位で指定されます。1 インチあたり 96 XPS 単位です。
可視のデジタル署名またはデジタル署名要求を表示するページと、そのページ上の位置を指定します。
| pageIndex | INT | in | XPS ドキュメント内で、可視のデジタル署名またはデジタル署名要求を含む FixedPage パートのインデックス値。 このパラメーターの値が –1 の場合、SpotLocation 要素は SignatureDefinitions のマークアップに書き込まれません。 このパラメーターの値が –1 でない場合は、この要求を含む署名ブロックが関連付けられている FixedDocument パートに存在するページ番号でなければなりません。 |
| x | FLOAT | in | ページ上の署名スポットの x 座標値。 |
| y | FLOAT | in | ページ上の署名スポットの y 座標値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
署名スポットの位置は、ページの左上隅を基準とした XPS 単位で指定されます。1 インチあたり 96 XPS 単位です。
署名要求の一意の識別子を取得します。
| requestId | LPWSTR* | out | 署名要求の一意の識別子。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| requestId が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
解説(Remarks)
このメソッドは、requestId で返される文字列に使用されるメモリを割り当てます。requestId が NULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。
requestId パラメーターは、SignatureDefinition 要素の SpotID 属性の値を受け取ります。SpotID 属性は必須であり、xs:ID (XML ID) 形式に従う必要がありますが、既存の SignatureDefinitions パートについては、推奨形式に準拠しているかどうかは検査されません。Windows Presentation Foundation (WPF) アプリケーションによって生成された一部の XPS ドキュメントでは、ID が数字で始まっている場合があります。
署名要求と同じ一意の識別子を持つ XPS デジタル署名を含む IXpsSignature インターフェイスへのポインターを取得します。
| signature | IXpsSignature** | out | 署名要求と同じ一意の識別子を持つ XPS デジタル署名を含む IXpsSignature インターフェイスへのポインター。一致する署名が見つからない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。この表に記載されていない戻り値については、XPS Digital Signature API Errors および XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| signature が NULL です。 | |
| インターフェイスが署名マネージャーに接続されていません。 |
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 指定が可能。#define global IID_IXpsSignatureRequest "{AC58950B-7208-4B2D-B2C4-951083D3B8EB}" #usecom global IXpsSignatureRequest IID_IXpsSignatureRequest "{}" #comfunc global IXpsSignatureRequest_GetIntent 3 sptr #comfunc global IXpsSignatureRequest_SetIntent 4 wstr #comfunc global IXpsSignatureRequest_GetRequestedSigner 5 sptr #comfunc global IXpsSignatureRequest_SetRequestedSigner 6 wstr #comfunc global IXpsSignatureRequest_GetRequestSignByDate 7 sptr #comfunc global IXpsSignatureRequest_SetRequestSignByDate 8 wstr #comfunc global IXpsSignatureRequest_GetSigningLocale 9 sptr #comfunc global IXpsSignatureRequest_SetSigningLocale 10 wstr #comfunc global IXpsSignatureRequest_GetSpotLocation 11 sptr,sptr,sptr,sptr #comfunc global IXpsSignatureRequest_SetSpotLocation 12 int,float,float #comfunc global IXpsSignatureRequest_GetRequestId 13 sptr #comfunc global IXpsSignatureRequest_GetSignature 14 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。