:-O Didn't realise I was 'in the know'! You can just use the dispids from the IDL, preferably, as you said before, defined as constants somewhere. Flash will be using the predefined IDs, so it will be safe, and it's much less painful than implementing GetIDsOfNames, which you won't need. Don't know about the final note, I only use C++/C/C# with VBS thrown in. For what it's worth I usually 'handcode' the event sink so that the invoke function calls a pure virtual in a base class, then my concrete class provides the pure virtuals. This is occasionally useful if I need the same kind of sink somewhere else in the project or another app. Steve S