다음을 통해 공유


IEnumCERTVIEWEXTENSION::GetValue 메서드(certview.h)

GetValue 메서드는 extension-enumeration 시퀀스에서 현재 확장의 값을 검색합니다.

구문

HRESULT GetValue(
  [in]  LONG    Type,
  [in]  LONG    Flags,
  [out] VARIANT *pvarValue
);

매개 변수

[in] Type

반환된 데이터의 데이터 형식입니다. 이 매개 변수를 사용하여 반환되기 전에 확장 데이터를 디코딩하도록 지정할 수 있습니다. PROPTYPE_BINARY 지정하면 데이터가 디코딩되지 않고 원시 형식으로 반환됩니다.

다음 값 중 하나를 지정합니다.

의미
PROPTYPE_BINARY
확장 값은 있는 그대로 검색되고 필요한 경우 ASN.1로 인코딩됩니다.
PROPTYPE_DATE
확장 값은 날짜/시간으로 반환됩니다.
PROPTYPE_LONG
확장 값은 서명된 long으로 반환됩니다.
PROPTYPE_STRING
확장 값은 IA5 문자열로 인코딩된 ASN.1입니다.

[in] Flags

반환된 데이터의 출력 형식을 나타내는 플래그입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
CV_OUT_BASE64
BEGIN/END가 없는 BASE64
CV_OUT_BASE64HEADER
BEGIN CERTIFICATE 및 END CERTIFICATE가 있는 BASE64
CV_OUT_BASE64REQUESTHEADER
새 인증서 요청 시작 및 새 인증서 요청 종료가 포함된 BASE64
CV_OUT_BINARY
이진
CV_OUT_HEX
16진수 문자열
CV_OUT_HEXADDR
주소/오프셋이 있는 16진수 문자열
CV_OUT_HEXASCII
ASCII를 사용하여 16진수 문자열
CV_OUT_HEXASCIIADDR
ASCII 및 주소/오프셋이 있는 16진수 문자열

[out] pvarValue

현재 참조된 확장에 대한 데이터를 포함하는 VARIANT 형식의 값에 대한 포인터입니다. pvarValue 매개 변수가 NULL이면 이 메서드가 실패합니다. 이 함수가 성공적으로 완료되면 pvarValue 에는 현재 확장 열거형 시퀀스에서 참조하는 확장 데이터가 포함됩니다. 호출자는 pvarValue의 데이터로 작업을 수행할 때 VariantClear를 호출합니다.

반환 값

C++

메서드가 성공하면 메서드는 S_OK 반환합니다.

메서드가 실패하면 오류를 나타내는 HRESULT 값이 반환됩니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.

VB

반환 값은 확장의 데이터를 나타내는 Variant 입니다.

설명

이 메서드는 현재 확장 열거형 시퀀스에서 참조되는 확장의 데이터를 검색하는 데 사용됩니다.

확장 열거형 시퀀스가 유효한 확장을 참조하지 않으면 GetValue 가 실패합니다. 다음 방법 중 하나를 사용하여 열거형을 탐색합니다.

이 메서드는 ICertView::EnumCertViewColumn 메서드를 호출하여 확장 열거형 시퀀스를 가져온 경우 실패합니다. 해당 메서드에서 가져온 열거형 시퀀스에 스키마 정보만 포함되기 때문입니다.

예제

VARIANT     var;
LONG        Index;
HRESULT     hr;
SYSTEMTIME  systime;

VariantInit(&var);

// Enumerate each extension
// pEnumExt is previously instantiated IEnumCERTVIEWEXTENSION object
while (S_OK == pEnumExt->Next(&Index))
{
    hr = pEnumExt->GetValue(PROPTYPE_BINARY, CV_OUT_HEX, &var);
    if (FAILED(hr))
    {
        printf("Failed GetValue - %x\n", hr);
        break;
    }
    switch(var.vt)
    {
        case VT_EMPTY:
            printf("VT_EMPTY\n");
            break;
        case VT_BSTR:
            printf("BSTR:%ws\n", var.bstrVal);
            break;
        case VT_DATE:
            VariantTimeToSystemTime(var.date, &systime);
            printf("%d.%d.%d %02d:%02d:%02d\n",
                   systime.wMonth,
                   systime.wDay,
                   systime.wYear,
                   systime.wHour,
                   systime.wMinute,
                   systime.wSecond );
            break;
        case VT_I2:
            printf("%d\n", var.iVal);
            break;
        case VT_I4:
            printf("%d\n", var.lVal);
            break;
        default:
            printf("type is:%i\n", var.vt);
            break;
    }
}
// Free resources.
VariantClear( &var );

요구 사항

요구 사항
지원되는 최소 클라이언트 지원되는 버전 없음
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 certview.h(Certsrv.h 포함)
라이브러리 Certidl.lib
DLL Certadm.dll

추가 정보

ICertView::EnumCertViewColumn

IEnumCERTVIEWEXTENSION

IEnumCERTVIEWEXTENSION::Next

IEnumCERTVIEWEXTENSION::Reset

IEnumCERTVIEWEXTENSION::Skip