ICertManageModule::GetProperty 메서드(certmod.h)
GetProperty 메서드는 모듈의 속성 값을 검색합니다.
구문
HRESULT GetProperty(
[in] const BSTR strConfig,
[in] BSTR strStorageLocation,
[in] BSTR strPropertyName,
[in] LONG Flags,
[out, retval] VARIANT *pvarProperty
);
매개 변수
[in] strConfig
COMPUTERNAME\CANAME 형식으로 인증서 서비스 서버의 구성 문자열을 나타냅니다. 여기서 COMPUTERNAME은 인증서 서비스 서버의 네트워크 이름이며, CANAME은 인증서 서비스 설정 중에 CA에 입력된 CA( 인증 기관 )의 일반 이름입니다. 구성 문자열 이름에 대한 자세한 내용은 ICertConfig를 참조하세요.
[in] strStorageLocation
속성 값에 대한 HKEY_LOCAL_MACHINE 하이브의 스토리지 위치를 나타내는 레지스트리 키입니다. 이 값은 다음과 같은 형식입니다.
SYSTEM CurrentControlSet Services CertSvc Configuration CAName PolicyOrExitModules MyModule.PolicyOrExit
CAName은 인증 기관의 구성 문자열의 이름이며 PolicyOrExitModules는 "Policy" 또는 "Exit"(Policy 또는 Exit 모듈이 ICertManageModule의 이 구현에 적용되는지 여부에 따라 다름)이 되고 MyModule.PolicyOrExit는 모듈의 애플리케이션별 식별자입니다. CAName은 인증 기관의 삭제된 이름입니다. 삭제된 이름에 대한 자세한 내용은 ICertConfig::GetConfig를 참조하세요. 이 스토리지 위치의 사용은 나중에 사용할 수 있습니다.
[in] strPropertyName
쿼리할 속성의 이름입니다. 정책 및 종료 모듈은 다음 속성을 지원해야 합니다.
값 | 의미 |
---|---|
|
모듈의 이름입니다. |
|
모듈에 대한 설명입니다. |
|
모듈과 관련된 저작권입니다. |
|
모듈 파일의 버전입니다. |
|
모듈의 버전입니다. |
[in] Flags
이 매개 변수는 예약되어 있으며 0으로 설정해야 합니다.
[out, retval] pvarProperty
strPropertyName으로 지정된 속성에 대해 검색된 값인 VARIANT에 대한 포인터입니다.
반환 값
C++
메서드가 성공하면 메서드는 S_OK 반환합니다.메서드가 실패하면 오류를 나타내는 HRESULT 값이 반환됩니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.
VB
반환 값은 strPropertyName이라는 속성의 값을 나타내는 Variant입니다.설명
ICertManageModule을 구현하면 인증서 서비스 관리자가 GetProperty를 호출하여 모듈의 속성을 검색할 수 있습니다. 그런 다음 정책 및 종료 모듈에 대한 인증서 서비스 관리자 속성 페이지에 속성을 표시할 수 있습니다. 인증서 서비스 관리자는 strStorageLocation 에서 참조하는 위치를 이 모듈에 전달하며, 이후 버전에서는 이 메서드의 구현에서 필요에 따라 이 위치를 사용할 수 있습니다. 다음 예제에서는 strStorageLocation 을 사용하지 않고 대신 메모리의 속성 값을 유지 관리합니다.
예제
#include <windows.h>
#include <Certmod.h>
HRESULT CCertManagePolicyModule::GetProperty(
/* [in] */ const BSTR strConfig,
/* [in] */ BSTR strStorageLocation,
/* [in] */ BSTR strPropertyName,
/* [in] */ LONG Flags,
/* [retval][out] */ VARIANT *pvarProperty)
{
// Array of property Names.
// These values are defined in Certmod.h.
wchar_t const * awszPropName[] =
{
wszCMM_PROP_NAME,
wszCMM_PROP_DESCRIPTION,
wszCMM_PROP_COPYRIGHT,
wszCMM_PROP_FILEVER,
wszCMM_PROP_PRODUCTVER
};
// Array of property Values.
// These values are module-specific, and
// correspond to the property names in
// awszPropName (same index).
wchar_t const * awszPropValue[] =
{
L"MyModule", // NAME
L"Description of MyModule", // DESCRIPTION
L"Copyright 1998", // COPYRIGHT
L"1.0", // FILE VERSION
L"1.0" // PRODUCT VERSION
};
int i;
bool bFound = FALSE;
HRESULT hr;
// Return appropriate error if strPropertyName is NULL.
if (NULL == strPropertyName)
return E_INVALIDARG;
// Return appropriate error if pvarProperty is NULL.
if (NULL == pvarProperty)
return E_POINTER;
// Determine whether the requested property is in the Name array.
for (i=0; i<sizeof(awszPropName)/sizeof(wchar_t *); i++)
if (!wcscmp( strPropertyName, awszPropName[i]))
{
bFound = TRUE; // Found the index for the property.
break;
}
if ( !bFound )
return S_FALSE; // Requested property not found.
// Allocate storage for the property value.
pvarProperty->bstrVal = SysAllocString(awszPropValue[i]);
if (NULL == pvarProperty->bstrVal)
return E_OUTOFMEMORY;
pvarProperty->vt = VT_BSTR;
return S_OK;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | 지원되는 버전 없음 |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | certmod.h(Certsrv.h 포함) |
라이브러리 | Certidl.lib |
추가 정보
CCertManageModule