
CAWT: Windows COM Automation with Tcl - blacksqr
http://www.cawt.tcl3d.org/
======
ethbro
Is this using one of the MS automation APIs under the hood?

[https://msdn.microsoft.com/en-
us/library/windows/desktop/ff4...](https://msdn.microsoft.com/en-
us/library/windows/desktop/ff486375\(v=vs.85\).aspx)

Because it's a lot easier (and more useful) to write a generic UI automation
toolkit with some higher level functions for heavily-used apps than boil the
ocean by reimplementing everything from individual program APIs.

~~~
TimJYoung
They're describing a different kind of automation. COM APIs were commonly used
for hosting an application and automating functionality that normally would
require UI interaction. You can do this with the MS Office applications, among
others.

~~~
sjmulder
Embedding Internet Explorer through COM also seems the only way to embed a
browser in Win32 without bundling an entire browser with your app. I
implemented that in plain C for giggles, it was enlightening but also very
cumbersome.

~~~
TimJYoung
Yes, it's somewhat tricky to get entirely right, which is why
Delphi/Lazarus/.NET have wrapper components that take all of the pain out of
doing it. It's just a matter of dropping a control on a form and setting a few
properties.

We use an embedded IE instance for running web applications in our web
development IDE, Elevate Web Builder, but we're looking to move to embedded
Chrome if MS doesn't provide an option for embedding Edge in non-UWP desktop
applications soon.

~~~
sjmulder
Yeah, having the OLE site and window provided by the framework helps a ton.
Once you have those putting in the browser is a breeze. (I E_NOTIMPL-ed all
the fancy menu merging and window border stuff but you get that with Delphi
and .NET)

I still haven't implemented the IDispatch-based event handling yet. It's the
only remaining thing but it's daunting. There's hardly any low level
documentation.

Elevate Web Builder looks interesting. We need something like classic Visual
Basic but for the web because building simple web applications is needlessly
complicated. I'll give it a try!

edit: not filling in that form though, sorry!

~~~
TimJYoung
Re: Yeah, I just had to deal with the IDispatch event handling for status
events with the XMLHTTPRequest API in Windows, and it required a crazy amount
of research before I got it all right.

Re: trial registration - we're going back to simple trial downloads soon,
especially due to the GDPR. The original reason for the registration is that
we had some issues with abuse, and the registration helped that quite a bit.
In the meantime, you can just skip most of it with "N/A", if you're still
interested. You can also just run some demo applications here:

[https://www.elevatesoft.com/products?category=ewb&type=web](https://www.elevatesoft.com/products?category=ewb&type=web)

(at the bottom of the page)

