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