www.pudn.com > lucent_softphone.rar > KVList.h
// KVList.h : Declaration of the CKVList #ifndef __KVLIST_H_ #define __KVLIST_H_ #include "resource.h" // main symbols ///////////////////////////////////////////////////////////////////////////// // CKVList extern LPKVLIST CreateKVList(TKVList *pKVList); ///////////////////////////////////////////////////////////////////////////// // CKVList class ATL_NO_VTABLE CKVList : public CComObjectRootEx, public CComCoClass , 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 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_