I 
   IAccessible interface, 480 
     IAltMemMgr interface, 245 
     IAsyncResult variable, 380 
     IAtlStringMgr interface, 245-246 
     ICatalogCollection object, 346, 363, 366 
     ICatalogObject object, 347 
     ICheckString interface, 310 
     IComponent interface, 160, 473, 476, 483 
     IComputerName interface, 303 
     icons, Component Services, 31-32 
      IDataObject interface, 474, 484 
     IDE, component access with, 19-25 
     identifying 
  assemblies, 9 
  components , 8 
  controls, 144 
      IDispatch interface, 106, 113, 140 
      IDispatchImpl attribute, 113 
     IDisposable interface, 160, 162, 300, 305, 408 
     IDL (Interface Definition Language).  See also  attributed programming 
  described, 13 
  generating, 231 
  suppressing generation, 231 
  type conversions, 75-77, 136-137 
  value types and, 137 
     /idlout compiler option, 23 
        /ignoreidl compiler option, 231 
     IIDs (interface IDs), 128, 488 
     IJW (It Just Works mechanism), 431-432 
     IL (Microsoft Intermediate Language), 10 
       Image Dump Directory values, 381 
     IManagedObject interface, 162 
     Implemented Categories subkey , 144 
     implements attribute, 217 
     implements_category attribute, 217 
     implicit conversions, 258 
      importer.  See  type library importer 
      importing 
  ActiveX controls, 100 
  arrays, 81-83 
  attributes, 74 
  coclasses , 83-85 
  constants, 90 
  data types, 75-83 
  enumerations, 90 
  interfaces, 85-88 
  methods , 87 
  modules, 91 
  properties, 87 
  structures, 88 
  type libraries, 74-75 
  typedefs , 90 
  unions, 89 
      IMyInterface interface, 106 
     in attribute, 132, 214, 447, 486 
       independent MSMQ clients , 317 
     indexes, Web application, 388 
      inheritance 
  class exportation and, 127 
  exceptions, 13 
  hierarchy, 129-131, 481 
  visibility, 14 
        in-memory interop assemblies, 61 
     in-memory type libraries, 61 
      inserted code, viewing, 192, 195 
     instances 
  lifetime management, 9 
  releasing, 476 
     instantiating components, 84 
      integrating COM in .NET.  See also  converting; Runtime Callable Wrappers 
  COM interop, 53-55 
  component integration 
  accessing, 19-25 
  ActiveX controls, 99-102 
  design considerations, 91-94 
  event handling, 94-99 
  overview, 53 
  differences 
  component identification, 8 
  component locations, 7-8 
  data handling, 15-18 
  error handling, 13 
  event handling, 19 
  garbage collection, 10-13 
  object-oriented principles, 10 
  objects, 9 
  type information, 13 
  visibility, 14-15 
  future of, 3-5 
  overview, 5-7 
     integrating COM+ in .NET.  See also  Component Services snap-in 
  benefits of, 28-29 
  improvements, 29 
  .NET Framework Configuration snap-in, 47-50 
  overview, 27 
  problems, 29-30 
     integrating .NET in COM.  See also  COM Callable Wrappers; exporting 
  attributes, 108-114, 141 
  from COM client code, 120-125 
  default constructors, 139 
  design considerations, 139-143 
  event handling, 141, 148-152 
  HRESULTs, 142 
  interfaces, 105-108, 140 
  naming problems, 139-140 
  objects, 104 
  registry entries, 119-120 
  static methods, 139 
  type libraries, 114-119 
  version numbers , 142 
  Windows Forms controls, 143-148 
     integrating .NET in COM+.  See also  COM+ examples 
  application types, 179-181 
  COM vs. COM+, 156 
  COM+ background information, 163 
  COM+ services, 169-171 
  connections, 173-178 
  data flow optimization, 178 
  DCOM, 172-178 
  distributed architecture, 163 
  error handling, 182 
  interoperability, 156-162 
  messaging, 166-169 
  overview, 155 
  security, 183-184 
  transactions, 164-165 
     Interactive User option, 37 
      Interface Definition Language (IDL).  See  IDL 
     interface IDs (IIDs), 128, 488 
     __interface keyword, 198, 206, 211 
     interface pointers, 94, 104 
     InterfaceID property, 367 
     interfaces.  See also  COM interfaces; .NET interfaces 
  analyzing, 481-483 
  attributed programming, 211-216 
  CCW implemented, 105-108 
  changes to, 107 
  changing, 140 
  class, 106-108 
  comparing, 481 
  converting, 85-88, 106 
  custom, 106-108 
  described, 474 
  design considerations, 92 
  dispatch, 215 
  explicit source, 149-151 
  exporting, 128-136 
  multiple implemented, 84 
  re-creating with managed code, 483-487 
  researching , 475-476 
  type produced, 128 
  verifying, 482 
  viewing, 477-479 
  visibility, 112 
     InterfaceType attribute, 111, 118, 128, 292, 330, 483 
      InternalDispose method, 409 
     international considerations, 384 
     Internet 
  COM+ and, 29, 169 
  DCOM and, 172 
     Internet Explorer, 143, 145-148 
     interop assemblies.  See also  Runtime Callable Wrappers 
  ActiveX controls, 101 
  component referencing, 60 
  delayed signing, 72 
  generating 
  overview, 55 
  TlbImp.exe, 57-61 
  TypeLibConverter class, 61-67 
  Visual Studio .NET, 56 
  Global Assembly Cache, 67-73 
  library conversions, 74 
  namespaces, 59 
  overview, 54 
  signing, 71 
  strong names , 70-71 
      interoperability.  See  integrating COM in .NET; integrating COM+ in .NET; Platform Invoke; unmanaged code 
        IObjectSafety interface, 483, 487 
     IOleWindow interface, 483 
      IRemoteDispatch interface, 162 
     ISAPI extensions, 260, 272 
      ISecurityCallContext interface, 183-184 
     IString interface, 121, 123 
     ISupportErrorInfo interface, 93, 478 
     It Just Works (IJW) mechanism, 431-432 
      IUnknown interface, 104, 106, 140, 474, 481 
      IViewObject interface, 482 
     IViewObject2 interface, 482