Класс COleObjectFactory
Реализует фабрику класса OLE, которая создает OLE-объекты, такие как серверы, объекты автоматизации и документы.
Синтаксис
class COleObjectFactory : public CCmdTarget
Участники
Открытые конструкторы
Имя | Описание |
---|---|
COleObjectFactory::COleObjectFactory | Формирует объект COleObjectFactory . |
Открытые методы
Имя | Описание |
---|---|
COleObjectFactory::GetClassID | Возвращает идентификатор класса OLE для объектов, которые создает фабрика. |
COleObjectFactory::IsLicenseValid | Определяет, действительна ли лицензия элемента управления. |
COleObjectFactory::IsRegistered | Указывает, зарегистрирована ли фабрика объектов в библиотеках DLL системы OLE. |
COleObjectFactory::Register | Регистрирует эту фабрику объектов с помощью библиотек DLL системы OLE. |
COleObjectFactory::RegisterAll | Регистрирует все фабрики объектов приложения с помощью библиотек DLL системы OLE. |
COleObjectFactory::Revoke | Отменяет регистрацию фабрики объектов в библиотеках DLL системы OLE. |
COleObjectFactory::RevokeAll | Отменяет регистрацию фабрик объектов приложения с помощью библиотек DLL системы OLE. |
COleObjectFactory::UnregisterAll | Отменяет регистрацию всех фабрик объектов приложения. |
COleObjectFactory::UpdateRegistry | Регистрирует эту фабрику объектов в системный реестр OLE. |
COleObjectFactory::UpdateRegistryAll | Регистрирует все фабрики объектов приложения с помощью системного реестра OLE. |
Защищенные методы
Имя | Описание |
---|---|
COleObjectFactory::GetLicenseKey | Запрашивает уникальный ключ из библиотеки DLL элемента управления. |
COleObjectFactory::OnCreateObject | Вызывается платформой для создания нового объекта типа фабрики. |
COleObjectFactory::VerifyLicenseKey | Проверяет, соответствует ли ключ, внедренный в элемент управления, ключ, внедренный в контейнер. |
COleObjectFactory::VerifyUserLicense | Проверяет, лицензируется ли элемент управления для использования во время разработки. |
Замечания
Класс COleObjectFactory
имеет функции-члены для выполнения следующих функций:
Управление регистрацией объектов.
Обновление системного регистра OLE, а также регистрация во время выполнения, которая сообщает OLE, что объекты запущены и готовы к получению сообщений.
Принудительное лицензирование путем ограничения использования элемента управления лицензированным разработчикам во время разработки и лицензированного приложения во время выполнения.
Регистрация фабрик объектов управления в реестре системы OLE.
Дополнительные сведения о создании объектов см. в статьях " Объекты данных" и "Источники данных" (OLE) и "Объекты данных" и "Источники данных": создание и уничтожение. Дополнительные сведения о регистрации см. в статье "Регистрация".
Иерархия наследования
COleObjectFactory
Требования
Заголовок: afxdisp.h
COleObjectFactory::COleObjectFactory
COleObjectFactory
Создает объект, инициализирует его как незарегистрированную фабрику объектов и добавляет его в список фабрик.
COleObjectFactory(
REFCLSID clsid,
CRuntimeClass* pRuntimeClass,
BOOL bMultiInstance,
LPCTSTR lpszProgID);
COleObjectFactory(
REFCLSID clsid,
CRuntimeClass* pRuntimeClass,
BOOL bMultiInstance,
int nFlags,
LPCTSTR lpszProgID);
Параметры
clsid
Ссылка на идентификатор класса OLE, представленный фабрикой объектов.
pRuntimeClass
Указатель на класс времени выполнения объектов C++ этой фабрики может создать.
bMultiInstance
Указывает, может ли один экземпляр приложения поддерживать несколько экземпляров. Если значение TRUE, для каждого запроса для создания объекта запускается несколько экземпляров приложения.
nFlags
Содержит один или несколько следующих флагов:
afxRegDefault
Задает модель потоков для ThreadingModel=Apartment.afxRegInsertable
Позволяет элементу управления отображаться в диалоговом окне "Вставка объекта " для объектов OLE.afxRegApartmentThreading
Задает модель потоков в реестре в ThreadingModel=Apartment.afxRegFreeThreading
Задает модель потоков в реестре в ThreadingModel=Free.Вы можете объединить два флага
afxRegApartmentThreading
иafxRegFreeThreading
задать ThreadingModel=Оба. Дополнительные сведения о регистрации моделей потоков см . в разделе InprocServer32 в пакете SDK для Windows.
lpszProgID
Указатель на строку, содержащую словесный идентификатор программы, например Microsoft Excel.
Замечания
Однако для использования объекта необходимо зарегистрировать его.
Дополнительные сведения см. в разделе CLSID Key in the Windows SDK.
COleObjectFactory::GetClassID
Возвращает ссылку на идентификатор класса OLE, представленный этой фабрикой.
REFCLSID GetClassID() const;
Возвращаемое значение
Ссылка на идентификатор класса OLE, представленный этой фабрикой.
Замечания
Дополнительные сведения см. в разделе CLSID Key in the Windows SDK.
COleObjectFactory::GetLicenseKey
Запрашивает уникальный ключ лицензии из библиотеки DLL элемента управления и сохраняет его в BSTR, на который указывает pbstrKey.
virtual BOOL GetLicenseKey(
DWORD dwReserved,
BSTR* pbstrKey);
Параметры
dwReserved
Зарезервировано для последующего использования.
pbstrKey
Указатель на BSTR, который будет хранить ключ лицензии.
Возвращаемое значение
Ненулевое значение, если строка ключа лицензии не имеет значения NULL; в противном случае — 0.
Замечания
Реализация этой функции по умолчанию возвращает значение 0 и не сохраняет ничего в BSTR. Если вы используете MFC ActiveX ControlWizard для создания проекта, ControlWizard предоставляет переопределение, которое извлекает ключ лицензии элемента управления.
COleObjectFactory::IsLicenseValid
Определяет, действительна ли лицензия элемента управления.
BOOL IsLicenseValid();
Возвращаемое значение
Значение TRUE, если выполнено успешно; в противном случае значение false.
COleObjectFactory::IsRegistered
Возвращает ненулевое значение, если фабрика зарегистрирована в библиотеках DLL системы OLE.
virtual BOOL IsRegistered() const;
Возвращаемое значение
Ненулевое значение, если фабрика зарегистрирована; в противном случае — 0.
COleObjectFactory::OnCreateObject
Вызывается платформой для создания нового объекта.
virtual CCmdTarget* OnCreateObject();
Возвращаемое значение
Указатель на созданный объект. При сбое может возникать исключение памяти.
Замечания
Переопределите эту функцию, чтобы создать объект из другого объекта, отличного от CRuntimeClass , переданного конструктору.
COleObjectFactory::Register
Регистрирует эту фабрику объектов с помощью библиотек DLL системы OLE.
virtual BOOL Register();
Возвращаемое значение
Ненулевое значение, если фабрика успешно зарегистрирована; в противном случае — 0.
Замечания
Эта функция обычно вызывается CWinApp::InitInstance при запуске приложения.
COleObjectFactory::RegisterAll
Регистрирует все фабрики объектов приложения с помощью библиотек DLL системы OLE.
static BOOL PASCAL RegisterAll();
Возвращаемое значение
Ненулевое значение, если заводы успешно зарегистрированы; в противном случае — 0.
Замечания
Эта функция обычно вызывается CWinApp::InitInstance при запуске приложения.
COleObjectFactory::Revoke
Отменяет регистрацию фабрики объектов в библиотеках DLL системы OLE.
void Revoke();
Замечания
Платформа автоматически вызывает эту функцию до завершения работы приложения. При необходимости вызовите его из переопределения CWinApp::ExitInstance.
COleObjectFactory::RevokeAll
Отменяет все регистрации фабрик объектов приложения с помощью библиотек DLL системы OLE.
static void PASCAL RevokeAll();
Замечания
Платформа автоматически вызывает эту функцию до завершения работы приложения. При необходимости вызовите его из переопределения CWinApp::ExitInstance.
COleObjectFactory::UnregisterAll
Отменяет регистрацию всех фабрик объектов приложения.
static BOOL PASCAL UnregisterAll();
Возвращаемое значение
Значение TRUE, если успешно; в противном случае — FALSE.
COleObjectFactory::UpdateRegistry
Регистрирует все фабрики объектов приложения с помощью системного реестра OLE.
void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);
Параметры
lpszProgID
Указатель на строку, содержащую удобочитаемый пользователем идентификатор программы, например Excel.Document.5.
bRegister
Определяет, должна ли быть зарегистрирована фабрика объектов класса элемента управления.
Замечания
Краткие обсуждения двух форм для этой функции:
UpdateRegistry(
lpszProgID
) регистрирует эту фабрику объектов в системном реестре OLE. Эта функция обычно вызывается CWinApp::InitInstance при запуске приложения.UpdateRegistry(
bRegister
) Эта форма функции переопределяется. Если bRegister имеет значение TRUE, эта функция регистрирует класс управления в системный реестр. В противном случае он отменяет регистрацию класса.Если вы используете MFC ActiveX ControlWizard для создания проекта, ControlWizard предоставляет переопределение для этой чистой виртуальной функции.
COleObjectFactory::UpdateRegistryAll
Регистрирует все фабрики объектов приложения с помощью системного реестра OLE.
static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);
Параметры
bRegister
Определяет, должна ли быть зарегистрирована фабрика объектов класса элемента управления.
Возвращаемое значение
Ненулевое значение, если фабрики успешно обновлены; в противном случае — 0.
Замечания
Эта функция обычно вызывается CWinApp::InitInstance при запуске приложения.
COleObjectFactory::VerifyLicenseKey
Проверяет, лицензирован ли контейнер для использования элемента управления OLE.
virtual BOOL VerifyLicenseKey(BSTR bstrKey);
Параметры
bstrKey
BSTR, сохраняющий версию строки лицензии контейнера.
Возвращаемое значение
Ненулевое значение, если лицензия во время выполнения действительна; в противном случае — 0.
Замечания
Версия по умолчанию вызывает GetLicenseKey , чтобы получить копию строки лицензии элемента управления и сравнить ее со строкой в bstrKey. Если две строки совпадают, функция возвращает ненулевое значение; в противном случае возвращается значение 0.
Эту функцию можно переопределить, чтобы обеспечить настраиваемую проверку лицензии.
Функция VerifyUserLicense проверяет лицензию времени разработки.
COleObjectFactory::VerifyUserLicense
Проверяет лицензию на время разработки для элемента управления OLE.
virtual BOOL VerifyUserLicense();
Возвращаемое значение
Ненулевое значение, если лицензия времени разработки действительна; в противном случае — 0.
См. также
Класс CCmdTarget
Диаграмма иерархии
Класс COleTemplateServer