To emit, say, 1000 particles with infinite life, in the Emitter set:
lifeSpan: Emitter.InfiniteLife
maximumEmitted: 1000
The emitter's onEmitParticles(Array particles)
signal gives you access to all of the particles. You can retain that array, and later modify it at will. I haven't checked how hard would it be to access this array from C++. It's possible, but a Particle has a private implementation and you'd need to pull private headers etc. You could also attach to the signal from C++ code, with same caveat.