The HepMC C++ Monte Carlo event record for High Energy Physics. HepMC is an Object Oriented event record written in C++ for High Energy Physics Monte Carlo event generators. Many extensions from HEPEVT, the Fortran HEP standard, are supported: the number of entries is unlimited, spin density matrices can be stored with each vertex, flow patterns (such as colour) can be stored and traced, random number generator states can be stored, and an arbitrary number of event weights can be included. Particles and vertices are stored separately in a graph structure, reflecting the evolution of a physics event. The added information supports the modularization of event generators. The event record has been kept as simple as possible with minimal internal/external dependencies. Event information is accessed by means of iterators supplied with HepMC.