以下是关于 IAlternativeNames 接口的一些基本信息:
1. 接口定义:
MIDL_INTERFACE("7b84965c-ea82-4713-ba4c-c65db267e384")
IAlternativeNames : public IDispatch
{
public:
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ EncodingType Encoding) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
/* [retval][out] */ LONG *pValue) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add(
/* [in] */ EncodingType Encoding,
/* [in] */ __RPC__in BSTR strType,
/* [in] */ __RPC__in BSTR strValue) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove(
/* [in] */ LONG Index) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item(
/* [in] */ LONG Index,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pstrType) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value(
/* [in] */ LONG Index,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pstrValue) = 0;
virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NameType(
/* [retval][out] */ __RPC__out LONG *pValue) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddRange(
/* [in] */ EncodingType Encoding,
/* [in] */ __RPC__in_opt VARIANT *pvarNames) = 0;
};
2. 方法说明:
- Initialize: 初始化替代名称。
- get_Count: 获取替代名称的数量。
- Add: 向替代名称列表中添加一个新的替代名称。
- Remove: 移除指定索引处的替代名称。
- Clear: 清空替代名称列表。
- get_Item: 获取指定索引处替代名称的类型。
- get_Value: 获取指定索引处替代名称的值。
- get_NameType: 获取替代名称的类型。
- AddRange: 向替代名称列表中添加一组替代名称。
3. 使用示例:
// 创建 IAlternativeNames 接口实例
IAlternativeNamesPtr pAltNames;
HRESULT hr = pAltNames.CreateInstance(__uuidof(AlternativeNames));
// 初始化替代名称
hr = pAltNames->Initialize(XCN_CRYPT_STRING_BASE64);
// 添加替代名称
hr = pAltNames->Add(XCN_CRYPT_STRING_BASE64, L"DNS", L"www.example.com");
// 获取替代名称数量
LONG count;
hr = pAltNames->get_Count(&count);
// 获取替代名称信息
BSTR type, value;
hr = pAltNames->get_Item(0, &type);
hr = pAltNames->get_Value(0, &value);
// 清空替代名称列表
hr = pAltNames->Clear();
请注意,上述示例代码中的具体值和参数可能需要根据实际需求进行调整。此接口主要用于处理证书中的替代名称信息,例如在创建证书请求时指定主体替代名称。
转载请注明出处:http://www.zyzy.cn/article/detail/24181/Win32 API/Certenroll.h/IAlternativeNames