extern void DoOutObjectName( cg_sym_handle sym, void (*outputter)( char *, void * ), void *data, import_type kind ) { /*******************************************************************/ char *dst; char buffer[TS_MAX_OBJNAME + TRUNC_SYMBOL_HASH_LEN]; unsigned pref_len; dst = buffer; switch( kind ) { case SPECIAL: pref_len = (sizeof( SPEC_PREFIX )-1); dst = CopyStr( SPEC_PREFIX, dst ); break; case DLLIMPORT: pref_len = (sizeof( DLLIMPORT_PREFIX )-1); dst = CopyStr( DLLIMPORT_PREFIX, dst ); break; case PIC_RW: pref_len = (sizeof( PIC_RW_PREFIX )-1); dst = CopyStr( PIC_RW_PREFIX, dst ); break; default: pref_len = 0; } GetExtName( sym, dst, TS_MAX_OBJNAME - 1 - pref_len ); outputter( buffer, data ); }
int LoadCanvasEx(const char* filename, OSD_LOGO_T* pVideoLogo, OSD_COLOR_FMT_E enFmt) { char* ext = GetExtName((char*)filename); if(HI_NULL == ext) { printf("LoadCanvasEx error!\n"); return -1; } if (strcmp(ext, "bmp") == 0) { if (0 != LoadBMPCanvas(filename, pVideoLogo, enFmt)) { printf("OSD_LoadBMP error!\n"); return -1; } } else { printf("not supported image file!\n"); return -1; } return 0; }
//get the version information CString CPath::GetFileVersionInfoString(LPCSTR verInfoString) { if(GetExtName().MakeLower().Compare("exe")) return CString("Must be executable!"); LPCSTR fileFullName = (LPCSTR)_strOriginalPath; char *rcData = 0; DWORD dwSize; UINT wSize; LANGANDCODEPAGE *lpTranslate; LPTSTR fileName = (LPTSTR)fileFullName; //file name and path CFileStatus status; CString verInfo = "Unavailable"; if( CFile::GetStatus(fileName, status ) ) { //Version LPDWORD handle1 = 0; dwSize = ::GetFileVersionInfoSize(fileName, handle1); if (! dwSize) return verInfo; rcData = new char[dwSize]; // get valid resource data using path, handle, and size int result = ::GetFileVersionInfo(fileName, 0, dwSize, (LPVOID)rcData); if (result) { result = ::VerQueryValue(rcData,TEXT("\\VarFileInfo\\Translation" ), (LPVOID*)&lpTranslate, &wSize); if (result == 0 || wSize == 0) { delete []rcData; return verInfo; } } // Read the file description for each language and code page. char SubBlock[100]; LPVOID lpBuffer; for( unsigned i=0; i < (wSize/sizeof(struct LANGANDCODEPAGE)); i++ ) { wsprintf( SubBlock, TEXT("\\StringFileInfo\\%04x%04x\\%s"), lpTranslate[i].wLanguage,lpTranslate[i].wCodePage,verInfoString); result = VerQueryValue(rcData, SubBlock, (LPVOID*)&lpBuffer, &wSize); if (!result) break; verInfo = (LPCSTR)lpBuffer; } delete []rcData; } return verInfo; }
CString CCommon::GetExtName(CString strPath) { int pos = strPath.Find('.'); if (pos == -1) { return strPath; } else { return GetExtName(strPath.Mid(pos + 1)); } }
int LoadImage(const char *filename, OSD_LOGO_T *pVideoLogo) { char * ext = GetExtName((char *)filename); if(strcmp(ext, "bmp") == 0) { if(0 != LoadBMP(filename, pVideoLogo)) { printf("OSD_LoadBMP error!\n"); return -1; } } else { printf("not supported image file!\n"); return -1; } return 0; }
void CCommon::SCanDiskFile(const CString& strPath, vector<CString>& vec, CString strType) { CFileFind find; CString strTemp = strPath; CString strDirectory = strPath + _T("\\*.*"); CString strFile; BOOL IsFind = find.FindFile(strDirectory); while (IsFind) { IsFind = find.FindNextFile(); if (find.IsDots()) { continue; } else if (find.IsDirectory()) { strFile = find.GetFileName(); strTemp = strPath; strTemp = strTemp + _T("\\") + strFile; SCanDiskFile(strTemp, vec, strType); } else { // if (!findElement(m_vAllDict, strTemp)) // { // m_vAllDict.push_back(strTemp); // } strFile = find.GetFilePath(); CString ExternName = GetExtName(strFile); if (ExternName == strType) { vec.push_back(strFile); } } } find.Close(); }
LOCAL void Convert_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { BOOL Bool; switch (id) { case IDC_MINITYPES: // case IDC_MINI256: // case IDC_MINI16: // case IDC_MINI8: // case IDC_MINICUSTOM: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Convert.MiniType = id; if (Convert.MiniType == IDC_MINI256) Convert.ConvertColors = 256; else if (Convert.MiniType == IDC_MINI16) Convert.ConvertColors = 16; else if (Convert.MiniType == IDC_MINI8) Convert.ConvertColors = 8; Convert_Enable(hDlg); break; case IDC_DITHERTYPES: // case IDC_DITHERPATTERN: // case IDC_DITHERSCATTERED: // case IDC_DITHERNONE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; if ( id == IDC_DITHERPATTERN ) { Convert.fDither = YES; Convert.fScatter = NO; Convert.ConvertDitherType = DT_PATTERN; } else if ( id == IDC_DITHERSCATTERED ) { Convert.fDither = NO; Convert.fScatter = YES; Convert.ConvertDitherType = DT_SCATTER; } else { Convert.fDither = NO; Convert.fScatter = NO; Convert.ConvertDitherType = DT_NONE; } break; case IDC_PALETTETYPES: // case IDC_PALETTEOPTIMIZED: // case IDC_PALETTESTANDARD: // case IDC_PALETTECUSTOM: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; if (id == IDC_PALETTEOPTIMIZED) Convert.ConvertType = CT_OPTIMIZED; else if (id == IDC_PALETTESTANDARD) Convert.ConvertType = CT_STANDARD; else Convert.ConvertType = CT_CUSTOM; Convert.fOptimize = ( id == IDC_PALETTEOPTIMIZED ); Convert_Enable(hDlg); break; case IDC_PALETTECOLORS: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Convert.ConvertColors = GetDlgItemSpin( hDlg, id, &Bool, NO ); break; case IDC_EXTNAMES: GetExtName( hDlg, IDC_EXTNAMES, IDC_FILENAME, Convert.ConvertPalette, IDN_PALETTE, codeNotify ); break; case IDC_EXTMANAGE: PopupMenu( hDlg, id, IDC_FILENAME ); break; case IDC_ADDEXT: case IDC_DELETEEXT: case IDC_RENAMEEXT: ExtNameManager( hDlg, IDC_EXTNAMES, IDC_FILENAME, Convert.ConvertPalette, IDN_PALETTE, id, NO ); break; case IDOK: // make sure we can open a colormap if (Convert.ConvertType == CT_CUSTOM) { FNAME szFileName; LPCOLORMAP lpColorMap; if ( !LookupExtFile( Convert.ConvertPalette, szFileName, IDN_PALETTE ) ) break; if (!(lpColorMap = Palette_ReadColorMap(szFileName))) break; FrameDestroyColorMap(lpColorMap); } AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: AstralDlgEnd( hDlg, FALSE ); break; default: break; } }
LOCAL void TextureFill_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { int i; BOOL Bool; MERGE_MODE MergeMode; switch (id) { case IDC_TEXTUREFILL: if ( !SaveToolPreferences( id ) ) break; break; case IDC_TEXTUREFLIPX: Texture.fHorzFlip = !Texture.fHorzFlip; CheckDlgButton( hDlg, IDC_TEXTUREFLIPX, Texture.fHorzFlip); break; case IDC_TEXTUREFLIPY: Texture.fVertFlip = !Texture.fVertFlip; CheckDlgButton( hDlg, IDC_TEXTUREFLIPY, Texture.fVertFlip); break; case IDC_EXTNAMES: GetExtName( hDlg, IDC_EXTNAMES, IDC_FILENAME, Texture.TextureName, IDN_TEXTURE, codeNotify ); break; case IDC_EXTMANAGE: PopupMenu( hDlg, id, IDC_FILENAME ); break; case IDC_ADDEXT: case IDC_DELETEEXT: case IDC_RENAMEEXT: ExtNameManager( hDlg, IDC_EXTNAMES, IDC_FILENAME, Texture.TextureName, IDN_TEXTURE, id, NO ); break; case IDC_MERGEMODE: if ((MergeMode = HandleMergeCombo( hDlg, id, FALSE, MM_NORMAL, codeNotify )) < 0) break; Texture.TextureMergeMode = MergeMode; SetCommonMergeMode(Texture.TextureMergeMode); break; case IDC_TRANSPARENT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Texture.TextureOpacity = 255-TOGRAY(i); SetCommonOpacity(Texture.TextureOpacity); break; default: break; } }