OSDN Git Service

CLSIDの変更
[seraphyscrtools/SeraphyScriptTools.git] / ObjectVector.h
1 // ObjectVector.h : CObjectVector \82Ì\90é\8c¾
2
3 #pragma once
4
5 #include "resource.h"       // \83\81\83C\83\93 \83V\83\93\83{\83\8b
6 #include <vector>
7
8 typedef std::vector<CComVariant> VariantVector;
9
10 /////////////////////////////////////////////////////////////////////////////
11 // CObjectVector
12 class ATL_NO_VTABLE CObjectVector :
13         public CComObjectRootEx<CComSingleThreadModel>,
14         public CComCoClass<CObjectVector, &CLSID_ObjectVector>,
15         public ISupportErrorInfoImpl<&IID_IObjectVector>,
16         public IDispatchImpl<IObjectVector, &IID_IObjectVector, &LIBID_SERAPHYSCRIPTTOOLSLib>
17 {
18 public:
19         CObjectVector()
20         {
21                 m_vctVariant.reserve(256); // \8f\89\8aú\8fó\91Ô\82Å256\82Ì\83o\83b\83t\83@\82ð\8am\95Û\82·\82é
22         }
23         void FinalRelease()
24         {
25                 ATLTRACE("CObjectVector::FinalRelease\r\n");
26                 Clear();
27         }
28
29         DECLARE_REGISTRY_RESOURCEID(IDR_OBJECTVECTOR)
30
31         DECLARE_PROTECT_FINAL_CONSTRUCT()
32
33         BEGIN_COM_MAP(CObjectVector)
34                 COM_INTERFACE_ENTRY(IObjectVector)
35                 COM_INTERFACE_ENTRY(IDispatch)
36                 COM_INTERFACE_ENTRY(ISupportErrorInfo)
37         END_COM_MAP()
38
39         // IObjectVector
40 public:
41         STDMETHOD(MakeArray)(/*[out,retval]*/VARIANT* pVal);
42         STDMETHOD(Merge)(/*[in]*/VARIANT unkVal);
43         STDMETHOD(get__NewEnum)(/*[out, retval]*/ IUnknown* *pVal);
44         STDMETHOD(get_Count)(/*[out, retval]*/ long *pVal);
45         STDMETHOD(get_Value)(/*[in,optional]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal);
46         STDMETHOD(put_Value)(/*[in,optional]*/VARIANT idx, /*[in]*/ VARIANT newVal);
47         STDMETHOD(Insert)(/*[in]*/VARIANT idx,/*[in]*/VARIANT newVal);
48         STDMETHOD(Pop)(/*[out,retval]*/VARIANT* pVal);
49         STDMETHOD(Push)(/*[in]*/VARIANT newVal);
50         STDMETHOD(Erase)(/*[in]*/VARIANT start,/*[in,optional]*/VARIANT count);
51         STDMETHOD(Clear)();
52         STDMETHOD(Duplicate)(/*[in,optional]*/VARIANT idx,/*[in,optional]*/VARIANT count,/*[out,retval]*/IUnknown** punkVal);
53         STDMETHOD(CreateVector)(/*[out,retval]*/IUnknown** punkVal);
54 protected:
55         VariantVector m_vctVariant;
56 };