The RoGetAgileReference function lets you specify whether you want the marshaling of the wrapped object to take place eagerly or lazily. Flag Behavior AGILEREFERENCE_DEFAULT Eager marshaling AGILEREFERENCE_DELAYEDMARSHAL Lazy marshaling Why should you choose one over the other? It’s a question of whether you want to do a little work now in the hope of saving more work later. The post When should I use delayed-marshaling when creating an agile reference? appeared first on The Old New Thing....