First, I declare that I don't have a COM / ATL master, although I have been in contact with them for 4 years, but because some of the reasons have not been able to study and extensively actually use them. But remember to learn their pain experience, it is really unbearable. Here, only this article and everyone explore the path to learn their path, so that the later people go less.
I personally think that learning COM is a uncommon thing, only one step, one step, a footprint, the practice, every point of view and theory can truly understand its essence. That can rely on your own knowledge to solve the problem when there is a mistake. I personally think that if you want to learn COM / ATL, there is no time, maybe I am more stupid. Personally think that COM / ATL should be gradually progressive, and the books that can be referred to are:
1, "C Primer" - Learn C language. It is primarily understood that inheritance, overload, polymorphism, multiple inheritance, virtual functions, pure virtual functions, C templates, these are the foundation of learning COM later. Because C 's implementation of COM is fully supported, only COM all can be implemented on C , reflecting its infinite charm. Many books are also illustrated by using COM principle. In the "COM Technology Inside", in order to illustrate the use of C multiple inheritance and pure virtual functions, the MFC uses a nested class to implement COM, and ATL uses multiple inheritance to implement COM. Don't think that these foundations are not important, in a lot of full port inheritance and overloaded C high, many people don't know what is pure virtual function? What is the virtual function table? How is it stored in memory? What is the derived class?
2, "Windows Program Design" - Understand the essence of Windows programming, related API usage, Windows program structure, message transfer mechanism. If you want to develop your COM program on Windows, you will be helpful to you later develop.
3, "In-depth Shallow MFC" - Learn about the knowledge of MFC, understand the MFC's package knowledge, MFC framework. Personally think that learning the author's analysis of the procedure of the program is actually an important way, which will help you be lost in the code generated by the various Wizards of the ATL.
4, "COM technology insider" - a good book for a good COM principle, I will no longer emphasize the importance of COM learning. I personally watched 4 times, every time I got all over. The good book must be read repeatedly, perhaps my comprehension is relatively bad, maybe the author is foreigner, the way the story is not easy to let the Chinese accept, ^ _ ^.
5, "COM principle and application" - the author uses Chinese to accept and know things, if the trip, let you know the principle of COM again, and some advanced applications in COM have been introduced in the second half of the book, these The actual application makes the readers to see the actual use of the dawn from the aura of many COM's theoretical knowledge, making people eager to try.
6, "COM nature" - let you see the essence through the phenomenon, if you learn CoM, don't read this book, I can't believe you are COM programming. Personally think this book is the best book to learn COM, too exciting, especially the first few chapters will make you bright. The description of the book is more confused for a long time, got the best solution. However, learning this book must have a good C foundation and a good comprehension ability to describe things to foreigners.
7. "In-depth analysis of ATL" - a book that introduces the essence of ATL. Combined with the explanation of this book and you learned from "in-depth light-out MFC", the method of analyzing the procedures will definitely make you more in-depth understanding of COM and ATL.
8, "IDL essence" - a one of the operations you can generate, such as a bunch of books, such as a heavenly book IDL file, add, and modify the tool book.
9. "COM programming exciting example" - The narrative of the first few chapters in the book is still good, and the translator's professional foundation is too bad. The example provided in the book is quite wonderful. More close to the actual use! Ok, the foundation book I think it is enough. As for the study of DCOM and COM , it is a later words, and more knowledge is needed. Oh, or the sentence "Copybook is not as good as no book", COM's theory is developing, maybe some theories in the book will pass, so if you have questions, then you must actually test it. It is more solid. The last thing to say is to learn COM / ATL must have more hands-on, don't be like me the theoretical giant, actually program the elf, ^ _ ^.