Небольшой класс, предназначенный для извлечения из файла иконок. При передаче экземпляру класса через конструктор или через функцию create, из файла извлекаются все иконки (если они там есть) и помещаются в выделенную классом память. На самом деле, иконки хранит в памяти системы, а экземпляр класса хранит только их дескрипторы.
При уничтожении экземпляра класса, его деструктор освобождает выделенную память от дескрипторов иконок, и принуждает систему выгрузить иконки из системной памяти.
Конструкторы
В классе есть два конструктора:
iconsbase();
iconsbase(const char* pszFileName);
При создании класса через пустой конструктор подразумевает, что база иконок будет создана потом через функцию create.
При создании класса через второй конструктор, создается база иконок, извлеченных из файла pszFileName. Если в файле нет иконок, или указано неправильное имя файла, то база не создается. О том что база иконок создана или нет, можно узнать через функцию getcount (если не создана – возвращается ноль).
create
BOOL create(const char* pszFileName);
Создается база иконок, извлеченных из файла pszFileName. Если в файле нет иконок, или указано неправильное имя файла, то база не создается и функция возвращает FALSE. Если создана – возвращается TRUE.
При повторном вызове функции, предыдущая база иконок уничтожается.
iscreated
BOOL iscreated();
Функция проверят создана-ли база иконок, или нет. Если не создана, возвращается FALSE. Если создана – TRUE.
Пример создания экземпляра класса:
// Подключаем заголовочный файл класса к программе:
#include “iconsbase.h”
.
.
.
// Создаем экземпляр класса, инициализируя его файлом из системной директории:
iconsbase* ib = new iconsbase("c:\\windows\\system32\\shell32.dll");
// Если база иконок создана:
if(ib->iscreated()) {
// Перечисление всех иконок в базе:
for(int i = 0; i < ib->getcont(); i++) {
// Получаем иконку по индексу:
geticon(i);
{
}
// Уничтожаем экземпляр класса:
delete ib;
.
.
.