Share via


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)
程式庫 Certidl.lib
Dll Certadm.dll