Описание

В настоящее время данный проект включает в себя 29 библиотек:

  • zlib — процедурная библиотека для работы с zip-архивами, написанная на ANSI С и не зависящая от каких-либо других библиотек (типа MFC или STL), кроме CRT. Последнюю версию библиотеки zlib и документацию к ней можно найти на ее «домашнем» сайте; в проекте используется версия 1.2.7 от 2 мая 2012 года.
  • ZipArchive — написанная на C++ объектно-ориентированная «надстройка» над библиотекой zlib. Проект содержит ее подмножество, предназначенное для использования в Windows-приложениях, создаваемых с использованием библиотеки MFC. В проект также включена авторская документация в формате .chm (HTML Help 1.x). Полная версия библиотеки ZipArchive, которую можно найти на сайте автора, позволяет вместо MFC использовать STL и поддерживает разработку приложений для Linux. При создании проекта использовалась версия 4.1.2 от 3 марта 2012 года.
  • Naughter — библиотека, состоящая из дополняющих MFC классов, автором которых является PJ Naughter. В настоящее время в нее включены следующие компоненты:
    • CPJNSMTPConnection, коллекция MFC-классов для поддержки протокола SMTP (версия 2.94 от 4 декабря 2011 года);
    • CPJNPOP3Connection, MFC-класс для поддержки протокола POP3 (версия 1.48 от 13 февраля 2011 года);
    • CTreeFileCtrl, MFC-класс, реализующий элемент управления, аналогичный дереву файловой системы Windows Explorer (версия 1.54 от 8 января 2009 года).
    • CListOptionsCtrl, MFC-класс, реализующий элемент управления «properties browser» (таблица свойств), аналогичный тому, который используется в среде разработки Visual Basic (версия 1.22 от 15 июня 2008 года);
    • CTreeOptionsCtrl, MFC-класс, реализующий элемент управления «дерево настроек», аналогичный тому, который используюется в дилоговом окне «Internet Options» браузера Internet Explorer (версия 1.72 от 29 апреля 2012 года);
    • XTaskDialog, «эмулятор» Vista Task Dialog APIs для предыдущих версий Windows (версия 1.12 от 19 декабря 2010 года);
    • AppSettings, коллекция MFC-классов, предназначенных для инкапсуляции процесса чтения и записи настроек приложения (версия 1.08 от 19 марта 2009 года);
    • CWaitableTimer, MFC-класс, инкапсулирующий объект синхронизации waitable timer (весрия 1.03 от 1 июня 2008 года);
    • CScintillaCtrl, CScintillaView & CScintillaDoc, MFC-классы, инкапсулирующие элемент управления Scintilla — текстовый редактор, поддерживающий настраиваемую подсветку синтаксиса, свертку блоков кода, etc (версия 1.28 от 12 декабря 2011 года);
    • CTrayNotifyIcon, MFC/WTL-класс, инкапсулирующий Win32 API Shell_NotifyIcon (версия 1.65 от 26 ноября 2010 года);
    • CToasterWnd, MFC-класс, реализующий элемент пользовательского интерфеса аналогичный «всплывающему» окну уведомлений в MSN Messenger (версия 1.16 от 14 декабря 2008 года);
    • CMessageBoxX, MFC-класс, инкапсулирующий и расширяющий Win32 API MessageBox (версия 1.05 от 11 июля 2008 года);
    • CSortedArray и CSortedArrayEx, классы-потомки шаблона CArray из MFC (или CAtlArray из ATL), реализующие упорядоченную вставку элементов, их поиск и сортировку (версия 1.43 от 6 ноября 2010 года);
    • CMapi — набор классов, инкапсулирующих отправку и получение сообщений электронной почты с использованием Simple MAPI (версия 1.23 от 1 апреля 2011 года);
    • CWSocket / CSSLSocket — классы, инкапсулирующие работу с сокетами (версия 1.32 от 3 апреля 2011 года).
    В состав библиотеки также входит авторская документация в формате HTML.
  • CodeProject — библиотека, состоящая из дополняющих MFC классов, исходный код которых (был) опубликован на The Code Project. На данный момент в нее включены следующие компоненты: В состав библиотеки также входит авторская документация в формате CHM.
  • AfxGadgets — библиотека, состоящая из классов моего собственного сочинения, часть из которых написана «по мотивам» исходного кода, опубликованного на The Code Project и CodeGuru. На данный момент в ее состав входят классы CArgsParser, CWin32Error, CSeException, CWinCrypto, CMemMapFile, CSortingListCtrl, CMemoryDC, CProcessPrivileges, CRemoteInvoke, CRemoteProc и CRemoteParam, классы-обертки парсера MSXML, а также несколько классов и функций, упрощающих преобразование строк между кодировками ANSI и Unicode и предназначенных для замены макросов из <afxconv.h>.
  • CJLibrary — библиотека классов от CodeJock.com, расширяющая возможности MFC.
  • ResizableLib — библиотека от Paolo Messina, предназначенная для создания диалоговых окон, позволяющих пользователю изменять их размер в процессе работы с приложением. В настоящее время в проекте используются доработанные исходные тексты из репозитория на SourceForge.net; дата последнего обновления оригиналов — 1 июля 2010 года. Дополнительную информацию об этой библиотеке можно найти в статье ResizableLib на сайте The Code Project.
  • atlmfc71 — библиотека, содержащая несколько классов из ATL/MFC версии 7.1 (.NET 2003), «портированных» для использования в MS Visual C++ 6.0. В настоящее время она включает в себя классы CRegKey и CFileDialogEx. Начиная с ревизии 55, развитие этой библиотеки прекращено за отсутствием необходимости.
  • Brainchild — библиотека от Jan van den Baard, реализующая текстовый редактор с поддержкой выделения синтаксиса исходных текстов и многоуровневыми undo/redo. Распознаются C/C++, module-definition files (.def), HTML, ini-файлы Windows, скрипты Inno Setup, Java и Java Script, файлы описания ресурсов (.rc), а также VBScript. Написана на «чистом» C использованием функций CRT и Win32 API и не завист от ATL/WTL, MFC, Qt, etc. Оригинальную авторскую версию 2.4 можно найти по адресу Brainchild, A syntax coloring edit control.
  • ClassLib — библиотека классов от Jan van den Baard, предназначенная для разработки Windows-приложений. Оригинальную авторскую версию 3.0 можно найти по адресу ClassLib, A C++ class library.
  • BCApplet — апплет «Панели управления» Windows, предназначенный для конфигурирования текстового редактора Brainchild. Реализован с использованием библиотеки ClassLib. Оригинальную авторскую версию 2.4 можно найти по адресу Brainchild, A syntax coloring edit control.
  • libmng — библиотека для работы с изображениями в формате MNG (Multiple-image Network Graphics). В настоящее время в проекте используется версия 1.0.10 от 13 июля 2007 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • libpng — библиотека для работы с изображениями в формате PNG (Portable Network Graphics). В настоящее время в проекте используется версия 1.5.10 от 29 марта 2012 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • libtiff — библиотека для работы с изображениями в формате TIFF (Tag Image File Format). В настоящее время в проекте используется версия 4.0.1 от 18 февраля 2012 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • OpenJPEG — библиотека для работы с изображениями в формате JPEG-2000. В настоящее время в проекте используется версия 1.5.0 от 7 февраля 2012 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • OpenEXR — библиотека для работы с изображениями в формате… OpenEXR В настоящее время в проекте используется версия 1.4.0 от 23 июля 2010 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • libjpeg — библиотека для работы с изображениями в формате JPEG (Joint Photographic Experts Group). В настоящее время в проекте используется версия 8.0d от 15 января 2012 года; оригинальные исходные тексты и документацию к библиотеке можно найти на сайте Independent JPEG Group.
  • LibRawLite — библиотека для чтения RAW-файлов, получаемых с цифровых фотокамер (CRW/CR2, NEF, RAF, DNG и других), основанная на исходных текстах утилиты dcraw. В настоящее время в проекте используется версия 0.14.6-Release от 5 апреля 2012 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • FreeImage — универсальная библиотека для работы с изображенями в форматах BMP (чтение и запись), CUT (чтение, только ч/б), DDS (чтение), EXR (чтение и запись), Raw Fax G3 (чтение), GIF (чтение и запись), HDR (чтение и запись), ICO (чтение и запись), IFF (чтение), JBIG (чтение и запись), JNG (чтение), JPEG/JIF (чтение и запись), JPEG-2000 (чтение и запись), KOALA (чтение), Kodak PhotoCD (чтение), MNG (чтение), PCX (чтение), PBM/PGM/PPM (чтение и запись), PFM (чтение и запись), PNG (чтение и запись), Macintosh PICT (чтение), Photoshop PSD (чтение), RAW camera (чтение), Sun RAS (чтение), SGI (чтение), TARGA (чтение и запись), TIFF (чтение и запись), WBMP (чтение и запись), XBM (чтение) и XPM (чтение и запись). В настоящее время в проекте используется версия из репозитория на SourceForge.net; оригинальные исходные тексты и документацию к библиотеке можно найти на сайте The FreeImage Project.
  • FreeImagePlus — написанная на C++ объектно-ориентированная «надстройка» над библиотекой FreeImage.
  • PCRE — три библиотеки (LibPCRE, LibPosixPCRE и LibPCRE++), предназначенные для работы с регулярными выражениями, совместимыми по синтаксису и семантике с Perl 5. В настоящее время в проекте используется версия 8.31-RC1 от 12 февраля 2012 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • Crypto++ — библиотека криптографических алгоритмов, содержащая реализации CM, CCM, EAX; Panama, Sosemanuk, Salsa20, XSalsa20; AES (Rijndael), RC6, MARS, Twofish, Serpent, CAST-256; IDEA, Triple-DES (DES-EDE2 and DES-EDE3), Camellia, SEED, RC5, Blowfish, TEA, XTEA, Skipjack, SHACAL-2; ECB, CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode (CTR); VMAC, HMAC, GMAC (GCM), CMAC, CBC-MAC, DMAC, Two-Track-MAC; SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), Tiger, WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320; RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN; PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363 EMSA2 and EMSA5; Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH; ECDSA, ECNR, ECIES, ECDH, ECMQV; MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL 3.0, WAKE-OFB, DESX (DES-XEX3), RC2, SAFER, 3-WAY, GOST, SHARK, CAST-128 и Square. В настоящее время в проекте используется версия 5.6.1 от 9 августа 2010 года; оригинальные исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • OpenSSL и myOpenSSL — два варианта библиотеки, реализующей протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1). Первый вариант состоит из заголовочных файлов, библиотек импорта и исполняемых модулей (использующих MS Visual C++ CRT версии 9.0.21022.8) от Shining Light Productions. Второй вариант представляет собой набор оригинальных исходных текстов, адаптированных для сборки с использованием MS Visual C++ 2008 SP1 и Microsoft Windows SDK версии 7.1; полученные в результате сборки этого варианта исполняемые модули предполагают использование локальной копии динамических библиотек CRT версии 9.0.30729.6161 вне зависимости от их наличия в WinSxS. В настоящее время в проекте используется версия 1.0.1c от 10 мая 2012 года; авторские исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • Scintilla — текстовый редактор, поддерживающий настраиваемую подсветку синтаксиса, свертку блоков кода, etc. В настоящее время в проекте используется версия 3.1.0 от 20 апреля 2012 года; авторские исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • TinyXML — минималистичный и легковесный парсер XML, написанный на C++ и позволяющий манипулировать содержимым документа в объектно-ориентированном стиле. В настоящее время в проекте используется версия 2.6.2 от 15 мая 2011 года; авторские исходные тексты и документацию к библиотеке можно найти на ее официальном сайте
  • Expat — процедурный парсер XML. В настоящее время в проекте используется версия 2.1.0 от 24 марта 2012 года; авторские исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.
  • SCEW — «обертка» парсера Expat, упрощающая его использование и позволяющая обойтись без создания обработчиков событий при каждой загрузке XML-документа. В настоящее время в проекте используется версия 1.1.3 от 14 сентября 2010 года; авторские исходные тексты и документацию к библиотеке можно найти на ее официальном сайте.

Для каждой из библиотек предусмотрены четыре сборочные конфигурации: «MBCS Debug», «MBCS Release», «Unicode Debug» и «Unicode Release», созданные на основе «Win32 (x86) Static Library» и использующие динамические версии CRT и MFC. Помимо этого, библиотеки zlib, ZipArchive, LibPCRE, LibPosixPCRE и LibPCRE++ могут быть использованы при разработке приложений для для устройств на платформе Windows Mobile версий 5.0-6.5; предусмотрены сборочные конфигурации «Pocket PC Debug», «Pocket PC Release», «Smartphone Debug» и «Smartphone Release», базирующиеся на «Windows Mobile 5.0 Pocket PC SDK (ARMV4I)» и «Windows Mobile 5.0 Smartphone SDK (ARMV4I)» соответственно.

ToDoList mod

Начиная с 12 августа 2010 года, в проект, помимо перечисленных выше библиотек, входит порожденный вашим покорным слугой «мод» замечатальной утилиты ToDoList, представляющей собой организатор и планировщик рабочего времени, авторство которого принадлежит AbstractSpoon Software и .dan.g. лично.

для просмотра в полный размер кликните по изображению

Ниже перечислены основные отличия от авторской версии:

  • часть компонентов общего назначения вынесена в библиотеку CodeProject для их совместного использования в этом и других приложениях;
  • исходные тексты приложения и всех его дополнительных модулей (plug-ins) адаптированы к «чистой» сборке с использованием MS Visual C++ версии 9.0 (2008) SP1 и Windows SDK версии 7.1;
  • добавлена возможность сборки приложения и всех его дополнений с использованием набора символов Unicode и соответствующих «широких» функций Win32 API (эта сборочная конфигурация используется по умолчанию);
  • незначительно переработана структура главного меню приложения;
  • для отображения элементов пользовательского интерфейса используется псевдо-шрифт «MS Shell Dlg 2», выбор конкретной гарнитуры при этом определяется версией и настройками Windows;
  • приложение и его дополнения используют локальную копию динамических библиотек CRT и MFC версии 9.0.30729.6161 вне зависимости от их наличия в WinSxS;
  • добавлен скрипт Inno Setup для создания дистрибутива приложения;
  • в дистрибутив включены словари для проверки орфографии в текстах на русском (ru_RU), английском (en_GB) и американском английском (en_US) языках.

 Дистрибутив: todolist-6.2.8-setup.zip (3 715 431 байт).

Эта и все предыдущие версии также доступны для загрузки со страницы проекта на Google Code:

 СсылкаРазмерДатаSVN
ToDoList-6.2.8-setup.zip 3 715 43109.07.2011892
ToDoList-6.2.6-setup.zip 3 715 48602.07.2011878
ToDoList-6.2.4-setup.zip 3 715 05519.06.2011870
ToDoList-6.1.10-1-setup.zip 3 630 59407.05.2011775
ToDoList-6.1.10-setup.zip 3 630 41626.03.2011759
ToDoList-6.1.7-setup.zip 3 630 61113.02.2011746
ToDoList-6.1.6-setup.zip 3 630 74705.02.2011734
ToDoList-6.1.4-setup.zip 3 629 27425.12.2010701
ToDoList-6.0.8-setup.zip 3 632 07111.08.2010504

История ревизий

#10241026 (13.05.2012)
Слияние библиотеки myOpenSSL с официальной версией 1.0.1c от 10 мая 2012 года. Библиотека OpenSSL обновлена до версии 1.0.1c от 10 мая 2012 года. Компонент CGridListCtrlEx в библиотеке CodeProject обновлен до текущей актуальной авторской ревизии #429 от 11 мая 2012 года.
#10131023 (06.05.2012)
Библиотека zlib обновлена до версии 1.2.7 от 2 мая 2012 года. Компонент TreeOptions в библиотеке Naughter обновлен до версии 1.72 от 29 апреля 2012 года. Библиотека Expat обновлена до версии 2.1.0 от 24 марта 2012 года. Библиотека PCRE обновлена до версии 8.31-RC1 от 12 февраля 2012 года. Элемент управления Scintilla обновлен до версии 3.1.0 от 20 апреля 2012 года. Компонент CGridListCtrlEx в библиотеке CodeProject обновлен до версии 2.0 от 1 мая 2012 года. Слияние библиотеки myOpenSSL с официальной версией 1.0.1b от 26 апреля 2012 года. Библиотека OpenSSL обновлена до версии 1.0.1b от 26 апреля 2012 года.
#9961012 (15.04.2012)
Библиотека libtiff обновлена до версии 4.0.1 от 18 февраля 2012 года. Библиотека libpng обновлена до версии 1.5.10 от 29 марта 2012 года. Библиотека FreeImage обновлена до официальной версии 3.15.3 от 17 марта 2012 года. Библиотеки LibPCRE, LibPosixPCRE и LibPCRE++ обновлены до версии 8.30 от 4 февраля 2012 года. Библиотека LibRawLite обновлена до версии 0.14.6-Release от 5 апреля 2012 года:
  • Casio EX-Z500 support
  • (possible) I/O exceptions on file open catched in open_datastream
  • Fixed possible read-after-buffer in Sony ARW2 decoder
  • Fixed mingw32 errors when compiling LibRaw_windows_datastream
  • Makefile.msvc: support of OpenMP and LCMS (uncomment to use)
  • Fixed decoding of some Leaf Aptus II files
Библиотека ZipArchive обновлена до версии 4.1.2 от 3 марта 2012 года:
  • An archive was corrupted if replacing a file in the archive with a file that is locked by another process.
  • Fixed the situation where removing all files in an archive with self-extract stub resulted in overwriting the stub.
  • Recovery from extracting a split archive with missing parts was not possible without a callback.
#987994 (14.04.2012)
Слияние с оригинальными исходными текстами компонента CGridListCtrlEx в библиотеке CodeProject:
  • Fixed so context menu is not displayed when right-clicking the state-icon (Credits hector santos @ CodeProject.com).
  • Fixed doxygen documentation.
  • Updated Doxygen Documentation.
  • Attempt to fix bug where CDateTimeCtrl editor fails to close when focus is stolen.
  • Fixed spelling error (Credits MartinNohrRimage @ codeproject.com).
Элемент управления Scintilla обновлен до версии 3.0.4 от 8 марта 2012 года. Библиотека zlib обновлена до версии 1.2.6 от 29 января 2012 года. Библиотека libpng обновлена до версии 1.5.8 от 1 февраля 2012 года. Библиотека OpenJPEG обновлена до версии 1.5.0 от 7 февраля 2012 года.
#983986 (03.02.2012)
Слияние с оригинальными исходными текстами компонента CGridListCtrlEx в библиотеке CodeProject:
  • Extended CGridListCtrlEx::SetupColumnConfig() with optional parameter bConfigOwner.
Библиотека libjpeg обновлена до версии 8d от 15 января 2012 года. Слияние с оригинальными исходными текстами FreeImage из репозитория на SourceForge:
  • FreeImage now uses LibJPEG 8d
  • [Mihail Naydenov] fixed some incorrect MIME types returned by FreeImage_GetFIFMimeType
#980982 (25.01.2012)
Слияние библиотеки PCRE с оригинальными исходными текстами из репозитория на SourceForge. Библиотеки OpenSSL и myOpenSSL обновлены до версии 1.0.0g от 18 января 2012 года.
#978979 (24.01.2012)
Слияние с оригинальными исходными текстами компонента CGridListCtrlEx в библиотеке CodeProject:
  • Added OnDisplayCellItem() that allows one to easily acquire full item details (ex. lParam).
  • Only perform group sorting when sorting the column which the rows was grouped by.
Слияние библиотеки PCRE с оригинальными исходными текстами из репозитория на SourceForge.
#976977 (22.01.2012)
Слияние с оригинальными исходными текстами компонента CGridListCtrlEx в библиотеке CodeProject:
  • Added CGridListCtrlEx::OnDisplayCellColor() with access to the entire NMLVCUSTOMDRAW structure.
  • Fixed CGridListCtrlEx::OnOwnerDataToggleCheckBox() so it is not called twice (Credits hector santos).
Слияние библиотеки PCRE с оригинальными исходными текстами из репозитория на SourceForge.
#975 (21.01.2012)
Слияние библиотеки PCRE с версией 8.30-RC1 от 20 января 2012 года.
#974 (20.01.2012)
Слияние библиотеки PCRE с оригинальными исходными текстами из репозитория на SourceForge.
#970973 (19.01.2012)
Слияние библиотеки PCRE с оригинальными исходными текстами из репозитория на SourceForge. Библиотека LibRawLite обновлена до версии 0.14.5-Release от 24 декабря 2011 года. Слияние с оригинальными исходными текстами FreeImage из репозитория на SourceForge:
  • FreeImage now uses LibRaw 0.14.5
  • [Herve Drolon] fixed a bug inside IFF plugin occuring when loading a 24-bit dib with a palette
  • [Herve Drolon] fixed a bug with loading of PNG images containing a cHRM chunk (regression introduced by LibPNG 1.5.4 and fixed by LibPNG 1.5.5)
  • [Herve Drolon] allowed loading of PNG with benign errors (such as images with too many IDATs)
#959967 (05.01.2012)
Слияние с оригинальными исходными текстами FreeImage из репозитория на SourceForge:
  • FreeImage now uses LibRaw 0.14.4
  • FreeImage now uses LibPNG 1.5.7
  • [Herve Drolon] removed dependency on LibMNG 1.0.10 (MNG and JNG files are now handled internally)
  • [Herve Drolon] replaced the MNG plugin with a new MNG internal FreeImage plugin (with read support)
  • [Herve Drolon] added a new JNG internal FreeImage plugin (with read/write support)
  • [Herve Drolon] improved JPEG plugin behavior with very big images
  • [Herve Drolon] improved JPEG plugin behavior with C++ exceptions
  • [Herve Drolon] fixed loading of palettized PNG with more that 256 palette entries
Слияние библиотеки PCRE с версией 8.30-PT1. Элемент управления Scintilla обновлен до версии 3.0.2 от 9 декабря 2011 года. Компонент Scintilla wrappers в библиотеке Naughter обновлен до версии 1.28 от 12 декабря 2011 года.
#1957 (2004—2011)

Сборка библиотек

Для сборки библиотек в настоящее время используется MS Visual C++ 9.0 (2008) SP1 и Microsoft Windows SDK версии 7.1; начиная с ревизии 154, совместимость исходного кода с предыдущими версиями компилятора Visual C++ не гарантируется.

 Исходные тексты: repository-r1026.7z (27 340 959 байт).

Repository на Google Code

Начиная с декабря 2007 года, проект Repository, помимо этого сайта, размещен также и на Google Code; его главная страница доступна по адресу http://repositorium.googlecode.com. Там можно найти зеркало репозитория Apache Subversion с последними ревизиями исходных текстов проекта. Для анонимного доступа на чтение к этому зеркалу и получения локальных копий всех файлов, необходимых для самостоятельной сборки, необходимо выполнить следующие действия:

  1. Создать где-либо в файловой системе новую папку, назвав ее, например, GoogleCode.
  2. Перейти в эту папку в командной строке и выполнить команду
    svn checkout http://repositorium.googlecode.com/svn/trunk/ Repository
обновлено
15.05.2012
 
Проверка PR и ТИЦ