ICertAdmin2::GetCAPropertyFlags 方法 (certadm.h)

GetCAPropertyFlags 方法检索证书颁发机构 (CA) 属性的属性标志。 此方法首先在 ICertAdmin 接口中定义。

可以检查属性标志以确定数据类型以及是否为属性编制索引。

语法

HRESULT GetCAPropertyFlags(
  [in]  const BSTR strConfig,
  [in]  LONG       PropId,
  [out] LONG       *pPropFlags
);

参数

[in] strConfig

表示 CA 的有效配置字符串,格式为 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是证书服务服务器的网络名称,CANAME 是 CA 的公用名,如证书服务设置期间输入。 有关配置字符串名称的信息,请参阅 ICertConfig

重要提示 更改配置字符串时,GetCAPropertyFlags 不会清除内部缓存。 更改 CA 的配置字符串时,必须实例化新的 ICertAdmin 对象,并使用新的配置字符串再次调用此方法。
 

[in] PropId

指定属性标识符。 有关此参数的信息,请参阅 ICertAdmin2::GetCAProperty 中的表。

[out] pPropFlags

指向表示属性标志的值的指针。

返回值

C++

返回值为 HRESULT。 值为 S_OK 表示方法成功。

VB

一个 Long 类型的值,表示属性标志。

注解

可以检查通过调用此方法检索到的 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);

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certadm.h (包括 Certsrv.h)
Library Certidl.lib
DLL Certadm.dll