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

IX509EnrollmentPolicyServer

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

公式ドキュメント

IX509EnrollmentPolicyServer インターフェイスは、証明書登録ポリシー (CEP) サーバーを表します。

メソッド 24

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

vtbl 7 HRESULT Initialize(LPWSTR bstrPolicyServerUrl, LPWSTR bstrPolicyServerId, X509EnrollmentAuthFlags authFlags, VARIANT_BOOL fIsUnTrusted, X509CertificateEnrollmentContext context)

IX509EnrollmentPolicyServer オブジェクトを初期化します。

bstrPolicyServerUrlLPWSTRin証明書登録ポリシー サーバーの URL を格納する BSTR 変数。
bstrPolicyServerIdLPWSTRin証明書登録ポリシー サーバーの一意の ID を格納する BSTR 変数。この値が NULL でない場合は、CEP 応答が返す ID 文字列と一致する必要があります。
authFlagsX509EnrollmentAuthFlagsin

クライアント認証の種類を指定する X509EnrollmentAuthFlags 列挙値。次のいずれかの値を指定できます。

意味
X509AuthAnonymous
匿名認証。
X509AuthKerberos
Kerberos 認証。
X509AuthUsername
クリア テキストのユーザー名とパスワードによる認証。
注意 ユーザー名とパスワードは送信前に暗号化され、CEP サーバー上の資格情報コンテナー (credential vault) に安全に保存されます。
X509AuthCertificate
ローカル コンピューター上にインストールされたクライアント認証証明書であり、サーバーがクライアントの ID を検証するために使用します。
fIsUnTrustedVARIANT_BOOLin信頼されていない証明機関 (CA) の証明書を許可するかどうかを指定するブール値。
contextX509CertificateEnrollmentContextin

証明書登録の対象となるエンドエンティティの性質を指定する X509CertificateEnrollmentContext 列挙値。次のいずれかの値を指定できます。

意味
ContextUser
証明書はエンド ユーザーを対象としています。
ContextMachine
証明書はコンピューターを対象としています。
ContextAdministratorForceMachine
証明書は、コンピューターの代理として動作する管理者によって要求されています。

戻り値

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

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

戻り値 説明
E_INVALIDARG
bstrPolicyServerUrl パラメーターは空の文字列にできず、HTTPS URL を表す必要があります。
E_OUTOFMEMORY
bstrPolicyServerUrl または bstrPolicyServerId パラメーターで指定された文字列に十分なメモリがありませんでした。
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
IX509EnrollmentPolicyServer オブジェクトは既に初期化されています。
HRESULT_FROM_WIN32(ERROR_INVALID_DATA)
bstrPolicyServerId パラメーターで指定された値が NULL ではなく、CEP サーバー上の既存の CEP ID 値と一致しません。
vtbl 8 HRESULT LoadPolicy(X509EnrollmentPolicyLoadOption option)

証明書登録ポリシー (CEP) サーバーからポリシー情報を取得します。

optionX509EnrollmentPolicyLoadOptionin

ポリシー サーバーからポリシーを取得する方法を指定する X509EnrollmentPolicyLoadOption 列挙値。次のいずれかの値を指定できます。

意味
LoadOptionDefault
キャッシュの有効期限が切れている場合は再読み込みします。
LoadOptionCacheOnly
有効期限が切れている場合でも、常にキャッシュから読み込みます。このオプションは現在サポートされていません。
LoadOptionReload
常に再読み込みします。
LoadOptionRegisterForADChanges
テンプレートまたは証明機関 (CA) コンテナーに変更があった場合にシーケンス番号を更新するスレッドを登録します。この値は Active Directory ポリシー サーバーにのみ適用されます。

戻り値

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

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

戻り値 説明
E_INVALIDARG
option パラメーターで要求された読み込みオプションが CEP サーバーでサポートされているいずれの値とも一致しないか、option パラメーターに LoadOptionCacheOnly を指定しました。
E_NOT_VALID_STATE
CEP サーバーの検索に使用される LDAP (Lightweight Directory Access Protocol) で問題が発生しました。
vtbl 9 HRESULT GetTemplates(IX509CertificateTemplates** pTemplates)

証明書登録ポリシー (CEP) サーバーがサポートするテンプレートのコレクションを取得します。

pTemplatesIX509CertificateTemplates**outテンプレート コレクションを表す IX509CertificateTemplates インターフェイスへのポインターを受け取る変数のアドレス。

戻り値

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

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

戻り値 説明
OLE_E_BLANK
IX509EnrollmentPolicyServer オブジェクトは初期化されていません。
vtbl 10 HRESULT GetCAsForTemplate(IX509CertificateTemplate* pTemplate, ICertificationAuthorities** ppCAs)

指定したテンプレートをサポートする証明書登録サーバーのコレクションを取得します。

pTemplateIX509CertificateTemplate*inoptionalテンプレートを表す IX509CertificateTemplate インターフェイスへのポインター。
ppCAsICertificationAuthorities**outサーバー コレクションを表す ICertificationAuthorities インターフェイスへのポインターを受け取る変数のアドレス。

戻り値

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

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

戻り値 説明
OLE_E_BLANK
IX509EnrollmentPolicyServer オブジェクトは初期化されていません。
vtbl 11 HRESULT GetCAs(ICertificationAuthorities** ppCAs)

ポリシーに含まれる証明書登録サーバーのコレクションを取得します。

ppCAsICertificationAuthorities**outコレクションを表す ICertificationAuthorities インターフェイスへのポインターを受け取る変数のアドレス。

戻り値

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

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

戻り値 説明
OLE_E_BLANK
IX509EnrollmentPolicyServer オブジェクトは初期化されていません。
vtbl 12 HRESULT Validate()

現在のポリシー情報を検証します。

戻り値

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

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

戻り値 説明
E_NOT_VALID_STATE
CEP サーバーの検索に使用される LDAP (Lightweight Directory Access Protocol) で問題が発生しました。
HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
IX509EnrollmentPolicyServerInitializeImport メソッドを呼び出して初期化されています。

解説(Remarks)

このメソッドは、入力パラメーターに LoadOptionReload を設定して LoadPolicy を呼び出します。

vtbl 13 HRESULT GetCustomOids(IObjectIds** ppObjectIds)

実装されていません。

ppObjectIdsIObjectIds**out使用されません。

戻り値

この関数は現在実装されておらず、常に E_NOTIMPL を返します。

vtbl 14 HRESULT GetNextUpdateTime(DOUBLE* pDate)

ポリシーの有効期限が切れ、更新が必要になる日時を取得します。

pDateDOUBLE*out時刻を示す DATE 値へのポインター。

戻り値

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

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

戻り値 説明
CERTSRV_E_PROPERTY_EMPTY
値が見つかりませんでした。
E_POINTER
pDate パラメーターを NULL にすることはできません。

解説(Remarks)

日付は 8 バイトの実数値として格納され、1900 年 1 月 1 日から 9999 年 12 月 31 日 (両端を含む) までの協定世界時 (グリニッジ標準時) の値を表します。値 2.0 は 1900 年 1 月 1 日を、3.0 は 1900 年 1 月 2 日を表します。値に 1 を加算すると日付が 1 日進みます。値の小数部は時刻を表します。したがって、2.5 は 1900 年 1 月 1 日の 12:00 を、3.25 は 1900 年 1 月 2 日の 06:00 を表します。

vtbl 15 HRESULT GetLastUpdateTime(DOUBLE* pDate)

ポリシーが最後にダウンロードされた日時を取得します。

pDateDOUBLE*out時刻を示す DATE 値へのポインター。

戻り値

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

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

戻り値 説明
CERTSRV_E_PROPERTY_EMPTY
値が見つかりませんでした。
E_POINTER
pDate パラメーターを NULL にすることはできません。

解説(Remarks)

日付は 8 バイトの実数値として格納され、1900 年 1 月 1 日から 9999 年 12 月 31 日 (両端を含む) までの協定世界時 (グリニッジ標準時) の値を表します。値 2.0 は 1900 年 1 月 1 日を、3.0 は 1900 年 1 月 2 日を表します。値に 1 を加算すると日付が 1 日進みます。値の小数部は時刻を表します。したがって、2.5 は 1900 年 1 月 1 日の 12:00 を、3.25 は 1900 年 1 月 2 日の 06:00 を表します。

vtbl 16 HRESULT GetPolicyServerUrl(LPWSTR* pValue)

証明書登録ポリシー (CEP) サーバーの URL を格納する文字列値を取得します。

pValueLPWSTR*outURL を格納する BSTR 変数へのポインター。

戻り値

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

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

戻り値 説明
CERTSRV_E_PROPERTY_EMPTY
URL が見つかりませんでした。
E_OUTOFMEMORY
pValue パラメーターで指定された文字列に十分なメモリがありませんでした。
E_POINTER
pValue パラメーターを NULL にすることはできません。
vtbl 17 HRESULT GetPolicyServerId(LPWSTR* pValue)

証明書登録ポリシー (CEP) サーバーを一意に識別する文字列値を取得します。

pValueLPWSTR*outID 文字列を格納する BSTR 変数へのポインター。

戻り値

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

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

戻り値 説明
CERTSRV_E_PROPERTY_EMPTY
ID が見つかりませんでした。
E_OUTOFMEMORY
pValue パラメーターで指定された文字列に十分なメモリがありませんでした。
E_POINTER
pValue パラメーターを NULL にすることはできません。
vtbl 18 HRESULT GetFriendlyName(LPWSTR* pValue)

証明書登録ポリシー (CEP) サーバーの表示名を取得します。

pValueLPWSTR*out表示名を格納する BSTR 変数へのポインター。

戻り値

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

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

戻り値 説明
CERTSRV_E_PROPERTY_EMPTY
表示名が見つかりませんでした。
E_OUTOFMEMORY
pValue パラメーターで指定された文字列に十分なメモリがありませんでした。
E_POINTER
pValue パラメーターを NULL にすることはできません。
vtbl 19 HRESULT GetIsDefaultCEP(VARIANT_BOOL* pValue)

これが既定の証明書登録ポリシー (CEP) サーバーかどうかを指定するブール値を取得します。

pValueVARIANT_BOOL*outこれが既定のサーバーかどうかを指定するブール値へのポインター。

戻り値

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

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

解説(Remarks)

既定のサーバーは、ICertPropertyEnrollmentPolicyServer インターフェイスの Initialize メソッドによって設定されます。

vtbl 20 HRESULT GetUseClientId(VARIANT_BOOL* pValue)

証明書登録ポリシー (CEP) サーバーのポリシー サーバー フラグに ClientId 属性が設定されているかどうかを指定する値を取得します。

pValueVARIANT_BOOL*outこの証明書登録ポリシー (CEP) サーバーの PolicyServerUrlFlags 列挙で PsfUseClientId ビットが設定されているかどうかを指定するブール値へのポインター。

戻り値

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

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

戻り値 説明
E_POINTER
pValue パラメーターを NULL にすることはできません。

解説(Remarks)

このメソッドは、この CEP サーバーの PolicyServerUrlFlags 列挙で PsfUseClientId ビットが設定されている場合に VARIANT_TRUE を返します。このフラグが設定されている場合、登録 (エンロール) の処理中に証明書要求へ ClientID 属性が含められ、証明機関 (CA) が診断や監査の目的で使用できます。この属性に含まれる情報の例としては、暗号化サービス プロバイダーの名前、Windows のバージョン番号、ユーザー名、コンピューターの DNS 名、ドメイン コントローラーの DNS 名などがあります。

vtbl 21 HRESULT GetAllowUnTrustedCA(VARIANT_BOOL* pValue)

信頼されていない証明機関 (CA) の証明書を許可するかどうかを指定する値を取得します。

pValueVARIANT_BOOL*out証明書を許可するかどうかを指定するブール値へのポインター。

戻り値

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

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

戻り値 説明
E_POINTER
pValue パラメーターを NULL にすることはできません。
vtbl 22 HRESULT GetCachePath(LPWSTR* pValue)

証明書登録ポリシー (CEP) サーバー上のポリシー キャッシュ ファイルのパスを取得します。

pValueLPWSTR*outパスを受け取る BSTR へのポインター。

戻り値

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

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

戻り値 説明
CERTSRV_E_PROPERTY_EMPTY
キャッシュ パスが見つかりませんでした。
E_POINTER
pValue パラメーターを NULL にすることはできません。
OLE_E_BLANK
IX509EnrollmentPolicyServer は初期化されていません。
vtbl 23 HRESULT GetCacheDir(LPWSTR* pValue)

ポリシー キャッシュ ファイルを格納する、証明書登録ポリシー (CEP) サーバー上のディレクトリの名前を取得します。

pValueLPWSTR*outディレクトリ名を受け取る BSTR へのポインター。

戻り値

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

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

戻り値 説明
CERTSRV_E_PROPERTY_EMPTY
キャッシュ ディレクトリが見つかりませんでした。
E_POINTER
pValue パラメーターを NULL にすることはできません。
OLE_E_BLANK
IX509EnrollmentPolicyServer は初期化されていません。
vtbl 24 HRESULT GetAuthFlags(X509EnrollmentAuthFlags* pValue)

クライアントが証明書登録ポリシー (CEP) サーバーに対して自身を認証するために使用する認証の種類を指定する値を取得します。

pValueX509EnrollmentAuthFlags*out

認証の種類を指定する X509EnrollmentAuthFlags 列挙値へのポインター。次のいずれかの値を指定できます。

意味
X509AuthAnonymous
匿名認証。
X509AuthKerberos
Kerberos 認証。
X509AuthUsername
クリア テキストのユーザー名とパスワードによる認証。
X509AuthCertificate
ローカル コンピューター上にインストールされたクライアント認証証明書であり、サーバーがクライアントの ID を検証するために使用します。

戻り値

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

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

戻り値 説明
E_POINTER
pValue パラメーターを NULL にすることはできません。
vtbl 25 HRESULT SetCredential(INT hWndParent, X509EnrollmentAuthFlags flag, LPWSTR strCredential, LPWSTR strPassword)

証明書登録ポリシー (CEP) サーバーへの接続に使用する資格情報を設定します。

hWndParentINTin親ウィンドウのハンドル。
flagX509EnrollmentAuthFlagsin

認証の種類を指定する X509EnrollmentAuthFlags 列挙値。次のいずれかの値を指定できます。

意味
X509AuthAnonymous
匿名認証。strCredential パラメーターと strPassword パラメーターを NULL に設定します。
X509AuthKerberos
Kerberos 認証。strCredential パラメーターと strPassword パラメーターを NULL に設定します。
X509AuthUsername
クリア テキストのユーザー名とパスワードによる認証。strCredential パラメーターと strPassword パラメーターに、ユーザー名と対応するパスワードを設定します。これらの文字列は送信前に暗号化され、CEP サーバー上の資格情報コンテナー (credential vault) に安全に保存されます。
X509AuthCertificate
ローカル コンピューター上にインストールされたクライアント認証証明書であり、サーバーがクライアントの ID を検証するために使用します。strPassword パラメーターを NULL に設定し、strCredential パラメーターに証明書のサムプリント (証明書の 20 バイトの SHA1 ハッシュ) を設定します。
strCredentialLPWSTRin資格情報を格納する BSTR 変数。
strPasswordLPWSTRinパスワードを格納する BSTR 変数。

戻り値

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

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

戻り値 説明
E_INVALIDARG
flag パラメーターがサポートされている値ではありません。

解説(Remarks)

strCredential 引数と strPassword 引数は、次の表に示すように、flag 引数に指定された値に応じて変わります。

flag パラメーター strCredential パラメーター strPassword パラメーター
X509AuthAnonymous NULL NULL
X509AuthKerberos NULL NULL
X509AuthUsername CEP サーバーが認識するクリア テキストのユーザー名。 ユーザー名に対応するクリア テキストのパスワード。
X509AuthCertificate 証明書の 20 バイトの SHA-1 ハッシュ (サムプリント) を格納します。 NULL
vtbl 26 HRESULT QueryChanges(VARIANT_BOOL* pValue)

テンプレート コレクションまたは証明機関 (CA) コレクションが Active Directory で変更されたかどうかを指定する値を取得します。

pValueVARIANT_BOOL*outコレクションが変更されたかどうかを指定するブール値へのポインター。

戻り値

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

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

戻り値 説明
E_NOT_VALID_STATE
LoadPolicy メソッドの option パラメーターに LoadOptionRegisterForADChanges が指定されていませんでした。
E_POINTER
pValue パラメーターを NULL にすることはできません。
OLE_E_BLANK
IX509EnrollmentPolicyServer オブジェクトは初期化されていません。

解説(Remarks)

QueryChanges メソッドは、LoadPolicy メソッドの option パラメーターに LoadOptionRegisterForADChanges を指定した場合にのみ意味を持ちます。このメソッドは、次のいずれかの場合に VARIANT_TRUE を返します。

vtbl 27 HRESULT InitializeImport(VARIANT val)

テンプレートとオブジェクト識別子のコレクションから証明書登録ポリシー (CEP) サーバーを初期化します。

valVARIANTinテンプレートとオブジェクト識別子を格納する VT_ARRAY|VT_UI1 型の VARIANT

戻り値

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

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

戻り値 説明
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
IX509EnrollmentPolicyServer オブジェクトは既に初期化されています。
HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER)
val パラメーターの VARIANTVT_ARRAY 型ではありません。

解説(Remarks)

Export メソッドによって以前にバッファーへ書き込まれたテンプレートと OID をインポートするには、このメソッドを呼び出します。

vtbl 28 HRESULT Export(X509EnrollmentPolicyExportFlags exportFlags, VARIANT* pVal)

証明書登録ポリシー (CEP) サーバーに関連付けられたテンプレートとオブジェクト識別子をバッファーにエクスポートします。

exportFlagsX509EnrollmentPolicyExportFlagsin

エクスポートする対象を指定する X509EnrollmentPolicyExportFlags 列挙値。次の値のビットごとの OR を指定できます。

意味
ExportTemplates
テンプレートをエクスポートします。
ExportOIDs
カスタム オブジェクト識別子をエクスポートします。
pValVARIANT*outテンプレートとオブジェクト識別子を受け取る VT_ARRAY|VT_UI1 型の VARIANT へのポインター。

戻り値

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

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

戻り値 説明
E_POINTER
pVal パラメーターを NULL にすることはできません。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
exportFlags パラメーターには ExportTemplates または ExportOIDs を含める必要があります。
OLE_E_BLANK
IX509EnrollmentPolicyServer は初期化されていません。

解説(Remarks)

メモリ リークを防ぐため、この関数が返す VARIANT は解放する必要があります。

エクスポートされたデータを意味のあるものにするには、Initialize を呼び出した後、この関数を呼び出す前に LoadPolicy を呼び出す必要があります。

vtbl 29 HRESULT get_Cost(DWORD* pValue)

証明書登録ポリシー サーバーへの接続にかかる任意のコストを指定および取得します。(IX509EnrollmentPolicyServer.get_Cost)

pValueDWORD*outポリシーサーバーへのアクセスコスト(優先順位)を表す DWORD を受け取るポインタである。

解説(Remarks)

複数の CEP サーバーが同じ ID 値 (Initialize メソッドの呼び出し時に指定) を持つ場合、コストが最も低いサーバーが最初に接続されます。

vtbl 30 HRESULT put_Cost(DWORD value)

証明書登録ポリシー サーバーへの接続にかかる任意のコストを指定および取得します。(IX509EnrollmentPolicyServer.put_Cost)

valueDWORDinポリシーサーバーへのアクセスコスト(優先順位)を DWORD で指定する。

解説(Remarks)

複数の CEP サーバーが同じ ID 値 (Initialize メソッドの呼び出し時に指定) を持つ場合、コストが最も低いサーバーが最初に接続されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IX509EnrollmentPolicyServer "{13B79026-2181-11DA-B2A4-000E7BBB2B09}"
#usecom global IX509EnrollmentPolicyServer IID_IX509EnrollmentPolicyServer "{}"
#comfunc global IX509EnrollmentPolicyServer_Initialize           7 wstr,wstr,int,int,int
#comfunc global IX509EnrollmentPolicyServer_LoadPolicy           8 int
#comfunc global IX509EnrollmentPolicyServer_GetTemplates         9 sptr
#comfunc global IX509EnrollmentPolicyServer_GetCAsForTemplate    10 sptr,sptr
#comfunc global IX509EnrollmentPolicyServer_GetCAs               11 sptr
#comfunc global IX509EnrollmentPolicyServer_Validate             12
#comfunc global IX509EnrollmentPolicyServer_GetCustomOids        13 sptr
#comfunc global IX509EnrollmentPolicyServer_GetNextUpdateTime    14 var
#comfunc global IX509EnrollmentPolicyServer_GetLastUpdateTime    15 var
#comfunc global IX509EnrollmentPolicyServer_GetPolicyServerUrl   16 var
#comfunc global IX509EnrollmentPolicyServer_GetPolicyServerId    17 var
#comfunc global IX509EnrollmentPolicyServer_GetFriendlyName      18 var
#comfunc global IX509EnrollmentPolicyServer_GetIsDefaultCEP      19 var
#comfunc global IX509EnrollmentPolicyServer_GetUseClientId       20 var
#comfunc global IX509EnrollmentPolicyServer_GetAllowUnTrustedCA  21 var
#comfunc global IX509EnrollmentPolicyServer_GetCachePath         22 var
#comfunc global IX509EnrollmentPolicyServer_GetCacheDir          23 var
#comfunc global IX509EnrollmentPolicyServer_GetAuthFlags         24 var
#comfunc global IX509EnrollmentPolicyServer_SetCredential        25 int,int,wstr,wstr
#comfunc global IX509EnrollmentPolicyServer_QueryChanges         26 var
#comfunc global IX509EnrollmentPolicyServer_InitializeImport     27 int
#comfunc global IX509EnrollmentPolicyServer_Export               28 int,var
#comfunc global IX509EnrollmentPolicyServer_get_Cost             29 var
#comfunc global IX509EnrollmentPolicyServer_put_Cost             30 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。