TY - BOOK AU - Box,Don TI - Effective COM: 50 ways to improve your COM and MTS-based applications SN - 0201379686 U1 - 005.276 22 PY - 1999/// CY - Reading, Mass PB - Addison-Wesley KW - Microsoft Transaction server KW - Application software KW - Development KW - Object-oriented programming (Computer science) KW - COM (Computer architecture) N1 - TABLE OF CONTENTS Shifting from C++ to COM 1. Define your Interface Before you Define Your Classes (and do it in IDL). 2. Design with Distribution in Mind 3. Objects should not Have their Own Interface 4. Beware the COM Singleton 5. Don't Allow C++ Exception to Cross Method Boundaries Interfaces 6. Interfaces are Syntax and Loose Semantics. Both are Immutable 7. Avoid E_NOTIMPL. 8. Prefer Typed Data to Opeque Data 9. Avoid Connection Points 10. Don't Provide More than One Implementation of the same Interface on a Single Object Etc. Implementation 18. Code Defensively 19. Always Initialize [ out ] Parameters 20. Don't Use Interface Pointers that Have not Been AddRef ' ed 21. Use Static_Cast when Bridging Between the C++ Type System and the COM Type System 22. Smart Interface Pointers add at least as Much Complexity as they Remove Etc. Apartments 29. Don't Access Raw Interface Pointers Across Apartment Boundaries 30. Whe Passing an Interface Pointer Between One MTA Thread and Another, Use AddRef . 31. User-Interface Threads and Objects Must Run in Single-Threaded Apartments (STAs). 32. Avoid Creating Threads from an in-Process Server 33. Beware the Free-Threaded Marshaler (FTM). Etc. Security 38. CoInitializeSecurity is Your Friend. Learn it, Love it, Call it. 39. Avoid AS-Activator Activation 40. Avoid Impersonation 41. Use Fine-Grained Authentication 42. Use Fine-Grained Access Control Transactions 43. Keep Transactions as Short as Possible 44. Always Use SafeRef When Handing out Pointers to your Own Object 45. Don't Share Object References Across Activity Boundaries 46. Beware of Exposing Object References from the Middle of a Transaction Hierarchy 47. Beware of Committing a Transaction Implicitly Etc. ; Includes : index: p. 205-222 ER -