Commit 27408f3f authored by sfalken@apple.com's avatar sfalken@apple.com

2009-04-21 Steve Falkenburg <sfalken@apple.com>

        Minor clean-ups to WebKitCreateInstance change.
        
        Reviewed by Jon Honeycutt.

        * WebKitCOMAPI.cpp:
        (classFactory):
        (WebKitCreateInstance):



git-svn-id: svn://svn.chromium.org/blink/trunk@42733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent bdcc85b9
2009-04-21 Steve Falkenburg <sfalken@apple.com>
Minor clean-ups to WebKitCreateInstance change.
Reviewed by Jon Honeycutt.
* WebKitCOMAPI.cpp:
(classFactory):
(WebKitCreateInstance):
2009-04-21 Steve Falkenburg <sfalken@apple.com>
Add registry-free CoCreateInstance API for WebKit clients: WebKitCreateInstance.
......
......@@ -51,14 +51,16 @@ static COMPtr<IClassFactory> classFactory(const CLSID& clsid)
typedef HashMap<CLSID, COMPtr<IClassFactory>, CLSIDHash, CLSIDHashTraits> FactoryMap;
static FactoryMap& factories = *new FactoryMap;
COMPtr<IClassFactory>& factory = factories.add(clsid, 0).first->second;
if (!factory && FAILED(DllGetClassObject(clsid, __uuidof(factory), reinterpret_cast<void**>(&factory))))
pair<FactoryMap::iterator, bool> result = factories.add(clsid, 0);
COMPtr<IClassFactory>& factory = result.first->second;
bool added = result.second;
if (added && FAILED(DllGetClassObject(clsid, __uuidof(factory), reinterpret_cast<void**>(&factory))))
factory = 0;
return factory;
}
HRESULT WebKitCreateInstance(REFCLSID rclsid, IUnknown *pUnkOuter, REFIID riid, void **ppvObject)
HRESULT WebKitCreateInstance(REFCLSID rclsid, IUnknown* pUnkOuter, REFIID riid, void** ppvObject)
{
COMPtr<IClassFactory> factory = classFactory(rclsid);
if (!factory)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment