ホーム › Security.Cryptography › ICertSrvSetup
ICertSrvSetup
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 20
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| pVal | INT* | out | 直近の操作で発生したエラーの ID を受け取る INT へのポインタである。 |
| pVal | LPWSTR* | out | 直近の操作で発生したエラーの説明文字列を受け取る LPWSTR へのポインタである。 |
vtbl 9 HRESULT InitializeDefaults(VARIANT_BOOL bServer, VARIANT_BOOL bClient)
| bServer | VARIANT_BOOL | in | サーバーコンポーネントを初期化対象に含めるかどうかを指定する VARIANT_BOOL 値を渡す。 |
| bClient | VARIANT_BOOL | in | クライアントコンポーネントを初期化対象に含めるかどうかを指定する VARIANT_BOOL 値を渡す。 |
vtbl 10 HRESULT GetCASetupProperty(CASetupProperty propertyId, VARIANT* pPropertyValue)
| propertyId | CASetupProperty | in | 取得する CA セットアッププロパティの種類を指定する CASetupProperty 値である。 |
| pPropertyValue | VARIANT* | out | 取得したプロパティの値を受け取る VARIANT へのポインタである。 |
vtbl 11 HRESULT SetCASetupProperty(CASetupProperty propertyId, VARIANT* pPropertyValue)
| propertyId | CASetupProperty | in | 設定する CA セットアッププロパティの種類を指定する CASetupProperty 値である。 |
| pPropertyValue | VARIANT* | in | 設定するプロパティの値を保持する VARIANT へのポインタである。 |
vtbl 12 HRESULT IsPropertyEditable(CASetupProperty propertyId, VARIANT_BOOL* pbEditable)
| propertyId | CASetupProperty | in | 編集可否を問い合わせる CA セットアッププロパティを指定する CASetupProperty 値である。 |
| pbEditable | VARIANT_BOOL* | out | 指定プロパティが編集可能かどうかを受け取る VARIANT_BOOL へのポインタである。 |
| pCATypes | VARIANT* | out | サポートされる CA の種類の一覧を受け取る VARIANT へのポインタである。 |
| pVal | VARIANT* | out | 利用可能な暗号化サービスプロバイダー(CSP)名の一覧を受け取る VARIANT へのポインタである。 |
| bstrProviderName | LPWSTR | in | キー長一覧を問い合わせる対象のプロバイダー名を渡す。 |
| pVal | VARIANT* | out | 指定プロバイダーがサポートするキー長の一覧を受け取る VARIANT へのポインタである。 |
| bstrProviderName | LPWSTR | in | ハッシュアルゴリズム一覧を問い合わせる対象のプロバイダー名を渡す。 |
| pVal | VARIANT* | out | 指定プロバイダーがサポートするハッシュアルゴリズムの一覧を受け取る VARIANT へのポインタである。 |
| bstrProviderName | LPWSTR | in | キーコンテナ一覧を問い合わせる対象のプロバイダー名を渡す。 |
| pVal | VARIANT* | out | 指定プロバイダー上の既存の秘密キーコンテナの一覧を受け取る VARIANT へのポインタである。 |
vtbl 18 HRESULT GetExistingCACertificates(ICertSrvSetupKeyInformationCollection** ppVal)
| ppVal | ICertSrvSetupKeyInformationCollection** | out | 既存の CA 証明書に関するキー情報のコレクションを受け取るポインタへのポインタである。 |
vtbl 19 HRESULT CAImportPFX(LPWSTR bstrFileName, LPWSTR bstrPasswd, VARIANT_BOOL bOverwriteExistingKey, ICertSrvSetupKeyInformation** ppVal)
| bstrFileName | LPWSTR | in | インポートする PFX(PKCS #12)ファイルのパスを渡す。 |
| bstrPasswd | LPWSTR | in | PFX ファイルを保護しているパスワードを渡す。 |
| bOverwriteExistingKey | VARIANT_BOOL | in | 既存のキーを上書きするかどうかを指定する VARIANT_BOOL 値を渡す。 |
| ppVal | ICertSrvSetupKeyInformation** | out | インポートされた CA のキー情報オブジェクトを受け取るポインタへのポインタである。 |
vtbl 20 HRESULT SetCADistinguishedName(LPWSTR bstrCADN, VARIANT_BOOL bIgnoreUnicode, VARIANT_BOOL bOverwriteExistingKey, VARIANT_BOOL bOverwriteExistingCAInDS)
| bstrCADN | LPWSTR | in | CA の識別名(Distinguished Name)を渡す。 |
| bIgnoreUnicode | VARIANT_BOOL | in | 識別名の Unicode 文字を無視するかどうかを指定する VARIANT_BOOL 値を渡す。 |
| bOverwriteExistingKey | VARIANT_BOOL | in | 既存のキーを上書きするかどうかを指定する VARIANT_BOOL 値を渡す。 |
| bOverwriteExistingCAInDS | VARIANT_BOOL | in | ディレクトリサービス(DS)内の既存 CA エントリを上書きするかどうかを指定する VARIANT_BOOL 値を渡す。 |
vtbl 21 HRESULT SetDatabaseInformation(LPWSTR bstrDBDirectory, LPWSTR bstrLogDirectory, LPWSTR bstrSharedFolder, VARIANT_BOOL bForceOverwrite)
| bstrDBDirectory | LPWSTR | in | CA データベースを格納するディレクトリのパスを渡す。 |
| bstrLogDirectory | LPWSTR | in | CA データベースのログを格納するディレクトリのパスを渡す。 |
| bstrSharedFolder | LPWSTR | in | CA 構成情報を格納する共有フォルダーのパスを渡す。 |
| bForceOverwrite | VARIANT_BOOL | in | 既存のデータベースを強制的に上書きするかどうかを指定する VARIANT_BOOL 値を渡す。 |
| bstrCAConfiguration | LPWSTR | in | 親 CA の構成文字列(サーバー名と CA 名)を渡す。 |
| bstrCAConfiguration | LPWSTR | in | Web 登録に使用する CA の構成文字列(サーバー名と CA 名)を渡す。 |
vtbl 24 HRESULT Install()
vtbl 25 HRESULT PreUnInstall(VARIANT_BOOL bClientOnly)
| bClientOnly | VARIANT_BOOL | in | クライアントコンポーネントのみをアンインストール対象とするかどうかを指定する VARIANT_BOOL 値を渡す。 |
vtbl 26 HRESULT PostUnInstall()
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ICertSrvSetup "{B760A1BB-4784-44C0-8F12-555F0780FF25}" #usecom global ICertSrvSetup IID_ICertSrvSetup "{}" #comfunc global ICertSrvSetup_get_CAErrorId 7 var #comfunc global ICertSrvSetup_get_CAErrorString 8 var #comfunc global ICertSrvSetup_InitializeDefaults 9 int,int #comfunc global ICertSrvSetup_GetCASetupProperty 10 int,var #comfunc global ICertSrvSetup_SetCASetupProperty 11 int,var #comfunc global ICertSrvSetup_IsPropertyEditable 12 int,var #comfunc global ICertSrvSetup_GetSupportedCATypes 13 var #comfunc global ICertSrvSetup_GetProviderNameList 14 var #comfunc global ICertSrvSetup_GetKeyLengthList 15 wstr,var #comfunc global ICertSrvSetup_GetHashAlgorithmList 16 wstr,var #comfunc global ICertSrvSetup_GetPrivateKeyContainerList 17 wstr,var #comfunc global ICertSrvSetup_GetExistingCACertificates 18 sptr #comfunc global ICertSrvSetup_CAImportPFX 19 wstr,wstr,int,sptr #comfunc global ICertSrvSetup_SetCADistinguishedName 20 wstr,int,int,int #comfunc global ICertSrvSetup_SetDatabaseInformation 21 wstr,wstr,wstr,int #comfunc global ICertSrvSetup_SetParentCAInformation 22 wstr #comfunc global ICertSrvSetup_SetWebCAInformation 23 wstr #comfunc global ICertSrvSetup_Install 24 #comfunc global ICertSrvSetup_PreUnInstall 25 int #comfunc global ICertSrvSetup_PostUnInstall 26 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ICertSrvSetup "{B760A1BB-4784-44C0-8F12-555F0780FF25}" #usecom global ICertSrvSetup IID_ICertSrvSetup "{}" #comfunc global ICertSrvSetup_get_CAErrorId 7 sptr #comfunc global ICertSrvSetup_get_CAErrorString 8 sptr #comfunc global ICertSrvSetup_InitializeDefaults 9 int,int #comfunc global ICertSrvSetup_GetCASetupProperty 10 int,sptr #comfunc global ICertSrvSetup_SetCASetupProperty 11 int,sptr #comfunc global ICertSrvSetup_IsPropertyEditable 12 int,sptr #comfunc global ICertSrvSetup_GetSupportedCATypes 13 sptr #comfunc global ICertSrvSetup_GetProviderNameList 14 sptr #comfunc global ICertSrvSetup_GetKeyLengthList 15 wstr,sptr #comfunc global ICertSrvSetup_GetHashAlgorithmList 16 wstr,sptr #comfunc global ICertSrvSetup_GetPrivateKeyContainerList 17 wstr,sptr #comfunc global ICertSrvSetup_GetExistingCACertificates 18 sptr #comfunc global ICertSrvSetup_CAImportPFX 19 wstr,wstr,int,sptr #comfunc global ICertSrvSetup_SetCADistinguishedName 20 wstr,int,int,int #comfunc global ICertSrvSetup_SetDatabaseInformation 21 wstr,wstr,wstr,int #comfunc global ICertSrvSetup_SetParentCAInformation 22 wstr #comfunc global ICertSrvSetup_SetWebCAInformation 23 wstr #comfunc global ICertSrvSetup_Install 24 #comfunc global ICertSrvSetup_PreUnInstall 25 int #comfunc global ICertSrvSetup_PostUnInstall 26 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。