ActiveX с нуля

Свойства, доступные только для чтения или записи.


Для задания доступа к свойству Вы должны выполнить следующие действия:

1.      Загрузить Ваш проект.

2.      В меню View выбрать ClassWizard.

3.      Выбрать вкладку Automation.

4.      Выберете имя класса из списка Class name.

5.      Щелкнуть на кнопке Add Property.

6.      В списке External Name напечатать нужное свойство, например, MyProperty.

7.      В группе Implementation указать Get/Set Methods.

8.      В списке Type выбрать тип свойства, например, short.

9.      Впечатать имена Get/Set функций или оставить те, что предлагает ClassWizard. Если вы хотите, чтобы свойство только читалось, то удалите имя Set функции, а если Вы желаете, чтобы свойство только устанавливалось извне, то удалите имя Get функции.

10.  Щелкнуть на кнопке OK для того, чтобы закрыть диалог Add Property.

11.  Щелкнуть на кнопке OK для того, чтобы закрыть диалог ClassWizard.

При этом в карту диспетчеризации будет вставлена функция SetNotSupported или GetNotSupported:

DISP_PROPERTY_EX(CMyCtrlCtrl, "MyProperty", Get MyProperty, SetNotSupported, VT_I2)

Если Вы хотите сделать уже существующее свойство только читаемым, например, то вручную внесите изменения в карту диспетчеризации, и также вручную удалите ненужные функции Get или Set.

Если же Вы хотите, чтобы свойства были доступны или недоступны в определенных ситуациях, то  создайте свойства обычным способом, а при реализации функций Get/Set вызывайте, когда необходимо, функции SetNotSupported или GetNotSupported:

void CSampleCtrl::SetMyProperty( short propVal )

{

// Проверка условия для установки свойства

 if ( m_bReadOnlyMode )

 

SetNotSupported( );// нельзя устанавливать

      else

m_ipropVal = propVal; // установка свойства

    }



Содержание раздела