One commenter claimed that
When the object is first constructed,
the reference count should be 0 and
AddRef should be called at some point
(probably via QueryInterface) to increment the reference count.
If you construct your object with a reference count of zero,
you are playing with matches.
For starters, when the object is created, ...