⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kvlist.h

📁 使用CT-C开发的一个CTI软电话系统,ActiveX形式的,仅供参考
💻 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 + -