http://sourceforge.net/project/showfiles.php?group_id=94142 там 4.0.1 есть ... так вернее.

sourceforge.net/project/showfiles.php?group_id=94142 там 4.0.1 есть ... так вернее.

Добавлено спустя 2 часа 51 минуту 7 секунд:

По поводу пункта 2 могу предложить два варианта возможной реализации:

1. Смотрим CLB и локальный контакт лист.
Находим в CLB первую группу пользователей. Если такая группа есть локально, удаляем содержимое, импортируем всех пользователей группы из CLB. Если такой группы нет, создаем и импортируем содержимое.
Ищем следующую группу в CLB итд ...
Данное правило не распространяется на корневую группу.

2. Я тупо создаю еще один файл со списком групп, которые нужно удалить вместе с пользователями, а потом импортировать заново ...
Данное правило не распространяется на корневую группу.

Естественно оба правила можно заоптимизировать на предмет того, что может и не надо полностью удалять всех пользователей, а потом заново импортировать, а работать только с изменениями.

BTW ... если начнет получаться - нада договориться о способах оплаты.

Добавлено спустя 9 минут 10 секунд:

Нашел кусок по п1

if (i == 1)
			wsprintf(trStr, Translate("%d contact imported\nThere are %d contacts in the database"), i, CallService(MS_DB_CONTACT_GETCOUNT, 0, 0));
		else
			wsprintf(trStr, Translate("%d contacts imported\nThere are %d contacts in the database"), i, CallService(MS_DB_CONTACT_GETCOUNT, 0, 0));

		if (!(startup && i == 0)) //Don't show a message if autoimport and no contacts imported
			MessageBox(NULL, trStr, Translate("Done"),MB_OK);

		CloseHandle(inFile); //We are done with the file

Явно закрывают файл только после нажатия Done