ActiveX/Automation

컬렉션 - ATL

jjryu 2009. 3. 3. 23:05
클라이언트는 루트 개체가 제공하는 읽기 전용의 속성을 통하여 컬렉션 개체에 접근하게 된다.


루트 개체
읽기 전용 속성의 컬렉션 개체를 노출

    interface ICompany : IDispatch
    {
        [propget, id(1), helpstring("property Employees")] HRESULT Employees([out, retval] VARIANT *pVal);
    };

컬렉션 개체
클래스 팩토리 관련 내용은 제거한다.

.Count
.Item[]
._NewEnum
[.Add()]
[.Remove()]

    interface IEmployees : IDispatch
    {
        [propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
        [propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in] long index, [out, retval] VARIANT *pVal);
        [propget, id(DISPID_NEWENUM), helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] LPUNKNOWN *pVal);
    };

멤버 항목 개체
클래스 팩토리 관련 내용은 제거한다.

다른 컬렉션 개체를 제공할 수 있다.

    interface IEmployee : IDispatch
    {
        [propget, id(1), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
        ...
    };