I am trying to figure out how you can read the dictionary information on the ACAD_DATALINK objects using vla only commands. Starting with autolisp commands, I can do
Returns:
((-1 . <Entity name: 15ebbc13920>) (0 . "DICTIONARY") (5 . "4CA") (102 . "{ACAD_REACTORS") (330 . <Entity name: 15ebbc038c0>) (102 . "}") (330 . <Entity name: 15ebbc038c0>) (100 . "AcDbDictionary") (280 . 1) (281 . 1) (3 . "Excel Data Link 1") (360 . <Entity name: 15ebbc13930>) (3 . "Excel Data Link 2") (360 . <Entity name: 15ebbc13df0>))
Returns:
((-1 . <Entity name: 15ebbc13930>) (0 . "DATALINK") (5 . "4CB") (102 . "{ACAD_XDICTIONARY") (360 . <Entity name: 15ebbc1bce0>) (102 . "}") (102 . "{ACAD_REACTORS") (330 . <Entity name: 15ebbc13920>) (102 . "}") (330 . <Entity name: 15ebbc13920>) (100 . "AcDbDataLink") (1 . "AcExcel") (300 . "") (301 . "Data Link\nExcel Data Link 1\nC:\\Users\\xxx\\Desktop\\Test\\TEST.xlsx\nLink details: Range: B10:I15") (302 . "C:\\Users\\xxx\\Desktop\\Test\\TEST.xlsx!Sheet1!B10:I15") (90 . 2) (91 . 67895297) (92 . 1) (170 . 2021) (171 . 5) (172 . 12) (173 . 23) (174 . 2) (175 . 14) (176 . 0) (177 . 3) (93 . 0) (304 . "") (94 . 2) (330 . <Entity name: 15ebbc0ea90>) (330 . <Entity name: 15ebbc13950>) (360 . <Entity name: 15ebbc13940>) (305 . "CUSTOMDATA") (1 . "DATAMAP_BEGIN") (90 . 3) (300 . "ACEXCEL_CONNECTION_STRING") (301 . "DATAMAP_VALUE") (93 . 2) (90 . 4) (1 . "C:\\Users\\xxx\\Desktop\\Test\\TEST.xlsx!Sheet1!B10:I15") (94 . 0) (300 . "") (302 . "") (304 . "ACVALUE_END") (300 . "ACEXCEL_SOURCEDATE") (301 . "DATAMAP_VALUE") (93 . 2) (90 . 8) (92 . 16) (310 . "E507250003000F0010003B0004000C00") (94 . 0) (300 . "") (302 . "") (304 . "ACVALUE_END") (300 . "ACEXCEL_UPDATEOPTIONS") (301 . "DATAMAP_VALUE") (93 . 2) (90 . 1) (91 . 67895297) (94 . 0) (300 . "") (302 . "") (304 . "ACVALUE_END") (309 . "DATAMAP_END"))
I try to do the same with vla commands.
Returns:
; IAcadObject: The standard interface for a basic AutoCAD object
; Property values:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff77f7f51a8>
; Document (RO) = #<VLA-OBJECT IAcadDocument 0000015ea0437b88>
; Handle (RO) = "4CB"
; HasExtensionDictionary (RO) = -1
; ObjectID (RO) = 901
; ObjectName (RO) = "AcDbDataLink"
; OwnerID (RO) = 902
As you can see, the handles match "4CB" which tells me I am looking at the right object but I don't see any way of reading its information. I tried reading its XData using the GetXData method but it returned nothing. I noticed it as an extension dictionary but neither it nor the extension dictionary's extension dictionary had any information in either its collection or XData. I've ran around in circle for awhile but seem unable to figure out how to access its dictionary information. Searching on google has led me to believe it is not possible, which seems very strange.....
Here are the two dumps on the extension dictionaries. I did not include the searching of the XData as they returned nothing. The script for searching XData on objects did work fine on OLE objects though, so I think it was working properly.
; IAcadDictionary: A container object for storing and retrieving objects
; Property values:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff77f7f51a8>
; Count (RO) = 0
; Document (RO) = #<VLA-OBJECT IAcadDocument 0000015ea0437b88>
; Handle (RO) = "6EE"
; HasExtensionDictionary (RO) = 0
; Name = AutoCAD.Application: Not applicable
; ObjectID (RO) = 880
; ObjectName (RO) = "AcDbDictionary"
; OwnerID (RO) = 901
; IAcadDictionary: A container object for storing and retrieving objects
; Property values:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff77f7f51a8>
; Count (RO) = 0
; Document (RO) = #<VLA-OBJECT IAcadDocument 0000015ea0437b88>
; Handle (RO) = "6EF"
; HasExtensionDictionary (RO) = 0
; Name = AutoCAD.Application: Not applicable
; ObjectID (RO) = 900
; ObjectName (RO) = "AcDbDictionary"
; OwnerID (RO) = 885
; IAcadDictionary: A container object for storing and retrieving objects
; Property values:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff77f7f51a8>
; Count (RO) = 0
; Document (RO) = #<VLA-OBJECT IAcadDocument 0000015ea0437b88>
; Handle (RO) = "703"
; HasExtensionDictionary (RO) = 0
; Name = AutoCAD.Application: Not applicable
; ObjectID (RO) = 875
; ObjectName (RO) = "AcDbDictionary"
; OwnerID (RO) = 880
; IAcadDictionary: A container object for storing and retrieving objects
; Property values:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff77f7f51a8>
; Count (RO) = 0
; Document (RO) = #<VLA-OBJECT IAcadDocument 0000015ea0437b88>
; Handle (RO) = "704"
; HasExtensionDictionary (RO) = 0
; Name = AutoCAD.Application: Not applicable
; ObjectID (RO) = 874
; ObjectName (RO) = "AcDbDictionary"
; OwnerID (RO) = 900