[Bug 12659] Preferences window missing all user-modifiable settings in Acrobat V7.0 Pro

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Oct 23 18:43:52 CDT 2009


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


Ralph <winebugs at q51.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|-unknown                    |ole32




--- Comment #10 from Ralph <winebugs at q51.org>  2009-10-23 18:43:51 ---
It's taken me about a year and a half, but I finally had the opportunity to
look at this bug again.  I was sure Anastasius had already narrowed it down,
but I wanted to document my low-tech approach to the problem anyway, in case it
gives some ideas to others in a similar situation.

I searched the registry on a Windows system for that GUID
(b5f8350b-0548-48b1-a6ee-88bd00b4a5e7) and found a key of that name containing
the string "MSAA AccPropServices".  It also contained two subkeys, one of which
was called "InprocServer32" which in turn contained a reference to
"C:\WINDOWS\System32\oleacc.dll".

I tried the same search for that GUID within Wine's registry ... and found
nothing.  So, I exported the key from the Windows system, and imported it into
Wine using Wine's regedit.  I wanted to see if that would get me any further
the next time I started Acrobat and tried to view the Preferences window. 
Here's the error that resulted:

------------
err:ole:COMPOBJ_DllList_Add couldn't find function DllGetClassObject in
L"oleacc.dll"
err:ole:create_server class {b5f8350b-0548-48b1-a6ee-88bd00b4a5e7} not
registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}
could be created for context 0x15
------------

So perhaps it's the DllGetClassObject function (or lack thereof) within oleacc
that's causing the problem.

Note:  my understanding of what DllGetClassObject is supposed to do and how it
does it is very sketchy, so the following may just be an exercise in hilarity.

I downloaded the Wine source and tried implementing a stub DllGetClassObject
function within oleacc -- based on similar additions by others to the Wine
source -- to see if that would help.  (Answer:  not really.)  I'm not even sure
that there really should be a DllGetClassObject function in oleacc.dll.  I'm
wondering if there's a common DLLGetClassObject function elsewhere that's
supposed to be utilized in this situation somehow but isn't ... and then
oleacc.dll is left holding the bag, so to speak.

In case it's actually useful, here's what I added to the oleacc.spec file
within the source:

------------
@ stdcall -private DllGetClassObject(ptr ptr ptr)
------------

And here's what I added to main.c:

------------
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
{
    FIXME("(%s %s %p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
    return CLASS_E_CLASSNOTAVAILABLE;
}
------------

Now when I try to access the Preferences window, I see this in the console
output:

------------
fixme:oleacc:DllGetClassObject ({b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}
{00000001-0000-0000-c000-000000000046} 0x32f7b0)
err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111
err:ole:create_server class {b5f8350b-0548-48b1-a6ee-88bd00b4a5e7} not
registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}
could be created for context 0x15
------------

A search in the registry on a real Windows system for
"00000001-0000-0000-c000-000000000046" returns a key (under
HKEY_CLASSES_ROOT\Interface) containing the string "IClassFactory".  The same
thing already exists within Wine's registry.

I'm out of ideas for now.  Evidently I've got a heck of a lot of reading to do,
unless someone else can offer some further advice.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list