Функция SetConvertStg (ole2.h)

Функция SetConvertStg задает бит преобразования в объекте хранилища, чтобы указать, что объект должен быть преобразован в новый класс при его открытии. Параметр можно получить с помощью вызова функции GetConvertStg .

Синтаксис

HRESULT SetConvertStg(
  LPSTORAGE pStg,
  BOOL      fConvert
);

Параметры

pStg

Указатель IStorage на объект хранилища, в котором необходимо задать бит преобразования.

fConvert

Если задано значение TRUE, то задает бит преобразования для объекта , чтобы указать, что объект должен быть преобразован при открытии. При значении FALSE очищает бит преобразования.

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

Сведения о возможных ошибках доступа к хранилищу и потоку см. в методах IStorage::CreateStream, IStorage::OpenStream, ISequentialStream::Read и ISequentialStream::Write .

Комментарии

Функция SetConvertStg определяет состояние бита преобразования в автономном объекте. Он вызывается как приложением-контейнером, так и сервером в процессе преобразования объекта из одного класса в другой. Когда пользователь указывает в диалоговом окне Преобразовать в (которое контейнер создает с вызовом функции OleUIConvert ), что объект должен быть преобразован, контейнер должен выполнить следующие действия:

  1. Выгрузите объект , если он загружен в данный момент.
  2. Вызовите WriteClassStg , чтобы записать новый ИДЕНТИФИКАТОР CLSID в хранилище объектов.
  3. Вызовите WriteFmtUserTypeStg, чтобы записать новое имя типа пользователя и существующий формат main в хранилище.
  4. Вызовите Метод SetConvertStg с параметром fConvert , для которого задано значение TRUE , чтобы указать, что объект был помечен для преобразования в новый класс при следующей загрузке.
  5. Непосредственно перед загрузкой объекта вызовите OleDoAutoConvert , чтобы обработать все необходимые преобразования объектов, если только вы не вызовете OleLoad, который вызывает его внутренним образом.
Если объект инициализируется из объекта хранилища и сервер является назначением операции преобразования в , сервер объектов должен выполнить следующие действия:
  1. Вызовите функцию GetConvertStg , чтобы получить значение бита преобразования.
  2. Если бит задан, сервер считывает данные из объекта в соответствии с форматом, связанным с новым ИДЕНТИФИКАТОРом CLSID.
  3. Когда объекту предлагается сохранить себя, объект должен вызвать функцию WriteFmtUserTypeStg , используя обычный собственный формат и пользовательский тип объекта.
  4. Затем объект должен вызвать SetConvertStg с параметром fConvert , установленным в значение FALSE , чтобы сбросить бит преобразования объекта.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ole2.h
Библиотека Ole32.lib
DLL Ole32.dll

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

GetConvertStg