Activity for OWLNext: C++ Application Framework

  • Vidar Hasfjord Vidar Hasfjord committed [r8774] on Code

    RGR: examples/replaceplus: UNICODE build mode fails [r8772].

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8773] on Code

    CHG: ReplacePlus example: Optimize the population of the results listbox control.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8772] on Code

    CHG: ReplacePlus example: Display the number of replacements per file in the results list.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8771] on Code

    CHG: ReplacePlus examples: Attempts to calculate the minimum window size from the dialog template.

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #217

    @jogybl wrote: Had a better idea Very nice!

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8770] on Code

    CHG: ReplacePlus example: Preserve dialog position and size. See comment in [feature-requests:#217].

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8769] on Code

    CHG: ReplacePlus example: Dialog adjustments.

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #217

    align the horizontal separator line to the bottom as well, so that it moves with the buttons (or perhaps better yet, lock the window height to the default, leaving just the width adjustable) Had a better idea what to do with the space between the controls and the buttons. :-)

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8768] on Code

    NEW: ReplacePlus example: Display the list of processed files.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8767] on Code

    CHG: ReplacePlus example: Change text of action button depending on selected action (Replace or Touch).

  • Vidar Hasfjord Vidar Hasfjord modified a wiki page

    Frequently_Asked_Questions

  • Vidar Hasfjord Vidar Hasfjord posted a comment on discussion Open Discussion

    Scaling on High-DPI screens Legacy applications that are not DPI-aware are scaled by Windows by default (unless overridden in the Properties for the executable or in the general DPI and scaling settings in Windows). This may or may not be what you want. A problem on high-DPI screens, with or without the default scaling, is that the size of the original bitmap glyphs for the control bar may prove to be too small for comfort. For more info, see "Support for high-DPI" [feature-requests:#171] and related...

  • Vidar Hasfjord Vidar Hasfjord posted a comment on discussion Open Discussion

    Hi, and welcome to the forum! Hi, firstly thanks to everyone who contributes here. Thanks! Much appreciated. I was able to get my old owl 5 program converted to owlnext 7 and its great. 64 bit and everything in VS2022 in a real treat. That's great to hear! Please post a review. The only issue i have remaining before testing is the TControlBar for all the shortcut buttons. The old one works fine but its way too small on a high res monitor. As AI suggested, you can create larger source bitmaps. For...

  • Anonymous posted a comment on discussion Open Discussion

    Hi, firstly thanks to everyone who contributes here. I was able to get my old owl 5 program converted to owlnext 7 and its great. 64 bit and everthing in VS2022 in a real treat. The only issue i have remaining before testing is the TControlBar for all the shortcut buttons. The old one works fine but its way too small on a high res monitor. Based on advice by AI i have creaded a strip bitmap 32 pixels high by 20 images. 20x32. To create the bitmap i downloaded a bunch of png icons from google materials...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #217

    @jogybl, it works great, thanks! Consider activating persistent window position by setting the the new flag wfPersistentExtent [feature-requests:#258] on the main window (and disable it for the client). Also, the title for the default button ("Replace") should become "Touch" when the touch action is selected, perhaps? And the action "Find" should actually be named "Replace", shouldn't it? PS. For some further polish, align buttons Replace, Close and Help to the right with closer spacing, similar...

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #217

    @jogybl, it works great, thanks! Consider activating persistent window position by setting the the new flag wfPersistentExtent [feature-requests:#258] on the main window (and disable it for the client). PS. For some further polish, align buttons Replace, Close and Help to the right with closer spacing, similar to wizard conventions, and align the horizontal separator line to the bottom as well, so that it moves with the buttons (or perhaps better yet, lock the window height to the default, leaving...

  • Vidar Hasfjord Vidar Hasfjord modified a wiki page

    OWLMaker

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #54

    In discussion: https://sourceforge.net/p/owlnext/discussion/97175/thread/8cbc674381/?limit=100#7630 @sebas_ledesma wrote: This is a sample code to detect BOM and load a text file with the corresponding translation. I've done a quick code review. First, the important stuff: You need error checking. Your myFgets function may truncate the line read due to the use of fixed-size buffers. Tip: Allocate buffers (e.g. std::vector) of size 4 times maxLen instead. That should cover even extreme cases, in which...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #54

    In discussion: https://sourceforge.net/p/owlnext/discussion/97175/thread/8cbc674381/?limit=100#7630 @sebas_ledesma wrote: This is a sample code to detect BOM and load a text file with the corresponding translation. I've done a quick code review. First, the important stuff: You need error checking. Your myFgets function may truncate the line read due to the use of fixed-size buffers. Tip: Allocate buffers (e.g. std::vector) of size 4 times maxLen instead. That should cover even extreme cases, in which...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #54

    Here it's a sample code of writeBOM [...and...] myFputs. Quick code review: The byte order marks for UTF-32 are wrong. You need error checking. Your myFputs function may truncate lines due to the use of fixed-size buffers. Tip: Use dynamic allocation instead. MultiByteToWideChar and WideCharToMultiByte can be called with a nullptr to calculate the size of the buffer needed. For feedback on coding style etc, see my earlier code review for myFgets. Here is some (untested) modern C++ for writing the...

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #217

    ReplacePlus: Resizable program window

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #217

    Implemented in [r8766].

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8766] on Code

    NEW: ReplacePlus: Resizable program window ([feature-requests:#217]).

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #204

    Add support for image lists in TButton

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #279

    Linker error _owlpch_dummy

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #559

    Changes to TEdit and TRichEdit implemented in [r8763] and [r8764].

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8765] on Code

    CHG: Updated TEdit and TRichEdit examples to use the new margin methods ([bugs:#559]).

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8764] on Code

    CHG: Added TEdit::SetMargins method. See [bugs:#559].

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8763] on Code

    CHG: Removed the deletion of the margin related methods in TRichEdit and implemented the RichEdit specific override of SetMarginUseFontInfo. See [bugs:#559].

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #559

    Problems with the implementations of EM_SETMARGINS and EM_GETMARGINS

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #573

    The simple fix for the potential buffer overflow has been merged to the branches 7 (in [r8760], 6.44 (in [r8761]) and 6.36 (in [r8762]).

  • Ognyan Chernokozhev Ognyan Chernokozhev modified a wiki page

    OWLNext_Stable_Releases

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8762] on Code

    Merged [r8759] from trunk:

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8761] on Code

    Merged [r8759] from trunk:

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8760] on Code

    Merged [r8759] from trunk:

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8759] on Code

    BUG: Implemented the quick fix for the potential buffer overflow in TFileDocument::GetProperty ([bugs:#573]).

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #606

    OwlExt::TCalcEdit and TCalendarEdit always display the popup on the primary monitor

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8758] on Code

    CHG: TDialogRes example: Added a ShowDialog button that displays a dummy instance of the selected dialog template.

  • Ulrich Sternberg Ulrich Sternberg posted a comment on ticket #279

    Many thanks Ognyan, that solved my problem. I looked all the time into the wrong direction. From: feature-requests@owlnext.p.re.sourceforge.net On Behalf Of Ognyan Chernokozhev Sent: Friday, 10 April 2026 22:42 To: [owlnext:feature-requests] 279@feature-requests.owlnext.p.re.sourceforge.net Subject: [owlnext:feature-requests] #279 Linker error _owlpch_dummy This error refers to two different libraries: owl-7.0-v1920-x86-dt.lib owl-7.0-v1920-x86-5dt.lib the second one is the OWL5 compat library. Looks...

  • Ognyan Chernokozhev Ognyan Chernokozhev created a blog post

    C++23 Support in MSVC Build Tools 14.51

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #279

    This error refers to two different libraries: owl-7.0-v1920-x86-dt.lib owl-7.0-v1920-x86-5dt.lib the second one is the OWL5 compat library. Looks like some of the code is compiled with OWL5_COMPAT and some is compiled without it.

  • Ulrich Sternberg Ulrich Sternberg created ticket #279

    Linker error _owlpch_dummy

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8757] on Code

    CHG: More improvements to TDialogRes. See comment in [bugs:#593].

  • Vidar Hasfjord Vidar Hasfjord modified ticket #256

    TDialogRes overhaul

  • Vidar Hasfjord Vidar Hasfjord committed [r8756] on Code

    Merged [r8754] from trunk to branches/owlet:

  • Vidar Hasfjord Vidar Hasfjord committed [r8755] on Code

    Merged [r7477] from trunk to branches/owlet:

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #256

    After the overhaul to implement support for extended dialog templates [bugs:#593], here is a patch with some further clean-up you might consider: CHG: TDialogRes is now final. CHG: TDialogRes::Resource is now a TResource instance, not a pointer to an instance. CHG: TDialogRes destructor has been eliminated. CHG: TDialogRes::IsOK is deprecated, and now always returns true. CHG: TDialogRes::GetSize is now inline and returns int, not DWORD. CHG: TDialogRes implementation now uses TResource::Get rather...

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #256

    After the overhaul to implement support for extended dialog templates [bugs:593], here is a patch with some further clean-up you might consider: CHG: TDialogRes is now final. CHG: TDialogRes::Resource is now a TResource instance, not a pointer to an instance. CHG: TDialogRes destructor has been eliminated. CHG: TDialogRes::IsOK is deprecated, and now always returns true. CHG: TDialogRes::GetSize is now inline and returns int, not DWORD. CHG: TDialogRes implementation now uses TResource::Get rather...

  • Vidar Hasfjord Vidar Hasfjord committed [r8754] on Code

    NEW: TResource::Get, const and non-const, for nicer API.

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #640

    Note: The fix can be backported to the 7 and 6.44 branches, but it may bot be worth it if noone is actually using the TMailer code - and if they do, they should have already implemented their own checks for MAPI availability.

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #640

    TMailer does not work if the application bitness differs from Outlook

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #278

    TMailer should not throw exception when user cancels

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8753] on Code

    BUG: TMailer does not work if the application bitness differs from Outlook ([bugs:#640]).

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #640

    TMailer does not work if the application bitness differs from Outlook

  • Ognyan Chernokozhev Ognyan Chernokozhev created ticket #278

    TMailer should not throw exception when user cancels

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8752] on Code

    CHG: Minor correction in TDialogRes::InitDialogData. See comment in [bugs:#593].

  • Vidar Hasfjord Vidar Hasfjord modified ticket #639

    TShellItem::TBrowseFlags are ill-defined

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #639

    For the records, @jogybl has now merged the fix into the trunk [r8748], branches/7 [r8749], branches/6.44 [r8750] and branches/6.36 [r8751] for release in OWLNext 7.0.21, 6.44.29 and 6.36.14. Thanks! PS. This is technically a breaking API change, but presumably, it is unlikely there are applications relying on the old incorrect values of these flags. The flags are not used anywhere within OWLNext, so ABI compatibility should be retained.

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #593

    Another possible issue in [r8747] is this test: DialogData.FontItalic = ParseField_<BYTE>(s) == TRUE; This means that e.g. with the parsed BYTE equal to 0xFF (all bits set), the expression evaluates to false, since the BYTE is not equal to TRUE (0x01). This is usually fixed by always writing != FALSE instead. But this one is very easy to forget, as I can attest to myself!

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #593

    @jogybl wrote: Thanks. I have applied and tested the change in [r8746]. Good to hear it passed testing! I made a minor refactoring of ConvertToString_, separating the control class lookup into a new function ConvertToControlClass_, just for better separation of concerns, but this is not that important here. Regarding [r8747], there is an issue in your change of the test for the font fields: - if (DialogData.Style & DS_SETFONT) + if ((DialogData.Style & DS_SETFONT) || (DialogData.Style & DS_SHELLFONT))...

  • Ognyan Chernokozhev Ognyan Chernokozhev modified a wiki page

    OWLNext_Stable_Releases

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #639

    TShellItem::TBrowseFlags are ill-defined

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8751] on Code

    Merged [r8748] from trunk:

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8750] on Code

    Merged [r8748] from trunk:

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8749] on Code

    Merged [r8748] from trunk:

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8748] on Code

    Merged [r8703] from branches/owlet:

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #593

    Thanks. I have applied and tested the changes in [r8746].

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8747] on Code

    CHG: TDialogRes::TDialogData: Added FontWeight, FontItalic and FontCharset properties.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8746] on Code

    CHG: TDialogRes::InitDialogData refactoring.

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #638

    Note that the related issues I mentioned in the ticket description remain unresolved. I’m not using these components anymore, so I won’t be filing separate tickets, but the information is here if someone with interest in TShellItem/TPidl wants to follow up. Also see "Improve Shell abstractions" [feature-requests:#277].

  • Vidar Hasfjord Vidar Hasfjord modified ticket #638

    TShellItem::GetTypeName accesses freed PIDL (regression in 6.32 [r867])

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #593

    @jogybl wrote: I tried to use AI to generate the code for this, and some of the work was done by it Even if you use AI to generate code, having AI review the code in a fresh prompt can be useful. Maybe use a different AI for the review, and use the smartest AI you have access to (in thinking mode, so that it thinks before it speaks). Here's the code in "InitDialogData" I couldn't unsee: if ((pItems - p) % 2 == 0) { // Align to DWORD boundary ++pItems; } This baffled me and Copilot alike, and it took...

  • Vidar Hasfjord Vidar Hasfjord modified a comment on ticket #638

    The fix for this issue has now been merged into branches/7 [r8736] for release in OWLNext 7.0.21. PS. @jogybl, consider releasing updates for 6.44 and 6.36 with this fix as well. Or change the milestone, if not. Edit: The fix has now been merged into branches/6.44 [r8742] and branches/6.36 [r8744] for release in OWLNext 6.44.29 and 6.36.14, respectively. Thanks!

  • Ognyan Chernokozhev Ognyan Chernokozhev modified a wiki page

    OWLNext_Stable_Releases

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8745] on Code

    CHG: branches/6.36: Updated version number to 6.36.14 and set OWL_PRERELEASE to 1.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8744] on Code

    Merged [r8736] from branches/7:

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8743] on Code

    CHG: branches/6.44: Updated version number to 6.44.29 and set OWL_PRERELEASE to 1.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8742] on Code

    Merged [r8736] from branches/7:

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #593

    I tried to use AI to generate the code for this, and some of the work was done by it, but I had to make a number of corrections, including I think omitting the star in statements like (ushort)*(pControlClass + 1). The currently tested dialogs may be deceptively regular. Yeah, I am not sure the code would be handling correctly the case in which controls have extra bytes. Will need more research when I get back to this.

  • Vidar Hasfjord Vidar Hasfjord modified a wiki page

    Contributing

  • Vidar Hasfjord Vidar Hasfjord posted a comment on ticket #593

    Hi Ognyan, Good work on fixing this! This kind of low-level binary parsing, with potential alignment issues and pointer arithmetic corner cases, is tricky to get right, so good of you to add a test case in Classes — which seems to work nicely! Have you had your code reviewed by AI? I'm trying not to get involved on the trunk, so I just asked Windows Copilot (Smart) to have a look at your InitDialogData, and it complained about a few issues with alignment, type casts and pointer arithmetic in places....

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #593

    The GetText function is now replaced with a GetDialogData function that returns a struct with the parsed members of the dialog template.

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #593

    TDialogRes::GetText crashes for extended dialog template

  • Ognyan Chernokozhev Ognyan Chernokozhev modified ticket #256

    TDialogRes overhaul

  • Ognyan Chernokozhev Ognyan Chernokozhev posted a comment on ticket #256

    With the changes in [r8737] the overhaul of the TDialogRes class is done for now. The class correctly handles both classic and extended templates and also retrieves the list of controls in the templates, as demonstrated in the new TDialogResTest example in the Classes project. In the future, if requested, functions for manipulating the templates can be added.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8741] on Code

    CHG: Classes: Added the dialogres.bmp file.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8740] on Code

    CHG: Classes: Added icon for the TDialogRes example.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8739] on Code

    CHG: Classes: TDialogRes test dialog is now resizable.

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8738] on Code

    CHG: Classes: TDialogRes example: Display the list of controls extracted from the dialog template.

  • Vidar Hasfjord Vidar Hasfjord modified a wiki page

    Frequently_Asked_Questions

  • Vidar Hasfjord Vidar Hasfjord modified a wiki page

    Main_Page

  • Ognyan Chernokozhev Ognyan Chernokozhev committed [r8737] on Code

    CHG: Removed deprecated TDialogRes functions.

1 >
MongoDB Logo MongoDB