BOOL CGifImage::SaveAsFile(LPCTSTR pszFileName) { if (NULL == pszFileName || NULL == m_pImage) return FALSE; LPCTSTR lpExtension = _tcsrchr(pszFileName, _T('.')); if (NULL == lpExtension) return FALSE; #if defined(UNICODE) || defined(_UNICODE) CLSID clsid = GetEncoderClsidByExtension(lpExtension); #else CLSID clsid = CLSID_NULL; LPCWSTR pszExtensionW = AnsiToUnicode(lpExtension); if (pszExtensionW != NULL) { clsid = GetEncoderClsidByExtension(pszExtensionW); delete pszExtensionW; } #endif if (CLSID_NULL == clsid) return FALSE; #if defined(UNICODE) || defined(_UNICODE) Gdiplus::Status status = m_pImage->Save(pszFileName, &clsid, NULL); #else Gdiplus::Status status = Gdiplus::GenericError; LPCWSTR pszFileNameW = AnsiToUnicode(pszFileName); if (pszFileNameW != NULL) { status = m_pImage->Save(pszFileNameW, &clsid, NULL); delete pszFileNameW; } #endif return (status != Gdiplus::Ok) ? FALSE : TRUE; }
BOOL CGifImage::SaveAsFile(LPCTSTR pszFileName) { if (NULL == pszFileName || NULL == m_pImage) return FALSE; LPCTSTR lpExtension = _tcsrchr(pszFileName, _T('.')); if (NULL == lpExtension) return FALSE; CLSID clsid = GetEncoderClsidByExtension(lpExtension); if (CLSID_NULL == clsid) return FALSE; Gdiplus::Status status = m_pImage->Save(pszFileName, &clsid, NULL); return (status != Gdiplus::Ok) ? FALSE : TRUE; }