моделирование проекта
Следующий шаг в защите автоматизации проекта реализовать стандартные объекты проекта: Projects и ProjectItems коллекции. Project и ProjectItem объекты; остальные объекты и уникальны для реализации. Эти стандартные объекты указываются в файле Dteinternal.h. Реализация стандартных объектов предоставляется в образце BscPrj. Можно использовать эти классы модели для создания собственных стандартные объекты проекта, которые стоят параллельно с объектами проекта из других типов проектов.
Объект-получатель автоматизации предполагается возможность вызова Solution("<UniqueProjName>")и ProjectItems (nwhere) n номер индекса для получения конкретного проекта в решении. Вызовы этот автоматизации заставляет среду вызова GetProperty на соответствующей иерархии проекта, передавая в качестве параметра VSITEMID_ROOT ItemID и VSHPROPID_ExtObject в качестве параметра VSHPROPID. IVsHierarchy::GetProperty возвращает IDispatch указатель на объект автоматизации, предоставляющий ядро Project интерфейс, в котором реализован.
Ниже приведен синтаксис IVsHierarchy::GetProperty.
HRESULT GetProperty (
VSITEMID itemid,
VSHPROPID propid,
VARIANT *pvar
);
Проекты приспосабливают вложения и используют коллекции для создания групп в составе элементы проекта. Иерархия выглядит следующим образом.
Projects
|– Project
|– ProjectItems (a collection of ProjectItem)
|– ProjectItem (single object) or ProjectItems (another collection)
Вложение означает, что значение a ProjectItem объект может иметь ProjectItems коллекция одновременно, поскольку a ProjectItems коллекция может содержать вложенные объекты. В образце базовой проекта не это демонстрирует вложение. Путем реализации Project объект, участвуете в дерево-как структура, характеризует создание общей модели автоматизации.
Автоматизация проектов выполните, в следующей схеме.
Автоматизация проектов
Если не реализуется a Project объект среда по-прежнему возвращает универсальный шаблон Project объект, содержащий только имя проекта.