📄 kvlist.h
字号:
// KVList.h : Declaration of the CKVList
#ifndef __KVLIST_H_
#define __KVLIST_H_
#include "resource.h" // main symbols
extern LPKVLIST CreateKVList(TKVList *pKVList);
/////////////////////////////////////////////////////////////////////////////
// CKVList
class ATL_NO_VTABLE CKVList :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CKVList, &CLSID_KVList>,
public IKVList
{
public:
CKVList()
{
m_pKVList = NULL;
m_pUnkMarshaler = NULL;
}
DECLARE_REGISTRY_RESOURCEID(IDR_KVLIST)
DECLARE_NOT_AGGREGATABLE(CKVList)
DECLARE_GET_CONTROLLING_UNKNOWN()
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CKVList)
COM_INTERFACE_ENTRY(IKVList)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p)
END_COM_MAP()
HRESULT FinalConstruct()
{
m_pKVList = TKVListCreate();
if(!m_pKVList) return(E_OUTOFMEMORY);
return CoCreateFreeThreadedMarshaler(
GetControllingUnknown(), &m_pUnkMarshaler.p);
}
void FinalRelease()
{
TKVListFree(m_pKVList);
m_pUnkMarshaler.Release();
}
CComPtr<IUnknown> m_pUnkMarshaler;
TKVList *m_pKVList;
// IKVList
public:
STDMETHOD_(KVRESULTS, GetPair)(/*[in]*/ BSTR key, /*[out, ref]*/ LPKVPAIR *pVal);
STDMETHOD_(KVRESULTS, GetBinaryValue)(/*[in]*/ BSTR key, /*[out, ref]*/ byte * *pVal);
STDMETHOD_(KVRESULTS, GetListValue)(/*[in]*/ BSTR key, /*[out, ref]*/ LPKVLIST *pVal);
STDMETHOD_(KVRESULTS, GetIntValue)(/*[in]*/ BSTR key, /*[out, ref]*/ int *pVal);
STDMETHOD_(KVRESULTS, GetStringValue)(/*[in]*/ BSTR key, /*[out, ref]*/ BSTR *pVal);
STDMETHOD_(LPKVPAIR, NextPair)();
STDMETHOD_(KVRESULTS, InitScanLoop)();
STDMETHOD_(KVRESULTS, DeleteAll)();
STDMETHOD_(KVRESULTS, DeletePair)(/*[in]*/ BSTR key);
STDMETHOD_(KVRESULTS, AddBinary)(/*[in]*/ BSTR key, /*[in]*/ int length, /*[in, size_is(length)]*/ byte *value);
STDMETHOD_(KVRESULTS, AddList)(/*[in]*/ BSTR key, /*[in]*/ LPKVLIST value);
STDMETHOD_(KVRESULTS, AddInt)(/*[in]*/ BSTR key, /*[in]*/ int value);
STDMETHOD_(KVRESULTS, AddString)(/*[in]*/ BSTR key, /*[in]*/ BSTR value);
STDMETHOD_(LPKVLIST, Dup)();
};
#endif //__KVLIST_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -