HRESULT ProtocolFactory_Create(REFCLSID rclsid, REFIID riid, void **ppv) { ProtocolFactory *cf = NULL; if(IsEqualGUID(&CLSID_AboutProtocol, rclsid)) cf = &AboutProtocolFactory; else if(IsEqualGUID(&CLSID_ResProtocol, rclsid)) cf = &ResProtocolFactory; else if(IsEqualGUID(&CLSID_JSProtocol, rclsid)) cf = &JSProtocolFactory; if(!cf) { FIXME("not implemented protocol %s\n", debugstr_guid(rclsid)); return CLASS_E_CLASSNOTAVAILABLE; } return IInternetProtocolInfo_QueryInterface(&cf->IInternetProtocolInfo_iface, riid, ppv); }
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv) { ProtocolFactory *This = impl_from_IClassFactory(iface); return IInternetProtocolInfo_QueryInterface(&This->IInternetProtocolInfo_iface, riid, ppv); }
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv) { ProtocolFactory *This = CLASSFACTORY_THIS(iface); return IInternetProtocolInfo_QueryInterface(PROTOCOLINFO(This), riid, ppv); }