The Wayback Machine - https://web.archive.org/web/20100203105840/http://www.codeguru.com:80/cpp/com-tech/atl/

CodeGuru
Earthweb Search
Login Forums Wireless Jars Gamelan Developer.com
CodeGuru Navigation
RSS Feeds

RSSAll

RSSVC++/C++

RSS.NET/C#

RSSVB

See more EarthWeb Network feeds

follow us on Twitter

Member Sign In
User ID:
Password:
Remember Me:
Forgot Password?
Not a member?
Click here for more information and to register.

jobs.internet.com

internet.commerce
Partners & Affiliates
















Home >> Visual C++ / C++ >> COM-based Technologies >> ATL & WTL Programming


ATL & WTL Programming

ATL



[Updated] Use STA COM Objects Asynchronously
Rating:
Wong Shao Voon - 03/17/2009
Learn how to use STA COM objects asynchronously without blocking your main thread.

[Updated] Customize an IE Context Menu to Add CodeGuru Favorites
Rating:
kirants - 07/15/2008
Learn how to customize the internet explorer context menu to add Codeguru Favorites items.

Web Site Blocker that Uses Browser Helper Objects (BHO)
Rating:
milindsm - 03/28/2006
Learn how a BHO (Browser Helper Object) could be used to block a particular Web site.

Remote Desktop View Lite
Rating:
Andy Bantly - 10/31/2005
Learn about a native C++, MFC, ATL/COM system to remote view a desktop.

ATL Version of Analog Meter Class
Rating: none
Gerry Murphy - 11/21/2003
Use this ATL version of "Analog Meter Class."

Implementing XMLHTTPRequest onReadyStateChange in C++
Rating: none
Dave Levinson - 08/04/2003
How to implement the IXMLHTTPRequest onreadstatechange property in C++. (Supports the asynchronous version of the send() operation of the XMLHTTPRequest object.) Developed in Visual C++ .NET, but usable elsewhere.

Creating a blobclass for ATL
Rating:
Frans Nagel - 07/18/2003
A class to make safearrays easy. The parray member of CComVariant is used to store binary data.

Implementing a DropTarget in ATL
Rating: none
Frans Nagel - 01/31/2003
Making a control a drop-target in ATL is not something you do very easily. (A demo project has been provided.)

COM Connection Points
Rating:
Alex C. Punnen - 01/13/2003
Get a step-by-step account on how to build a connectable object and a client that uses it.

ATL PersistXML Implementation
Rating: none
Vitaly Katasonov - 11/07/2002
The easiest way to add XML persistence to an existing IDispatch-based ATL COM object.

How to Use Crypto API in Your ASP Projects
Rating: none
Adrian Bacaianu - 10/02/2002
How to make an ATL project that provides two cryptographic functions, how to use this component in an ASP project, and how to register the component in MTS. You also can check out a GUI client console to directly test the cryptographic functions.

Adding ATL to MFC Project
Rating:
Daniel Ilkanayev - 10/01/2002
Adding ATL to MFC Project

Creating a Text-to-Voice Convention
Rating:
Jagadish. G - 09/12/2002
This article explains the details needed to implement voice interfaces and converts text to voice by creating clients using MFC, and here a dialog is taken and explained how to make use of components given by Microsoft.

Creating a Windows NT Service by Using ATL
Rating:
Chandrasekhar Vuppalapati - 08/22/2002
Create a Windows NT Mail slot repository server service that is a placeholder for all the mail slot client messages sent by mail slot repository clients. Customize the Windows application log and create message DLLs.

Handling the Structured Storage of SAFEARRAYs
Rating: none
Andy Smith - 07/31/2002
An ATL-derived class to handle the structured storage of SAFEARRAYs (CComVariantExAn).

Passing C++ Object in ATL DLL
Rating: none
Uttam Kumar - 06/27/2002
This article explains how to pass a C++ object across a COM server using a trick of MFC and ATL.

Inter Thread Communication in Apartment Threading Model of ATL Component
Rating:
Pardeep Kadian - 04/29/2002
Inter Thread Communication in Apartment Threading Model of ATL Component

Replaceable Parameters for ATL Registrar
Rating:
Tony Juricic - 11/26/2001
Demonstrates one way to enhance ATL Registrar based on MSDN documentation. It also demonstrates how to make Internet Explorer Extension COM object that uses this enhancement to ATL Registrar.

ATL Coding Helpers
Rating: none
Andrew Nosenko - 04/12/2001
ATL Coding Helpers

An ATL project to run PING and TRACERT
Rating: none
Fred Forester - 04/12/2001
An ATL project to run PING and TRACERT

ATL COM and ADO
Rating: none
Amit Dey - 01/29/2001
Nice tutorial on using ADO from an ATL component

Converting the CONNECT Sample to a Local Server
Rating: none
Paul Shaffer - 08/18/2000
Take the standard CONNECT sample and makes it work across process boundaries

Using ATL to Automate an MFC Application
Rating: none
Bart De Lathouwer - 08/12/2000
Article that illustrates MS Office-like automation with remotely creatable documents.

Changing the Color of Edit and Combobox Controls in ATL
Rating: none
Anita Rodriquez - 08/04/2000
Simple step-by-step instructions on changing control colors when using ATL

IPC Using Connection Points and EventSinks
Rating:
Yaniv Karta - 07/24/2000
IPC Using Connection Points and EventSinks

ATL: Firing Events from Worker Threads
Rating:
Michael Lindig - 07/16/2000
Very cool solution to common problem of firing events from the worker thread of an ATL component

Using ATL to Automate a MFC Application
Rating:
Nick Hodapp - 05/16/2000
Excellent article that illustrates how to create hybrid MFC/ATL COM objects

Converting a Win32 Application to ATL
Rating: none
Chandra Shekar - 05/09/2000
Easy-to-follow steps that enable you to quickly convert your legacy Win32 applications to ATL

ATL Date Routines
Rating: none
Paul E. Bible - 05/08/2000
Great set of Date routines that does not require MFC

ATL Masked Edit Control
Rating: none
Fred Forester - 04/28/2000
Implements popular CodeGuru Masked Edit control in ATL

Getting ComboBox Strings to Appear with an ATL Project
Rating: none
Joe Schmitt - 04/27/2000
Shows how to overcome Microsoft-acknowledged bug in ATL where ComboBox strings don't appear at runtime

Snap-In Interface Technology + Embedded MFC GUI into ATL Server DLL
Rating: none
Steve Bryndin - 02/24/2000
Snap-In Interface Technology + Embedded MFC GUI into ATL Server DLL

Scrolling Support for ATL Composite Controls
Rating:
Brad Barber - 02/11/2000
Scrolling Support for ATL Composite Controls

Add MFC's CString class to ATL with No MFC Dependencies
Rating: none
K. Shane Triem - 12/27/1999
Add MFC's CString class to ATL with No MFC Dependencies

An Appwizard to Generate Non-COM Projects that can use ATL Object Wizard
Rating: none
Rama Krishna - 08/25/1999
An Appwizard to Generate Non-COM Projects that can use ATL Object Wizard

Idea to Internet: Exposing an STL Vector via COM Interface Using ATL
Rating:
Essam Ahmed - 07/18/1999
Idea to Internet: Exposing an STL Vector via COM Interface Using ATL

Multiple Dispatch Interfaces in ATL
Rating: none
Victor Pavlov - 06/25/1999
Multiple Dispatch Interfaces in ATL

Template class that implements "Property Browser" - like property page for ATL ActiveX Controls
Rating: none
Vladimir Scherbakov - 06/25/1999
Template class that implements "Property Browser" - like property page for ATL ActiveX Controls

ATL Tree Control and OLE DB
Rating: none
Chieu Luu - 05/01/1999
ATL Tree Control and OLE DB

Aggregating an ATL dual interface object to simplify writing dual interface controls in MFC
Rating: none
Shahar Prish - 04/27/1999
Aggregating an ATL dual interface object to simplify writing dual interface controls in MFC

Multithreaded ActiveX Controls Using ATL
Rating: none
Kristian Lippert - 04/27/1999
Multithreaded ActiveX Controls Using ATL

Superclassed Ownerdrawn Standard Windows Control Using ATL
Rating: none
Naveen Kohli - 04/27/1999
Superclassed Ownerdrawn Standard Windows Control Using ATL

A Splitter Window Control
Rating: none
Andrew Garbuzov - 03/25/1999
A Splitter Window Control

Using Containment In ATL - A Complete Application
Rating: none
Navin Kohli - 03/14/1999
Using Containment In ATL - A Complete Application

An ATL Project to View Type Libraries
Rating: none
Mihai Filimon - 12/02/1998
An ATL Project to View Type Libraries

Creating a Template Interface in IDL with its Template Implementation in C++
Rating: none
Normand Roy - 12/01/1998
Creating a Template Interface in IDL with its Template Implementation in C++

How does _ATL_DEBUG_INTERFACES work?
Rating: none
Girish Bharadwaj - 11/29/1998
How does _ATL_DEBUG_INTERFACES work?

CBStr: a BSTR wrapper-class with string manipulation members
Rating: none
Gary Olliffe - 10/20/1998
Updated article tested with VC 6.0, added a new function LoadString and made unicode fixes

COlePropertyPage in ATL server
Rating: none
James Hebben - 09/29/1998
COlePropertyPage in ATL server

Displaying System Interfaces in ClassView
Rating: none
James Hebben - 09/29/1998
Displaying System Interfaces in ClassView


ATL & WTL Programming



COM Category ComboBox
Rating: none
Laurent Kempi - 11/07/2001
Create a COM object according to user choice at runtime.

ATL-Implemented Sink Interface
Rating:
Tao Chen - 04/13/2001
Illustrates a different means of implementing a sink interface such that window handles can be passed to an ATL server

ATL DISPID Encoding
Rating:
Andrew Whitechapel - 04/12/2001
Some COM clients, including scripting clients, can only access the default (IDispatch) interface on an object. If your object wants to expose multiple interfaces to such clients, one solution is DISPID Encoding. In this week's ATL article, Andrew illustrates one technique for accomplishing this.

Dispinterface vs. Events and Runtime Sinks
Rating: none
Andrew Whitechapel - 04/12/2001
Some COM clients - including scripting clients - can only access the default (dispatch) interface on an object. If your object wants to expose multiple interfaces to such clients, one solution is DISPID Encoding. This article shows how to do it with the ATL.

Containment and Aggregation
Rating:
Andrew Whitechapel - 04/12/2001
Andrew illustrates the underlying mechanics of aggregation vs. containment in ATL, why you'd want to choose one technique over the other, and how each is supported by the ATL through macros and classes.

Using the ATL Windowing Classes
Rating: none
Andrew Whitechapel - 04/12/2001
Think ATL is only for components? In Andrew's first installment of his new ATL/WTL column, he presents a complete tutorial (including two demos) on using the ATL windowing classes to write full-fledged Windows applications.

GUI MFC Framework inside ATL DLL server
Rating: none
Steve Bryndin - 01/14/2000
GUI MFC Framework inside ATL DLL server


Active Scripting



Microsoft Script Control - What is it and who should use it
Rating: none
Leonid Belkind - 02/05/1999
Microsoft Script Control - What is it and who should use it

Implementing Active Script Site with ATL
Rating: none
Leonid Belkind - 02/05/1999
Implementing Active Script Site with ATL


ActiveX Controls



Tab Controls And Splitters—Mixing Them Together
Rating: none
Igor Katrayev - 01/08/2004
Create a WTL class using VC++ .NET 2003 that will simplify building SDI applications by allowing you to combine tab controls with splitters.

Implementing Shell Desk Band and Internet Explorer Bars
Rating:
Richard Fric - 06/12/2002
Discover how to implement an Internet Explorer Bar (a child window within the main Explorer window) and a Desk Band (a dockable window on the desktop/taskbar). Both can be used to display information or interact with the user.

Dynamic resizing of ActiveX controls hosted by ATL Composite Control
Rating: none
Denis Beckman - 02/18/1999
Dynamic resizing of ActiveX controls hosted by ATL Composite Control


Database



Visual FoxPro: Its Day Has Finally Come
Bradley L. Jones - 03/14/2007
If you thought the end of Visual FoxPro had already happened, then you are wrong. Its end is now.

Auditing Oracle Data
Rating: none
Michael Klaene - 03/04/2004
Learn how to create an audit trail for application data on an Oracle database (Oracle 8 and up). It includes two scripts that can be used to quickly get started.


Debugging



Improving Application Quality with Windows Error Reporting
Rating:
Nick Wienholt - 10/19/2009
Leveraging Windows Error Reporting (WER) to use Microsoft's existing infrastructure for providing end users with patches and workarounds, a critical aspect of the application life-cycle management.

Better Visual C++ Debugging
Rating:
Nick Wienholt - 07/08/2008
Effective use of the Visual C++ debugger is one of the easiest ways to increase developer productivity. Program database (PDB) files are one of the key elements in effectively debugging an application, and it is easy to set up Visual Studio to use debug symbols for binary files produced by other developers, including those at Microsoft.

Windows Mobile Development with MFC
Rating: none
Nick Wienholt - 12/10/2007
Drill deeper into Mobile Development in C++ and go through the development and debugging of a Windows Mobile 6 application with a focus on MFC.

[Updated] [Debugging] - Symbols
Rating:
Darka - 07/18/2006
Learn how to set up and use the Microsoft Symbol Server to help you debug applications under Windows.

Tracing memory leaks with ATL
Rating: none
Christian Mueller-Planitz - 05/17/1999
Tracing memory leaks with ATL


External links



Andrew Nosenko's ATLAUX helper classes
01/17/1999
Andrew Nosenko's ATLAUX helper classes


General



Trace RPC Calls and Notify the COM+ Events to Your Program
Rating:
Pardeep Kadian - 05/05/2006
Learn about a simple way to understand and implement the COM+ Admin and Instrumentation interfaces.

.NET Remoting with Events in Visual C++
Rating:
Kate Gregory - 04/13/2004
Learn how to add a button to a server application (a WinForm app with a big Listen button) and have the handler for the click event raise a custom event.


Graphics Support



Using the ATL CImage Class
Rating:
Kate Gregory - 10/31/2002
In Kate's newest column, learn about the CImage class, which has been added to ATL and adds enhanced bitmap support. (.NET)


Misc.



Easy Multithreading in ATL Windows Applications
Rating:
Konstantin Go - 08/25/2006
Add one header file to your *.vcproj, insert a few lines of code into your class header, and you'll never again worry about the asynchronous routines in your ATL GUI application.

Secure C++: Checked Iterators for Safer STL Coding
Rating: none
Nick Wienholt - 02/03/2006
The security issues with Standard C++ aren't as severe as those of C and the CRT, but a few exploits are possible if you misuse STL and iterators.

[Updated] Interprocess Communication Using the Running Object Table (ROT)
Rating:
Raghupathy Srinivasan - 12/19/2005
Discover a simple technique to share data across multiple processes running on the same machine using the Running Object Table.

Reformatting Microsoft's Wizard/Template Generated Project Files
Rating: none
Trent Fryar - 05/08/2002
Configure the Wizard template header files.

Drop Bar - An Internet Explorer '& Windows Explorer Toolbar
Rating: none
Christian Oetterli - 04/22/2002
Drop Bar is an Internet Explorer Toolbar Band implemented using ATL. It allows drag and drop of files onto its user defined buttons. Scripted actions can then be performed with the files being dropped.

ATL Used for Connection Point and Toolbar Exposure
Rating:
Pardeep Kadian - 12/28/2001
ActiveX Control as well as container, exposing toolbar. Includes event mapping of toolbar buttons at client side.

Viewing the IE Document Object Model
Rating:
Tony Juricic - 12/13/2001
Using WTL treeview in ATL Browser Helper Object to view the IE Document Object Model.

Sizing Framework
Rating: none
Laurent Kempi - 11/07/2001
Framework to build re-sizeable graphical user interfaces.

Simple STL Collections in ATL
Rating: none
Peter Provost - 04/08/1999
Simple STL Collections in ATL

Asynchronous Pluggable Protocol Implementation with ATL
Rating:
Dave Stone - 12/13/1998
Asynchronous Pluggable Protocol Implementation with ATL


Performance



Enhance Your Dynamic Memory Allocation with an Undocumented MFC Class
Rating:
lano1106 - 02/14/2006
Learn to employ a small utility class that allows you to modify how objects for a given class are dynamically allocated.

QPerformanceTimer
Rating:
Sjaak Priester - 08/16/2005
"Profile" a block of C++ code with just one include file and two variable definitions.

ATL Tear-Off Interfaces
Rating:
Andrew Whitechapel - 04/12/2001
What exactly is a tear-off? Why you might want to use one, and how the ATL supports both regular and cached tear-off interfaces. Are they worth spending time on? In this article, Andrew teaches you everything you wanted to know about tear-off interfaces, but were afraid to ask.


Printing



Getting an (ATL) ActiveX Control to Print from Office Applications
Rating: none
Peter Mares - 12/06/2002
Getting an (ATL) ActiveX control to print from Office applications.


Tutorials



Framework Source Code Stepping
Rating: none
Nick Wienholt - 09/08/2008
Despite the best documentation, stepping into the actual source code of third-party libraries can be the fastest way to diagnose a difficult bug or determine the state that a component needs to be in before a certain operation can be completed. With a little set-up magic, developers can step into libraries quickly and easily.

A Complete Scriptable ActiveX Web Control Tutorial Using ATL
Rating:
Arif Zaman - 01/02/2008
Learn to use a scriptable ActiveX web control that uses ATL.

Microsoft Word Automation Class
Rating:
Val Golovlev - 12/06/2007
Discover a class to start Microsoft Word and access Word functions from a C++ application by using OLE and IDispatch interfaces. Two classes are provided: the Word automation class CWordAutomation and the wrapper class CEzWordAutomation.

[Updated] A Big Integer Package for Use in Visual Basic Written in Visual C++
Rating:
Jeffrey Walton - 11/29/2006
A 'How To' for creating a COM Big Integer Library that uses Visual C++ ATL Wizard and Wei Dai's Crypto++ Library.

Writing MS WORD Addins
Rating:
Amit Dey - 04/10/2003
Learn how to write an add-in for Microsoft Word 2000 using this detailed tutorial.

ATL Under the Hood, Part 5
Rating:
Zeeshan - 10/25/2002
Lots of people believe that ATL is used only for making COM components. In this tutorial, learn to create a fully fleshed Windows-based application using ATL.

An Introduction to C++ Templates
Rating: none
Kais Dukes - 06/20/2002
Take a look at C++ templates in this first of several articles digging into the topic.

ATL Under the Hood Part 4
Rating:
Zeeshan - 06/07/2002
A look at ATL and assembly language.

Why ATL Uses Template Classes
Rating:
Sathya Narayana Panduranga - 05/30/2002
This article discusses why ATL uses template classes. This is not a discussion of ATL features, but just the principle behind the Template library.

ATL Under the Hood Part 1
Rating:
Zeeshan - 04/03/2002
Tutorial that presents a discussion of the memory layout of an ATL program and more.

ATL Under the Hood Part 3
Rating:
Zeeshan - 03/29/2002
Template techniques used by ATL.

ATL Under the Hood Part 2
Rating:
Zeeshan - 02/15/2002
Interesting stuff behind virtual functions.

Developing MMC Snap-Ins using ATL
Rating: none
Leon Finker - 05/23/2001
This article teaches you how to create an MMC Snap-In and implement some basic features using ATL. Great starting point for MMC Snap-In development.

A Simple COM tutorial using ATL
Rating:
C. Lung - 06/25/1999
A Simple COM tutorial using ATL

ATL Client Application Tutorial
Rating: none
Naveen Kohli - 02/05/1999
ATL Client Application Tutorial

Leveraging C++ Applications Using COM An example of ATL COM
Rating: none
Jonathan WoodBury and Ranjan Banerji - 02/05/1999
Leveraging C++ Applications Using COM An example of ATL COM


Utilities



Professional System Library: Introduction
Rating:
chilly32 - 08/22/2008
Discover a simplified and unified way to access most frequently used information about Process, System, and Environment.

Application's Version Updating from a FTP Resource
Rating: none
Andrej Hristoliubov - 02/15/2005
Use the IOUpdate.dll library to automatically update your application from the Internet.

Using Two Common 'Compression' Techniques
Rating:
Andy Bantly - 01/04/2005
Here are two Microsoft (tm) Visual C++ projects. One project is an ATLCOM project with two objects: a Huffman compression object and a run length encoding object. One project is an MFC dialog that utilizes the library to perform file-based compression and decompression.

Simple Logging Utilily in ATL
Rating: none
Ashish Dhar - 01/03/2000
Simple Logging Utilily in ATL


Windows Template Library (WTL)



Displaying the Input Language indicator in a WTL dialog
Rating: none
Anthony Berkow - 07/06/2009
How to display the Input Language indicator (as seen on the Language Bar) in a dialog (such as seen in the Windows Logon or Change Password dialogs).

A Multidevice ASIO Output Plugin for WinAMP
Rating: none
Domagoj Saric - 02/19/2009
Explore a C++ replacement of the official ASIO SDK that supports multiple ASIO devices put to the test in a tiny WinAMP output DLL.

Windows Template Library: Still Alive and Kicking
Rating:
Nick Wienholt - 10/04/2006
Find out what's become of the Windows Template Library (WTL) since Microsoft released it as an open-source project in 2004. Examine the recent WTL releases and see where WTL fits in the C++ programmer's toolkit.

Creating Resourceless Dialogs
Rating:
Trilobyte - 08/20/2004
Learn how to create resourceless dialogs using the Trilobyte-Solutions.nl Resourceless Dialog Toolkit.

To WTL or Not to WTL, That Is the Question
Rating:
Andrew Whitechapel - 04/12/2001
In his latest contribution, Andrew ponders the question posed by many of you brave enough to dive into the undocumented waters of WTL: When should I use WTL as opposed to ATL or MFC?. In doing so, he walks you through just how easy it is to create a "Hello World" windows application with WTL in order to give you some perspective on just how productive this template library can be

Using DDX and DDV with WTL
Rating: none
Less P Wright II - 01/29/2001
Illustrates how to incorporate the MFC feature of DDX/DDV into your WTL applications!

WTL - Button Menu
Rating: none
David Peterson - 08/17/2000
Very cool button with arrow image that when pressed drops down a menu

kPad - Lightweight Text Editor
Rating: none
Konstantin Boukreev - 08/06/2000
Great example of the types of things you can do with WTL !!

WTL Tool Bar Drop-Down Extension
Rating: none
Ben Burnett - 05/03/2000
Drop down toolbar buttons implemented with WTL








The Network for Technology Professionals

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers