1. 文件包含:
#include <certenroll.h>
2. 接口定义:
interface IX509ExtensionKeyUsage : public IX509Extension
{
public:
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_KeyUsage(
/* [retval][out] */ LONG *pValue) = 0;
virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_KeyUsage(
/* [in] */ LONG Value) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InitializeEncode(
/* [in] */ LONG KeyUsage) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InitializeDecode(
/* [in] */ BSTR strEncodedData) = 0;
};
3. 使用示例:
// 创建对象
CComPtr<IX509ExtensionKeyUsage> pKeyUsage;
HRESULT hr = CoCreateInstance(
__uuidof(CX509ExtensionKeyUsage),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IX509ExtensionKeyUsage),
(void**)&pKeyUsage);
if (SUCCEEDED(hr))
{
// 获取密钥用法
LONG keyUsage;
hr = pKeyUsage->get_KeyUsage(&keyUsage);
// 在这里可以使用获取到的密钥用法进行操作
// 设置密钥用法
hr = pKeyUsage->put_KeyUsage(0x10); // 例子中设置数字签名的用法
// 在这里可以使用设置的密钥用法进行操作
}
请注意,上述代码中的 CX509ExtensionKeyUsage 类是 IX509ExtensionKeyUsage 接口的默认实现之一。在实际使用时,你可能需要根据你的需求设置和获取密钥用法。确保在使用这些接口时参考相关的官方文档和示例代码。
转载请注明出处:http://www.zyzy.cn/article/detail/24231/Win32 API/Certenroll.h/IX509ExtensionKeyUsage