|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Extracting Icons from Executable Files
An application can use the ExtractIcon function to retrieve the handle of an icon from a specified executable file, dynamic-link library, or icon file. The following example uses the DragQueryPoint function to retrieve the coordinates of the point where a file was dropped, the DragQueryFile function to retrieve the filename of a dropped file, and the ExtractIcon function to retrieve the handle of the first icon in the file, if any.
POINT pt; WORD cFiles; HDC hdc; char lpszFile[80]; HANDLE hCurrentInst, hicon; DragQueryPoint((HANDLE) wParam, &pt); cFiles = DragQueryFile((HANDLE) wParam, 0xFFFF, NULL, NULL); if(cFiles > 1) { TextOut(hdc, pt.x, pt.y, "Please drop only one icon file.", 31); return FALSE; } else { DragQueryFile((HANDLE) wParam, 0, lpszFile, sizeof(lpszFile)); hCurrentInst = (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE); hicon = ExtractIcon(hCurrentInst, lpszFile, 0);
if (hicon == NULL) TextOut(hdc, pt.x, pt.y, "No icons found.", 15); else if (hicon == (HICON) 1) TextOut(hdc, pt.x, pt.y, "File must be .EXE, .ICO, or .DLL.", 33); else DrawIcon(hdc, pt.x, pt.y, hicon); } DragFinish((HANDLE) wParam);
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Извлечение Икон из Выполняемых Файлов
Приложение может использовать функцию ExtractIcon, чтобы извлекать ручке иконы с определенной выполняемой файловой, динамической связи библиотеки, или иконного файла. Следующий пример использует функцию DragQueryPoint, чтобы извлекать координаты точки где файл был упаден, функция DragQueryFile, чтобы извлекать filename потерянного файла, и функцию ExtractIcon, чтобы извлекать ручку первой иконы в файл, если имеется.
ТОЧКА пт; СЛОВО cFiles; hdc HDC; символ lpszFile[80]; ПРООПЕРИРУЙТЕ hCurrentInst, hicon; DragQueryPoint((РУЧКА) wParam, &пт); cFiles = DragQueryFile((РУЧКА) wParam, 0xFFFF, НЕДЕЙСТВИТЕЛЬНАЯ, НЕДЕЙСТВИТЕЛЬНАЯ); если(cFiles > 1) { TextOut(hdc, pt.x, pt.y, "Пожалуйста бросать только один иконный файл.", 31); обратная ЛОЖЬ; } еще { DragQueryFile((РУЧКА) wParam, 0, lpszFile, sizeof(lpszFile)); hCurrentInst = (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE); hicon = ExtractIcon(hCurrentInst, lpszFile, 0);
если (hicon == НЕДЕЙСТВИТЕЛЬНЫЙ) TextOut(hdc, pt.x, pt.y, "No иконы обнаруживались.", 15); еще если (hicon == (HICON) 1) TextOut(hdc, pt.x, pt.y, "Файл должен быть .EXE, .ICO, или .DLL.", 33); еще DrawIcon(hdc, pt.x, pt.y, hicon); } DragFinish((РУЧКА) wParam);
|
|
|
|
| |