View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006769 | JEDI VCL | 00 JVCL Components | public | 2023-12-08 19:08 | 2023-12-31 01:04 |
Reporter | rvk | Assigned To | AHUser | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | Daily / GIT | ||||
Target Version | Fixed in Version | Daily / GIT | |||
Summary | 0006769: Loading of wrong class in TJvRichEdit when RICHED20.DLL is used | ||||
Description | JvRichEdit.pas tries to load RichEdit40ModuleName (MSFTEDIT.DLL). If that fails it will load RichEdit20ModuleName (RICHED20.DLL) instead. For RICHED20.DLL the RichEditVersion is initially set at 2. But directly below, the RichEditVersion is set to the fileversion (FI.dwFileVersionMS and $FFFF) div 10 from the RICHED20.DLL. It happens to be that RICHED20.DLL can contain a version number 5.0 so RichEditVersion is 5. Later on in CreateParams there is this line: if RichEditVersion >= 4 then CreateSubClass(Params, MSFTEDIT_CLASS) So it will try to create a MSFTEDIT_CLASS for the RICHED20.DLL which isn't going to work. | ||||
Steps To Reproduce | The complete TJvRichEdit component doesn't work when MSFTEDIT.DLL fails to load and RICHED20.DLL is used. The check in TJvCustomRichEdit.CreateParams should also check if MSFTEDIT.DLL is really used before using MSFTEDIT_CLASS. (or the RichEditVersion should be hardcoded to a maximum of 3 to make sure MSFTEDIT_CLASS isn't used) | ||||
Tags | No tags attached. | ||||