void OptionsTiffImporter::loadIsdMetadata(const QString& filename) { if ((filename.isEmpty() == true) || (mpDescriptor == NULL)) { return; } QuickbirdIsd isd(mpDescriptor->getMetadata()); QFileInfo fileInfo(filename); if ((fileInfo.isFile() == false) || (fileInfo.exists() == false)) { isd.removeIsdMetadata(); } else { isd.loadIsdMetadata(filename); } }
LRESULT CConfigDlgAssociation::OnChangeIcon(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { if(BN_CLICKED==wNotifyCode) { for(int i=0; i<COUNTOF(AssocSettings); i++) { if(hWndCtl==AssocSettings[i].Button_SetIcon) { CIconSelectDialog isd(AssocSettings[i].AssocInfo); if(IDOK==isd.DoModal()) { TRACE(_T("IconFile=%s\n"),AssocSettings[i].AssocInfo.IconFile); AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex); AssocSettings[i].bChanged=true; //LFAssist.exeの実行を要請 mr_ConfigDlg.RequireAssistant(); } break; } } } return 0; }
static int hx_inet_pton4(const char* s, UINT8* d) { // NB: inet_pton() does not support BSD style partial address formats unsigned int elem, pos, n; elem = 0; while (*s) { n = pos = 0; while (isd(*s)) { if (pos++ > 2) { return 0; } n = n*10 + (*s++ - '0'); } if (pos == 0 || n > 255) { return 0; } d[elem] = n; if (elem < 3) { if (*s != '.') { return 0; } ++s; } if (elem++ > 3) { return 0; } } return (elem == 4) ? 1 : 0; }
void OptionsTiffImporter::setDataDescriptor(RasterDataDescriptor* pDescriptor) { if (pDescriptor == mpDescriptor) { return; } mpDescriptor = pDescriptor; // Update the ISD filename QString isdFilename; if (mpDescriptor != NULL) { DynamicObject* pMetadata = mpDescriptor->getMetadata(); if (pMetadata != NULL) { QuickbirdIsd isd(pMetadata); isdFilename = isd.getIsdFilename(); } } setFilename(isdFilename); // Update the browse directory QString browseDir; if (mpDescriptor != NULL) { const FileDescriptor* pFileDescriptor = mpDescriptor->getFileDescriptor(); if (pFileDescriptor != NULL) { browseDir = QString::fromStdString(pFileDescriptor->getFilename().getPath()); } } mpFilename->setBrowseDirectory(browseDir); }
LRESULT CConfigDlgAssociation::OnSetAssoc(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { if(BN_CLICKED!=wNotifyCode) { return 0; } TCHAR ResourcePath[_MAX_PATH+1]; //アイコンファイル名 int IconIndex=-1; if(IDC_BUTTON_ASSOC_SET_DEFAULT_ICON==wID||IDC_BUTTON_ASSOC_SET_DEFAULT_ICON_SINGLE==wID) { //-------------- // 標準アイコン //-------------- FILL_ZERO(ResourcePath); GetModuleFileName(GetModuleHandle(NULL), ResourcePath, _MAX_PATH); //本体のパス取得 //EXEのパスを元にDLLのファイル名を組み立てる PathRemoveFileSpec(ResourcePath); PathAppend(ResourcePath,CString(MAKEINTRESOURCE(IDS_ICON_FILE_NAME_DEFAULT))); } else if(IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON==wID||IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON_SINGLE==wID) { //------------------------------------ // 外部のアイコンファイルをセットする //------------------------------------ //アイコンを選択させる(デフォルトは標準アイコン) ASSOCINFO ac; CIconSelectDialog isd(ac); if(IDOK!=isd.DoModal()) { return 0; } TRACE(_T("IconFile=%s\n"),ac.IconFile); _tcsncpy_s(ResourcePath,ac.IconFile,_MAX_PATH); IconIndex=ac.IconIndex; if(IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON_SINGLE==wID&&-1==IconIndex) { //アイコンが選択されていない return 0; } } for(int i=0; i<COUNTOF(AssocSettings); i++) { switch(wID) { case IDC_BUTTON_ASSOC_CHECK_TO_DEFAULT: //標準の関連付け if(-1==UtilCheckNumberArray(NO_DEFAULT_ASSOCS,COUNTOF(NO_DEFAULT_ASSOCS),i)) { AssocSettings[i].Button_SetIcon.EnableWindow(TRUE); AssocSettings[i].Check_SetAssoc.SetCheck(TRUE); } break; case IDC_BUTTON_ASSOC_CHECK_ALL: AssocSettings[i].Button_SetIcon.EnableWindow(TRUE); AssocSettings[i].Check_SetAssoc.SetCheck(TRUE); break; case IDC_BUTTON_ASSOC_UNCHECK_ALL: AssocSettings[i].Button_SetIcon.EnableWindow(FALSE); AssocSettings[i].Check_SetAssoc.SetCheck(FALSE); AssocSettings[i].SetIconFromAssoc(Icon_SystemDefault); break; case IDC_BUTTON_ASSOC_SET_DEFAULT_ICON: //FALLTHROUGH case IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON: //全て標準アイコンに/全て外部アイコンに { //アイコン数の取得 long IconCount=(long)ExtractIcon(GetModuleHandle(NULL),ResourcePath,-1); const bool bExtraIcon=(IconCount>=35); //アイコンの数が35より多ければ全て識別するタイプのアイコンだということになる if(AssocSettings[i].Check_SetAssoc.GetCheck()) { AssocSettings[i].AssocInfo.IconIndex=bExtraIcon?AssocSettings[i].DefaultIconIndex_Ex:AssocSettings[i].DefaultIconIndex; AssocSettings[i].AssocInfo.IconFile=ResourcePath; AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex); AssocSettings[i].bChanged=true; } } break; case IDC_BUTTON_ASSOC_SET_DEFAULT_ICON_SINGLE: //全て標準単一アイコンに if(AssocSettings[i].Check_SetAssoc.GetCheck()) { AssocSettings[i].AssocInfo.IconIndex=ICONINDEX_EXTERNAL_SINGLE; AssocSettings[i].AssocInfo.IconFile=ResourcePath; AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex); AssocSettings[i].bChanged=true; } break; case IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON_SINGLE: //全て外部単一アイコンに if(AssocSettings[i].Check_SetAssoc.GetCheck()) { AssocSettings[i].AssocInfo.IconIndex=IconIndex; AssocSettings[i].AssocInfo.IconFile=ResourcePath; AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex); AssocSettings[i].bChanged=true; } break; } } //LFAssist.exeの実行を要請 mr_ConfigDlg.RequireAssistant(); return 0; }