AfxOleRegisterControlClass

BOOL AFXAPI AfxOleRegisterControlClass (HINSTANCE hInstance, REFCLSID clsid, LPCTSTR pszProgID, UINT idTypeName, UINT idBitmap, int nRegFlags, DWORD dwMiscStatus, REFGUID tlid, слово wVerMajor, слово wVerMinor );

# include lt;afxctl.h>

Возвращаемое значение

Ненулевое значение, если класс элемента управления было зарегистрировано; в противном случае 0.

Параметры

hInstance

Дескриптор экземпляра модуля, связанного с класса элемента управления.

clsid

Класса уникальный Идентификатор элемента управления.

pszProgID

Уникальный программный Идентификатор элемента управления.

idTypeName

Идентификатор ресурса строки, содержащей имя пользователя-для чтения типа для элемента управления.

idBitmap

Идентификатор ресурса растрового изображения, используемого для представления элемента управления OLE в панели инструментов или палитре.

nRegFlags

Содержит один или несколько из следующих флагов:

Примечание   В MFC версии MFC 4.2nRegFlags параметр intявляется BOOL параметр, bInsertable, которые разрешены или запрещены элемента управления для вставки из диалогового окна Вставка объекта .

dwMiscStatus

Содержит один или несколько из следующих флагов состояния (для описания флагов, см OLEMISC перечисление в справочнике программиста OLE):

tlid

Уникальный Идентификатор класса элемента управления.

wVerMajor

Основной номер версии класса элемента управления.

wVerMinor

Дополнительный номер версии класса элемента управления.

Примечания

Регистрирует класс элемента управления с базой данных регистрации Windows. Это позволяет использовать контейнеры, которые являются управления OLE известно управления. AfxOleRegisterControlClass обновляет реестр с именем элемента управления и его место в системе, а также устанавливает потоковой модели, которые поддерживает элемент управления в реестре. Для получения дополнительной информации см. техническое примечание 64, "Квартира-модель потоков в OLE контроля," и О процессах и потоках в Win32 SDK.

Пример

/ / Функция реализации члена класса COleObjectFactory::UpdateRegistry / /
BOOL CMyApartmentAwareCtrl::CApartmentCtrlFactory::UpdateRegistry(BOOL bRegister)
{
/ / TODO: Убедитесь, что элемент управления следует / / квартира модель потоков правила.
/ / Для MFC обновить 64 для получения дополнительной информации.
/ / Если элемент управления не соответствуют / / квартира типовые правила, то вы должны изменить
/ / код ниже, изменение параметра 6-от
/ / afxRegInsertable | afxRegApartmentThreading для
/ / afxRegInsertable.

nbsp; Если (bЗарегистрируйтесь участия)
      возвращение AfxOleRegisterControlClass()
         AfxGetInstanceHandle(),
         m_clsid,
         m_lpszProgID,
         IDS_APARTME&NT,
         IDB_APARTMENT,
         afxRegInsertable | afxRegApartmentThreading,
         _dwApartmentOleMisc,
         _tlid,
         _wVerMajor,
         _wVerMinor);
   остальное
      возвращение AfxOleUnregisterClass (m_clsid, m_lpszProgID)

Приведенный выше пример показывает, как AfxOleRegisterControlClass вызывается с флагом для вставляемый и флаг для квартиры модели объединены вместе для создания шестого параметра:

   afxRegInsertable | afxRegApartmentThreading

Элемент управления будет отображаться в диалоговом окне Вставка объекта для включенных контейнеров, и он будет апартамент модель. Квартира модель сознающий контроля должны обеспечить этот статический класс, который данные защищены замками, так что в то время как элемент управления в одной квартире доступ к статическим данным, он не отключен, планировщик до его завершения, и еще один экземпляр того же класса начинает использовать те же статические данные. Любые доступ к статическим данным будут окружены критической секции кода.

См. также AfxOleRegisterPropertyPageClass, AfxOleRegisterTypeLib, AfxOleUnregisterClass, AfxOleUnregisterTypeLib

Index