Образец CIRCCOLL: демонстрация коллекции или перечисления
Обновлен: Ноябрь 2007
В образце CIRCOLL показано, как реализовать коллекцию или перечисление объектов с помощью библиотеки ATL.
Образец атрибутов CIRCCOLL представляет версию данного образца с поддержкой атрибутов.
Примечание о безопасности. |
---|
Этот образец кода служит для демонстрации основных принципов и не предназначен для использования в приложениях или на веб-узлах, поскольку не может считаться примером наиболее безопасного кода. Корпорация Майкрософт не несет ответственности за случайные или косвенные убытки в случае использования образца кода не по назначению. |
Чтобы получить образцы и инструкции по их установке, выполните следующие действия.
В меню Справка среды Visual Studio выберите пункт Примеры.
Дополнительные сведения см. в разделе Поиск файлов примеров.
Самая последняя версия и полный список образцов доступны в Интернете на странице образцов Visual Studio 2008.
Кроме того, образцы находятся на жестком диске компьютера. По умолчанию образцы кода и файл Readme копируются в папку, находящуюся в папке \Program Files\Visual Studio 9.0\Samples\. Все образцы кода для экспресс-выпусков Visual Studio находятся в Интернете.
Построение и запуск образца
Построение и запуск этого образца
Откройте файл решения circoll.sln.
В меню Построение выберите команду Построить решение.
В меню Отладка выберите пункт Запуск.
Откроется форма Visual Basic с именем Form1. Нажмите кнопку, чтобы активировать приложение.
Принцип работы образца
Реализованы три класса объектов: создатель коллекции, коллекция и объект в коллекции. Компонентный класс сопоставляется только с создателем коллекции (см. объявление компонентного класса в файле Circcoll.idl). Создатель коллекции содержит метод, возвращающий коллекцию объектов-окружностей. В объекте коллекции реализованы методы Item, Count и _NewItem, позволяющие работать с объектом Visual Basic, используя синтаксические конструкции For...Next и For Each....
Ключевые слова
В этом образце используются следующие ключевые слова:
AddRef; ATLASSERT; ATLTRACE; BEGIN_COM_MAP; BEGIN_OBJECT_MAP; CComCoClass; CComObject::CreateInstance; CComObjectRoot; CComVariant; COM_INTERFACE_ENTRY; DECLARE_NOT_AGGREGATABLE; DECLARE_REGISTRY; END_COM_MAP; END_OBJECT_MAP; glBegin; glEnd; glNormal3d; glPolygonMode; glVertex2d; glVertex3d; IConnectionPointContainerImpl::FindConnectionPoint; IConnectionPointImpl::Advise; IDispatchImpl; ISupportErrorInfo; OBJECT_ENTRY; QueryInterface; Release; USES_CONVERSION; VariantCopy; VariantInit