Modify

Opened 12 years ago

Closed 12 years ago

#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 12 years ago.
Script to show _GUIToolTip_EnumTools behaviour

Download all attachments as: .zip

Change History (5)

Changed 12 years ago by Bowmore

Script to show _GUIToolTip_EnumTools behaviour

comment:1 follow-up: Changed 12 years ago by 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?

comment:2 Changed 12 years ago by TicketCleanup

  • Version set to Other

Automatic ticket cleanup.

comment:3 in reply to: ↑ 1 Changed 12 years ago by anonymous

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 Changed 12 years ago by Valik

  • Resolution set to No Bug
  • Status changed from new to closed

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.

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as closed The owner will remain Gary.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.