This page contains unofficial updates to the latest version of OWLNext.
The latest official patch is 6.12 and can be downloaded here. NEW - most of these changes are incorporated in the new version, 6.13. A patch which upgrades OWLNext from 6.12 to 6.13 can be downloaded from OWLNext site.
#if (WINVER >= 0x0400)
DocInfo.lpszDatatype = NULL;
#endif
before the return statement.
inline void TComboBox::SetHorizontalExtent(int horzExtent) {
PRECONDITION(GetHandle());
#if defined(BI_PLAT_WIN32)
SendMessage(CB_SETHORIZONTALEXTENT);
#else
//
#endif
}
does not use the horzExtent parameter. The call to SendMessage() should be
SendMessage(CB_SETHORIZONTALEXTENT,horzExtent);
#if defined(__DLL__) || defined(_DLL)
# define BI_APP_DLL
#else
# define BI_APP_EXECUTABLE
#endif
is incorrect. Under MSVC, _WINDLL is defined when building DLL, so
#if defined(__DLL__) || defined(_DLL) should be replaced with #if defined(__DLL__) || defined(_WINDLL)
#if (__BORLANDC__ >= 0x550)
# define NO_BI_STDIO_CTRFNUM
#endif
before the lines
#if (__BORLANDC__ >= 0x540)
# define BI_HAS_MEMBER_TEMPLATE
#endif
buffer[size] = '\0';
at the end of the function TRegConfigFile::ReadString(), before the statement
return (int)size;
Also, when writing string values to the registry, it is recommended that the null-terminator is included
in the buffer length. This can be fixed by changing the line
uint32 size = ::_tcslen(value)*sizeof(_TCHAR);
with
uint32 size = (::_tcslen(value) + 1)*sizeof(_TCHAR);
in the function TRegConfigFile::WriteString()
#define EV_LVN_ENDLABELEDIT(id, method) EV_LISTWIND_NOTIFY_BOOL(id, LVN_ENDLABELEDIT, method)
with
#define EV_LVN_ENDLABELEDIT(id, method) EV_LV_DISPINFO_NOTIFY_BOOL(id, LVN_ENDLABELEDIT, method)
in the file owl\commctrl.h
bool Erase() { return File.EraseSection(Section.c_str()); }
bool IsDir() const;
bool IsSysDir() const;//true if it is the "." or ".." system directory;
with implementation:
inline bool TFileNameIterator::IsDir() const
{
return Status.attribute & FILE_ATTRIBUTE_DIRECTORY;
}
//Returns true if it is a directory and the directory is "." or "..";
inline bool TFileNameIterator::IsSysDir() const
{
const char* p = Status.fullName;
return IsDir() && p[0]=='.' &&
(p[1]=='\0' || p[1]=='.' && p[2]=='\0');
}
bool AddSubDir(LPCTSTR subdir);
bool AddSubDir(const owl_string& subdir);
in the declaration of the class TFileName, preferably after the function CreateDir().
In filename.cpp add the lines
bool
TFileName::AddSubDir(LPCTSTR subdir)
{
if (_tcschr(dirSeparator, subdir[0]) == 0) // The subdir does not begin with the separator
PathStr += dirSeparatorStr;
PathStr += subdir;
if (_tcschr(dirSeparator, PathStr[PathStr.length() - 1]) != 0) // The resultring string ends with the separator
PathStr = PathStr.substr(0, PathStr.length() - 1);
return true;
}
bool
TFileName::AddSubDir(const owl_string& subdir)
{
return AddSubDir(subdir.c_str());
}
preferably after the definition of the function CreateDir().
#ifdef _MSC_VER
# pragma once
#endif
at the start of all OWLNext header files.