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 |
标头 | ole2.h |
Library | Ole32.lib |
DLL | Ole32.dll |