[Bug 14567] New: Shell32 IAutoCompleteDropDown needed for VS.NET 2005 and other tools which use MS DevEnv UI engine

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Jul 19 07:12:01 CDT 2008


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

           Summary: Shell32 IAutoCompleteDropDown needed for VS.NET 2005 and
                    other tools which use MS DevEnv UI engine
           Product: Wine
           Version: CVS/GIT
          Platform: PC
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: shell32
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net


Hello,

just visiting back VS.NET 2005 and friends...
The annoying error message box, stating "The operation could not be completed"
can be prevented by implementing IAutoCompleteDropDown in shell32.
Due to this missing interface, the Devenv GUI is not really usable at all.
Also the .NET CLR GUI debugger that ships with the .NET 2.0 SDK suffers from
this bug.

+shell,+ole

--- snip ---
..
trace:ole:CoCreateInstance (rclsid={00bb2763-6a77-11d0-a535-00c04fd7d062},
pUnkOuter=(nil), dwClsContext=00000001,
riid={eac04bc0-3791-11d2-bb95-0060977b464c}, ppv=0x50757698)
trace:ole:CoGetClassObject
        CLSID:  {00bb2763-6a77-11d0-a535-00c04fd7d062},
        IID:    {00000001-0000-0000-c000-000000000046}
trace:ole:WINE_StringFromCLSID
0x5005ec20->{00BB2763-6A77-11D0-A535-00C04FD7D062}
trace:ole:apartment_getclassobject found L"shell32.dll" already loaded
trace:ole:apartment_getclassobject calling DllGetClassObject 0x66426d20
trace:shell:HCR_RegOpenClassIDKey CLSID\{00bb2763-6a77-11d0-a535-00c04fd7d062}
trace:shell:HCR_GetClassNameA -- AutoComplete
trace:shell:DllGetClassObject CLSID:
        {00bb2763-6a77-11d0-a535-00c04fd7d062} (AutoComplete),IID:
        {00000001-0000-0000-c000-000000000046} (IID_IClassFactory)
trace:shell:DllGetClassObject index[7]
trace:shell:IDefClF_fnConstructor (0xc0c740)(null)
trace:shell:IDefClF_fnQueryInterface (0xc0c740)->(
        {00000001-0000-0000-c000-000000000046} (IID_IClassFactory))
trace:shell:IDefClF_fnRelease (0xc0c740)->(count=2)
trace:shell:DllGetClassObject -- pointer to class factory: 0xc0c740
trace:shell:IDefClF_fnCreateInstance 0xc0c740->((nil),
        {eac04bc0-3791-11d2-bb95-0060977b464c} (IID_IAutoComplete2),0x50757698)
trace:shell:IAutoComplete_fnQueryInterface (0xc26b68)->(
        IID:
        {eac04bc0-3791-11d2-bb95-0060977b464c} (IID_IAutoComplete2),0x50757698)
trace:shell:IAutoComplete2_fnAddRef (0xc26b68)->(count=1)
trace:shell:IAutoComplete_fnAddRef (0xc26b68)->(1)
trace:shell:IAutoComplete_fnQueryInterface -- Interface:
(0x50757698)->(0xc26b6c)
trace:shell:IAutoComplete_Constructor -- (0xc26b68)->
trace:shell:IDefClF_fnRelease (0xc0c740)->(count=1)
trace:shell:IDefClF_fnRelease -- destroying IClassFactory(0xc0c740)
trace:ole:CoCreateInstance (rclsid={00000323-0000-0000-c000-000000000046},
pUnkOuter=(nil), dwClsContext=00000001,
riid={00000146-0000-0000-c000-000000000046}, ppv=0x55c538)
trace:ole:CoCreateInstance Retrieved GIT (0xc1c540)
trace:ole:StdGlobalInterfaceTable_RegisterInterfaceInGlobal iface=0xc1c540,
pUnk=0x6512c8, riid={6d5140c1-7436-11ce-8034-00aa006009fa},
pdwCookie=0x0x320ff4
trace:ole:StdGlobalInterfaceTable_RegisterInterfaceInGlobal About to marshal
the interface
trace:ole:CoMarshalInterface (0xc26f88, {6d5140c1-7436-11ce-8034-00aa006009fa},
0x6512c8, 3, (nil), MSHLFLAGS_TABLESTRONG)
trace:ole:CoGetStandardMarshal
({6d5140c1-7436-11ce-8034-00aa006009fa},0x6512c8,3,(nil),1,0x320f5c)
trace:ole:CoMarshalInterface Using standard marshaling
trace:ole:CoMarshalInterface Calling IMarshal::MarshalInterace
trace:ole:StdMarshalImpl_MarshalInterface
(...,{6d5140c1-7436-11ce-8034-00aa006009fa},...)
trace:ole:CoGetPSClsid () riid={6d5140c1-7436-11ce-8034-00aa006009fa},
pclsid=0x320e04
trace:ole:WINE_StringFromCLSID
0x50064ef8->{6D5140C1-7436-11CE-8034-00AA006009FA}
trace:ole:__CLSIDFromString L"{b8da6310-e19b-11d0-933c-00a0c90dcaa9}" ->
0x320e04
trace:ole:CoGetPSClsid () Returning
CLSID={b8da6310-e19b-11d0-933c-00a0c90dcaa9}
trace:ole:CoGetClassObject
        CLSID:  {b8da6310-e19b-11d0-933c-00a0c90dcaa9},
        IID:    {d5f569d0-593b-101a-b569-08002b2dbf7a}
trace:ole:WINE_StringFromCLSID 0x320e04->{B8DA6310-E19B-11D0-933C-00A0C90DCAA9}
trace:ole:apartment_getclassobject found L"C:\\windows\\system32\\actxprxy.dll"
already loaded
trace:ole:apartment_getclassobject calling DllGetClassObject 0x60a76650
trace:ole:NdrDllGetClassObject ({b8da6310-e19b-11d0-933c-00a0c90dcaa9},
{d5f569d0-593b-101a-b569-08002b2dbf7a}, 0x320e14, 0x60a7784c,
{b8da6310-e19b-11d0-933c-00a0c90dcaa9}, 0x60a7785c)
trace:ole:CStdPSFactory_QueryInterface
(0x60a7785c)->QueryInterface({d5f569d0-593b-101a-b569-08002b2dbf7a},0x320e14)
trace:ole:CStdPSFactory_CreateStub
(0x60a7785c)->CreateStub({6d5140c1-7436-11ce-8034-00aa006009fa},0x6512c8,0x320e1c)
trace:ole:FindProxyInfo found: ProxyInfo 0x60a77040 Index 0
trace:ole:CStdStubBuffer_Construct (0x6512c8,0x60a770e0,0x60a7785c,0x320e1c)
IServiceProvider
trace:ole:CStdStubBuffer_Construct iid={6d5140c1-7436-11ce-8034-00aa006009fa}
trace:ole:CStdStubBuffer_Construct vtbl=0x60a770f0
trace:ole:CStdPSFactory_AddRef (0x60a7785c)->AddRef()
trace:ole:CStdPSFactory_Release (0x60a7785c)->Release()
trace:ole:stub_manager_int_addref before 1
trace:ole:get_stub_manager_from_object found 0xc1c688 for object 0x6512c8
trace:ole:marshal_object registering new ifstub on pre-existing manager
trace:ole:NdrCStdStubBuffer_Release (0xc0fe28)->Release()
trace:ole:CStdStubBuffer_Disconnect (0xc0fe28)->Disconnect()
trace:ole:CStdPSFactory_Release (0x60a7785c)->Release()
trace:ole:stub_manager_ext_addref added 1 refs to 0xc1c688 (oid 3), rc is now 4
trace:ole:RPC_RegisterInterface ({6d5140c1-7436-11ce-8034-00aa006009fa})
trace:ole:stub_manager_int_release after 1
trace:ole:CoMarshalInterface completed with hr 0x00000000
trace:ole:StdGlobalInterfaceTable_RegisterInterfaceInGlobal Cookie is 0xf103
trace:shell:IAutoComplete2_fnInit (0xc26b68)
trace:shell:IAutoComplete_fnInit (0xc26b68)->(0x000201da, 0x55c4e4, (null),
L"%s")
trace:shell:IAutoComplete_fnInit  ACO_AUTOAPPEND
trace:shell:IAutoComplete2_fnSetOptions (0xc26b68) -> (0x71)
trace:shell:HCR_RegOpenClassIDKey CLSID\{3cd141f4-3c6a-11d2-bcaa-00c04fd929db}
trace:shell:HCR_GetClassNameA --
trace:shell:IAutoComplete2_fnQueryInterface (0xc26b68)->(
        {3cd141f4-3c6a-11d2-bcaa-00c04fd929db} (unknown),0x50757690)
trace:shell:HCR_RegOpenClassIDKey CLSID\{3cd141f4-3c6a-11d2-bcaa-00c04fd929db}
trace:shell:HCR_GetClassNameA --
trace:shell:IAutoComplete_fnQueryInterface (0xc26b68)->(
        IID:
        {3cd141f4-3c6a-11d2-bcaa-00c04fd929db} (unknown),0x50757690)
trace:shell:IAutoComplete_fnQueryInterface -- Interface: E_NOINTERFACE
trace:shell:IAutoComplete2_fnRelease (0xc26b68)->(count=2)
trace:shell:IAutoComplete_fnRelease (0xc26b68)->(2)
trace:ole:GetErrorInfo (0, 0x3210a4, (nil))
..
trace:ole:ICreateErrorInfoImpl_SetDescription (0xc24818): L"The operation could
not be completed "
..
--- snip ---

I added/implemented the missing interface (include/shldisp.idl,
dlls/shell32/autocomplete.c, dlls/shell32/debughlp.c) and verified it fixes the
annoying error.
To give the implementor/submitter full freedom, I'll omit a patch here ;-)

Regards


-- 
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