w32api - Справочник по Windows API
Найти:
На:





iconsbase

Небольшой класс, предназначенный для извлечения из файла иконок. При передаче экземпляру класса через конструктор или через функцию create, из файла извлекаются все иконки (если они там есть) и помещаются в выделенную классом память. На самом деле, иконки хранит в памяти системы, а экземпляр класса хранит только их дескрипторы.

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

Открытые функции-члены класса:


Конструкторы

В классе есть два конструктора:
iconsbase();
iconsbase(const char* pszFileName);

При создании класса через пустой конструктор подразумевает, что база иконок будет создана потом через функцию create.

При создании класса через второй конструктор, создается база иконок, извлеченных из файла pszFileName. Если в файле нет иконок, или указано неправильное имя файла, то база не создается. О том что база иконок создана или нет, можно узнать через функцию getcount (если не создана – возвращается ноль).


create

BOOL create(const char* pszFileName);

Создается база иконок, извлеченных из файла pszFileName. Если в файле нет иконок, или указано неправильное имя файла, то база не создается и функция возвращает FALSE. Если создана – возвращается TRUE.

При повторном вызове функции, предыдущая база иконок уничтожается.


getcount

int getcount();

Получает количество иконок в базе. Если база не создана, функция возвращает ноль.


geticon

HICON geticon(int iIconNumber);

Получает иконку из базы по ее индексу. Если база не создана или указанный индекс иконки не меньший за количество иконок в базе, функция возвращает NULL.


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;

	.
	.
	.

Hosted by uCoz