Modify

#507 closed Bug (No Bug)

Problem with GuiToolTip UDF functions using only TTM_*W message constants.

Reported by: Bowmore Owned by: Gary
Milestone: Component: Standard UDFs
Version: Other Severity: None
Keywords: Cc:

Description

Win XP Pro Sp2
AutoIt 3.2.13.7
Last known working version AutoIt 2.2.10.0

Changes made since AutoIt version 3.2.10.0 to this UDF to use only the TTM_*W version of messages have resulted in some of the functions no longer working on some third party applications. I've tried the simple test script attached on many different applications with the following results.

Using the TTM_*W messages works on most but not all applications

Using the TTM_*A messages works on all applications that TTM_*W messages works on plus some that TTM_*W messages do not work on.

I've created the attached test script to displays tooltip info for toolbar buttons using modified versions of the GUI_ToolTips functions _GUIToolTip_EnumTools() and _GUIToolTip_GetText() to demonstrate the effect of using both ANSI (Hotkey 1) and Wide messages (Hotkey 2)

The only commonly available application I've been able to find that shows the behaviour I have observed is AutoIt3\SciTE\AutoItMacroGenerator\AutoItMacroGenerator02.exe

Attachments (1)

Demo_GUIToolTip_EnumTools.au3 (6.7 KB ) - added by Bowmore on Aug 8, 2008 at 2:32:51 PM.
Script to show _GUIToolTip_EnumTools behaviour

Download all attachments as: .zip

Change History (5)

by Bowmore, on Aug 8, 2008 at 2:32:51 PM

Script to show _GUIToolTip_EnumTools behaviour

comment:1 by Valik, on Aug 8, 2008 at 3:53:23 PM

I don't know what to say about this. Windows is supposed to marshal the data for you. The only thing I can think of is that the apps are incorrectly using RegisterWindowW() to register their window class when in fact they are ANSI applications. When an app does that, Windows does not do the usual conversion from UNICODE to ANSI for the window (since it incorrectly flagged itself as UNICODE when it's not).

I do not have the test application to confirm my guess, is it part of SciTE4AutoIt3?

comment:2 by TicketCleanup, on Aug 8, 2008 at 4:00:25 PM

Version: Other

Automatic ticket cleanup.

in reply to:  1 comment:3 by anonymous, on Aug 8, 2008 at 7:04:54 PM

Replying to Valik:

I don't know what to say about this. Windows is supposed to marshal the data for you. The only thing I can think of is that the apps are incorrectly using RegisterWindowW() to register their window class when in fact they are ANSI applications. When an app does that, Windows does not do the usual conversion from UNICODE to ANSI for the window (since it incorrectly flagged itself as UNICODE when it's not).

I do not have the test application to confirm my guess, is it part of SciTE4AutoIt3?

Hi Valik. Yes AutoItMacroGenerator02.exe is included with SciTE4AutoIt3. The application I first noticed this behavior in was ESRI ArcMap

comment:4 by Valik, on Sep 21, 2008 at 6:54:51 PM

Resolution: No Bug
Status: newclosed

I just tested with AutoItMacroGenerator02.exe. It doesn't do what I said but it is doing something that I can't identify. Here are my observations:

  • I tested with 2 different programs that have a toolbar. When I press 1 or 2 when hovering over a toolbar button I get _1_ window (_ArrayDisplay()) showing me information on the button I'm hovering over.
  • When I do the same thing with AutoItMacroGenerator02.exe I get a lot of windows showing me information on every toolbar button.

This says to me that AutoItMacroGenerator02.exe is doing something non-standard or something not compatible with the enumeration method you are trying to use.

As best I can tell, this isn't a bug in AutoIt.

Modify Ticket

Action
as closed The owner will remain Gary.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.