[Bug 6168] Statistica 6 Demo fails because of unimplemented ole32.OleCreateEmbeddingHelper

Wine Bugs wine-bugs at winehq.org
Mon May 14 14:19:42 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=6168





------- Additional Comments From focht at gmx.net  2007-14-05 14:19 -------
Hello,

another random pick.

--- quote ---
unimplemented ole32.OleCreateEmbeddingHelper
--- quote ---

Following will get app to work.
Beware: this is not a complete implementation, it ignores the EMBDHLP_DELAY case
(object creation immediately -> EMBDHLP_CREATENOW).
Though it doesnt seem to cause harm.  

--- snip dlls/ole32/ole2impl.c ---
/***********************************************************************
 *           OleCreateEmbeddingHelper    [OLE32.@]
 */
HRESULT WINAPI OleCreateEmbeddingHelper( REFCLSID clsid, LPUNKNOWN pUnkOuter,
                         DWORD flags, LPCLASSFACTORY pCF, REFIID riid, LPVOID *
ppvObj)
{
    HRESULT hr;
    IUnknown *pUnk = NULL;

    FIXME("(%s, %p, 0x%x, %p, %s, %p)\n", debugstr_guid(clsid), pUnkOuter,
                                     flags, pCF, debugstr_guid(riid), ppvObj);

    *ppvObj = NULL;
   
    if (!ppvObj)
       return E_INVALIDARG; 

    if (pUnkOuter && !IsEqualIID( &IID_IUnknown, riid))
       return E_INVALIDARG;

    if (!pCF)
    {
       if( (flags & (EMBDHLP_INPROC_HANDLER | EMBDHLP_CREATENOW)) == 
                 (EMBDHLP_INPROC_HANDLER | EMBDHLP_CREATENOW))
       {
           return OleCreateDefaultHandler(clsid, pUnkOuter, riid, ppvObj);
       }

       /* pCF cannot be NULL for EMBDHLP_INPROC_SERVER */
       return E_INVALIDARG;
    }
    
    hr = IClassFactory_CreateInstance( pCF, pUnkOuter, riid, (LPVOID*) &pUnk);
    if (SUCCEEDED(hr))
    {
        hr = IUnknown_QueryInterface( pUnk, riid, ppvObj); 
        IUnknown_Release( pUnk);
    }

    return hr;
}
--- snip dlls/ole32/ole2impl.c ---

and

--- snip dlls/ole32/ole32.spec ---
@ stdcall OleCreateEmbeddingHelper(ptr ptr long ptr ptr ptr)
--- snip dlls/ole32/ole32.spec ---

Impl done on top of wine-0.9.37-44-g260591f

As mentioned in previous post, make sure you set native comctl32 (separate bug
report).

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list