If you use vl,
: (setq obj (vlax-ename->vla-object (car (entsel "pick object"))))
pick object#<VLA-OBJECT IAcadMLine 000000005841DB50>
: (setq co-ords (vlax-get Obj 'coordinates))
(104.0 88.0 0.0 440.0 180.0 0.0 520.0 98.0 0.0)
(setq name (vla-get-StyleName obj))
"STANDARD"
I did something with mlines need to find again the other variable is the offsets from the main line/s then say you can get the 4 corner points. I think its in the mlinestyle for offsets.
Found a good example how to put it into practice
https://www.afralisp.net/autolisp/tutorials/dictionaries-and-xrecords.php
(setq objdict (namedobjdict))
(setq mldict (dictsearch objdict "ACAD_MLINESTYLE"))
(setq mlineStd (dictsearch (cdr (assoc -1 mlDict)) "Standard")) ; replace mline style name
(setq offs (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 49)) mlinestd)))
This is a two segment mline with + - offsets 3 lines. The offs is a list of the offset values of the mline. (-20.0 0.0 20.0)
Unfortunately you need to work out the offset line points if say you want to do a cap, the cap is a Mline style option, so you could create a new mline. with caps then erase old one. I don't believe you can change the style maybe .net ?