I don't see a way with just ActiveX, but you can get almost the whole way there with ActiveX.
Get the extension dictionary of the object.
Then you need to get a dictionary from the extension dictionary called: "AcDbContextDataManager"
Then from there you get a dictionary called: "ACDB_ANNOTATIONSCALES"
And that holds the annotation scales, but I don't see how with ActiveX, but you can see it with Lisp and Dxf codes.
ActiveX dump
; IAcadObject: The standard interface for a basic AutoCAD object
; Property values:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00d73d3c>
; Document (RO) = #<VLA-OBJECT IAcadDocument 01e06e20>
; Handle (RO) = "157"
; HasExtensionDictionary (RO) = 0
; ObjectID (RO) = 2130658360
; ObjectName (RO) = "AcDbBlkRefObjectContextData"
; OwnerID (RO) = 2130658352
; Methods supported:
; Delete ()
; GetExtensionDictionary ()
; GetXData (3)
; SetXData (2)
T
Lisp dump
(-1 . <Entity name: 7eff4438>)
(0 . "ACDB_BLKREFOBJECTCONTEXTDATA_CLASS")
(5 . "157")
(102 . "{ACAD_REACTORS")
(330 . <Entity name: 7eff4430>)
(102 . "}")
(330 . <Entity name: 7eff4430>)
(100 . "AcDbObjectContextData")
(70 . 3)
(290 . 1)
(100 . "AcDbAnnotScaleObjectContextData")
(340 . <Entity name: 7eff4038>)
(50 . 0.0)
(10 38.5594 27.4078 0.0)
(41 . 1.0)
(42 . 1.0)
(43 . 1.0)
Where code 340 tells you what the scale is
(-1 . <Entity name: 7eff4038>)
(0 . "SCALE")
(5 . "B7")
(102 . "{ACAD_REACTORS")
(330 . <Entity name: 7eff4030>)
(102 . "}")
(330 . <Entity name: 7eff4030>)
(100 . "AcDbScale")
(70 . 0)
(300 . "1:1")
(140 . 1.0)
(141 . 1.0)
(290 . 1)
Hope that helps.