IEnumCERTVIEWCOLUMN::Next メソッド (certview.h)
Next メソッドは、列列挙シーケンス内の次の列に移動します。
構文
HRESULT Next(
[out] LONG *pIndex
);
パラメーター
[out] pIndex
列列挙シーケンスによって参照される次の列のインデックス値を含む変数へのポインター。 列挙する列がこれ以上ない場合、この変数は –1 に設定されます。 pIndex が NULL の場合、このメソッドは失敗します。
戻り値
C++
メソッドが成功した場合、メソッドは S_OKを返し、列列挙シーケンス内の次の列が参照されるようになりました。 列挙する列がこれ以上ない場合、メソッドは S_FALSEを返し、 pIndex パラメーターの値は –1 に設定されます。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。
VB
戻り値は、列列挙シーケンスによって参照される列のインデックス値です。 列挙する列がこれ以上ない場合、戻り値は –1 になります。解説
このメソッドが正常に完了すると、次のいずれかのメソッドを呼び出すことによって、列内の情報を取得できます。
- IEnumCERTVIEWCOLUMN::GetName: 列の割り当てられていない名前を取得します。
- IEnumCERTVIEWCOLUMN::GetDisplayName: 列のローカライズされた名前を取得します。
- IEnumCERTVIEWCOLUMN::GetValue: 列のデータを取得します。
- IEnumCERTVIEWCOLUMN::GetType: 列のデータ型を取得します。
- IEnumCERTVIEWCOLUMN::GetMaxLength: 列の最大長をバイト単位で取得します。
例
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::GetDisplayName