C U T B H P N

Note - Supplementary Resources

Links to Technical Details

Notes about this course:

  1. We will spend a significant amount of time - about three weeks - discussing the Windows COM technology. COM is a Component Technology used throughout windows to break this large and complex system into digestible, composable, and nearly independent pieces. COM was developed to support some interesting technologies with the Office Suite and has grown to become a major part of the Windows OS. COM components are the building blocks for:
    • the Windows shell
    • Windows Management Instrumentation
    • Internet Explorer
    • .Net CLR
    • the new WinRT technolgy used in Windows 8
    • throughout Microsoft Office
    If you work professionally on a Windows platform you will need to understand how COM works. That is the reason for our emphasis here. Note that there is no corresponding technology on Linux, so this part of the course will forgo interoperability.
  2. Our interest in interoperability also focuses on interoperation of components built in different technologies, e.g., between native and managed code. For Linux that means interoperation between Java and C++ using operating system facilities like sockets and pipes. On Windows we will look at interoperability between C# and C++ code in several ways. You can even inteoperate between scripts and native code on both platforms.

COM, Linux, Windows References:

COM Links Linux Links
  1. CATL: COM and ATL 3.0, Andrew Troelsen, WordWare Publishing, 2000, ISBN 10: 1-55622-704-3
  2. Introduction to COM - CodeProject
  3. Introduction to COM, Part II - CodeProject
  4. COM Architecture - CodeProject
  5. Inside COM - CodeProject
  6. COM Connection Points - CodeProject
  7. COM in C++ - CodeProject
  8. COM in plain C - CodeProject
  9. COM in plain C, Part 2 - CodeProject
  10. COM in plain C, Part 3 - CodeProject
  11. COM in plain C, Part 4 - CodeProject
  12. COM in plain C, Part 5 - CodeProject
  13. COM in plain C, Part 6 - CodeProject
  14. COM in plain C, Part 7 - CodeProject
  15. COM in plain C, Part 8 - CodeProject
  16. Using COM without registration - CodeProject
  17. COM from scratch, Part I - CodeProject
  18. Single Threaded Apartment - CodeProject
  19. COM Event Handling - CodeProject
  20. Adding COM Automation - CodeProject
  21. Building WinRT components
  1. The Linux Programming Interface
  2. How Linux Works
  3. Linux Phrasebook
  4. APUE: Advanced Programming in the Unix Environment, Second Edition, Stevens and Rago, Addison-Wesley, 2005
  5. Classic Shell Scripting, Robbins and Beebe, O'Reilly, 2005
  6. Linux System Programming, Robert Love, O'Reilly, 2007
  7. Linux PhraseBook, Scott Granneman, Addison-Wesley, 2006
Windows Links Other Links
  1. WVCC: Windows via C/C++, Fifth Edition, Richter and Nasarre, Microsoft Press, 2008
  2. Windows PowerShell Cookbook, 2nd Edition, Holmes, O'Reilly, 2010
  1. TCP Client and Server with SSL - CodeProject

CST strip