xxfxxf / chromiumembedded

Automatically exported from code.google.com/p/chromiumembedded
0 stars 0 forks source link

Tooltip does not show if libcef used from DLL project #367

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
It appears something about managing and using CEF from within a DLL (as opposed 
to directly from an Executable) will prevent tooltips showing. The same project 
loaded directly from an executable works fine.

What steps will reproduce the problem?
1. Create a bootstrap executable project and a DLL project.
2.  Have the exe project load and run a method in the DLL project dynamically 
(e.g. LoadLibrary/GetProcAddress, etc.). Call a function within the DLL (e.g. 
TestRunApp()).
3. Within the DLL (e.g. TestRunApp()), create and use CEF to create a basic 
window with a simple HTML that will generate a tooltip (e.g. title value on an 
image)

What is the expected output? What do you see instead?
Expect to see tooltip (easily visible just loading the HTML resource in a 
browser). Instead, we see nothing.

What version of the product are you using? On what operating system?
r263 Windows 7 x64 (although I dont think there have been any changes that will 
address this in more recent revisions)

Please provide any additional information below.
After doing some basic debugging, I can see all the relevant tooltip methods 
seem to get called. Inside CEF, all seems well, but the WIN32 tooltip 
notifications (e.g. TTN_SHOW, etc.) dont seem to be called. When the same 
resources are run from a basic single-exe application,, the notifications come 
through as expected.

Original issue reported on code.google.com by r...@emotum.com on 6 Oct 2011 at 5:06

GoogleCodeExporter commented 9 years ago
It is looks as you bootstrap executable doesn't contain application manifest.
Default tooltip implementation require Microsoft.Windows.Common-Controls 6. If 
it is not specified - no tooltips displayed.

Check cefclient_win.cpp(47) for more details:

#if defined(OS_WIN)
// Add Common Controls to the application manifest because it's required to
// support the default tooltip implementation.
#pragma comment(linker,"/manifestdependency:\"type='win32' 
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' 
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif

Original comment by fdd...@gmail.com on 10 Oct 2011 at 5:33

GoogleCodeExporter commented 9 years ago
Based on comment #1 this issue seems to be user error.

Original comment by magreenb...@gmail.com on 18 Oct 2011 at 12:31