Функция 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 ), что объект должен быть преобразован, контейнер должен выполнить следующие действия:
- Выгрузите объект , если он загружен в данный момент.
- Вызовите WriteClassStg , чтобы записать новый ИДЕНТИФИКАТОР CLSID в хранилище объектов.
- Вызовите WriteFmtUserTypeStg, чтобы записать новое имя типа пользователя и существующий формат main в хранилище.
- Вызовите Метод SetConvertStg с параметром fConvert , для которого задано значение TRUE , чтобы указать, что объект был помечен для преобразования в новый класс при следующей загрузке.
- Непосредственно перед загрузкой объекта вызовите OleDoAutoConvert , чтобы обработать все необходимые преобразования объектов, если только вы не вызовете OleLoad, который вызывает его внутренним образом.
- Вызовите функцию GetConvertStg , чтобы получить значение бита преобразования.
- Если бит задан, сервер считывает данные из объекта в соответствии с форматом, связанным с новым ИДЕНТИФИКАТОРом CLSID.
- Когда объекту предлагается сохранить себя, объект должен вызвать функцию WriteFmtUserTypeStg , используя обычный собственный формат и пользовательский тип объекта.
- Затем объект должен вызвать SetConvertStg с параметром fConvert , установленным в значение FALSE , чтобы сбросить бит преобразования объекта.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ole2.h |
Библиотека | Ole32.lib |
DLL | Ole32.dll |