Essential COMWritten by a leading COM authority, this unique book reveals the essence of COM, helping developers to truly understand the why, not just the how, of COM. Understanding the motivation for the design of COM and its distributed aspects is critical for developers who wish to go beyond simplistic applications of COM and become truly effective COM programmers. As the COM programming model continues to evolve, such insight also becomes essential to remaining current with extensions, such as Microsoft Transaction Server and COM+. By showing you why Distributed COM works as it does, Don Box enables you to apply the model creatively and effectively to everyday programming problems. |
Contents
COM as a Better C++ | 1 |
Software Distribution and C++ | 2 |
Dynamic Linking and C++ | 5 |
C++ and Portability | 6 |
Encapsulation and C++ | 7 |
Separating Interface from Implementation | 11 |
Abstract Bases as Binary Interfaces | 14 |
Runtime Polymorphism | 21 |
Querylnterface Is Symmetric | 157 |
Querylnterface Is Transitive | 159 |
Querylnterface Is Reflexive | 160 |
Objects Have Static Type | 163 |
Querylnterface and IUnknown | 165 |
Multiple Interfaces and Method Names | 169 |
Dynamic Composition | 179 |
Binary Composition | 185 |
Object Extensibility | 23 |
Resource Management | 31 |
Where Are We? | 34 |
Interfaces | 37 |
IDL | 39 |
Methods and Results | 41 |
Interfaces and IDL | 44 |
IUnknown | 48 |
Resource Management and IUnknown | 53 |
Type Coercion and IUnknown | 57 |
Implementing IUnknown | 61 |
Using COM Interface Pointers | 66 |
Optimizing QueryInterface | 69 |
Data Types | 73 |
Attributes and Properties | 87 |
Exceptions | 88 |
Where Are We? | 94 |
Classes | 95 |
Class Objects | 97 |
Activation | 100 |
Using the SCM | 103 |
Classes and Servers | 107 |
Generalizations | 115 |
Optimizations | 118 |
Interface and Implementation Again | 125 |
Monikers and Composition | 131 |
Monikers and Persistence | 134 |
Server Lifetime | 138 |
Classes and IDL | 141 |
Class Emulation | 145 |
Component Categories | 147 |
Where Are We? | 153 |
Objects | 155 |
Containment | 197 |
Where Are We? | 198 |
Apartments | 199 |
Objects Interfaces and Apartments | 203 |
CrossApartment Access | 206 |
InProcess Marshaling Helpers | 214 |
Standard Marshaling Architecture | 219 |
Lifecycle Management and Marshaling | 236 |
Custom Marshaling | 243 |
The Free Threaded Marshaler | 249 |
Where Are We? | 260 |
Applications | 261 |
Activation and the SCM | 262 |
Server Lifetime Revisited | 267 |
Application IDs | 274 |
COM and Security | 278 |
Programmatic Security | 287 |
Access Control | 297 |
Token Management | 304 |
Where Are We? | 311 |
Miscellanea | 313 |
Pointers and Memory | 317 |
Arrays | 326 |
Flow Control | 345 |
Dynamic versus Static Invocation | 350 |
Bidirectional Interface Contracts | 356 |
Aliasing in IDL | 370 |
Asynchronous Methods | 375 |
The Evolution of Objects | 377 |
Selected Code Fragments | 385 |
| 421 | |
Other editions - View all
Common terms and phrases
activation request allocated allow apartment API function AppID array assert(SUCCEEDED(hr binary BOOL BSTR bytes C++ class cActual caller cElems chapter char psz ChatSession class object client CLSID CoCreateInstance CoCreateInstanceEx CoGetClassObject CoInitializeSecurity CoMarshalInterface compiler const OLECHAR create data members data types define delete DWORD dynamic_cast FastString Gorilla header file HRESULT hr IApe IBoat ICar IClassFactory IDispatch IDog IID_IUnknown implementation in-process interface definition interface marshaler interface pointer interface proxy interface stub IUnknown IUnknown methods ject m_cRef marshaled object reference memory method call methods STDMETHODIMP moniker NTLM null pointer ORPC request parameter programming proxy manager pwszUser QueryInterface request reference count registry Release void return hr return S_OK runtime SAFEARRAY server process simply smart pointer STDMETHODIMP_(ULONG string struct stub manager SUCCEEDED(hr tearoff technique thread typedef ULONG unmarshal uuid virtual Visual Basic void ppv vptr vtbl Windows NT 4.0
Popular passages
Page iv - Essential XML: Beyond Markup, Don Box, Aaron Skonnard, and John Lam, 0201709147 Programming Windows Security, Keith Brown, 0201604426 Advanced Visual Basic 6:



