MCPcopy Create free account
hub / github.com/assimp/assimp / OpenAsset

Function OpenAsset

tools/assimp_view/MessageProc.cpp:825–889  ·  view source on GitHub ↗

------------------------------------------------------------------------------- Open a new asset -------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

823// Open a new asset
824//-------------------------------------------------------------------------------
825void OpenAsset() {
826 char szFileName[MAX_PATH];
827
828 DWORD dwTemp = MAX_PATH;
829 if(ERROR_SUCCESS != RegQueryValueEx(g_hRegistry,"CurrentApp",nullptr,nullptr, (BYTE*)szFileName,&dwTemp)) {
830 // Key was not found. Use C:
831 strcpy(szFileName,"");
832 } else {
833 // need to remove the file name
834 char* sz = strrchr(szFileName,'\\');
835 if (!sz)
836 sz = strrchr(szFileName,'/');
837 if (sz)
838 *sz = 0;
839 }
840
841 // get a list of all file extensions supported by ASSIMP
842 aiString sz;
843 aiGetExtensionList(&sz);
844
845 char szList[AI_MAXLEN + 100];
846 strcpy(szList,"ASSIMP assets");
847 char* szCur = szList + 14;
848 strcpy(szCur,sz.data);
849 szCur += sz.length+1;
850 strcpy(szCur,"All files");
851 szCur += 10;
852 strcpy(szCur,"*.*");
853 szCur[4] = 0;
854
855 OPENFILENAME sFilename1;
856 ZeroMemory(&sFilename1, sizeof(sFilename1));
857 sFilename1.lStructSize = sizeof(sFilename1);
858 sFilename1.hwndOwner = g_hDlg;
859 sFilename1.hInstance = GetModuleHandle(nullptr);
860 sFilename1.lpstrFile = szFileName;
861 sFilename1.lpstrFile[0] = '\0';
862 sFilename1.nMaxFile = sizeof(szList);
863 sFilename1.lpstrFilter = szList;
864 sFilename1.nFilterIndex = 1;
865 sFilename1.lpstrFileTitle = nullptr;
866 sFilename1.nMaxFileTitle = 0;
867 sFilename1.lpstrInitialDir = nullptr;
868 sFilename1.Flags = OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
869 if (GetOpenFileName(&sFilename1) == 0) {
870 return;
871 }
872
873 // Now store the file in the registry
874 RegSetValueExA(g_hRegistry,"CurrentApp",0,REG_SZ,(const BYTE*)szFileName,MAX_PATH);
875
876 if (0 != strcmp(g_szFileName,szFileName)) {
877 DeleteAssetData();
878 DeleteAsset();
879
880 strcpy(g_szFileName, szFileName);
881 LoadAsset();
882

Callers 1

MessageProcFunction · 0.85

Calls 6

aiGetExtensionListFunction · 0.85
DeleteAssetDataFunction · 0.85
DeleteAssetFunction · 0.85
LoadAssetFunction · 0.85
UpdateHistoryFunction · 0.85
SaveHistoryFunction · 0.85

Tested by

no test coverage detected