Consultor Eletrônico



Kbase P114660: OpenEdge 10 session crashes using Microsoft ListView control version 5 due to empty SubItems
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   02/06/2009
Status: Verified

SYMPTOM(s):

Using Microsoft ImageList and Microsoft ListView ActiveX controls supplied in COMCTL32.OCX

There are no values assigned to SubItems

Using assignment block similar to the following:

ASSIGN
chItem = chListItems:ADD(sequenceValue,
uniqueID,
"Test",
1,
1)

chItem:SubItems(1) = "SubItems1" WHEN "chk1" = "chk2"
chItem:SubItems(2) = "SubItems2"
chItem:SubItems(3) = "SubItems3"
chItem:SubItems(4) = "SubItems4"

chItem:Tag = "ItemTag"
.

Progress session crashes when the code is run

Stack trace from COMCTL32.DLL reads:

DLLGetDocumentation

Stack trace from VSAPI.DLL reads:

vsFileMove
vsPropGetB
vsUnregisterWindow
DllStartup

Same code runs properly in Progress 9.1x

FACT(s) (Environment):

OpenEdge 10.0B
OpenEdge 10.1A
Windows

CHANGE:

Upgraded from Progress 9

CAUSE:

This is a bug in the ActiveX control.

FIX:

Upgrade to Microsoft ListView Control 6.0 (SP6) or later.
- OR -
Assign a value to the sub-item, even if it is an empty string. For the sample code above, use IF THEN ELSE function in place of WHEN to ensure that the first sub-item is assigned a value. For example:

chItem:SubItems(1) = IF "chk1" = "chk2" THEN "SubItems1" ELSE ""