ICertAdmin2
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
適切に承認されたクライアントに管理機能を提供します。
メソッド 11
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
証明機関 (CA) の証明書失効リスト (CRL) を発行します。
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力した証明機関のコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、PublishCRLs は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||||||
| Date | DOUBLE | in | CRL の次回更新値を GMT 時刻で指定します。 Date が 0 以外の場合、CRL の次回更新値は Date になります(ただし 証明書サービスによって適用される丸めまたは上限の制限を受けます)。Date が 0 の場合、CRL の次回更新値は既定の CRL 発行期間から計算されます。 | ||||||||
| CRLFlags | INT | in | CRL の発行オプションを指定する値です。この値は、次のフラグのビットごとの組み合わせにできます。
|
解説(Remarks)
CA がベースおよび差分 CRL を正常に発行したかどうかを確認するには、それぞれ CR_PROP_BASECRLPUBLISHSTATUS および CR_PROP_DELTACRLPUBLISHSTATUS プロパティ識別子を指定して ICertAdmin2::GetCAProperty を呼び出します。
例
次の例は CRL の発行を示しています。
DATE ExpDate; // CRL expiration date.
SYSTEMTIME st;
BSTR bstrCA = NULL;
// Set the CRL expiration date to noon, July 1, 2001.
// Zero out values first (avoids setting minutes,
// seconds, and so on).
memset(&st, 0, sizeof(SYSTEMTIME));
st.wYear = 2001;
st.wMonth = 7; // July
st.wDay = 1; // first day of month
st.wHour = 12; // noon
// Place the date in required format.
if (!SystemTimeToVariantTime(&st, &ExpDate))
{
printf("Unable to convert time\n");
goto error;
}
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Memory allocation failed\n");
goto error;
}
// Publish the CRL.
// pCertAdmin is a previously instantiated ICertAdmin object.
hr = pCertAdmin2->PublishCRLs(bstrCA,
ExpDate,
CA_CRL_BASE);
if (FAILED(hr))
{
printf("Failed PublishCRLs [%x]\n", hr);
goto error;
}
else
printf("PublishCRLs succeeded\n");
// Done.
error:
// Free resources.
if (bstrCA)
SysFreeString(bstrCA);
証明機関 (CA) のプロパティ値を取得します。(ICertAdmin2.GetCAProperty)
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、GetCAProperty は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PropId | INT | in | 次のいずれかのプロパティ識別子を指定します。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PropIndex | INT | in | PropId パラメーターがインデックス付きの場合に、プロパティ値を取得する際に使用する 0 から始まるインデックス。PropId がインデックス付きでない場合、この値は無視されます。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PropType | INT | in | プロパティの型を指定します。PropId テーブルの「意味」列に示されています。型は次のいずれかになります。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Flags | INT | in | 次のフラグを使用して、返されるプロパティ値の形式を指定できます。これらのフラグは、バイナリ データ (証明書、証明書チェーン、証明書失効リストなど) に対してのみ意味を持ち、それ以外の場合は無視されます。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pvarPropertyValue | VARIANT* | out | 要求したプロパティ値を受け取るバッファーへのポインター。使用が終わったら、VariantClear を呼び出してこのリソースを解放するのは呼び出し元の責任です。 |
戻り値
解説(Remarks)
プロパティ識別子が CR_PROP_BASECRLPUBLISHSTATUS または CR_PROP_DELTACRLPUBLISHSTATUS の場合、次の値が返されます。これらの値は組み合わせることができます。
| 値 | 説明 |
|---|---|
| CPF_BADURL_ERROR | URL が無効です。 |
| CPF_BASE | ベース CRL が発行されました。 |
| CPF_CASTORE_ERROR | CA ストア エラーにより発行できませんでした。 |
| CPF_COMPLETE | 完全な CRL が発行されました。 |
| CPF_DELTA | 差分 CRL が発行されました。 |
| CPF_FILE_ERROR | ファイル エラーにより発行できませんでした。 |
| CPF_FTP_ERROR | FTP エラーにより発行できませんでした。 |
| CPF_HTTP_ERROR | HTTP エラーにより発行できませんでした。 |
| CPF_LDAP_ERROR | LDAP エラーにより発行できませんでした。 |
| CPF_MANUAL | CRL が手動で発行されました。 |
| CPF_SHADOW | 空の差分 CRL が、新しいベース CRL と共に発行されました。 |
| CPF_SIGNATURE_ERROR | 署名エラーにより発行できませんでした。 |
CRL を取得する例については、証明書失効リストの取得を参照してください。
例
次の例は、CA の署名証明書の取得を示しています。この例では、ICertAdmin2 インターフェイス ポインターが有効であることを前提としています。
BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Failed to allocate memory for bstrCA\n");
exit(1);
}
VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
CR_PROP_CASIGCERT,
0,
PROPTYPE_BINARY,
CV_OUT_BASE64HEADER,
&var1);
if (FAILED(hr))
{
printf("Failed GetCAProperty\n");
SysFreeString(bstrCA);
exit(1); // Or other error action.
}
// Use the property as needed.
// ...
// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);
証明機関 (CA) のプロパティ値を設定します。
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、SetCAProperty は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||||||||||
| PropId | INT | in | 次のいずれかのプロパティ識別子を指定します。 読み取り専用のものを含むすべての CA プロパティについては、ICertAdmin2::GetCAProperty を参照してください。
| ||||||||||||
| PropIndex | INT | in | PropId パラメーターがインデックス付きの場合に、プロパティ値を取得する際に使用する 0 から始まるインデックス。PropId がインデックス付きでない場合、この値は無視されます。 | ||||||||||||
| PropType | CERT_PROPERTY_TYPE | in | プロパティの型を指定します。 このパラメーターは次のいずれかの値になります。
| ||||||||||||
| pvarPropertyValue | VARIANT* | in |
|
戻り値
VB
関数が成功した場合、戻り値は S_OK です。関数が失敗した場合、戻り値はエラーを示す HRESULT です。一般的なエラー コードの一覧については、一般的な HRESULT 値を参照してください。
ICertAdmin2::GetCAPropertyFlags メソッドは、証明機関 (CA) プロパティのプロパティ フラグを取得します。
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、GetCAPropertyFlags は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
|
| PropId | INT | in | プロパティ識別子を指定します。このパラメーターについては、 ICertAdmin2::GetCAProperty のテーブルを参照してください。 |
| pPropFlags | INT* | out | プロパティ フラグを表す値へのポインター。 |
戻り値
解説(Remarks)
このメソッドを呼び出して取得した LONG 値を調べることで、データ型とインデックス付き状態を判別できます。データ型とインデックス付き状態を判別するには、それぞれ PROPTYPE_MASK 値と PROPFLAGS_INDEXED 値を使用します。
例
次の例では、ICertAdmin2 インターフェイス ポインターが有効であることを前提としています。
BSTR bstrCA = NULL;
LONG nFlags; // Variable to contain the property flags.
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Failed to allocate memory for bstrCA\n");
exit(1);
}
// Retrieve a property's flags.
hr = pCertAdmin2->GetCAPropertyFlags(bstrCA,
CR_PROP_EXITCOUNT,
&nFlags);
if (FAILED(hr))
{
printf("Failed GetCAPropertyFlags\n");
SysFreeString(bstrCA);
exit(1); // Or other error action.
}
// Display the property data type.
switch (nFlags & PROPTYPE_MASK)
{
case PROPTYPE_BINARY:
printf("Type is BINARY\n");
break;
case PROPTYPE_DATE:
printf("Type is DATE\n");
break;
case PROPTYPE_LONG:
printf("Type is LONG\n");
break;
case PROPTYPE_STRING:
printf("Type is STRING\n");
break;
default:
printf("Unexpected data type.\n");
break;
}
// Display the property's indexed status.
printf("Property %s indexed\n",
nFlags & PROPFLAGS_INDEXED ? "is" : "is not");
SysFreeString(bstrCA);
ICertAdmin2::GetCAPropertyDisplayName メソッドは、証明機関 (CA) プロパティのプロパティ表示名を取得します。
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、GetCAPropertyDisplayName は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
|
| PropId | INT | in | プロパティ識別子を指定します。このパラメーターについては、 ICertAdmin2::GetCAProperty のテーブルを参照してください。 |
| pstrDisplayName | LPWSTR* | out | プロパティの表示名を表す文字列へのポインター。 使用が終わったら、SysFreeString を呼び出して BSTR を解放するのは呼び出し元の責任です。 |
戻り値
アーカイブされたキー回復 BLOB を取得します。
| strConfig | LPWSTR | in | 証明機関 (CA) の有効な構成文字列を ComputerName\CAName 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、GetArchivedKey は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||||||
| RequestId | INT | in | Certificate Services データベース内の証明書要求 ID を表します。 | ||||||||
| Flags | INT | in | 次のフラグを使用して、返される BLOB の形式を指定できます。
| ||||||||
| pstrArchivedKey | LPWSTR* | out | 取得したアーカイブ済みキー BLOB を表す文字列へのポインター。この文字列の使用が終わったら、SysFreeString 関数を呼び出して解放するのは呼び出し元の責任です。 |
戻り値
解説(Remarks)
アーカイブされたキーは、1 つまたは複数のキー回復エージェント証明書に対して PKCS #7 で暗号化され、その形式で Certificate Services データベースに格納されます。このメソッドは、暗号化された PKCS #7 を Certificate Services データベースから取得し、ユーザー証明書とそのチェーン、1 つまたは複数のキー回復エージェント証明書、および証明機関の署名証明書とそのチェーンを含む署名済み PKCS #7 でラップします。認証属性には、ユーザー証明書を一意に識別するために使用される証明書が含まれます。
証明機関 (CA) の構成情報を取得します。
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 このパラメーターは空の文字列にすることができます。その場合、この関数は CA に固有ではない構成情報を取得します。このパラメーターを NULL にすることはできません。 重要 構成文字列が変更されても、GetConfigEntry は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
|
| strNodePath | LPWSTR | in | 構成情報のノード パスを表す文字列値。 このパラメーターは空の文字列にすることができます。その場合、この関数は strConfig で識別されるパスから構成情報を取得します。 このパラメーターを NULL にすることはできません。 |
| strEntryName | LPWSTR | in | 情報を取得するエントリの名前を表す文字列値。 この値は空の文字列にすることができます。その場合、すべてのエントリ名が取得されます。 このパラメーターを NULL にすることはできません。 |
| pvarEntry | VARIANT* | out | 要求した情報を受け取る VARIANT へのポインター。 |
戻り値
C++
関数が成功した場合、戻り値は S_OK です。関数が失敗した場合、戻り値はエラーを示す HRESULT です。一般的なエラー コードの一覧については、一般的な HRESULT 値を参照してください。
VB
戻り値は、取得した構成情報を表す Variant です。解説(Remarks)
構成情報は、レジストリの次のパスの下に格納されます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\[CASANITIZEDNAME]\[strNodePath]\[strEntryName]
ここで CASANITIZEDNAME は CA のサニタイズ済み名です。サニタイズ済み名の詳細については、ICertConfig2::GetConfig を参照してください。証明機関 (CA) の構成情報を設定します。
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 このパラメーターは空の文字列にすることができます。その場合、この関数は CA に固有ではない構成情報を設定します。このパラメーターを NULL にすることはできません。 重要 構成文字列が変更されても、SetConfigEntry は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||
| strNodePath | LPWSTR | in | 構成情報のノード パスを表す文字列値。 このパラメーターは空の文字列にすることができます。その場合、この関数は strConfig で識別されるパスから構成情報を取得します。 このパラメーターを NULL にすることはできません。 | ||||
| strEntryName | LPWSTR | in | 情報を設定するエントリの名前を表す文字列値。 この値は空の文字列にすることができます。その場合、既定のエントリが設定対象のエントリになります。 このパラメーターを NULL にすることはできません。 | ||||
| pvarEntry | VARIANT* | in |
|
戻り値
VB
関数が成功した場合、戻り値は S_OK です。関数が失敗した場合、戻り値はエラーを示す HRESULT です。一般的なエラー コードの一覧については、一般的な HRESULT 値を参照してください。
解説(Remarks)
構成情報は、レジストリの次のパスの下に格納されます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\[CASANITIZEDNAME]\[strNodePath]\[strEntryName]
ここで CASANITIZEDNAME は CA のサニタイズ済み名です。サニタイズ済み名の詳細については、ICertConfig2::GetConfig を参照してください。暗号化されたキー セットを Certificate Services データベース内の項目に追加します。キー セットは、1 つまたは複数のキー回復エージェント (KRA) 証明書に対して暗号化されます。
| strConfig | LPWSTR | in | 証明機関 (CA) の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、ImportKey は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||||||||||
| RequestId | INT | in | Certificate Services データベース内の証明書要求 ID を表す LONG 値。要求 ID の代わりにシリアル番号 (strCertHash として渡される) を使用する場合は、この値に 0 を指定します。 | ||||||||||||
| strCertHash | LPWSTR | in | 証明書ハッシュを表す文字列値。strCertHash を使用するには、RequestId に 0 を指定する必要があります。 | ||||||||||||
| Flags | CERT_IMPORT_FLAGS | in | キーの形式を指定します。 このパラメーターは次のいずれかの値になります。
さらに、次の値を、ビットごとの OR 演算を使用して形式の値と組み合わせることができます。
| ||||||||||||
| strKey | LPWSTR | in | KRA キー情報を表す文字列値。 |
呼び出し元の証明機関 (CA) 役割を取得します。
| strConfig | LPWSTR | in | CA の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力したCAのコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、GetMyRoles は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||||||||||||
| pRoles | CERTADMIN_GET_ROLES_FLAGS* | out | 呼び出し元について取得した CA 役割を表す LONG 値へのポインター。これは、次の値のうち 0 個以上のビットごとの組み合わせにできます。
|
戻り値
C++
関数が成功した場合、戻り値は S_OK です。関数が失敗した場合、戻り値はエラーを示す HRESULT です。一般的なエラー コードの一覧については、一般的な HRESULT 値を参照してください。
VB
戻り値は、呼び出し元について取得した CA 役割を表す Long 値です。これは、次の値のうち 0 個以上のビットごとの組み合わせにできます。| リターン コード/値 | 説明 |
|---|---|
|
呼び出し元が CA 管理者機能を持っています。 |
| 呼び出し元が CA 監査者機能を持っています。 | |
|
呼び出し元が登録 (エンロール) アクセス権を持っています。 |
| 呼び出し元が CA 責任者機能を持っています。 | |
| 呼び出し元が CA バックアップ機能を持っています。 | |
|
呼び出し元が読み取りアクセス権を持っています。 |
DeleteRow メソッドは、データベース テーブルから 1 行または複数の行を削除します。呼び出し元は、データベース テーブルと、行 ID または終了日のいずれかを指定します。
| strConfig | LPWSTR | in | 証明機関 (CA) の有効な構成文字列を COMPUTERNAME\CANAME 形式で表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力した証明機関のコモン名です。構成文字列名については、ICertConfig を参照してください。 重要 構成文字列が変更されても、DeleteRow は内部キャッシュをクリアしません。CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、新しい構成文字列でこのメソッドを再度呼び出す必要があります。
| ||||||||||
| Flags | CERT_DELETE_ROW_FLAGS | in | 0 以外の場合、Date が有効期限に適用されるか、最終更新日に適用されるかを指定します。 次のいずれかの値になります。
| ||||||||||
| Date | DOUBLE | in | 証明書または CRL を削除する場合は有効期限を、証明書要求を削除する場合は最終更新日を指定します。 この値が 0 以外の場合、RowID は 0 でなければなりません。 | ||||||||||
| Table | CVRC_TABLE | in | 行を削除する Certificate Services データベース テーブルを指定する LONG 値。 次のいずれかの値になります。
| ||||||||||
| RowId | INT | in | 削除する行の ID を指定します。 この値が 0 以外の場合、Date は 0 でなければなりません。 | ||||||||||
| pcDeleted | INT* | out | 正常に削除された行の数。 |
戻り値
解説(Remarks)
RowID と Date は相互排他的です。どちらか一方のみが 0 以外の値を取ることができます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ICertAdmin2 "{F7C3AC41-B8CE-4FB4-AA58-3D1DC0E36B39}" #usecom global ICertAdmin2 IID_ICertAdmin2 "{}" #comfunc global ICertAdmin2_PublishCRLs 17 wstr,double,int #comfunc global ICertAdmin2_GetCAProperty 18 wstr,int,int,int,int,var #comfunc global ICertAdmin2_SetCAProperty 19 wstr,int,int,int,var #comfunc global ICertAdmin2_GetCAPropertyFlags 20 wstr,int,var #comfunc global ICertAdmin2_GetCAPropertyDisplayName 21 wstr,int,var #comfunc global ICertAdmin2_GetArchivedKey 22 wstr,int,int,var #comfunc global ICertAdmin2_GetConfigEntry 23 wstr,wstr,wstr,var #comfunc global ICertAdmin2_SetConfigEntry 24 wstr,wstr,wstr,var #comfunc global ICertAdmin2_ImportKey 25 wstr,int,wstr,int,wstr #comfunc global ICertAdmin2_GetMyRoles 26 wstr,var #comfunc global ICertAdmin2_DeleteRow 27 wstr,int,double,int,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ICertAdmin2 "{F7C3AC41-B8CE-4FB4-AA58-3D1DC0E36B39}" #usecom global ICertAdmin2 IID_ICertAdmin2 "{}" #comfunc global ICertAdmin2_PublishCRLs 17 wstr,double,int #comfunc global ICertAdmin2_GetCAProperty 18 wstr,int,int,int,int,sptr #comfunc global ICertAdmin2_SetCAProperty 19 wstr,int,int,int,sptr #comfunc global ICertAdmin2_GetCAPropertyFlags 20 wstr,int,sptr #comfunc global ICertAdmin2_GetCAPropertyDisplayName 21 wstr,int,sptr #comfunc global ICertAdmin2_GetArchivedKey 22 wstr,int,int,sptr #comfunc global ICertAdmin2_GetConfigEntry 23 wstr,wstr,wstr,sptr #comfunc global ICertAdmin2_SetConfigEntry 24 wstr,wstr,wstr,sptr #comfunc global ICertAdmin2_ImportKey 25 wstr,int,wstr,int,wstr #comfunc global ICertAdmin2_GetMyRoles 26 wstr,sptr #comfunc global ICertAdmin2_DeleteRow 27 wstr,int,double,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。