Функция OleSetAutoConvert (ole2.h)
Задает ИДЕНТИФИКАТОР CLSID для автоматического преобразования в другой класс при загрузке объекта этого класса.
Синтаксис
HRESULT OleSetAutoConvert(
[in] REFCLSID clsidOld,
[in] REFCLSID clsidNew
);
Параметры
[in] clsidOld
CLSID преобразуемого класса объекта.
[in] clsidNew
ИДЕНТИФИКАТОР CLSID класса объекта, который должен заменить clsidOld. Этот новый идентификатор CLSID заменяет все существующие сведения об автоматическом преобразовании в реестре для clsidOld. Если это значение равно CLSID_NULL, все существующие сведения об автоматическом преобразовании для clsidOld удаляются из реестра.
Возвращаемое значение
Эта функция может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.
Код возврата | Описание |
---|---|
|
Объект успешно помечен. |
|
CLSID не зарегистрирован в реестре должным образом. |
|
Ошибка при чтении из реестра. |
|
Ошибка записи в реестр. |
|
Не удается прочитать раздел из реестра. |
Комментарии
OleSetAutoConvert переходит в системный реестр, находит подраздел AutoConvertTo под идентификатором CLSID, заданным clsidOld, и устанавливает для него значение clsidNew. Эта функция не проверяет, существует ли соответствующая запись реестра для clsidNew в настоящее время. Эти записи отображаются в реестре в виде подразделов ключа CLSID.
Преобразование объекта означает, что данные объекта постоянно связаны с новым идентификатором CLSID. Автоматическое преобразование обычно указывается в программе установки новой версии объектного приложения, поэтому объекты, созданные более старыми версиями, можно автоматически обновить до новой версии.
Например, может потребоваться преобразовать электронные таблицы, созданные с помощью более ранних версий приложения электронной таблицы, в новую версию. Объекты электронных таблиц из более ранних версий имеют идентификаторы CLSID, отличные от новой версии. Для каждой более ранней версии, которая требуется автоматически обновлять, в программе установки необходимо вызвать OleSetAutoConvert , указав ИДЕНТИФИКАТОР CLSID старой и новой версии. Затем каждый раз, когда пользователь загружает объект из предыдущей версии, он обновляется автоматически. Для поддержки автоматического преобразования объектов сервер, поддерживающий преобразование, должен быть подготовлен к ручному преобразованию объектов, имеющих формат более ранней версии сервера. Автоматическое преобразование зависит от этой внутренней поддержки преобразования вручную.
Прежде чем задать нужное значение AutoConvertTo , программы установки также должны вызвать OleSetAutoConvert , чтобы удалить все существующие преобразования для нового класса, указав новый класс в качестве параметра clsidOld и задав параметру clsidNew значение CLSID_NULL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ole2.h |
Библиотека | Ole32.lib |
DLL | Ole32.dll |