This will retrieve all the custom info per the original order --
(defun foo ( )
( (lambda ( summaryinfo / i result name value )
(repeat (setq i (vla-numcustominfo summaryinfo))
(setq result
(cons
(progn
(vla-getcustombyindex
summaryinfo
(setq i (1- i))
'name
'value
)
(cons name value)
)
result
)
)
)
)
(vla-get-summaryinfo
(vla-get-activedocument
(vlax-get-acad-object)
)
)
)
)
Example:
(foo)
(
("myname1" . "myvalue1")
("myname2" . "myvalue2")
("myname3" . "myvalue3")
)
Note that due to Autodesk's poor implementation of this if you place information in said object, you will not be able to read it back until the drawing is saved, closed and re-opened. Thank Autodesk.