Background
There was an old ActiveX control created by VB. I added this ActiveX control to my Excel workbook and set some properties. These properties were saved when the book was saved. Specifically, they were saved in UserControl_WriteProperties function using PropertyBag in VB code. So these properties persisted in the workbook until now.
My Task
I have to create a new ActiveX control using C++ to be backward compatible with the old one. I need ALL information persisted in the ActiveX control which is in my old Excel workbook. So, I implement IPersistPropertyBag to my ActiveX control.
My expectation is, when I open my old Excel workbook, all information must be retrieved correctly via PropertyBag.
Problem
I've found that the information persisted in my Excel workbook is in Stream format. I can implement IPersistStreamInit to my new ActiveX control but I don't understand the format in the Stream persisted in my Excel workbook. So, I can't retrieve the information persisted in my Excel workbook.
I wonder why the information was saved in Stream format even though they were saved via Propertybag in VB code.
Question
Is there a way to get all information persisted in the ActiveX control in this scenario? I've been finding it for two days but I can't find a way.