Win32 API 日本語リファレンス
ホームSecurity.Cryptography.Certificates › ICspInformations

ICspInformations

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID728ab308-217d-11da-b2a4-000e7bbb2b09継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

ICspInformations インターフェースは、ICspInformation オブジェクトのコレクションを管理するための以下のメソッドとプロパティを定義します。

メソッド 12

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_ItemByIndex(INT Index, ICspInformation** pVal)

インデックス番号を指定して、コレクションから ICspInformation オブジェクトを取得します。

IndexINTin取得する項目の 0 起点のインデックスを指定する。
pValICspInformation**out指定したインデックスの ICspInformation オブジェクトを受け取るインターフェイスポインタへのポインタである。
vtbl 8 HRESULT get_Count(INT* pVal)

コレクション内の ICspInformation オブジェクトの数を取得します。

pValINT*outコレクション内の CSP 情報数を受け取る INT へのポインタである。
vtbl 9 HRESULT get__NewEnum(IUnknown** pVal)

コレクションの列挙子を取得します。(ICspInformations.get__NewEnum)

pValIUnknown**outコレクションを反復処理するための列挙子を受け取る IUnknown インターフェイスポインタへのポインタである。
vtbl 10 HRESULT Add(ICspInformation* pVal)

ICspInformation オブジェクトをコレクションに追加します。

pValICspInformation*inoptionalコレクションに追加する ICspInformation オブジェクトへのポインター。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 11 HRESULT Remove(INT Index)

インデックス番号を指定して、コレクションから ICspInformation オブジェクトを削除します。

IndexINTin削除するオブジェクトのインデックスを格納する LONG 変数。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 12 HRESULT Clear()

コレクションからすべての ICspInformation オブジェクトを削除します。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 13 HRESULT AddAvailableCsps()

コンピューターにインストールされているプロバイダーをコレクションに追加します。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

戻り値 説明
HRESULT_FROM_WIN32(ERROR_INVALID_OPERATION)
コレクションが空ではありません。

解説(Remarks)

このメソッドを呼び出す前に、ICspInformations コレクションは空である必要があります。

vtbl 14 HRESULT get_ItemByName(LPWSTR strName, ICspInformation** ppCspInformation)

名前を指定して、コレクションから ICspInformation オブジェクトを取得します。

strNameLPWSTRin取得する CSP の名前を指定する。
ppCspInformationICspInformation**out指定した名前の ICspInformation オブジェクトを受け取るインターフェイスポインタへのポインタである。
vtbl 15 HRESULT GetCspStatusFromProviderName(LPWSTR strProviderName, X509KeySpec LegacyKeySpec, ICspStatus** ppValue)

プロバイダー名とサポートされるキー操作を指定して、レガシープロバイダーの ICspStatus オブジェクトを取得します。

strProviderNameLPWSTRin暗号化プロバイダー名、または algorithm_name, provider_name の形式でカンマ区切りにしたプロバイダー名とアルゴリズム名を格納する BSTR
LegacyKeySpecX509KeySpecin

キーを暗号化、署名、またはその両方に使用できるかどうかを指定する X509KeySpec 列挙値。次のいずれかの値を指定できます。

ppValueICspStatus**outstrProviderName および LegacyKeySpec パラメーターの値を満たす暗号化プロバイダーとアルゴリズムの組み合わせに関する情報を格納する ICspStatus インターフェースへのポインターを受け取る変数のアドレス。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 16 HRESULT GetCspStatusesFromOperations(AlgorithmOperationFlags Operations, ICspInformation* pCspInformation, ICspStatuses** ppValue)

サポートされるキー操作と、任意でプロバイダー情報を指定して、ICspStatuses コレクションを取得します。

OperationsAlgorithmOperationFlagsin

サポートされる操作を指定する AlgorithmOperationFlags 列挙値。次のフラグのビットごとの組み合わせを指定できます。

pCspInformationICspInformation*inoptional特定のプロバイダーの情報を表す ICspInformation インターフェースへのポインター。
ppValueICspStatuses**outコレクションを格納する ICspStatuses インターフェースへのポインターを受け取る変数のアドレス。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 17 HRESULT GetEncryptionCspAlgorithms(ICspInformation* pCspInformation, ICspAlgorithms** ppValue)

プロバイダーがサポートする暗号化アルゴリズムのコレクションを取得します。

pCspInformationICspInformation*inoptionalプロバイダーを表す ICspInformation インターフェースへのポインター。レガシー暗号化サービスプロバイダー (CSP)、Cryptography API: Next Generation (CNG) プロバイダー、または NULL を指定できます。NULL を指定した場合、このメソッドはすべての CSP および CNG プロバイダーがサポートするすべての暗号化アルゴリズムのコレクションを返します。
ppValueICspAlgorithms**outコレクションを表す ICspAlgorithms インターフェースへのポインターを受け取る変数のアドレス。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 18 HRESULT GetHashAlgorithms(ICspInformation* pCspInformation, IObjectIds** ppValue)

プロバイダーがサポートするハッシュアルゴリズムのコレクションを取得します。

pCspInformationICspInformation*inoptionalプロバイダーを表す ICspInformation インターフェースへのポインター。レガシー暗号化サービスプロバイダー (CSP)、Cryptography API: Next Generation (CNG) プロバイダー、または NULL を指定できます。NULL を指定した場合、このメソッドはすべての CSP および CNG プロバイダーがサポートするすべてのハッシュアルゴリズムのコレクションを返します。
ppValueIObjectIds**outコレクションを表す IObjectIds インターフェースへのポインターのアドレス。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ICspInformations "{728AB308-217D-11DA-B2A4-000E7BBB2B09}"
#usecom global ICspInformations IID_ICspInformations "{}"
#comfunc global ICspInformations_get_ItemByIndex               7 int,sptr
#comfunc global ICspInformations_get_Count                     8 var
#comfunc global ICspInformations_get__NewEnum                  9 sptr
#comfunc global ICspInformations_Add                           10 sptr
#comfunc global ICspInformations_Remove                        11 int
#comfunc global ICspInformations_Clear                         12
#comfunc global ICspInformations_AddAvailableCsps              13
#comfunc global ICspInformations_get_ItemByName                14 wstr,sptr
#comfunc global ICspInformations_GetCspStatusFromProviderName  15 wstr,int,sptr
#comfunc global ICspInformations_GetCspStatusesFromOperations  16 int,sptr,sptr
#comfunc global ICspInformations_GetEncryptionCspAlgorithms    17 sptr,sptr
#comfunc global ICspInformations_GetHashAlgorithms             18 sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。