http://bugs.winehq.org/show_bug.cgi?id=19592
Summary: Embedded Richedit copy to clipboard no longer works. Product: Wine Version: 1.1.26 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: bugzilla.winehq.org@urbanec.net
I am using an application that contains an embedded richedit component for showing read-only text output. Older versions of wine (last tested was 1.1.19) allowed me to highlight some text and press CTRL+C to copy it.
Current versions of wine (tested with 1.1.26) do not allow this anymore. When I press CTRL+C the following is printed on the console and the clipboard does not contain the text that was supposed to be copied.
err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046} err:ole:marshal_object couldn't get IPSFactory buffer for interface {0000010e-0000-0000-c000-000000000046} err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80040155 err:ole:CoMarshalInterface Failed to marshal the interface {0000010e-0000-0000-c000-000000000046}, 80040155 err:ole:CoReleaseMarshalData IMarshal::ReleaseMarshalData failed with error 0x8001011d
http://bugs.winehq.org/show_bug.cgi?id=19592
--- Comment #1 from Andrew Nguyen arethusa26@gmail.com 2009-08-05 22:21:43 --- Can you please perform a regression test? See http://wiki.winehq.org/RegressionTesting
http://bugs.winehq.org/show_bug.cgi?id=19592
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|major |minor
http://bugs.winehq.org/show_bug.cgi?id=19592
--- Comment #2 from Ken Sharp kennybobs@o2.co.uk 2009-08-06 01:49:59 --- And what is the application and where can it be downloaded?
http://bugs.winehq.org/show_bug.cgi?id=19592
--- Comment #3 from Peter Urbanec bugzilla.winehq.org@urbanec.net 2009-08-06 01:56:14 --- I am currently running a git bisect and so far it looks like the problem was introduced before 1.1.25
The simplest test case is to use wine's own wordpad. Type some text, then highlight a word and press CTR+C
I'll continue with git bisect in an attempt to narrow it down to a specific commit.
http://bugs.winehq.org/show_bug.cgi?id=19592
--- Comment #4 from Ken Sharp kennybobs@o2.co.uk 2009-08-06 02:02:44 --- OK, it works fine here. Will wait for regression test results then.
http://bugs.winehq.org/show_bug.cgi?id=19592
--- Comment #5 from Peter Urbanec bugzilla.winehq.org@urbanec.net 2009-08-06 07:17:56 --- It looks like the problem appears as of commit 6d4a39409995c91372c182aa55f791d440ba34a1
ole32: Store the marshalled IDataObject in a window property of the clipboard window.
This is somewhat different from how Windows behaves. Windows stores two properties; an IID and an endpoint number.
http://bugs.winehq.org/show_bug.cgi?id=19592
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression CC| |huw@codeweavers.com
--- Comment #6 from Austin English austinenglish@gmail.com 2009-08-06 12:34:17 --- CC'ing Huw
http://bugs.winehq.org/show_bug.cgi?id=19592
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |ole32
--- Comment #7 from Juan Lang juan_lang@yahoo.com 2009-08-06 15:05:27 --- By the look of it, it's an ole bug.
http://bugs.winehq.org/show_bug.cgi?id=19592
--- Comment #8 from Peter Urbanec bugzilla.winehq.org@urbanec.net 2009-08-06 20:16:26 --- In an attempt to figure out where things may be failing, I turned on the ole and reg debug channels. Here is a section of the resulting trace:
trace:ole:OleSetClipboard (0x4a3868) trace:ole:CoMarshalInterface (0x1387b0, {0000010e-0000-0000-c000-000000000046}, 0x4a3868, 0, (nil), MSHLFLAGS_TABLESTRONG) trace:ole:CoGetStandardMarshal ({0000010e-0000-0000-c000-000000000046},0x4a3868,0,(nil),1,0x32f3c4) trace:ole:CoMarshalInterface Using standard marshaling trace:ole:CoMarshalInterface Calling IMarshal::MarshalInterace trace:ole:StdMarshalImpl_MarshalInterface (...,{0000010e-0000-0000-c000-000000000046},...) trace:ole:RemUnknown_QueryInterface (0x14a098)->({00000131-0000-0000-c000-000000000046}, 0x32f0a0) trace:ole:RemUnknown_AddRef 0x14a098 before: 1 trace:ole:CoGetPSClsid () riid={00000131-0000-0000-c000-000000000046}, pclsid=0x32f050 trace:reg:NtCreateKey ((nil),L"Machine\Software\Classes",<null>,0,f003f,0x32ee70) trace:reg:NtCreateKey <- 0x60 trace:reg:create_special_root_hkey L"Machine\Software\Classes" -> 0x60 trace:reg:NtOpenKey (0x60,L"Interface\{00000131-0000-0000-C000-000000000046}\ProxyStubClsid32",20019,0x32ef08) trace:reg:NtOpenKey <- (nil) warn:ole:CoGetPSClsid No PSFactoryBuffer object is registered for IID {00000131-0000-0000-c000-000000000046} err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046} trace:ole:RemUnknown_Release 0x14a098 after: 1 trace:ole:RemUnknown_Release 0x14a098 after: 0 trace:ole:CoGetPSClsid () riid={0000010e-0000-0000-c000-000000000046}, pclsid=0x32f270 trace:reg:NtOpenKey (0x60,L"Interface\{0000010E-0000-0000-C000-000000000046}\ProxyStubClsid32",20019,0x32f128) trace:reg:NtOpenKey <- (nil) warn:ole:CoGetPSClsid No PSFactoryBuffer object is registered for IID {0000010e-0000-0000-c000-000000000046} err:ole:marshal_object couldn't get IPSFactory buffer for interface {0000010e-0000-0000-c000-000000000046} err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80040155 err:ole:CoMarshalInterface Failed to marshal the interface {0000010e-0000-0000-c000-000000000046}, 80040155 trace:ole:CoMarshalInterface completed with hr 0x80040155 trace:ole:CoReleaseMarshalData (0x1387b0) trace:ole:get_unmarshaler_from_stream Using standard unmarshaling trace:ole:StdMarshalImpl_ReleaseMarshalData iface=0x149730, pStm=0x1387b0 trace:ole:StdMarshalImpl_ReleaseMarshalData oxid = 32f404ff000000, oid = 7effe9c000000020, ipid = {00000018-0000-0000-08f4-320086ccf6b7} warn:ole:StdMarshalImpl_ReleaseMarshalData Could not map OXID 32f404ff000000 to apartment object err:ole:CoReleaseMarshalData IMarshal::ReleaseMarshalData failed with error 0x8001011d
http://bugs.winehq.org/show_bug.cgi?id=19592
Peter Urbanec bugzilla.winehq.org@urbanec.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ole32 |wineserver
--- Comment #9 from Peter Urbanec bugzilla.winehq.org@urbanec.net 2009-08-09 05:39:27 --- Further investigation reveals that for some reason, my installation is missing all entries under \Machine\Software\Classes\
This occurs even if I completely remove ~/.wine and have it automatically recreated. The problem occurs on builds I generate from source, however everything works OK when I use the Gentoo wine ebuild.
At this stage I'll chalk this problem up to something peculiar about my local build, but I will keep investigating this problem so that I can identify the underlying cause. I think the problem is unlikely to be in ole32 - it's just where it happens to manifest itself. I think it's more likely that the problem is somewhere in wineserver when the registry keys are being created.
http://bugs.winehq.org/show_bug.cgi?id=19592
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|huw@codeweavers.com | Component|wineserver |-unknown
--- Comment #10 from Dmitry Timoshkov dmitry@codeweavers.com 2009-08-09 07:01:06 --- It's definitely not wineserver. Most likely the bug is invalid due to the way you are building Wine from source.
http://bugs.winehq.org/show_bug.cgi?id=19592
Peter Urbanec bugzilla.winehq.org@urbanec.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID
--- Comment #11 from Peter Urbanec bugzilla.winehq.org@urbanec.net 2009-08-10 13:33:44 --- I tracked down the source of the problem. It was a patch applied to my local git tree that introduced a bug in wine_nt_to_unix_file_name() in dlls/ntdll/directory.c
This bug in turn caused CreateFileW() to fail when attempting to load wine.inf and as a consequence many parts of the system ended up not being correctly initialised. It would have been handy if wine complained a bit more about the various failures, such as inability to read wine.inf or failure in OLE32_DllRegisterServer().
Closing bug as invalid, since it was caused by local changes.
http://bugs.winehq.org/show_bug.cgi?id=19592
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Vitaliy Margolen vitaliy@kievinfo.com 2009-08-10 21:24:25 --- Closing invalid.