Bugs Fixed in DataFlex 18.0

Runtime

Text in a Form/dbForm's prompt button does not size properly when the form's FontPointHeight is changed

Bug 6696, reported by Matthias Burkhardt
The prompt button inside of a form/dbForm is supposed to adjust its width based on the text in the button (Prompt_Button_Value). The font should be the same as the font used within the form itself. The font being used to determine this width is not using a form's custom font when determining the width and when the FontPointHeight is changed to a bigger number, the text will be clipped.

For example the button's text "Hello" will appear clipped:

Object oForm is a Form
Set Size to 13 126
Set Location to 13 63
Set FontPointHeight to 18
Set Prompt_Button_Value to "Hello"
Set Prompt_Button_Mode to PB_PromptOn
End_Object

Blank datetime may be displayed when Short Regional Date Mask is set to dd-MMM-yyyy

Bug 6679, reported by Quality Assurance
The datetime mask does not display the proper value when the regional mask is "MMM" and the Value set in the mask contains a month name. Even though the value is stored correctly in datetime and string variables, a datetime control shows nothing.

In the example below, despite dDateT having the correct datetime in it, sd2 will be blank:

Object oForm1 is a Form
Set Size to 13 100
Set Location to 22 90
Set Form_Datatype 0 to Mask_Datetime_Window

Procedure add_focus Handle hoParent Returns Integer
DateTime dDateT dd2
String sD sD2
Move (CurrentDateTime()) to dDateT
Move (DateSetYear(dDateT,1852)) to dDateT
Move (DateSetDay(dDateT,9)) to dDateT
Move (CurrentDateTime()) to sD
Move dDateT to sD2
Move sD2 to dd2
// this sets value to a datetime with an 1852 year.
Set Value 0 to dDateT
Forward Send add_focus hoParent
Get Masked_Value to sd2
End_Procedure
End_Object

Wrong year may be stored in string variable when Short Regional Date Mask is set to yy

Bug 6678, reported by Quality Assurance
If the Short Regional Date Mask is set to two-digit years, when we go through a string conversion the year gets to be wrong in the end.

In the example below, iYr will have 1952 stored instead of 1852:
Procedure Test1
DateTime dt1 dt2
String st1
Integer iYr
Move (CurrentDateTime()) to dt1
Move (DateSetYear(dt1,1852)) to dt1 // datetime should now be 1852
Move dt1 to st1
Move st1 to dt2 // convert string back to datetime
Move (DateGetYear(dt2)) to iYr // get the year
If (iYr<>1852) Begin
Showln "ERROR: Bad year"
End
End_Procedure

Database Explorer

File association assignment for .DAT and .INT files did not always work

Bug 6668, reported by Quality Assurance
The file association assignment for .DAT and .INT files did not always work. The tab-page was redesigned -- the current file association information was moved to a readonly popup dialog.

You cannot change the display text of the association anymore.

Export wizard allows status panel checkboxes to check

Bug 6660, reported by Phil Kirby
When you select the Export data option, and get to the panel in the wizard that asks for Output details "Choose program/output names", the checkbox that allows one to Use a Statuspanel should only be selectable if the corresponding Output option has been selected. At the moment, you can select "Output to file", and check the statuspanel option in the "Output to printer" group

It is not possible to create a filter with a value identical to a column name

Bug 6609, reported by Th. Forstmeier
If the filter value is also a column name, the column value is taken instead of a constant value.

If you wanted to compare the customer name against the value ZIP, for example, the filter would use the value of the ZIP column instead of the string ZIP.

Automatic discovering was the cause of this and it was fixed by adding a checkbox that lets you indicate whether the value typed is a columns name.

Installation

Installations do not include SQLBase.int new in the Connectivity Kit 6

Bug 6625, reported by Quality Assurance
For 17.1 the installations (all: Studio, Server and Client) do not properly include the SQLBase.int file that is new to CK 6.0.

This new file, SQLBase.int, should be placed in the bin folder.

Installation and Environment Guide does not instruct Users to restart their machines after uninstalling older build

Bug 6166, reported by Quality Assurance
Installation and Environment Guide should recommend restarting user's machines between uninstalling one build of Visual DataFlex and installing another to avoid problems with the new revision that gets installed.

In the Installation Procedure we should add something like:

* Reboot your computer to release all DLL's which might be in memory. - after uninstalling any revision of Visual DataFlex, restart your machine prior to installing another build or revision of Visual DataFlex

Like below:

* Backup all data, your DataFlex applications and registry entries from any existing Visual DataFlex or WebApp installation.

* Reboot your computer to release all DLL's which might be in memory.

* Remove all instances of Beta or Pre-release versions of Visual DataFlex 2010 prior to installing this release. You can uninstall the program by clicking on the Add/Remove Programs button from the Windows Control Panel. Then select the appropriate Visual DataFlex version to remove from your system. Choose the Automatic Uninstall option to remove all DataFlex installed files. Any user-generated directories will remain intact.

* Reboot your computer to release all DLL's which might be in memory. - after uninstalling any revision of Visual DataFlex, restart your machine prior to installing another build or revision of Visual DataFlex.

* Make sure you are running a supported operating system and run the appropriate installation program as listed below.

Electos information is part of installation

Bug 6162, reported by Quality Assurance
Electos is no longer automatically installed with Visual DataFlex.

However, the Visual DataFlex installation screen and its Installation and Environment Guide still include old references such as:

Visual DataFlex 2010 includes a complete application for Web
content management - Electos! Electos is a perfect choice to
accompany Visual DataFlex 2010. Electos is immediately useful to
end-users, and it opens a wide range of opportunities for VDF
developers to integrate the system with their own applications to
create exciting new Internet solutions. The latest in content
management technology - Electos 4.0 - is automatically installed at
the end of the Studio installation.

Packages

If a Form/dbForm's Prompt_Button_Mode is PromptOn, Prompt_Button_Value must be set before Prompt_Button_Mode

Bug 6695, reported by Matthias Burkhardt
In Forms and dbForms the following does not work properly:

Object oForm is a Form
Entry_Item WAESCHEK.GRUPPE
Set Size to 13 100
Set Location to 10 10
Set Prompt_Button_Mode to PB_PromptOn
Set Prompt_Button_Value to "hello"
End_Object

The prompt button will show "..." and not "hello". If the order is reversed it works as expected

Object oForm is a Form
Entry_Item WAESCHEK.GRUPPE
Set Size to 13 100
Set Location to 10 10
Set Prompt_Button_Value to "hello"
Set Prompt_Button_Mode to PB_PromptOn
End_Object

Refreshing a cCJGrid/cDbCJGrid during a mouse grid activation may result in an error

Bug 6688, reported by Peter Bragg
If a cCJGrid or cDbCJGrid is activated via the mouse and it gets refreshed about during the focus change, it is possible the that row that was clicked on will no longer exist. When this happens an error occurs.

For example:

Run the order entry application and find (and note) two orders that have a different amount of items. For example, Order 103 has 4 items (and so shows 4 rows in the grid) whilst Order 104 only has 2.

Find record 103 and make sure that the cursor is in the Order Number entry.

Manually over-type this with 104 (the order I know to have less items). At this point - with the focus still inside the Order Number entry (don't find it).

Click on to the 4th row in the grid (which is still showing the lines for Order 103 because the new record has yet to be found). You will get an error.

What you should see is a timing issue whereby the act of exiting the Order Number finds the new record (104) but because Order 104 doesn't have as many items against it - and therefore not as many rows in the grid - the end result is that you then get a 'selected col has no selected row' error, followed by a 'COM object method invocation' error (because you've tried to click onto a row that now isn't there any more)

Invalid index error when trying to sort a cWebPromptList by a parent table column

Bug 6687, reported by Anders Ohrt
In a cWebPromptList with sortable columns, I have some columns that are not from the main table but from a related table. The index picked for these columns are from the related table, in my case clicking on the these columns headers tries to sort by an index that does not even exist in the main table, so it throws an "invalid index" error.

This can be reproduced easily with the attached workspace.

HelpTopic meta data tags missing from new Web Framework classes

Bug 6670, reported by Quality Assurance
Steps:
1. Open any of our sample cWebViews, for example Customer.wo
2. Place the cursor on any web framework class object declaration line, for example 'Object oCustomerName is a cWebForm'
3. Press Ctrl+F7 to synchronize the Properties panel to this object
4. Click in the Object (name) at the top of the Properties panel (it will say "oCustomerName")
5. Press F1
=> This will take you to the cObject page or a blank page, instead of taking you to the cWebForm in the help

The reason for this is that the web framework classes are missing the HelpTopic meta data tags, for example:
{ HelpTopic=cWebForm }

cDbCJGridColumn.pkg has dependency to DFTable.pkg

Bug 6650, reported by Vincent Oorsprong
cDbCJGridColumn.pkg has dependency to DFTable.pkg. It relies on a struct in that package named tGridComboHelper. This struct should be moved to its own file and used by both of these packages.

Entry_Client_mixin uses define_Auto_Locate twice

Bug 6642, reported by Quality Assurance
In the construct_object of the class Entry_Client_mixin the message define_Auto_Locate is sent twice. The method itself is empty, so sending it twice does not change or correct any functionality.

Tooltip for qualifiedItem is wrong

Bug 6641, reported by Quality Assurance
The codesense tooltip for the qualifiedItem method (in FleXML.pkg) shows incorrect information. It shows the parameters in reversed order.

Using dfabout with DFBTRDRV loaded generates an error

Bug 6624, reported by Matthias Burkhardt
Opening the about screen in Studio, Database Builder or your own application while the Pervasive.SQL Connectivity Kit (DFBTRDRV) is loaded, generates "Invalid driver function call 10005" error.

pbBypassDDFieldBuffer in a changed edit class moves caret when leaving the control

Bug 6607, reported by Pieter van Dieren
When you set pbBypassDDFieldBuffer of a cDbTextEdit to False, the caret is moved to the beginning of the edit when the view gets the focus again and the changed state of the edit is true.

This is reproducable in the Order Entry:

Open Customer.vw
Add 'Set pbBypassDDFieldBuffer to False' to oCustomer_Comments
Compile
Start the Customer Entry View
Select a record
Add some text to the Comments Edit
Place the caret at the end of the text
Press Alt-Tab
Press Alt-Tab to go back
-> the caret is moved to the beginning of the edit

You see this any time the edit regains the focus although it actually occurs when the control loses the focus.

So, when you switch views it happens too. Or in our case, when you have a context menu with which users can add default texts to the edit. Each time the context menu is closed, the caret is moved and thus our text is inserted at the wrong location.

Add DD_NOENTER support toggle to the cDbTextEdit class

Bug 6589, reported by Quality Assurance
If the code dynamically changes the DD_NOENTER option for a text field the cdbTextEdit object does not become readonly and gray colored.

This report actually opened up a series of issues with the data aware cTextEdit and cRichEdit controls:

* These controls did not respect No_put (technically the extended field buffer did not respect no_put). Fixed

* These controls did not respect and apply DD_NoEnter and DD_Commit conditions. Fixed

* Now that these controls will reflect no-enter, a property, pbNoEnterReadOnly, was added to determine if a no-enter control should be disabled or readonly. The default is readonly as this allows you scroll through the text and copy it.

* A new color property ReadOnlyColor was added to determine what the background color of a readonly control should be. If clNone, no color is applied and it works as before.

Mark Private.Validation_Types and Private.Code_Description_Value as private in meta data

Bug 6576, reported by Quality Assurance
When you type "Set private." CodeSense automatically substitutes this with "Set Private.Validation_Types" and this is not a property that should be exposed. This needs to be marked as private.

There is actually also a Private.Code_Description_Value which should be marked as private.

A change has been made so that all methods within a private class are now considered to be private. This will now hide these and other non-public methods in private classes.

Incorrect Text Alignment between a Label and the text in a dbForm

Bug 6563, reported by Raveen Ryan Sundram
If you compare the vertical alignment of a Form/dbForm's label with its text the alignment is not the same. In addition a TextBox and a Form with the same height and alignment do not quite match.

This appears to have always been the case although the difference may be more noticeable with different fonts (like Segoe UI), different DPIs and different monitors. This will also be more noticeable if your form has no border, but it is the same problem.

This is caused by several different issues, which have been addressed in 18.0. Note that vertical alignment between labels and text in combos will be imperfect. This is the nature of the Windows combo control and there is little we can do to improve this.

Bug in code order in PointSizeToPhysicalFontSize invalidates the font that's currently selected

Bug 6519, reported by Frank Cheng
GlobalFunctionsProcedures.pkg

Function PointSizeToPhysicalFontSize
.
.
.
Move (ReleaseDC(0, hDC)) to hDC
Move (SelectObject(hDC, holdFont)) to hOldFont
Move (DeleteObject(hFont)) to bVoid
Function_Return iFontSize
End_Function

The "ReleaseDC" line should be right after the "DeleteObject" line. This bug invalidates the font that's currently selected to the Desktop's DC, it also causes leaking of an existing font, which might cause painting issue of the desktop.

Add meta data tag to remove Transparent_State in checkbox property window

Bug 6513, reported by Quality Assurance
A checkbox does not support transparent_state, the property can be set however via the object properties pane in the Studio. For a FORM you cannot set it because Windows.Pkg contains the line:

{ OverrideProperty=Transparent_State DesignTime=False }

The same line needs to be added above the checkbox class.

Lowercase in DD_OperationChecker at the wrong location

Bug 6494, reported by Thomas Murphy
Line 61 of DD_OperationChecker.pkg contains a Lowercase() operation. It is performed on a constant instead on the passed in message name.

It should change from:

If (OPERATION_MODE=MODE_VALIDATING and sMessage<>Lowercase("request_save")) Begin

to:

If (OPERATION_MODE=MODE_VALIDATING and Lowercase(sMessage)<>"request_save") Begin

ListRowCount does not work for dbComboForm class

Bug 6470, reported by Flavio da Costa Figueiredo
ListRowCount does not work for dbComboForm class. It should limit the number of rows the drop down list displays, but does not.

This can easily be tested by adding a ListRowCount value to the oCustomer_State object in Customer.vw in the Order entry sample application. Set ListRowCount to 4.


It appears that the technique we were using no longer works with XP and above. We will use a different internal interface.

LoadData in cdbcjgridpromptlist queries but does not use phoInvokingObject

Bug 6464, reported by Quality Assurance
The method queries the phoInvokingObject property, but the returned value is not used.

Help

Language Reference: DF_API_DISABLED missing

Bug 6164, reported by Quality Assurance
The attribute DF_API_DISABLED is not documented. The attribute is set to true to avoid re-entrance. It is being set to true before the first time the callback message from an API command like SORT is received by your program and set to false at the end.

Code:
Boolean bDisabled
Open Customer
Get_Attribute DF_API_DISABLED to bDisabled // <-- false
Sort Customer.File_Number "1 2 3" (DF_SORT_OPTION_BAD_DATA_FIXUP ior DF_SORT_OPTION_DUP_DATA_ABORT) (oSimpleProcess)
Get_Attribute DF_API_DISABLED to bDisabled // <-- false again

In the code of oSimpleProcess:

Object oSimpleProcess is a cObject
Function CallBack String sMessage Integer iType Returns Integer
String sType
Boolean bDisabled

Get_Attribute DF_API_DISABLED to bDisabled

Case Begin
Case (iType = DF_MESSAGE_TEXT)
Move "(Text)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_1)
Move "(Message Heading 1)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_2)
Move "(Message Heading 2)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_3)
Move "(Message Heading 3)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_4)
Move "(Message Heading 4)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_5)
Move "(Message Heading 5)" to sType
Case Break
Case (iType = DF_MESSAGE_WARNING)
Move "(Warning)" to sType
Case Break
Case (iType = DF_MESSAGE_PROGRESS_TITLE)
Move "(Progress Title)" to sType
Case Break
Case (iType = DF_MESSAGE_PROGRESS_VALUE)
Move "(Progress value)" to sType
Case Break
Case End


Showln sMessage " -- " sType
End_Function
End_Object

The attribute returns true.

Studio Wizards

Add 'be' to the text of the 'Reporting Order and Breakpoints' page of the WinPrint report wizard

Bug 6703, reported by Mihalis Kapiris
On the 'Reporting Order and Breakpoints' page of the WinPrint report wizard, change "Select the index to used in this report." to "Select the index to be used in this report."

Add the word 'to' in the explanation for the names page in Web & Win lookup wizards

Bug 6698, reported by Mihalis Kapiris
The word 'to' was added to the lines "The object name and component name will be added to your data-dictionary class. This information is used to access the lookup list within an application."

Compiler

Access Violation may be raised at runtime if the name of the last defined message has an error

Bug 6605, reported by Wil van Antwerpen
When accessing the name of a message, which is normally only done by the DataFlex error handler or the debugger call stack an access violation may occur if that message is the last new message defined by the application.

The compiler stores all message names in the compiled .exe file. If the last message number happens to be a multiple of 32, it does not store it properly. If the runtime tries to access that name, an Access Violation occurs. Normally this would only occur when that last message has an error, because our error handler tries to get the message name.

This is an old bug, which is rather hard to encounter. To see this you'd have to have a error that involves your last defined message and even then you only have a 1/32 chance of it causing an access violation.

Error Maintenance

Browsing through the grid often pops up question about save changes

Bug 6652, reported by Quality Assurance
If you browse through the error grid, you quite often get a question whether you want to save changes or not, while you did not deliberately made changes.

The error grid is a special grid, as the error number is a record number plus an offset.

This bug is fixed by replacing the old dbGrid with the newer cDbCJGrid class.

Studio

Invalid CDS Node when deleting relationship

Bug 6717, reported by Quality Assurance
If you delete a relationship in Table Editor, then save the Studio raises an Invalid CDS Node error. Steps to reproduce in Order Entry...

[1] Open the OrderDtl Data Dictionary. Go to the Structures Tab.
[2] In the Required Parent Tables list select the "Nulls" checkbox for the Invt table. Save all changes.
[3] Open OrderDtl in Table Explorer and delete the relationship to Invt
[4] Save

You will get two Invalid node handle errors.

'File is Read Only' dialog that appears when trying to save edits in a read only file cuts off long file names

Bug 6680, reported by Quality Assurance
'File is Read Only' dialog that appears when trying to save edits in a read-only file cuts off long file names.

Images in the Studio's Statusbar do not scale properly at higher DPIs

Bug 6664, reported by Quality Assurance
The images in the Studio's statusbar do not scale well at higher DPIs like 125%. Actually the problem is they attempt to scale which looks bad. For example, if you load a pkg file like DataDict.pkg the readonly symbol looks ragged at 125% DPI.

Other images in the Studio and a Statusbar pane image in the visual modeler do not have this problem.

Error displayed when pressing F7 for external file open in the Studio

Bug 6646, reported by Quality Assurance
Error displayed when trying to display component in design mode when the file is from a different workspace.

To reproduce the problem:

1.) Open "Order Entry" workspace.
2.) Open a file from another workspace.
3.) Click on the Studio's View menu or press the F7 key to switch to design mode.
4.) The error below will be displayed:

C:\Program Files (x86)\Visual DataFlex 17.1\Bin\Studio.exe
COM object method invocation error. The specified file (C:\Visual DataFlex 17.1 Examples\Web Services Clients\AppSrc\CheckBook.vw) is not available in the meta database

Error: 4399

Please report this error to Data Access Corporation

GET_COMGETFILECOMPONENTTYPE (11714) - oCodeMetaData (3643) - at address 82607
GET_ISAJAXCOMPONENT (16120) - oWorkspaceExplorer_pnl (2933) - at address 197390
MSG_TOGGLEVIEWS (13666) - oObject (3647) - at address 119619
MSG_REQUESTTOGGLEVIEWS (17556) - oMain (761) - at address 225924
GET_EXECUTE@0 (11744) - oObject (662) - at address 127044
MSG_ONSHORTCUT (11746) - oObject (662) - at address 82901
MSG_PROCESS_ACCELERATOR (455) - oObject (3519) - in native code
[start] - at address 226070

Add Validation Object dialog can be resized to be too small

Bug 6643, reported by Quality Assurance
The piMinSize of the add validation object dialog is too low. The list component on the right hand side can be resized too much and the label above it almost writes through the border. See attached image.

Long Label for DataDictionary table column with double quotes triggers a Studio modeling error

Bug 6630, reported by Allan Kim Eriksen
If a Long Label property of a table column in the DD class has a label with double quotes (.e.g. Invt Item "ID"), it triggers a Studio modeling error when dragging the table column to a view or dialog from DDO Explorer.

Client Web services with <import> schemas may not work if xmlns:pre attributes differ in the imported from and to schemas

Bug 6622, reported by Allan Kim Eriksen
The Studio's web-service class generator was not properly handling the case of a schema <import> when the imported-from schema contained an attribute (xmlns:Foo="URI1") that had the same name as an attribute in the imported-to schema (xmlns:Foo="URI2"). This would result in a parsing error. You could generate the web-service class but it would not run.

This has been corrected.

Error 4399 when right-clicking on the tab for a view not in the current workspace

Bug 6599, reported by Frank Valcarcel
I loaded a view from a different workspace into the editor to look at code and then right clicked on the view tab.

This triggered an error 4399:

C:\Visual DataFlex 17.1\Bin\Studio.exe
COM object method invocation error. The specified file (C:\Visual DataFlex 17.1 Examples\Contact Management\AppSrc\Contacts.vw) is not available in the meta database

Error: 4399

Please report this error to Data Access Corporation

GET_COMGETFILECOMPONENTTYPE (11714) - oCodeMetaData (3515) - at address 82607
GET_ISAJAXCOMPONENT (16120) - oWorkspaceExplorer_pnl (2933) - at address 197390
GET_ISENABLED (8896) - oOpenNewTabMenuItem (782) - at address 139008
SET_PBENABLED (1537) - oOpenNewTabMenuItem (782) - at address 53001
MSG_UPDATE (364) - oOpenNewTabMenuItem (782) - at address 53001
MSG_POPUPINIT (8787) - oGlobalCommandBarSystem (2796) - at address 51967
MSG_CREATEPOPUPCOMINSTANCE (8854) - oTabWindowContextMenu (762) - at address 52534
MSG_POPUP (290) - oTabWindowContextMenu (762) - at address 52545
MSG_POPUP (290) - oTabWindowContextMenu (762) - at address 83105
MSG_TABCONTEXTPOPUP (14216) - oTabWindowContextMenu (762) - at address 139133
MSG_ONTWCONTEXTMENUTAB (1667) - oMain (761) - at address 225607
[start] - at address 226070

Rebuild DD list does not work when no DDClassList.XML is present

Bug 6524, reported by Quality Assurance
If you want to force a full regenerate of DDClassList and therefore remove the file from disk the rebuild DDClassList, it does not do anything. No errors are triggered, only a message in the output that 0 tables have been added.

=> This now creates a new DDClassList.XML file if none is present. Note that you cannot delete the file while the Studio already has the workspace in question open, You must close that workspace, delete the file, then reopen the workspace and rebuild the DD Class List from Tools > Data Dictionary Maintenance > Rebuild DD List (DDClassList.XML)...

Enlarge the table name control in the table editor

Bug 6501, reported by Richard Hogg
Increase the width of the Table Name control in the Table Editor, now that the column name length has been increased from 8 to 31 characters.

The Remember Toolbar should have a psTitle

Bug 6458, reported by Quality Assurance
The remember toolbar added to 17.0 does not have a psTitle set. Now the toolbar appears as "Toolbar" in the floating menu on the commandbars.

Change ClassList.XML to not add DFALLENT for a dbGroup

Bug 6391, reported by Quality Assurance
When dragging and dropping a dbGroup from the Class Palette, a Use DFAllEnt.pkg statement is added to your component. For self containment, that is not needed as dbGroup requires dfClient.pkg.

Pressing F7 after changing object name triggers series of unhandled exceptions

Bug 6229, reported by Joao Mauricio Rinardo
If you change an object name and press the F7 key, a couple of 4399 errors are shown. The error details are below:

C:\Program Files (x86)\Visual DataFlex 16.1\Bin\Studio.exe
Erro na invoca‡ao de m‚todo objeto COM. Invalid CDS node handle

Error: 4399

Please report this error to Data Access Corporation

GET_COMGETNODESTARTLINE (11373) - OCDS (4839) - at address 78269
MSG_SETCDSLINES (13244) - OOBJECT (3408) - at address 111060
MSG_ONCOMUPDATENODE (11394) - OOBJECT (3873) - at address 114211
MSG_ONCOMUPDATENODE (11394) - OCDS (3412) - at address 81724
GET_INVOKECOMMETHOD (1374) - oDispatchDriver (2894) - in native code
MSG_COMUPDATENODE (11357) - OCDS (2893) - at address 78142
MSG_COMMITCHANGE (15864) - OOBJECTNAMEFORM (2897) - at address 191850
MSG_ONKILLFOCUS (4478) - OOBJECTNAMEFORM (2897) - at address 191806
MSG_NOTIFY_FOCUS_CHANGE (654) - OOBJECTNAMEFORM (2897) - at address 2848
MSG_ONDFFOCUS (1380) - OOBJECT (3408) - in native code
MSG_ACTIVATE (117) - OOBJECT (3408) - in native code
MSG_ACTIVATE (117) - OOBJECT (3408) - at address 1668
MSG_TOGGLEACTIVEEDITOR (13355) - OOBJECT (3873) - at address 114453
MSG_TOGGLEVIEWS (13356) - OOBJECT (3873) - at address 114541
MSG_REQUESTTOGGLEVIEWS (16491) - OMAIN (735) - at address 208391
GET_EXECUTE@0 (11481) - OOBJECT (645) - at address 121636
MSG_ONSHORTCUT (11483) - OOBJECT (645) - at address 79092
MSG_PROCESS_ACCELERATOR (455) - OOBJECTNAMEFORM (2897) - in native code
[start] - at address 208537