OSDN Git Service

20021009版ソース
[seraphyscrtools/SeraphyScriptTools.git] / ObjectMap.h
1 // ObjectMap.h : CObjectMap \82Ì\90é\8c¾
2
3 #ifndef __OBJECTMAP_H_
4 #define __OBJECTMAP_H_
5
6 #include "resource.h"       // \83\81\83C\83\93 \83V\83\93\83{\83\8b
7 #include <map>
8 #include <string>
9 using namespace std;
10
11 typedef map<_bstr_t,VARIANT> VariantMap;
12
13 /////////////////////////////////////////////////////////////////////////////
14 // CObjectMap
15 class ATL_NO_VTABLE CObjectMap : 
16         public CComObjectRootEx<CComSingleThreadModel>,
17         public CComCoClass<CObjectMap, &CLSID_ObjectMap>,
18         public ISupportErrorInfo,
19         public IDispatchImpl<IObjectMap, &IID_IObjectMap, &LIBID_SERAPHYSCRIPTTOOLSLib>
20 {
21 public:
22         CObjectMap()
23         {
24         }
25         void FinalRelease()
26         {
27                 Clear();
28                 ATLTRACE("CObjectMap::FinalRelease\n");
29         }
30
31 DECLARE_REGISTRY_RESOURCEID(IDR_OBJECTMAP)
32
33 DECLARE_PROTECT_FINAL_CONSTRUCT()
34
35 BEGIN_COM_MAP(CObjectMap)
36         COM_INTERFACE_ENTRY(IObjectMap)
37         COM_INTERFACE_ENTRY(IDispatch)
38         COM_INTERFACE_ENTRY(ISupportErrorInfo)
39 END_COM_MAP()
40
41 // ISupportsErrorInfo
42         STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
43
44 // IObjectMap
45 public:
46         STDMETHOD(SaveProfile)(/*[in]*/IUnknown* punkVal);
47         STDMETHOD(LoadProfile)(/*[in]*/IUnknown* punkVal);
48         STDMETHOD(Erase)(/*[in]*/VARIANT key);
49         STDMETHOD(get_IsExist)(/*[in]*/VARIANT key, /*[out, retval]*/ BOOL *pVal);
50         STDMETHOD(ExpandVariables)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT env,/*[out,retval]*/VARIANT* pVal);
51         STDMETHOD(get_NearValue)(/*[in]*/VARIANT key,/*[out,retval]*/VARIANT* pVal);
52         STDMETHOD(FindNear)(/*[in]*/VARIANT key,/*[out,retval]*/VARIANT* pVal);
53         STDMETHOD(get__NewEnum)(/*[out, retval]*/ IUnknown* *pVal);
54         STDMETHOD(CreateMap)(/*[out,retval]*/IUnknown** punkVal);
55         STDMETHOD(Duplicate)(/*[out,retval]*/IUnknown** punkVal);
56         STDMETHOD(Clear)();
57         STDMETHOD(get_Count)(/*[out, retval]*/ long *pVal);
58         STDMETHOD(get_Value)(/*[in]*/VARIANT key, /*[out, retval]*/ VARIANT *pVal);
59         STDMETHOD(put_Value)(/*[in]*/VARIANT key, /*[in]*/ VARIANT newVal);
60 protected:
61         VariantMap m_mapVariant;
62 };
63
64 #endif //__OBJECTMAP_H_