Следующий код использует функции CreateIconFromResourceEx, DrawIcon и LookupIconIdFromDirectoryEx и некоторые из функций ресурса, чтобы создать дескриптор пиктограммы, основанный на ее данных из другого исполняемого файла. Затем, он показывает на экране пиктограмму в окне.
HICON hIcon1; // дескриптор пиктограммы HINSTANCE hExe; // дескриптор загружаемого .EXE файла HRSRC hResource; // дескриптор для FindResource (поиска ресурса) HRSRC hMem; // дескриптор для LoadResource (загрузки ресурса) BYTE *lpResource; // адрес данных ресурса int nID; // ID (идентификатор ресурса, который лучше всего // соответствует текущему экрану HDC hdc; // дескриптор контекста дисплея // Загрузка файла, из которого копируется пиктограмма. hExe = LoadLibrary("myapp.exe"); // Поиск каталога пиктограммы, идентификатор которой - 440. hResource = FindResource(hExe, MAKEINTRESOURCE(440), RT_GROUP_ICON); // Загрузка и просмотр каталога пиктограммы. hMem = LoadResource(hExe, hResource); lpResource = LockResource(hMem); // Получаем идентификатор пиктограммы, которая должна соответствовать // видеодисплею. nID = LookupIconIdFromDirectoryEx((PBYTE) lpResource, TRUE, CXICON, CYICON, LR_DEFAULTCOLOR); // Находим биты nID (идентификатора) пиктограммы. hResource = FindResource(hExe, MAKEINTRESOURCE(nID), MAKEINTRESOURCE(RT_ICON)); // Загружаем и просматриваем пиктограмму. hMem = LoadResource(hExe, hResource); lpResource = LockResource(hMem); // Создаем дескриптор пиктограммы. hIcon1 = CreateIconFromResourceEx((PBYTE) lpResource, SizeofResource(hExe, hResource), TRUE, 0x00030000, CXICON, CYICON, LR_DEFAULTCOLOR); // Рисуем пиктограмму в рабочей области. DrawIcon(hdc, 10, 20, hIcon1);