IOpcCertificateSet
COM公式ドキュメント
署名で使用される証明書の順序なしのセットです。
解説(Remarks)
IOpcDigitalSignature::Sign メソッドに渡される証明書(署名者証明書)は、この証明書セットに追加しないでください。
証明書チェーンに含まれる証明書は、Add メソッドを呼び出してパッケージに追加します。
IOpcCertificateSet インターフェイスポインターを取得するには、IOpcSigningOptions::GetCertificateSet メソッドを呼び出します。
署名が生成されると、Add の呼び出しによってパッケージに追加された証明書がその署名に関連付けられます。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
証明書をセットに追加します。
| certificate | CERT_CONTEXT* | in | 追加する証明書を格納する CERT_CONTEXT 構造体。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| certificate パラメーターが NULL です。 |
解説(Remarks)
証明書チェーンに含まれる証明書は、 Add メソッドを呼び出してパッケージに追加します。
署名が生成されると、 Add の呼び出しによってパッケージに追加された証明書がその署名に関連付けられます。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、 Getting Started with the Packaging API を参照してください。
指定した証明書をセットから削除します。
| certificate | CERT_CONTEXT* | in | 削除する証明書を格納する CERT_CONTEXT 構造体。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| certificate パラメーターが NULL です。 |
セット内の証明書の列挙子を取得します。
| certificateEnumerator | IOpcCertificateEnumerator** | out | セット内の証明書の IOpcCertificateEnumerator インターフェイスへのポインター。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| certificateEnumerator パラメーターが NULL です。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IOpcCertificateSet "{56EA4325-8E2D-4167-B1A4-E486D24C8FA7}" #usecom global IOpcCertificateSet IID_IOpcCertificateSet "{}" #comfunc global IOpcCertificateSet_Add 3 var #comfunc global IOpcCertificateSet_Remove 4 var #comfunc global IOpcCertificateSet_GetEnumerator 5 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IOpcCertificateSet "{56EA4325-8E2D-4167-B1A4-E486D24C8FA7}" #usecom global IOpcCertificateSet IID_IOpcCertificateSet "{}" #comfunc global IOpcCertificateSet_Add 3 sptr #comfunc global IOpcCertificateSet_Remove 4 sptr #comfunc global IOpcCertificateSet_GetEnumerator 5 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。