static int icolib_RemoveIcon(lua_State *L) { if (lua_isuserdata(L, 1)) IcoLib_RemoveIconByHandle(lua_touserdata(L, 1)); else if (lua_isstring(L, 1)) IcoLib_RemoveIcon(luaL_checkstring(L, 1)); return 0; }
void UninitIcons() { for(int i=0;i<nCountriesCount;++i) { // create identifier char szId[20]; mir_snprintf(szId, _countof(szId), (countries[i].id == 0xFFFF) ? "%s0x%X" : "%s%i", "flags_", countries[i].id); /* buffer safe */ IcoLib_RemoveIcon(szId); } mir_free(phIconHandles); // does NULL check }
void __fastcall Prepare(KN_FP_MASK* mask, bool bEnable) { mask->szMaskUpper = NULL; if (mask->hIcolibItem) IcoLib_RemoveIcon(mask->szIconName); mask->hIcolibItem = NULL; if (!mask->szMask || !bEnable) return; size_t iMaskLen = mir_tstrlen(mask->szMask) + 1; LPTSTR pszNewMask = (LPTSTR)HeapAlloc(hHeap, HEAP_NO_SERIALIZE, iMaskLen * sizeof(TCHAR)); _tcscpy_s(pszNewMask, iMaskLen, mask->szMask); _tcsupr_s(pszNewMask, iMaskLen); mask->szMaskUpper = pszNewMask; TCHAR destfile[MAX_PATH]; if (mask->iIconIndex == IDI_NOTFOUND || mask->iIconIndex == IDI_UNKNOWN || mask->iIconIndex == IDI_UNDETECTED) GetModuleFileName(g_hInst, destfile, MAX_PATH); else { _tcsncpy_s(destfile, g_szSkinLib, _TRUNCATE); struct _stat64i32 stFileInfo; if (_tstat(destfile, &stFileInfo) == -1) return; } LPTSTR SectName = getSectionName(mask->iSectionFlag); if (SectName == NULL) return; SKINICONDESC sid = { 0 }; sid.flags = SIDF_ALL_TCHAR; sid.section.t = SectName; sid.pszName = mask->szIconName; sid.description.t = mask->szClientDescription; sid.defaultFile.t = destfile; sid.iDefaultIndex = -mask->iIconIndex; mask->hIcolibItem = IcoLib_AddIcon(&sid); }
void CSkypeProto::UninitIcons() { for (size_t i = 0; i < _countof(Icons); i++) IcoLib_RemoveIcon(Icons[i].Name); }