CSE775 - Distributed Objects
Lecture #12 - ATL and Building ATL-based Projects
Revised: 24 February 2008
Web Resources:
Code Project
Win32, COM, MFC
DevelopMentor
Windows Developer's Journal
Windows Forms
GotDotNet
C# Corner
IDL and WDSL
COM at MSDN
IDL Language
base MIDL types
OLE data types
IDL attributes
MIDL data types
MIDL Language Reference
conversion functions
Content:
This lecture is concerned with Active Template Library builds. We will also briefly discuss ATL wrapper
classes for interface pointers, CComQIPtr, and BSTRs, CComBSTR.
-
Syllabus
Describes topics to be covered,
reading material for you to digest before coming to class, and due dates
for the assigned projects.
-
Uploading Project Submissions
-
Project #2
-
Two useful references for this material:
-
ATL Internals, Second Edition, Working with ATL 8, Tavares, Fertitta, Rector, Sells, Addison-Wesley, 2007
A quite detailed look at how ATL works - highly recommended.
-
Essential IDL, Interface Design for COM, Martin Gudgin, Addison-Wesley, 2001
Covers almost everything you might want to know about IDL - again, highly recommended.
-
Project simulating ATL Structure
-
MSDN ATL Class Overview
-
ATL Presentation
Discusses the relationship between ATL modules and a component developed with ATL.
-
ATL_Inproc_Ex1
Our first ATL demonstration. Here you will see CComBSTR and CComQIPtr in action.
-
Building ATL_Inproc_Ex1
-
Attributed ATL Programming
Shows how to use the new attributed style of building COM objects.
-
Attributed ATL Programming Demo
-
CComQIPtr
A smart pointer the makes client code simpler and easier to maintain.
-
CComBSTR
BSTRs are rather ackward to manipulate, but wrapping a BSTR in a CComBSTR makes it almost as easy to use as a
std::string object.
-
CComSafeArray
BSTRs are rather ackward to manipulate, but wrapping a BSTR in a CComBSTR makes it almost as easy to use as a
std::string object.
-
CComVariant
BSTRs are rather ackward to manipulate, but wrapping a BSTR in a CComBSTR makes it almost as easy to use as a
std::string object.
-
ATL_OutProcST
-
Building ATL_OutProcST