You are currently viewing a snapshot of taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to, please file a bug.


Welcome to the XPCOM page. This area is intended to be a central clearinghouse for information related to XPCOM.


Rules and guidelines for writing new code

Smart Pointers and Ownership

Manuals and Guides


XPIDL, XPConnect and friends

  • Roadmap for XPCOM, XPConnect, XPTCall, and XPIDL describes how they all fit together
  • XPConnect describes how XPCOM based classes can be accessed through JavaScript.
  • XPIDL is the XP Interface Description Language used to specify XPCOM interface classes
  • xptcall is a library that supports invoking methods on arbitrary xpcom objects and implementing classes whose objects can impersonate an xpcom interface
    • porting status lists the currently supported platforms. There are currently many platforms that we need help on.
    • porting guide describes the assembly code that is needed to implement xptcall
  • Type Library Format describe the type libraries (.xpt files) that are binary representations of XPCOM interfaces
    • Tools for Typelibs - xpt_dump dumps the information in a typelib to the screen and xpt_link merges typelib files

Soon to be removed

See Also

Please direct all comments and contributions to news:netscape.public.mozilla.xpcom and/or Doug Turner <>.