The iid_is construct says that the void* parameter is an interface pointer whose type is only known at run time, but whose interface ID is the parameter named in the iid_is attribute. For example:
[object, uuid(b5483f00-4f6c-101b-a1c7-00aa00389acb)]
interface IBar : IWazoo {
Bar([in] short i, [in, ref] uuid_t *piid, [out, iid_is(piid)] void ** ppvoid);
};
This can be invoked in C++ as:
IFoo* pIF;
pIB->Bar(i, &IID_IFoo, (void*)&pIF);
where "IID_IFoo" is the name of a constant whose value is the interface ID for IFoo.
Send feedback to MSDN.Look here for MSDN Online resources.