tools

July 29, 2001 tools

VBLite

July 29, 2001

Dharma Shukla and I wrote “Extending ATL3.0 Containment to Help You Write Real-World Containers” in the 12/99 issue of MSJ detailing how to add much-needed features to ATL’s support for control containment. Dharma wrote the sample code that accompanies the piece and has already made improvements to the code based on feedback. He’s maintaining the history and bits.

July 28, 2001 tools

Attila

Attila stands for “ATL for Applications.” Attila is a set of extensions built on top of ATL to provide application-level services in the same flavor as MFC. Towards that end, Attila uses a lot of the same notions as ATL, e.g. heavy use of templates, static binding and reliance on the compiler and the linker doing their job.  Also, in the flavor of ATL, Attila is under-documented and requires a lot of user investment to make use of it. However, once you do, we think you’ll find the flexibility and efficiency worth it. If you don’t, you haven’t lost much, ’cuz Attila is free. Enjoy.

July 27, 2001 tools

Simple Object II ATL ObjectWizard Extension

July 27, 2001

The Simple Object II ATL ObjectWizard Extension (whew — I’ve got to come up with a shorter name…) provides the following features:

  • Support for [oleautomation] interfaces.
  • Support for the Neutral-threaded apartment.
  • Support for IDispatch-based interfaces other than duals.
  • Better support for disabling features that do not make sense together, e.g. FTM + ThreadingModel=Apartment.
  • Updated pop-up help.

Originally, SimpleObject2 was built to do away with the one benefit of IDispatchImpl over IDelegatingDispImpl — wizard support. As do most things developed under the greedy eye of my colleagues, it grew to support a few more features than that. It’s available for download. Enjoy. 

July 26, 2001 tools

CComVector: A SAFEARRAY Wrapper

July 26, 2001

I got tired of not having a smart type for SAFEARRAYs, so I built one. It’s limited to one dimension (does anyone use multi-dimentional SAFEARRAYs?) and provides one class for the SAFEARRAY and another for the data itself (the lock is a resource, too), but the usage is pretty nifty. See comvector.h for the what and the how.

Also, Ron Jacobs sent me an ATL port of COleSafeArray called CComSafeArray that I’ve made available here.

July 25, 2001 tools

CComDate

July 25, 2001

This zip provides two classes for use with dates and times under Windows:

  • CComDATE: Wraps the COM DATE type, providing conversions from VARIANT, DATE, ANSI string, UNICODE string, time_t, SYSTEMTIME, FILETIME, DOS time and DBTIMESTAMP data types.
  • CComSpan: Represents the result of subtracting one CComDATE from another. Useful for time/date math.
July 24, 2001 tools

Exposing Multiple IDispatch Interfaces

If you’d like to know about how to expose multiple IDispatch implementations from a single COM object, check out this extensive treatment of that very topic.

July 23, 2001 tools

MDI Applications in ATL

July 23, 2001

At atlmdi.zip, please find Charles Petzold’s famous raw Win32 MDI application, MDIDemo, ported to ATL. See atlmdi.h for a set of base classes for building MDI applications in ATL and mdidemo.cpp for an example of their use.

July 22, 2001 tools

Fixing the External Dispatch in ATL + IE5

July 22, 2001

Are you getting this: “Error: object doesn’t support this property or method” when you try to call a method on your ATL HTML Control exposed external dispatch (accessed via window.external in the HTML of the control)? Did it used to work with IE4 and now it doesn’t with IE5? That’s because the ATL boys played fast and loose with the identity laws of COM and, while it took the COM police a while to catch up with them, catch up with them they did.

Download WrapperDispatch.h for an explanation of the problem and my solution to it.


← Newer Entries Older Entries →