Поделиться через


Функция 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, а также следующие значения.

Код возврата Описание
S_OK
Объект успешно помечен.
REGDB_E_CLASSNOTREG
CLSID не зарегистрирован в реестре должным образом.
REGDB_E_READREGDB
Ошибка при чтении из реестра.
REGDB_E_WRITEREGDB
Ошибка записи в реестр.
REGDB_E_KEYMISSING
Не удается прочитать раздел из реестра.

Комментарии

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

См. также раздел

AutoConvertTo

OleDoAutoConvert

OleGetAutoConvert