[ofw] RE: interface GUIDs and versioning

Sean Hefty sean.hefty at intel.com
Wed Jul 8 16:15:30 PDT 2009


>>> GUIDs.  But it seems like the WvProvider interface GUID basically
>>> controls the default interfaces that a user sees.  It's the only GUID
>>> that a user will typically access directly.  As an example, a user
>>> calls:
>>>
>>> WvGetObject(IID_WvProvider...);
>>> provider->OpenDevice(... IWVDevice *dev);
>>>
>>> The user doesn't specify which version of the IWVDevice interface
>>> that's wanted.
>>>
>>> Should users always call QueryInterface to ensure that they have the
>>> correct interface, or should the interface GUIDs be input into any
>>> calls that return an interface?  Thoughts anyone?
>>
>> How will ND handle this?
>
>What we did when we changed some interfaces was change the GUID of any parent
>object that would return a changed interface.
>
>So in your case, the IWVDevice and IWVProvider interfaces would change too.

Ok - then the WvProvider GUID basically controls all sub-interfaces then.  I
like this better than forcing the user to call QueryInterface to get an updated
interface.  Did you consider passing in the GUID to all calls that return an
object?  If so, why didn't you select this option?  (I'm not suggesting that I
like it better, just if there was a reason not to use it.)

- Sean




More information about the ofw mailing list