网上都是通过request请求来申请及安装,xp下采用xenroll的installPKCS7函数已经实现安装本地证书。但是在win7下接口改变,查了资料,certenroll中IX509EnrollMent的installresponse来实现,但采用编写以下代码安装本地已手动下载的证书文件时调用installresponse函数后报0x8007007a 错误。 与没发现那里要初始化一个区域大小。请高手指教BSTR bCertBuffer=bStringToBSTR(pCertBuffer,sizeof(pCertBuffer));IX509Enrollment* pEnroll = NULL;
HRESULT hr = S_OK;hr=CoCreateInstance(
__uuidof(CX509Enrollment),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IX509Enrollment),
(void**)&pEnroll);
......
hr=pEnroll->Initialize(ContextUser);
hr=pEnroll->InstallResponse(AllowUntrustedRoot,bCertBuffer,XCN_CRYPT_STRING_BASE64_ANY,NULL);
HRESULT hr = S_OK;hr=CoCreateInstance(
__uuidof(CX509Enrollment),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IX509Enrollment),
(void**)&pEnroll);
......
hr=pEnroll->Initialize(ContextUser);
hr=pEnroll->InstallResponse(AllowUntrustedRoot,bCertBuffer,XCN_CRYPT_STRING_BASE64_ANY,NULL);
没有到受信任根中,貌似我搜了资料,win7没有提供指定安装目录的函数。