C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 5. Добавляем свойство для элемента ActiveX / Библиотека ATL / Visual C++

Visual C++. ATL
Урок 5. Добавляем свойство для элемента ActiveX

Для добавления свойства щелкаем на вкладке ClassView на интерфейсе IFirstATL (Не перепутайте! У нас два интерфейса с таким именем, и нам нужен именно внешний интерфейс, а не интерфейс внутри класса CFirstATL!). В появившемся контекстном меню выбираем, естественно, Add Property:

Добавление свойства

В появившемся диалоговом окне Add Property to Interface задаем имя свойства как num и тип свойства как short:

Окно Add Property to Interface

Обратите также внимание на то, что наше свойство будет и для записи, и для чтения:

Окно Add Property to Interface

Если нам надо что-нибудь одно (например у нас есть некоторое свойство только для чтения), то соответствующую галочку надо убрать. Для закрытия диалогового окна нажимаем на OK.

После этого внесите изменения в класс CFirstATL, а именно добавьте в него переменную m_num для нашего свойства num:

class ATL_NO_VTABLE CFirstATL :
    ...
private:
    short m_num;
};

Обнулите эту переменную в конструкторе класса:

public:
    CFirstATL()
    {
        m_num=0;
    }

Обратите внимание на изменения на вкладке ClassView. Во-первых, в нашем внешнем интерфейсе IFirstATL появилось два метода num (для чтения и записи):

Изменения в интерфейсе

Во-вторых, в интерфейсе IFirstATL класса CFirstATL появилось два новых метода - get_num и put_num (для чтения и записи соответственно):

Изменения в классе

Для перехода в окно кода сделайте двойной щелчок на любом из них. Измените код следующим образом:

STDMETHODIMP CFirstATL::get_num(short *pVal)
{
    // TODO: Add your implementation code here
    *pVal=m_num; //Читаем свойство
    return S_OK;
}

STDMETHODIMP CFirstATL::put_num(short newVal)
{
    // TODO: Add your implementation code here
    m_num=newVal; //Записываем свойство
    return S_OK;
}

С созданием свойства все!