If your interest is in writing ActiveX Controls, but you would like to try one of the more efficient methods, such as BaseCtl, then it might be worth getting both. Both books were a good read and I am happy to recommend either.
These books are both about writing code for OLE/ActiveX applications. Although they have a lot of common ground, there is a distinct difference in emphasis. ActiveX Programming with Visual C++ 5 is a more general book, which covers the whole gamut of ActiveX applications. Writing OLE Controls is more specific; restricting itself entirely to writing OLE Controls (or OCXs or ActiveX Controls, depending on your preference for terminology).
Both books start off with overviews and explanations of the Component Object Model (COM) technology that underlies all of these applications. Although Writing OLE Controls has the more limited scope, it provides a considerably better explanation of the whole subject of COM, OLE and ActiveX. There are four substantial chapters of general introduction on COM, COM Interfaces and OLE before it gets down to detail on how to write OLE Controls. Although there are three possible methods for writing OLE controls, this book only covers the most common - using MFC. It does so in minute detail and includes quite a lot of well- commented code. I sometimes have reservations about books that include reams of code listings, but in this case I think they are justified. In any case, they don't overwhelm the book; there is still a lot of text to get through.
The other book, Active X Programming, has a less comprehensive introduction to COM technology, although quite a bit more background creeps in as you continue through the book. It also covers a much wider field than Writing OLE Controls. It deals with ActiveX Automation Servers and ActiveX Controls and COM Objects. In each case, it covers all three different ways of programming them; using MFC, ATL and BaseCtl. MFC is the easier method, but ATL and BaseCtl can give smaller, faster executables.
Covering so much in one book inevitably means that things aren't explained to the same level of detail as in Writing OLE Controls, but there is still a pretty impressive level of detail.
As for which book is suitable for you. If your interest is specifically in writing OLE/ActiveX controls and you are happy to do it in MFC, then there isn't any doubt that you should go for Writing OLE Controls. If you are interested in writing an ActiveX Automation server or COM Object, then you will have to go for Active X Programming. I suspect, however, if you buy Active X Programming, you might also want something with a more detailed overview of COM technology.
If your interest is in writing ActiveX Controls, but you would like to try one of the more efficient methods, such as BaseCtl, then it might be worth getting both. Both books were a good read and I am happy to recommend either.