Hi Wine-Devel,
I'm currently working on a patchset to get UIRibbon to work, or at least to not crash the program.
I noticed that the ribbon xml files need to be compiled with a program called UICC.exe from the windows SDK, the resulting resources have some proprietary binary format. If we want to load and display a ribbon, we'll have to understand it. Does anyone know about information on that, or is the only way to reverse engineer it?
Regards, Fabian Maurer
On Fri, 28 Jul 2017 at 23:53, Fabian Maurer dark.shadow4@web.de wrote:
Hi Wine-Devel,
I'm currently working on a patchset to get UIRibbon to work, or at least to not crash the program.
I noticed that the ribbon xml files need to be compiled with a program called UICC.exe from the windows SDK, the resulting resources have some proprietary binary format. If we want to load and display a ribbon, we'll have to understand it.
This sounds like a blocker to me, at this point at least. What are the options for applications? Can you use raw xml too (this could be useful if ribbon description is generated in runtime)?
Does anyone know about information on that, or is the only way to reverse engineer it?
Does it use DirectUI thing or something similarly undocumented and unstable?
Regards, Fabian Maurer
This sounds like a blocker to me, at this point at least. What are the options for applications? Can you use raw xml too (this could be useful if ribbon description is generated in runtime)?
AFAIK, no. The xml must be compiled by UICC.exe, and the binary embedded as resource. You can't really generate stuff at runtime, but the application can hide controls.
Does it use DirectUI thing or something similarly undocumented and unstable?
Sorry, I never heard about DirectUI, so I don't know. But I doubt it since there is no need for any dlls that look directui related. You can make ribbons work on wine by using "propsys.dll, uiribbon.dll, uiribbonres.dll, uxtheme.dll" from win7, and a hack for the built-in user32.
It's undocumented sure, I didn't find any information about it after hours of googling. I don't know if I'd call it unstable though, it works well across windows versions.
Luckily the UICC compiler works under wine (with msxml3 msxml6), so at least compiling is easily. If you want to see an example, I can provide one.
I already began poking around in the binary format, but I'm not very experienced with binary analysis and the ribbon information is fairly complex, too. And reversing an unknown format is always a bunch of work, I guess.
Regards, Fabian Maurer