次の方法で共有


IEnumCERTVIEWCOLUMN::Next メソッド (certview.h)

Next メソッドは、列列挙シーケンス内の次の列に移動します。

構文

HRESULT Next(
  [out] LONG *pIndex
);

パラメーター

[out] pIndex

列列挙シーケンスによって参照される次の列のインデックス値を含む変数へのポインター。 列挙する列がこれ以上ない場合、この変数は –1 に設定されます。 pIndexNULL の場合、このメソッドは失敗します。

戻り値

C++

メソッドが成功した場合、メソッドは S_OKを返し、列列挙シーケンス内の次の列が参照されるようになりました。 列挙する列がこれ以上ない場合、メソッドは S_FALSEを返し、 pIndex パラメーターの値は –1 に設定されます。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。

VB

戻り値は、列列挙シーケンスによって参照される列のインデックス値です。 列挙する列がこれ以上ない場合、戻り値は –1 になります。

解説

このメソッドが正常に完了すると、次のいずれかのメソッドを呼び出すことによって、列内の情報を取得できます。

LONG       nLength;
LONG       nType;
LONG       bIsindexed;
LONG       Index;

HRESULT    hr;

BSTR       bstrColName = NULL;

// pEnumCol is previously instantiated IEnumCERTVIEWCOLUMN object
// examine each column
while (S_OK == pEnumCol->Next(&Index))
{
    // determine database length
    hr = pEnumCol->GetMaxLength(&nLength);
    if (FAILED(hr))
    {
        printf("Failed GetMaxLength %x\n", hr);
        goto error;
    }

    // determine data type
    hr = pEnumCol->GetType(&nType);
    if (FAILED(hr))
    {
        printf("Failed GetType %x\n", hr);
        goto error;
    }

    // determine whether column is indexed
    hr = pEnumCol->IsIndexed(&bIsindexed);
    if (FAILED(hr))
    {
        printf("Failed IsIndexed %x\n", hr);
        goto error;
    }

    // retrieve column name
    hr = pEnumCol->GetName(&bstrColName);
    if (FAILED(hr))
    {
        printf("Failed GetName %x\n", hr);
        goto error;
    }

    // print this column's info on one line
    // print name and length
    printf("Column %ws has max length %d",
            bstrColName,
            nLength); 

    // print data type
    switch (nType)
    {
        case PROPTYPE_BINARY:
            printf(" Type is Binary");
            break;
        case PROPTYPE_DATE:
            printf(" Type is Date+Time");
            break;
        case PROPTYPE_LONG:
            printf(" Type is Signed long");
            break;
        case PROPTYPE_STRING:
            printf(" Type is Unicode String");
            break;
        default:
            printf(" Type is unknown");
            break;
    }

    // print index status
    printf(bIsindexed ? " Indexed" : " Not indexed");
    // print new line marker
    printf("\n");

}

error:

// done processing, clear resources
if (NULL != bstrColName)
    SysFreeString(bstrColName);

要件

   
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certview.h (Certsrv.h を含む)
Library Certidl.lib
[DLL] Certadm.dll

関連項目

IEnumCERTVIEWCOLUMN

IEnumCERTVIEWCOLUMN::GetDisplayName

IEnumCERTVIEWCOLUMN::GetMaxLength

IEnumCERTVIEWCOLUMN::GetName

IEnumCERTVIEWCOLUMN::GetType

IEnumCERTVIEWCOLUMN::GetValue