1. 文件包含:
#include <certenroll.h>
2. 接口定义:
interface IX509EnrollmentStatus : public IDispatch
{
public:
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Status(
/* [retval][out] */ LONG *pValue) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_StatusString(
/* [retval][out] */ BSTR *pValue) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorCode(
/* [retval][out] */ LONG *pValue) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorString(
/* [retval][out] */ BSTR *pValue) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Certificate(
/* [retval][out] */ ICertificate **pValue) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorMask(
/* [retval][out] */ LONG *pValue) = 0;
};
3. 使用示例:
// 创建对象
CComPtr<IX509EnrollmentStatus> pEnrollmentStatus;
HRESULT hr = CoCreateInstance(
__uuidof(CX509EnrollmentStatus),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IX509EnrollmentStatus),
(void**)&pEnrollmentStatus);
if (SUCCEEDED(hr))
{
// 获取状态信息
LONG status;
hr = pEnrollmentStatus->get_Status(&status);
BSTR statusString;
hr = pEnrollmentStatus->get_StatusString(&statusString);
LONG errorCode;
hr = pEnrollmentStatus->get_ErrorCode(&errorCode);
BSTR errorString;
hr = pEnrollmentStatus->get_ErrorString(&errorString);
CComPtr<ICertificate> pCertificate;
hr = pEnrollmentStatus->get_Certificate(&pCertificate);
LONG errorMask;
hr = pEnrollmentStatus->get_ErrorMask(&errorMask);
// 在这里可以使用获取到的状态信息进行操作
// 释放资源
SysFreeString(statusString);
SysFreeString(errorString);
}
请注意,上述代码中的 CX509EnrollmentStatus 类是 IX509EnrollmentStatus 接口的默认实现之一。具体的状态信息可能因实际情况而有所不同。确保在使用这些接口时参考相关的官方文档和示例代码。
转载请注明出处:http://www.zyzy.cn/article/detail/24223/Win32 API/Certenroll.h/IX509EnrollmentStatus