背景
VB 创建了一个旧的 ActiveX 控件。我将此 ActiveX 控件添加到我的 Excel 工作簿并设置了一些属性。这些属性是在保存图书时保存的。具体来说,它们是在 VB 代码中使用 PropertyBag 保存在 UserControl_WriteProperties 函数中的。所以这些属性一直保留在工作簿中。
我的任务
我必须使用 C++ 创建一个新的 ActiveX 控件以向后兼容旧控件。我需要在我的旧 Excel 工作簿中的 ActiveX 控件中保留所有信息。因此,我将 IPersistPropertyBag 实现到我的 ActiveX 控件。
我的期望是,当我打开旧 Excel 工作簿时,必须通过 PropertyBag 正确检索所有信息。
问题
我发现我的 Excel 工作簿中保留的信息是 Stream 格式的。我可以将 IPersistStreamInit 实现到我的新 ActiveX 控件,但我不理解我的 Excel 工作簿中保留的 Stream 中的格式。因此,我无法检索保留在我的 Excel 工作簿中的信息。
我想知道为什么信息以流格式保存,即使它们是通过 VB 代码中的 Propertybag 保存的。
问题
在这种情况下,有没有办法让所有信息都保存在 ActiveX 控件中?我已经找了两天了,但我找不到方法。