Where can I find information about OLE Objects?

Hi,

I have problems with understanding OLE Objects in Doors. So, my question is, where can I find extended information about OLE Objects in Doors referring to Excel?

The DXL reference excludes this topic in large parts.


tobi_mehrl - Wed Aug 12 03:33:18 EDT 2015

Re: Where can I find information about OLE Objects?
Mathias Mamsch - Wed Aug 12 04:45:14 EDT 2015

Well a general understanding about OLE or its successor COM is generally helpful, when dealing with OLE objects in DOORS. You can start on Wikipedia but this is certainly not the best introduction to COM. But there is only a few things you need to know.

- You will need to know what a COM Server is

- You will need to know that the DXL ole... perms act acts as a COM client (but can also be accessed as a COM server from the outside --> DOORS Automation interface)

- You will need to learn the difference between "Properties" and "Methods" in COM which you can access using oleGet (Properties) and oleMethod (Methods) in DOORS.

- You might want to know about the Running Object Table (ROT) where all COM Servers register and the difference between oleGetAutoObject (Get access to a running COM Server) and oleCreateAutoObject (Create a new COM Server).

- You might want to know about reference Handling in COM and that COM servers keep running as long as there still is a reference to it (another reason to close every OleAutoObj handle).

I guess that is it. There are a couple of restrictions in DOORs, e.g. that you cannot pass an array as a parameter to a COM method although COM would support that, DXL doesnt.

Now when you know these couple of facts then you need to get a good documentation about the Automation Objects you are dealing with. In this case (Excel) you would need to go to MSDN and learn about the methods of the Excel.Application: https://msdn.microsoft.com/en-us/library/wss56bz7.aspx

You need to know whether what you are calling is a property or a method (note that properties can also have arguments). And from there it largely depends of the application you are automatizing.

Hope that helps, regards, Mathias