├── .gitignore ├── IFS Tool.sln ├── IFS Tool ├── IFS Tool.rc ├── IFS Tool.vcxproj ├── IFS Tool.vcxproj.filters ├── IFS.cpp ├── IFS.h ├── Main.cpp ├── Utils.cpp ├── Utils.h ├── afxres.h ├── icon.ico ├── resource.h └── stdafx.h ├── IFS2.dll └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # ========================= 2 | # Build packaging 3 | # ========================= 4 | 5 | # Output folder 6 | output/ 7 | 8 | # Playground files 9 | playground/* 10 | !playground/*.bat 11 | 12 | # ========================= 13 | # Info files 14 | # ========================= 15 | !**/README* 16 | !**/LICENSE* 17 | 18 | # User-specific files 19 | *.suo 20 | *.user 21 | *.sln.docstates 22 | 23 | # Build results 24 | clientdll/[Bb]in/ 25 | clientdll/[Oo]bj/ 26 | *.tlog 27 | *.lastbuildstate 28 | *.idb 29 | 30 | # 64-bit files (IW4M will run on 32-bit only anyways) 31 | x64/ 32 | 33 | # Dependencies 34 | !dependencies/[Bb]in/ 35 | !dependencies/[Ll]ib/ 36 | 37 | # MSTest test Results 38 | [Tt]est[Rr]esult*/ 39 | [Bb]uild[Ll]og.* 40 | 41 | #NUNIT 42 | *.VisualState.xml 43 | TestResult.xml 44 | 45 | *_i.c 46 | *_p.c 47 | *_i.h 48 | *.ilk 49 | *.meta 50 | *.obj 51 | *.pch 52 | *.pdb 53 | *.pgc 54 | *.pgd 55 | *.rsp 56 | *.sbr 57 | *.tlb 58 | *.tli 59 | *.tlh 60 | *.tmp 61 | *.tmp_proj 62 | *.log 63 | *.vspscc 64 | *.vssscc 65 | .builds 66 | *.pidb 67 | *.svclog 68 | *.scc 69 | 70 | # Chutzpah Test files 71 | _Chutzpah* 72 | 73 | # Visual C++ cache files 74 | ipch/ 75 | *.aps 76 | *.ncb 77 | *.opensdf 78 | *.sdf 79 | *.cachefile 80 | 81 | # Visual Studio profiler 82 | *.psess 83 | *.vsp 84 | *.vspx 85 | 86 | # TFS 2012 Local Workspace 87 | $tf/ 88 | 89 | # Guidance Automation Toolkit 90 | *.gpState 91 | 92 | # ReSharper is a .NET coding add-in 93 | _ReSharper*/ 94 | *.[Rr]e[Ss]harper 95 | *.DotSettings.user 96 | 97 | # JustCode is a .NET coding addin-in 98 | .JustCode 99 | 100 | # TeamCity is a build add-in 101 | _TeamCity* 102 | 103 | # DotCover is a Code Coverage Tool 104 | *.dotCover 105 | 106 | # NCrunch 107 | *.ncrunch* 108 | _NCrunch_* 109 | .*crunch*.local.xml 110 | 111 | # MightyMoose 112 | *.mm.* 113 | AutoTest.Net/ 114 | 115 | # Installshield output folder 116 | [Ee]xpress/ 117 | 118 | # DocProject is a documentation generator add-in 119 | DocProject/buildhelp/ 120 | DocProject/Help/*.HxT 121 | DocProject/Help/*.HxC 122 | DocProject/Help/*.hhc 123 | DocProject/Help/*.hhk 124 | DocProject/Help/*.hhp 125 | DocProject/Help/Html2 126 | DocProject/Help/html 127 | 128 | # Click-Once directory 129 | publish/ 130 | 131 | # Publish Web Output 132 | *.[Pp]ublish.xml 133 | *.azurePubxml 134 | 135 | # NuGet Packages Directory 136 | packages/* 137 | !packages/repositories.config 138 | 139 | # Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets 140 | # This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented) 141 | !packages/**/build 142 | 143 | # Windows Azure Build Output 144 | csx/ 145 | *.build.csdef 146 | 147 | # Windows Store app package directory 148 | AppPackages/ 149 | 150 | # Others 151 | sql/ 152 | *.Cache 153 | ClientBin/ 154 | [Ss]tyle[Cc]op.* 155 | ~$* 156 | *~ 157 | *.dbmdl 158 | *.dbproj.schemaview 159 | *.pfx 160 | *.publishsettings 161 | node_modules/ 162 | 163 | # RIA/Silverlight projects 164 | Generated_Code/ 165 | 166 | # Backup & report files from converting an old project file to a newer 167 | # Visual Studio version. Backup files are not needed, because we have git ;-) 168 | _UpgradeReport_Files/ 169 | Backup*/ 170 | UpgradeLog*.XML 171 | UpgradeLog*.htm 172 | 173 | # SQL Server files 174 | App_Data/*.mdf 175 | App_Data/*.ldf 176 | 177 | # Business Intelligence projects 178 | *.rdl.data 179 | *.bim.layout 180 | *.bim_*.settings 181 | 182 | # Microsoft Fakes 183 | FakesAssemblies/ 184 | 185 | # ========================= 186 | # Windows detritus 187 | # ========================= 188 | 189 | # Windows image file caches 190 | Thumbs.db 191 | ehthumbs.db 192 | 193 | # Folder config file 194 | Desktop.ini 195 | 196 | # Recycle Bin used on file shares 197 | $RECYCLE.BIN/ 198 | # Compiler stackdump 199 | us.stackdump 200 | 201 | Release/ 202 | Debug/ 203 | 204 | clientdll/Release/ 205 | clientdll/Normal/* 206 | buildnumber.h 207 | lastrev.txt 208 | 209 | -------------------------------------------------------------------------------- /IFS Tool.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IFS Tool", "IFS Tool\IFS Tool.vcxproj", "{2D2A5BFB-A90D-4558-A969-48F1EBE47234}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {2D2A5BFB-A90D-4558-A969-48F1EBE47234}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {2D2A5BFB-A90D-4558-A969-48F1EBE47234}.Debug|Win32.Build.0 = Debug|Win32 14 | {2D2A5BFB-A90D-4558-A969-48F1EBE47234}.Release|Win32.ActiveCfg = Release|Win32 15 | {2D2A5BFB-A90D-4558-A969-48F1EBE47234}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /IFS Tool/IFS Tool.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeTheTech101/ifs-tool/cc0a00c76ac883932f27ed7af57ea0191651631f/IFS Tool/IFS Tool.rc -------------------------------------------------------------------------------- /IFS Tool/IFS Tool.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {2D2A5BFB-A90D-4558-A969-48F1EBE47234} 15 | Win32Proj 16 | IFSTool 17 | 18 | 19 | 20 | Application 21 | true 22 | v110 23 | MultiByte 24 | false 25 | false 26 | 27 | 28 | Application 29 | false 30 | v110 31 | true 32 | MultiByte 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | true 46 | 47 | 48 | false 49 | 50 | 51 | 52 | 53 | 54 | Level3 55 | Disabled 56 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 57 | MultiThreaded 58 | 59 | 60 | Console 61 | true 62 | 63 | 64 | 65 | 66 | Level3 67 | 68 | 69 | MaxSpeed 70 | true 71 | true 72 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 73 | MultiThreaded 74 | 75 | 76 | Console 77 | true 78 | true 79 | true 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /IFS Tool/IFS Tool.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 6 | h;hpp;hxx;hm;inl;inc;xsd 7 | 8 | 9 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 10 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 11 | 12 | 13 | {aca7620b-0b8d-42a1-b1bb-4d84b1df199a} 14 | 15 | 16 | 17 | 18 | Header 19 | 20 | 21 | Header 22 | 23 | 24 | Header 25 | 26 | 27 | Header 28 | 29 | 30 | Header 31 | 32 | 33 | 34 | 35 | Source 36 | 37 | 38 | Source 39 | 40 | 41 | Source 42 | 43 | 44 | 45 | 46 | Resource 47 | 48 | 49 | 50 | 51 | Resource 52 | 53 | 54 | -------------------------------------------------------------------------------- /IFS Tool/IFS.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | SFileOpenArchive_w_t SFileOpenArchive; 4 | SFileExtractFile_w_t SFileExtractFile; 5 | SFileCloseFile_t SFileCloseFile; 6 | SFileReadFile_t SFileReadFile; 7 | NIFSOpenFileEx_t NIFSOpenFileEx; 8 | 9 | DebugEnable_t DebugEnable; 10 | 11 | void assignFunctions(HANDLE lib) 12 | { 13 | SFileOpenArchive = (SFileOpenArchive_w_t)((DWORD)lib + 0x163E0); 14 | SFileExtractFile = (SFileExtractFile_w_t)((DWORD)lib + 0x25DF0); 15 | SFileCloseFile = (SFileCloseFile_t)((DWORD)lib + 0x210A0); 16 | SFileReadFile = (SFileReadFile_t)((DWORD)lib + 0x22570); 17 | NIFSOpenFileEx = (NIFSOpenFileEx_t)((DWORD)lib + 0x1FED0); 18 | 19 | DebugEnable = (DebugEnable_t)((DWORD)lib + 0x16210); 20 | } 21 | -------------------------------------------------------------------------------- /IFS Tool/IFS.h: -------------------------------------------------------------------------------- 1 | // Pretty obsolete now... 2 | struct IFS 3 | { 4 | DWORD dwSignature; // 0:3 5 | DWORD HeaderSize; // 4:7 6 | USHORT wFormatVersion; // 8:9 7 | USHORT wSectorSize; // A:B 8 | DWORD dwArchiveSize; // C:13 9 | ULONGLONG BetTablePos64; // 14:1B 10 | ULONGLONG HetTablePos64; // 1C:23 11 | ULONGLONG MD5TablePos64; // 24:2B 12 | ULONGLONG BitmapPos64; // 2C:33 13 | ULONGLONG HetTableSize; // 34:3B 14 | ULONGLONG BetTableSize; // 3C:43 15 | ULONGLONG MD5TableSize; // 44:4B 16 | ULONGLONG BitmapSize; // 4C:53 17 | DWORD dwMD5PieceSize; // 54:57 18 | DWORD dwRawChunkSize; // 58:5C 19 | 20 | // Copied from StormLib. Not sure if equal to Tencent's stuff 21 | BYTE MD5_BlockTable[0x10]; // MD5 of the block table before decryption 22 | BYTE MD5_HashTable[0x10]; // MD5 of the hash table before decryption 23 | BYTE MD5_HiBlockTable[0x10]; // MD5 of the hi-block table 24 | BYTE MD5_BetTable[0x10]; // MD5 of the BET table before decryption 25 | BYTE MD5_HetTable[0x10]; // MD5 of the HET table before decryption 26 | BYTE MD5_MpqHeader[0x10]; // MD5 of the MPQ header from signature to (including) MD5_HetTable 27 | }; 28 | 29 | // Functions are actually wrappers, as Tencent is unable to handle function params 30 | typedef HANDLE (__stdcall * SFileOpenArchive_w_t)(const char* filename, int unk); // Probably file mode? 31 | extern SFileOpenArchive_w_t SFileOpenArchive; 32 | 33 | typedef bool (__stdcall * SFileExtractFile_w_t)(const char* inFile, const char* outFile); 34 | extern SFileExtractFile_w_t SFileExtractFile; 35 | 36 | typedef bool (__stdcall * SFileCloseFile_t)(); 37 | extern SFileCloseFile_t SFileCloseFile; 38 | 39 | typedef void (__stdcall * SFileReadFile_t)(DWORD length, LPDWORD pdwRead, int unk); 40 | extern SFileReadFile_t SFileReadFile; 41 | 42 | typedef bool (__stdcall * NIFSOpenFileEx_t)(HANDLE archive, const char * szFileName, DWORD dwSearchScope, HANDLE * phFile, DWORD unk); 43 | extern NIFSOpenFileEx_t NIFSOpenFileEx; 44 | 45 | // Functions with guessed names 46 | typedef void (__stdcall * DebugEnable_t)(); 47 | extern DebugEnable_t DebugEnable; 48 | 49 | void assignFunctions(HANDLE lib); 50 | -------------------------------------------------------------------------------- /IFS Tool/Main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | using namespace std; 4 | 5 | HANDLE hstdout; 6 | char listBuffer[0xFFFF]; 7 | 8 | bool extractFile(HANDLE _archive, const char* filename) 9 | { 10 | __asm 11 | { 12 | push filename 13 | push filename 14 | mov ecx, _archive 15 | call SFileExtractFile 16 | } 17 | } 18 | 19 | vector parseListFile(char* buffer, int length) 20 | { 21 | auto entries = explode(string(buffer, length), "\n"); 22 | 23 | for(int i = 0; i < entries.size();i++) 24 | { 25 | entries[i] = fixString(entries[i]); 26 | } 27 | 28 | return entries; 29 | } 30 | 31 | void cleanListFile(HANDLE _archive, vector* list) 32 | { 33 | HANDLE hFile = 0; 34 | vector toClean; 35 | 36 | for(int i = 0; i < list->size(); i++, hFile = 0) 37 | { 38 | // Check if listFile itself 39 | if((isRootFile((*list)[i].c_str()) && hasEnding((*list)[i].c_str(), ".lst"))) 40 | { 41 | toClean.push_back(i); 42 | continue; 43 | } 44 | 45 | // Could use SFileHasFile instead, but meh... 46 | NIFSOpenFileEx(_archive, (*list)[i].c_str(), 1, &hFile, 0); 47 | 48 | if(hFile) 49 | { 50 | if(*(DWORD *)((char*)hFile + 40) != 0x46494C45) // Check for invalid handle 51 | { 52 | toClean.push_back(i); 53 | } 54 | else 55 | { 56 | __asm mov esi, hFile 57 | SFileCloseFile(); 58 | } 59 | } 60 | else 61 | { 62 | toClean.push_back(i); 63 | } 64 | } 65 | 66 | for(int i = toClean.size() - 1; i >= 0; i--) 67 | { 68 | list->erase(list->begin() + toClean[i]); 69 | } 70 | } 71 | 72 | void handleFile(const char* archive) 73 | { 74 | // Open archive for reading 75 | printf("Opening archive '%s'...\n", archive); 76 | HANDLE _archive = SFileOpenArchive(archive, 0); 77 | 78 | if(_archive) 79 | { 80 | // Read listFile 81 | DWORD length; 82 | HANDLE hListFile; 83 | NIFSOpenFileEx(_archive, "(listfile)", 1, &hListFile, 0); 84 | 85 | if(!hListFile) 86 | { 87 | SetConsoleTextAttribute( hstdout, 0x0C ); 88 | printf("Failed to open listfile!\n"); 89 | SetConsoleTextAttribute( hstdout, 0x07 ); 90 | } 91 | else 92 | { 93 | __asm mov edx, offset listBuffer 94 | __asm mov ecx, hListFile 95 | SFileReadFile(sizeof(listBuffer), &length, 1); 96 | 97 | if(!length) 98 | { 99 | SetConsoleTextAttribute( hstdout, 0x0C ); 100 | printf("Failed to open listfile!\n"); 101 | SetConsoleTextAttribute( hstdout, 0x07 ); 102 | } 103 | else 104 | { 105 | __asm mov esi, hListFile 106 | SFileCloseFile(); 107 | auto files = parseListFile(listBuffer, length); 108 | cleanListFile(_archive, &files); 109 | 110 | // Extract files from archive 111 | printf("Extracting %d files...\n", files.size()); 112 | 113 | for(int i = 0;i GetPassedArchives() 36 | { 37 | std::vector archives; 38 | 39 | if(IsDebuggerPresent()) 40 | { 41 | archives.push_back("init_ff_V1.2.1.12.ifs"); 42 | return archives; 43 | } 44 | 45 | int numArgs; 46 | LPCWSTR commandLine = GetCommandLineW(); 47 | LPWSTR* argv = CommandLineToArgvW(commandLine, &numArgs); 48 | 49 | for (int i = 0; i < numArgs; i++) 50 | { 51 | WideCharToMultiByte(CP_ACP, 0, argv[i], -1, tempFile, MAX_PATH, "?", NULL); 52 | 53 | if(hasEnding(tempFile, ".ifs")) 54 | { 55 | archives.push_back(tempFile); 56 | } 57 | } 58 | 59 | LocalFree(argv); 60 | return archives; 61 | } 62 | 63 | void* malloc_n(size_t length) 64 | { 65 | void* memPtr = malloc(length); 66 | memset(memPtr, 0, length); 67 | return memPtr; 68 | } 69 | 70 | void free_n(void* memPtr) 71 | { 72 | if(memPtr) 73 | { 74 | free(memPtr); 75 | } 76 | } 77 | 78 | bool hasEnding (std::string const &fullString, std::string const &ending) 79 | { 80 | if (fullString.length() >= ending.length()) 81 | { 82 | return (0 == fullString.compare (fullString.length() - ending.length(), ending.length(), ending)); 83 | } 84 | else 85 | { 86 | return false; 87 | } 88 | } 89 | 90 | bool isRootFile(std::string filename) 91 | { 92 | return (filename.find("/") == std::string::npos && filename.find("\\") == std::string::npos); 93 | } 94 | 95 | std::string fixString(std::string str) 96 | { 97 | while (hasEnding(str, "\x0D") || hasEnding(str, "\x0A")) 98 | { 99 | str = str.substr(0, str.size() - 1); 100 | } 101 | 102 | return str; 103 | } 104 | 105 | std::vector explode(const std::string& str, const std::string& delimiters) 106 | { 107 | std::vector tokens; 108 | 109 | auto subStrBeginPos = str.find_first_not_of(delimiters, 0); 110 | auto subStrEndPos = str.find_first_of(delimiters, subStrBeginPos); 111 | 112 | while(std::string::npos != subStrBeginPos || std::string::npos != subStrEndPos) 113 | { 114 | tokens.push_back(str.substr(subStrBeginPos, subStrEndPos-subStrBeginPos)); 115 | 116 | subStrBeginPos = str.find_first_not_of(delimiters, subStrEndPos); 117 | subStrEndPos = str.find_first_of(delimiters, subStrBeginPos); 118 | } 119 | 120 | return tokens; 121 | } 122 | -------------------------------------------------------------------------------- /IFS Tool/Utils.h: -------------------------------------------------------------------------------- 1 | const char *va( const char *fmt, ... ); 2 | void* malloc_n(size_t length); 3 | void free_n(void* memPtr); 4 | 5 | std::vector GetPassedArchives(); 6 | bool hasEnding (std::string const &fullString, std::string const &ending); 7 | bool isRootFile(std::string filename); 8 | std::string fixString(std::string str); 9 | std::vector explode(const std::string& str, const std::string& delimiters); 10 | -------------------------------------------------------------------------------- /IFS Tool/afxres.h: -------------------------------------------------------------------------------- 1 | // This is a part of the Microsoft Foundation Classes C++ library. 2 | // Copyright (C) Microsoft Corporation 3 | // All rights reserved. 4 | // 5 | // This source code is only intended as a supplement to the 6 | // Microsoft Foundation Classes Reference and related 7 | // electronic documentation provided with the library. 8 | // See these sources for detailed information regarding the 9 | // Microsoft Foundation Classes product. 10 | 11 | #ifndef __AFXRES_H__ 12 | #define __AFXRES_H__ 13 | 14 | #ifdef RC_INVOKED 15 | #ifndef _INC_WINDOWS 16 | #define _INC_WINDOWS 17 | #include "winres.h" // extract from windows header 18 | #endif 19 | #endif 20 | 21 | #ifdef _AFX_MINREBUILD 22 | #pragma component(minrebuild, off) 23 | #endif 24 | 25 | #ifndef _MFC_FILENAME_VER 26 | #define _MFC_FILENAME_VER "110" 27 | #endif 28 | 29 | #ifdef RC_INVOKED 30 | #if defined(_VC80_UPGRADE) && (_VC80_UPGRADE >= 0x0700) && (_VC80_UPGRADE < 0x0800) && defined(IDR_MANIFEST) 31 | // Handle project upgrade from VC7/VC7.1 for projects with manifest 32 | #define IDR_MANIFEST 1024 33 | #endif 34 | #endif // RC_INVOKED 35 | 36 | #ifdef APSTUDIO_INVOKED 37 | #define APSTUDIO_HIDDEN_SYMBOLS 38 | #endif 39 | 40 | ///////////////////////////////////////////////////////////////////////////// 41 | // MFC resource types (see Technical note TN024 for implementation details) 42 | 43 | #ifndef RC_INVOKED 44 | #define RT_DLGINIT MAKEINTRESOURCE(240) 45 | #define RT_TOOLBAR MAKEINTRESOURCE(241) 46 | #endif 47 | 48 | #define RT_RIBBON_XML 28 49 | 50 | ///////////////////////////////////////////////////////////////////////////// 51 | 52 | #ifdef APSTUDIO_INVOKED 53 | #undef APSTUDIO_HIDDEN_SYMBOLS 54 | #endif 55 | 56 | ///////////////////////////////////////////////////////////////////////////// 57 | // General style bits etc 58 | 59 | // ControlBar styles 60 | #define CBRS_ALIGN_LEFT 0x1000L 61 | #define CBRS_ALIGN_TOP 0x2000L 62 | #define CBRS_ALIGN_RIGHT 0x4000L 63 | #define CBRS_ALIGN_BOTTOM 0x8000L 64 | #define CBRS_ALIGN_ANY 0xF000L 65 | 66 | #define CBRS_BORDER_LEFT 0x0100L 67 | #define CBRS_BORDER_TOP 0x0200L 68 | #define CBRS_BORDER_RIGHT 0x0400L 69 | #define CBRS_BORDER_BOTTOM 0x0800L 70 | #define CBRS_BORDER_ANY 0x0F00L 71 | 72 | #define CBRS_TOOLTIPS 0x0010L 73 | #define CBRS_FLYBY 0x0020L 74 | #define CBRS_FLOAT_MULTI 0x0040L 75 | #define CBRS_BORDER_3D 0x0080L 76 | #define CBRS_HIDE_INPLACE 0x0008L 77 | #define CBRS_SIZE_DYNAMIC 0x0004L 78 | #define CBRS_SIZE_FIXED 0x0002L 79 | #define CBRS_FLOATING 0x0001L 80 | 81 | #define CBRS_GRIPPER 0x00400000L 82 | 83 | #define CBRS_ORIENT_HORZ (CBRS_ALIGN_TOP|CBRS_ALIGN_BOTTOM) 84 | #define CBRS_ORIENT_VERT (CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT) 85 | #define CBRS_ORIENT_ANY (CBRS_ORIENT_HORZ|CBRS_ORIENT_VERT) 86 | 87 | #define CBRS_ALL 0x0040FFFFL 88 | 89 | // the CBRS_ style is made up of an alignment style and a draw border style 90 | // the alignment styles are mutually exclusive 91 | // the draw border styles may be combined 92 | #define CBRS_NOALIGN 0x00000000L 93 | #define CBRS_LEFT (CBRS_ALIGN_LEFT|CBRS_BORDER_RIGHT) 94 | #define CBRS_TOP (CBRS_ALIGN_TOP|CBRS_BORDER_BOTTOM) 95 | #define CBRS_RIGHT (CBRS_ALIGN_RIGHT|CBRS_BORDER_LEFT) 96 | #define CBRS_BOTTOM (CBRS_ALIGN_BOTTOM|CBRS_BORDER_TOP) 97 | 98 | ///////////////////////////////////////////////////////////////////////////// 99 | // Standard window components 100 | 101 | // Mode indicators in status bar - these are routed like commands 102 | #define ID_INDICATOR_EXT 0xE700 // extended selection indicator 103 | #define ID_INDICATOR_CAPS 0xE701 // cap lock indicator 104 | #define ID_INDICATOR_NUM 0xE702 // num lock indicator 105 | #define ID_INDICATOR_SCRL 0xE703 // scroll lock indicator 106 | #define ID_INDICATOR_OVR 0xE704 // overtype mode indicator 107 | #define ID_INDICATOR_REC 0xE705 // record mode indicator 108 | #define ID_INDICATOR_KANA 0xE706 // kana lock indicator 109 | 110 | #define ID_SEPARATOR 0 // special separator value 111 | 112 | #ifndef RC_INVOKED // code only 113 | // Standard control bars (IDW = window ID) 114 | #define AFX_IDW_CONTROLBAR_FIRST 0xE800 115 | #define AFX_IDW_CONTROLBAR_LAST 0xE8FF 116 | 117 | #define AFX_IDW_TOOLBAR 0xE800 // main Toolbar for window 118 | #define AFX_IDW_STATUS_BAR 0xE801 // Status bar window 119 | #define AFX_IDW_PREVIEW_BAR 0xE802 // PrintPreview Dialog Bar 120 | #define AFX_IDW_RESIZE_BAR 0xE803 // OLE in-place resize bar 121 | #define AFX_IDW_REBAR 0xE804 // COMCTL32 "rebar" Bar 122 | #define AFX_IDW_DIALOGBAR 0xE805 // CDialogBar 123 | #define AFX_IDW_MENUBAR 0xE806 // CMFCMenuBar 124 | 125 | // Note: If your application supports docking toolbars, you should 126 | // not use the following IDs for your own toolbars. The IDs chosen 127 | // are at the top of the first 32 such that the bars will be hidden 128 | // while in print preview mode, and are not likely to conflict with 129 | // IDs your application may have used succesfully in the past. 130 | 131 | #define AFX_IDW_DOCKBAR_TOP 0xE81B 132 | #define AFX_IDW_DOCKBAR_LEFT 0xE81C 133 | #define AFX_IDW_DOCKBAR_RIGHT 0xE81D 134 | #define AFX_IDW_DOCKBAR_BOTTOM 0xE81E 135 | #define AFX_IDW_DOCKBAR_FLOAT 0xE81F 136 | 137 | // Macro for mapping standard control bars to bitmask (limit of 32) 138 | #define AFX_CONTROLBAR_MASK(nIDC) (1L << (nIDC - AFX_IDW_CONTROLBAR_FIRST)) 139 | 140 | // parts of Main Frame 141 | #define AFX_IDW_PANE_FIRST 0xE900 // first pane (256 max) 142 | #define AFX_IDW_PANE_LAST 0xE9ff 143 | #define AFX_IDW_HSCROLL_FIRST 0xEA00 // first Horz scrollbar (16 max) 144 | #define AFX_IDW_VSCROLL_FIRST 0xEA10 // first Vert scrollbar (16 max) 145 | 146 | #define AFX_IDW_SIZE_BOX 0xEA20 // size box for splitters 147 | #define AFX_IDW_PANE_SAVE 0xEA21 // to shift AFX_IDW_PANE_FIRST 148 | #endif //!RC_INVOKED 149 | 150 | // MFC timer IDs 151 | #define AFX_TIMER_ID_FIRST 0xEC00 152 | #define AFX_TIMER_ID_DISPLAY_AHWND_EVENT 0xEC00 153 | #define AFX_TIMER_ID_AUTO_HIDE_SLIDE_IN_EVENT 0xEC01 154 | #define AFX_TIMER_ID_AUTO_HIDE_SLIDE_OUT_EVENT 0xEC02 155 | #define AFX_TIMER_ID_CHECK_AUTO_HIDE_CONDITION 0xEC03 156 | #define AFX_TIMER_ID_DOCK_EVENT 0xEC04 157 | #define AFX_TIMER_ID_CHECK_ROLL_STATE 0xEC05 158 | #define AFX_TIMER_ID_VISIBILITY_TIMER 0xEC06 159 | #define AFX_TIMER_ID_ACCELERATOR_NOTIFY_EVENT 0xEC07 160 | #define AFX_TIMER_ID_TIMER_TRACKING 0xEC08 161 | #define AFX_TIMER_ID_TIMER_WAIT 0xEC09 // timer while waiting to show status 162 | #define AFX_TIMER_ID_TIMER_CHECK 0xEC0A // timer to check for removal of status 163 | #define AFX_TIMER_ID_TASK_ANIMATION 0xEC0B 164 | #define AFX_TIMER_ID_TASK_SCROLL 0xEC0C 165 | #define AFX_TIMER_ID_AUTOCOMMAND 0xEC0D 166 | #define AFX_TIMER_ID_ALERT_CLOSE_POPUP 0xEC0E 167 | #define AFX_TIMER_ID_ALERT_ANIMATION 0xEC0F 168 | #define AFX_TIMER_ID_ALERT_CHECK_ACTIVITY 0xEC10 169 | #define AFX_TIMER_ID_TB_SHOW_DROPDOWN 0xEC11 170 | #define AFX_TIMER_ID_MENU_SHOW_ALL_ITEMS 0xEC12 171 | #define AFX_TIMER_ID_OUTLOOK_BAR_SCRL_UP 0xEC13 172 | #define AFX_TIMER_ID_OUTLOOK_BAR_SCRL_DN 0xEC14 173 | #define AFX_TIMER_ID_MENU_POPUP_ANIMATION 0xEC15 174 | #define AFX_TIMER_ID_MENU_POPUP_SCROLL 0xEC16 175 | #define AFX_TIMER_ID_MENUBAR_POPUP 0xEC17 176 | #define AFX_TIMER_ID_MENUBAR_REMOVE 0xEC18 177 | #define AFX_TIMER_ID_RIBBONBAR_AUTO_COMMAND 0xEC19 178 | #define AFX_TIMER_ID_RIBBONBAR_SHOW_KEYTIPS 0xEC1A 179 | #define AFX_TIMER_ID_RIBBONPANEL_POPUP 0xEC1B 180 | #define AFX_TIMER_ID_RIBBONPANEL_REMOVE 0xEC1C 181 | #define AFX_TIMER_ID_RIBBONPANEL_AUTO_COMMAND 0xEC1D 182 | #define AFX_TIMER_ID_LAST 0xEC1F 183 | 184 | #ifndef APSTUDIO_INVOKED 185 | 186 | // common style for form views 187 | #define AFX_WS_DEFAULT_VIEW (WS_CHILD | WS_VISIBLE | WS_BORDER) 188 | 189 | #endif //!APSTUDIO_INVOKED 190 | 191 | ///////////////////////////////////////////////////////////////////////////// 192 | // Standard app configurable strings 193 | 194 | // for application title (defaults to EXE name or name in constructor) 195 | #define AFX_IDS_APP_TITLE 0xE000 196 | // idle message bar line 197 | #define AFX_IDS_IDLEMESSAGE 0xE001 198 | // message bar line when in shift-F1 help mode 199 | #define AFX_IDS_HELPMODEMESSAGE 0xE002 200 | // document title when editing OLE embedding 201 | #define AFX_IDS_APP_TITLE_EMBEDDING 0xE003 202 | // company name 203 | #define AFX_IDS_COMPANY_NAME 0xE004 204 | // object name when server is inplace 205 | #define AFX_IDS_OBJ_TITLE_INPLACE 0xE005 206 | // Application User Model ID 207 | #define AFX_IDS_APP_ID 0xE006 208 | 209 | ///////////////////////////////////////////////////////////////////////////// 210 | // Standard Commands 211 | 212 | // File commands 213 | #define ID_FILE_NEW 0xE100 214 | #define ID_FILE_OPEN 0xE101 215 | #define ID_FILE_CLOSE 0xE102 216 | #define ID_FILE_SAVE 0xE103 217 | #define ID_FILE_SAVE_AS 0xE104 218 | #define ID_FILE_PAGE_SETUP 0xE105 219 | #define ID_FILE_PRINT_SETUP 0xE106 220 | #define ID_FILE_PRINT 0xE107 221 | #define ID_FILE_PRINT_DIRECT 0xE108 222 | #define ID_FILE_PRINT_PREVIEW 0xE109 223 | #define ID_FILE_UPDATE 0xE10A 224 | #define ID_FILE_SAVE_COPY_AS 0xE10B 225 | #define ID_FILE_SEND_MAIL 0xE10C 226 | #define ID_FILE_NEW_FRAME 0xE10D 227 | 228 | #define ID_FILE_MRU_FIRST 0xE110 229 | #define ID_FILE_MRU_FILE1 0xE110 // range - 16 max 230 | #define ID_FILE_MRU_FILE2 0xE111 231 | #define ID_FILE_MRU_FILE3 0xE112 232 | #define ID_FILE_MRU_FILE4 0xE113 233 | #define ID_FILE_MRU_FILE5 0xE114 234 | #define ID_FILE_MRU_FILE6 0xE115 235 | #define ID_FILE_MRU_FILE7 0xE116 236 | #define ID_FILE_MRU_FILE8 0xE117 237 | #define ID_FILE_MRU_FILE9 0xE118 238 | #define ID_FILE_MRU_FILE10 0xE119 239 | #define ID_FILE_MRU_FILE11 0xE11A 240 | #define ID_FILE_MRU_FILE12 0xE11B 241 | #define ID_FILE_MRU_FILE13 0xE11C 242 | #define ID_FILE_MRU_FILE14 0xE11D 243 | #define ID_FILE_MRU_FILE15 0xE11E 244 | #define ID_FILE_MRU_FILE16 0xE11F 245 | #define ID_FILE_MRU_LAST 0xE11F 246 | 247 | // Edit commands 248 | #define ID_EDIT_CLEAR 0xE120 249 | #define ID_EDIT_CLEAR_ALL 0xE121 250 | #define ID_EDIT_COPY 0xE122 251 | #define ID_EDIT_CUT 0xE123 252 | #define ID_EDIT_FIND 0xE124 253 | #define ID_EDIT_PASTE 0xE125 254 | #define ID_EDIT_PASTE_LINK 0xE126 255 | #define ID_EDIT_PASTE_SPECIAL 0xE127 256 | #define ID_EDIT_REPEAT 0xE128 257 | #define ID_EDIT_REPLACE 0xE129 258 | #define ID_EDIT_SELECT_ALL 0xE12A 259 | #define ID_EDIT_UNDO 0xE12B 260 | #define ID_EDIT_REDO 0xE12C 261 | 262 | // Window commands 263 | #define ID_WINDOW_NEW 0xE130 264 | #define ID_WINDOW_ARRANGE 0xE131 265 | #define ID_WINDOW_CASCADE 0xE132 266 | #define ID_WINDOW_TILE_HORZ 0xE133 267 | #define ID_WINDOW_TILE_VERT 0xE134 268 | #define ID_WINDOW_SPLIT 0xE135 269 | #ifndef RC_INVOKED // code only 270 | #define AFX_IDM_WINDOW_FIRST 0xE130 271 | #define AFX_IDM_WINDOW_LAST 0xE13F 272 | #define AFX_IDM_FIRST_MDICHILD 0xFF00 // window list starts here 273 | #endif //!RC_INVOKED 274 | 275 | // Help and App commands 276 | #define ID_APP_ABOUT 0xE140 277 | #define ID_APP_EXIT 0xE141 278 | #define ID_HELP_INDEX 0xE142 279 | #define ID_HELP_FINDER 0xE143 280 | #define ID_HELP_USING 0xE144 281 | #define ID_CONTEXT_HELP 0xE145 // shift-F1 282 | // special commands for processing help 283 | #define ID_HELP 0xE146 // first attempt for F1 284 | #define ID_DEFAULT_HELP 0xE147 // last attempt 285 | 286 | // Misc 287 | #define ID_NEXT_PANE 0xE150 288 | #define ID_PREV_PANE 0xE151 289 | 290 | // Format 291 | #define ID_FORMAT_FONT 0xE160 292 | 293 | // OLE commands 294 | #define ID_OLE_INSERT_NEW 0xE200 295 | #define ID_OLE_EDIT_LINKS 0xE201 296 | #define ID_OLE_EDIT_CONVERT 0xE202 297 | #define ID_OLE_EDIT_CHANGE_ICON 0xE203 298 | #define ID_OLE_EDIT_PROPERTIES 0xE204 299 | #define ID_OLE_VERB_FIRST 0xE210 // range - 16 max 300 | #ifndef RC_INVOKED // code only 301 | #define ID_OLE_VERB_LAST 0xE21F 302 | #endif //!RC_INVOKED 303 | #define ID_OLE_VERB_POPUP 0xE220 304 | 305 | // for print preview dialog bar 306 | #define AFX_ID_PREVIEW_CLOSE 0xE300 307 | #define AFX_ID_PREVIEW_NUMPAGE 0xE301 // One/Two Page button 308 | #define AFX_ID_PREVIEW_NEXT 0xE302 309 | #define AFX_ID_PREVIEW_PREV 0xE303 310 | #define AFX_ID_PREVIEW_PRINT 0xE304 311 | #define AFX_ID_PREVIEW_ZOOMIN 0xE305 312 | #define AFX_ID_PREVIEW_ZOOMOUT 0xE306 313 | 314 | // View commands (same number used as IDW used for control bar) 315 | #define ID_VIEW_TOOLBAR 0xE800 316 | #define ID_VIEW_STATUS_BAR 0xE801 317 | #define ID_VIEW_REBAR 0xE804 318 | #define ID_VIEW_AUTOARRANGE 0xE805 319 | // E810 -> E81F must be kept in order for RANGE macros 320 | #define ID_VIEW_SMALLICON 0xE810 321 | #define ID_VIEW_LARGEICON 0xE811 322 | #define ID_VIEW_LIST 0xE812 323 | #define ID_VIEW_DETAILS 0xE813 324 | #define ID_VIEW_LINEUP 0xE814 325 | #define ID_VIEW_BYNAME 0xE815 326 | #define AFX_ID_VIEW_MINIMUM ID_VIEW_SMALLICON 327 | #define AFX_ID_VIEW_MAXIMUM ID_VIEW_BYNAME 328 | // E800 -> E8FF reserved for other control bar commands 329 | 330 | // RecordForm commands 331 | #define ID_RECORD_FIRST 0xE900 332 | #define ID_RECORD_LAST 0xE901 333 | #define ID_RECORD_NEXT 0xE902 334 | #define ID_RECORD_PREV 0xE903 335 | 336 | ///////////////////////////////////////////////////////////////////////////// 337 | // Standard control IDs 338 | 339 | #ifdef IDC_STATIC 340 | #undef IDC_STATIC 341 | #endif 342 | #define IDC_STATIC (-1) // all static controls 343 | 344 | ///////////////////////////////////////////////////////////////////////////// 345 | // Standard string error/warnings 346 | 347 | #ifndef RC_INVOKED // code only 348 | #define AFX_IDS_SCFIRST 0xEF00 349 | #endif //!RC_INVOKED 350 | 351 | #define AFX_IDS_SCSIZE 0xEF00 352 | #define AFX_IDS_SCMOVE 0xEF01 353 | #define AFX_IDS_SCMINIMIZE 0xEF02 354 | #define AFX_IDS_SCMAXIMIZE 0xEF03 355 | #define AFX_IDS_SCNEXTWINDOW 0xEF04 356 | #define AFX_IDS_SCPREVWINDOW 0xEF05 357 | #define AFX_IDS_SCCLOSE 0xEF06 358 | #define AFX_IDS_SCRESTORE 0xEF12 359 | #define AFX_IDS_SCTASKLIST 0xEF13 360 | 361 | #define AFX_IDS_MDICHILD 0xEF1F 362 | 363 | #define AFX_IDS_DESKACCESSORY 0xEFDA 364 | 365 | // General strings 366 | #define AFX_IDS_OPENFILE 0xF000 367 | #define AFX_IDS_SAVEFILE 0xF001 368 | #define AFX_IDS_ALLFILTER 0xF002 369 | #define AFX_IDS_UNTITLED 0xF003 370 | #define AFX_IDS_SAVEFILECOPY 0xF004 371 | #define AFX_IDS_PREVIEW_CLOSE 0xF005 372 | #define AFX_IDS_UNNAMED_FILE 0xF006 373 | #define AFX_IDS_HIDE 0xF011 374 | 375 | // MFC Standard Exception Error messages 376 | #define AFX_IDP_NO_ERROR_AVAILABLE 0xF020 377 | #define AFX_IDS_NOT_SUPPORTED_EXCEPTION 0xF021 378 | #define AFX_IDS_RESOURCE_EXCEPTION 0xF022 379 | #define AFX_IDS_MEMORY_EXCEPTION 0xF023 380 | #define AFX_IDS_USER_EXCEPTION 0xF024 381 | #define AFX_IDS_INVALID_ARG_EXCEPTION 0xF025 382 | 383 | // Printing and print preview strings 384 | #define AFX_IDS_PRINTONPORT 0xF040 385 | #define AFX_IDS_ONEPAGE 0xF041 386 | #define AFX_IDS_TWOPAGE 0xF042 387 | #define AFX_IDS_PRINTPAGENUM 0xF043 388 | #define AFX_IDS_PREVIEWPAGEDESC 0xF044 389 | #define AFX_IDS_PRINTDEFAULTEXT 0xF045 390 | #define AFX_IDS_PRINTDEFAULT 0xF046 391 | #define AFX_IDS_PRINTFILTER 0xF047 392 | #define AFX_IDS_PRINTCAPTION 0xF048 393 | #define AFX_IDS_PRINTTOFILE 0xF049 394 | 395 | 396 | // OLE strings 397 | #define AFX_IDS_OBJECT_MENUITEM 0xF080 398 | #define AFX_IDS_EDIT_VERB 0xF081 399 | #define AFX_IDS_ACTIVATE_VERB 0xF082 400 | #define AFX_IDS_CHANGE_LINK 0xF083 401 | #define AFX_IDS_AUTO 0xF084 402 | #define AFX_IDS_MANUAL 0xF085 403 | #define AFX_IDS_FROZEN 0xF086 404 | #define AFX_IDS_ALL_FILES 0xF087 405 | // dynamically changing menu items 406 | #define AFX_IDS_SAVE_MENU 0xF088 407 | #define AFX_IDS_UPDATE_MENU 0xF089 408 | #define AFX_IDS_SAVE_AS_MENU 0xF08A 409 | #define AFX_IDS_SAVE_COPY_AS_MENU 0xF08B 410 | #define AFX_IDS_EXIT_MENU 0xF08C 411 | #define AFX_IDS_UPDATING_ITEMS 0xF08D 412 | // COlePasteSpecialDialog defines 413 | #define AFX_IDS_METAFILE_FORMAT 0xF08E 414 | #define AFX_IDS_DIB_FORMAT 0xF08F 415 | #define AFX_IDS_BITMAP_FORMAT 0xF090 416 | #define AFX_IDS_LINKSOURCE_FORMAT 0xF091 417 | #define AFX_IDS_EMBED_FORMAT 0xF092 418 | // other OLE utility strings 419 | #define AFX_IDS_PASTELINKEDTYPE 0xF094 420 | #define AFX_IDS_UNKNOWNTYPE 0xF095 421 | #define AFX_IDS_RTF_FORMAT 0xF096 422 | #define AFX_IDS_TEXT_FORMAT 0xF097 423 | // OLE datatype format error strings 424 | #define AFX_IDS_INVALID_CURRENCY 0xF098 425 | #define AFX_IDS_INVALID_DATETIME 0xF099 426 | #define AFX_IDS_INVALID_DATETIMESPAN 0xF09A 427 | 428 | // General error / prompt strings 429 | #define AFX_IDP_INVALID_FILENAME 0xF100 430 | #define AFX_IDP_FAILED_TO_OPEN_DOC 0xF101 431 | #define AFX_IDP_FAILED_TO_SAVE_DOC 0xF102 432 | #define AFX_IDP_ASK_TO_SAVE 0xF103 433 | #define AFX_IDP_FAILED_TO_CREATE_DOC 0xF104 434 | #define AFX_IDP_FILE_TOO_LARGE 0xF105 435 | #define AFX_IDP_FAILED_TO_START_PRINT 0xF106 436 | #define AFX_IDP_FAILED_TO_LAUNCH_HELP 0xF107 437 | #define AFX_IDP_INTERNAL_FAILURE 0xF108 // general failure 438 | #define AFX_IDP_COMMAND_FAILURE 0xF109 // command failure 439 | #define AFX_IDP_FAILED_MEMORY_ALLOC 0xF10A 440 | #define AFX_IDP_UNREG_DONE 0xF10B 441 | #define AFX_IDP_UNREG_FAILURE 0xF10C 442 | #define AFX_IDP_DLL_LOAD_FAILED 0xF10D 443 | #define AFX_IDP_DLL_BAD_VERSION 0xF10E 444 | 445 | // DDV parse errors 446 | #define AFX_IDP_PARSE_INT 0xF110 447 | #define AFX_IDP_PARSE_REAL 0xF111 448 | #define AFX_IDP_PARSE_INT_RANGE 0xF112 449 | #define AFX_IDP_PARSE_REAL_RANGE 0xF113 450 | #define AFX_IDP_PARSE_STRING_SIZE 0xF114 451 | #define AFX_IDP_PARSE_RADIO_BUTTON 0xF115 452 | #define AFX_IDP_PARSE_BYTE 0xF116 453 | #define AFX_IDP_PARSE_UINT 0xF117 454 | #define AFX_IDP_PARSE_DATETIME 0xF118 455 | #define AFX_IDP_PARSE_CURRENCY 0xF119 456 | #define AFX_IDP_PARSE_GUID 0xF11A 457 | #define AFX_IDP_PARSE_TIME 0xF11B 458 | #define AFX_IDP_PARSE_DATE 0xF11C 459 | 460 | // CFile/CArchive error strings for user failure 461 | #define AFX_IDP_FAILED_INVALID_FORMAT 0xF120 462 | #define AFX_IDP_FAILED_INVALID_PATH 0xF121 463 | #define AFX_IDP_FAILED_DISK_FULL 0xF122 464 | #define AFX_IDP_FAILED_ACCESS_READ 0xF123 465 | #define AFX_IDP_FAILED_ACCESS_WRITE 0xF124 466 | #define AFX_IDP_FAILED_IO_ERROR_READ 0xF125 467 | #define AFX_IDP_FAILED_IO_ERROR_WRITE 0xF126 468 | 469 | // Script errors / prompt strings 470 | #define AFX_IDP_SCRIPT_ERROR 0xF130 471 | #define AFX_IDP_SCRIPT_DISPATCH_EXCEPTION 0xF131 472 | 473 | // OLE errors / prompt strings 474 | #define AFX_IDP_STATIC_OBJECT 0xF180 475 | #define AFX_IDP_FAILED_TO_CONNECT 0xF181 476 | #define AFX_IDP_SERVER_BUSY 0xF182 477 | #define AFX_IDP_BAD_VERB 0xF183 478 | #define AFX_IDS_NOT_DOCOBJECT 0xF184 479 | #define AFX_IDP_FAILED_TO_NOTIFY 0xF185 480 | #define AFX_IDP_FAILED_TO_LAUNCH 0xF186 481 | #define AFX_IDP_ASK_TO_UPDATE 0xF187 482 | #define AFX_IDP_FAILED_TO_UPDATE 0xF188 483 | #define AFX_IDP_FAILED_TO_REGISTER 0xF189 484 | #define AFX_IDP_FAILED_TO_AUTO_REGISTER 0xF18A 485 | #define AFX_IDP_FAILED_TO_CONVERT 0xF18B 486 | #define AFX_IDP_GET_NOT_SUPPORTED 0xF18C 487 | #define AFX_IDP_SET_NOT_SUPPORTED 0xF18D 488 | #define AFX_IDP_ASK_TO_DISCARD 0xF18E 489 | #define AFX_IDP_FAILED_TO_CREATE 0xF18F 490 | 491 | // MAPI errors / prompt strings 492 | #define AFX_IDP_FAILED_MAPI_LOAD 0xF190 493 | #define AFX_IDP_INVALID_MAPI_DLL 0xF191 494 | #define AFX_IDP_FAILED_MAPI_SEND 0xF192 495 | 496 | #define AFX_IDP_FILE_NONE 0xF1A0 497 | #define AFX_IDP_FILE_GENERIC 0xF1A1 498 | #define AFX_IDP_FILE_NOT_FOUND 0xF1A2 499 | #define AFX_IDP_FILE_BAD_PATH 0xF1A3 500 | #define AFX_IDP_FILE_TOO_MANY_OPEN 0xF1A4 501 | #define AFX_IDP_FILE_ACCESS_DENIED 0xF1A5 502 | #define AFX_IDP_FILE_INVALID_FILE 0xF1A6 503 | #define AFX_IDP_FILE_REMOVE_CURRENT 0xF1A7 504 | #define AFX_IDP_FILE_DIR_FULL 0xF1A8 505 | #define AFX_IDP_FILE_BAD_SEEK 0xF1A9 506 | #define AFX_IDP_FILE_HARD_IO 0xF1AA 507 | #define AFX_IDP_FILE_SHARING 0xF1AB 508 | #define AFX_IDP_FILE_LOCKING 0xF1AC 509 | #define AFX_IDP_FILE_DISKFULL 0xF1AD 510 | #define AFX_IDP_FILE_EOF 0xF1AE 511 | 512 | #define AFX_IDP_ARCH_NONE 0xF1B0 513 | #define AFX_IDP_ARCH_GENERIC 0xF1B1 514 | #define AFX_IDP_ARCH_READONLY 0xF1B2 515 | #define AFX_IDP_ARCH_ENDOFFILE 0xF1B3 516 | #define AFX_IDP_ARCH_WRITEONLY 0xF1B4 517 | #define AFX_IDP_ARCH_BADINDEX 0xF1B5 518 | #define AFX_IDP_ARCH_BADCLASS 0xF1B6 519 | #define AFX_IDP_ARCH_BADSCHEMA 0xF1B7 520 | 521 | #define AFX_IDS_OCC_SCALEUNITS_PIXELS 0xF1C0 522 | 523 | // 0xf200-0xf20f reserved 524 | 525 | // font names and point sizes 526 | #define AFX_IDS_STATUS_FONT 0xF230 527 | #define AFX_IDS_TOOLTIP_FONT 0xF231 528 | #define AFX_IDS_UNICODE_FONT 0xF232 529 | #define AFX_IDS_MINI_FONT 0xF233 530 | 531 | // ODBC Database errors / prompt strings 532 | #ifndef RC_INVOKED // code only 533 | #define AFX_IDP_SQL_FIRST 0xF280 534 | #endif //!RC_INVOKED 535 | #define AFX_IDP_SQL_CONNECT_FAIL 0xF281 536 | #define AFX_IDP_SQL_RECORDSET_FORWARD_ONLY 0xF282 537 | #define AFX_IDP_SQL_EMPTY_COLUMN_LIST 0xF283 538 | #define AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH 0xF284 539 | #define AFX_IDP_SQL_ILLEGAL_MODE 0xF285 540 | #define AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED 0xF286 541 | #define AFX_IDP_SQL_NO_CURRENT_RECORD 0xF287 542 | #define AFX_IDP_SQL_NO_ROWS_AFFECTED 0xF288 543 | #define AFX_IDP_SQL_RECORDSET_READONLY 0xF289 544 | #define AFX_IDP_SQL_SQL_NO_TOTAL 0xF28A 545 | #define AFX_IDP_SQL_ODBC_LOAD_FAILED 0xF28B 546 | #define AFX_IDP_SQL_DYNASET_NOT_SUPPORTED 0xF28C 547 | #define AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED 0xF28D 548 | #define AFX_IDP_SQL_API_CONFORMANCE 0xF28E 549 | #define AFX_IDP_SQL_SQL_CONFORMANCE 0xF28F 550 | #define AFX_IDP_SQL_NO_DATA_FOUND 0xF290 551 | #define AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED 0xF291 552 | #define AFX_IDP_SQL_ODBC_V2_REQUIRED 0xF292 553 | #define AFX_IDP_SQL_NO_POSITIONED_UPDATES 0xF293 554 | #define AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED 0xF294 555 | #define AFX_IDP_SQL_DATA_TRUNCATED 0xF295 556 | #define AFX_IDP_SQL_ROW_FETCH 0xF296 557 | #define AFX_IDP_SQL_INCORRECT_ODBC 0xF297 558 | #define AFX_IDP_SQL_UPDATE_DELETE_FAILED 0xF298 559 | #define AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED 0xF299 560 | #define AFX_IDP_SQL_FIELD_NOT_FOUND 0xF29A 561 | #define AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED 0xF29B 562 | #define AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED 0xF29C 563 | 564 | // ODBC Database strings 565 | #define AFX_IDS_DELETED 0xF29D 566 | 567 | // DAO Database errors / prompt strings 568 | #ifndef RC_INVOKED // code only 569 | #define AFX_IDP_DAO_FIRST 0xF2B0 570 | #endif //!RC_INVOKED 571 | #define AFX_IDP_DAO_ENGINE_INITIALIZATION 0xF2B0 572 | #define AFX_IDP_DAO_DFX_BIND 0xF2B1 573 | #define AFX_IDP_DAO_OBJECT_NOT_OPEN 0xF2B2 574 | 575 | // ICDAORecordset::GetRows Errors 576 | // These are not placed in DAO Errors collection 577 | // and must be handled directly by MFC. 578 | #define AFX_IDP_DAO_ROWTOOSHORT 0xF2B3 579 | #define AFX_IDP_DAO_BADBINDINFO 0xF2B4 580 | #define AFX_IDP_DAO_COLUMNUNAVAILABLE 0xF2B5 581 | 582 | ///////////////////////////////////////////////////////////////////////////// 583 | // Strings for ISAPI support 584 | 585 | #define AFX_IDS_HTTP_TITLE 0xF2D1 586 | #define AFX_IDS_HTTP_NO_TEXT 0xF2D2 587 | #define AFX_IDS_HTTP_BAD_REQUEST 0xF2D3 588 | #define AFX_IDS_HTTP_AUTH_REQUIRED 0xF2D4 589 | #define AFX_IDS_HTTP_FORBIDDEN 0xF2D5 590 | #define AFX_IDS_HTTP_NOT_FOUND 0xF2D6 591 | #define AFX_IDS_HTTP_SERVER_ERROR 0xF2D7 592 | #define AFX_IDS_HTTP_NOT_IMPLEMENTED 0xF2D8 593 | 594 | ///////////////////////////////////////////////////////////////////////////// 595 | // Strings for Accessibility support for CCheckListBox 596 | #define AFX_IDS_CHECKLISTBOX_UNCHECK 0xF2E1 597 | #define AFX_IDS_CHECKLISTBOX_CHECK 0xF2E2 598 | #define AFX_IDS_CHECKLISTBOX_MIXED 0xF2E3 599 | 600 | ///////////////////////////////////////////////////////////////////////////// 601 | // Strings for auto-save recovery prompts 602 | #define AFX_IDS_AUTOSAVE_RECOVERY_ASK_1 0xF2E4 603 | #define AFX_IDS_AUTOSAVE_RECOVERY_ASK_2 0xF2E5 604 | #define AFX_IDS_AUTOSAVE_RECOVERY_ASK_3 0xF2E6 605 | #define AFX_IDS_AUTOSAVE_RECOVERY_ASK_4 0xF2E7 606 | #define AFX_IDS_AUTOSAVE_RECOVERY_ASK_5 0xF2E8 607 | #define AFX_IDS_AUTOSAVE_RECOVERY_ASK_6 0xF2E9 608 | #define AFX_IDS_AUTOSAVE_RECOVERED 0xF2EA 609 | 610 | ///////////////////////////////////////////////////////////////////////////// 611 | // AFX implementation - control IDs (AFX_IDC) 612 | 613 | // Parts of dialogs 614 | #define AFX_IDC_LISTBOX 100 615 | #define AFX_IDC_CHANGE 101 616 | #define AFX_IDC_BROWSER 102 617 | 618 | // for print dialog 619 | #define AFX_IDC_PRINT_DOCNAME 201 620 | #define AFX_IDC_PRINT_PRINTERNAME 202 621 | #define AFX_IDC_PRINT_PORTNAME 203 622 | #define AFX_IDC_PRINT_PAGENUM 204 623 | 624 | // Property Sheet control id's (determined with Spy++) 625 | #define ID_APPLY_NOW 0x3021 626 | #define ID_WIZBACK 0x3023 627 | #define ID_WIZNEXT 0x3024 628 | #define ID_WIZFINISH 0x3025 629 | #define AFX_IDC_TAB_CONTROL 0x3020 630 | 631 | ///////////////////////////////////////////////////////////////////////////// 632 | // IDRs for standard components 633 | 634 | #ifndef RC_INVOKED // code only 635 | // These are really COMMDLG dialogs, so there usually isn't a resource 636 | // for them, but these IDs are used as help IDs. 637 | #define AFX_IDD_FILEOPEN 28676 638 | #define AFX_IDD_FILESAVE 28677 639 | #define AFX_IDD_FONT 28678 640 | #define AFX_IDD_COLOR 28679 641 | #define AFX_IDD_PRINT 28680 642 | #define AFX_IDD_PRINTSETUP 28681 643 | #define AFX_IDD_FIND 28682 644 | #define AFX_IDD_REPLACE 28683 645 | #endif //!RC_INVOKED 646 | 647 | // Standard dialogs app should leave alone (0x7801->) 648 | #define AFX_IDD_NEWTYPEDLG 30721 649 | #define AFX_IDD_PRINTDLG 30722 650 | #define AFX_IDD_PREVIEW_TOOLBAR 30723 651 | 652 | // Dialogs defined for OLE2UI library 653 | #define AFX_IDD_INSERTOBJECT 30724 654 | #define AFX_IDD_CHANGEICON 30725 655 | #define AFX_IDD_CONVERT 30726 656 | #define AFX_IDD_PASTESPECIAL 30727 657 | #define AFX_IDD_EDITLINKS 30728 658 | #define AFX_IDD_FILEBROWSE 30729 659 | #define AFX_IDD_BUSY 30730 660 | 661 | #define AFX_IDD_OBJECTPROPERTIES 30732 662 | #define AFX_IDD_CHANGESOURCE 30733 663 | 664 | //WinForms 665 | #define AFX_IDD_EMPTYDIALOG 30734 666 | 667 | // Standard cursors (0x7901->) 668 | // AFX_IDC = Cursor resources 669 | #define AFX_IDC_CONTEXTHELP 30977 // context sensitive help 670 | #define AFX_IDC_MAGNIFY 30978 // print preview zoom 671 | #define AFX_IDC_SMALLARROWS 30979 // splitter 672 | #define AFX_IDC_HSPLITBAR 30980 // splitter 673 | #define AFX_IDC_VSPLITBAR 30981 // splitter 674 | #define AFX_IDC_NODROPCRSR 30982 // No Drop Cursor 675 | #define AFX_IDC_TRACKNWSE 30983 // tracker 676 | #define AFX_IDC_TRACKNESW 30984 // tracker 677 | #define AFX_IDC_TRACKNS 30985 // tracker 678 | #define AFX_IDC_TRACKWE 30986 // tracker 679 | #define AFX_IDC_TRACK4WAY 30987 // tracker 680 | #define AFX_IDC_MOVE4WAY 30988 // resize bar (server only) 681 | 682 | // Wheel mouse cursors 683 | // NOTE: values must be in this order! See CScrollView::OnTimer() 684 | #define AFX_IDC_MOUSE_PAN_NW 30998 // pan east 685 | #define AFX_IDC_MOUSE_PAN_N 30999 // pan northeast 686 | #define AFX_IDC_MOUSE_PAN_NE 31000 // pan north 687 | #define AFX_IDC_MOUSE_PAN_W 31001 // pan northwest 688 | #define AFX_IDC_MOUSE_PAN_HV 31002 // pan both axis 689 | #define AFX_IDC_MOUSE_PAN_E 31003 // pan west 690 | #define AFX_IDC_MOUSE_PAN_SW 31004 // pan south-west 691 | #define AFX_IDC_MOUSE_PAN_S 31005 // pan south 692 | #define AFX_IDC_MOUSE_PAN_SE 31006 // pan south-east 693 | #define AFX_IDC_MOUSE_PAN_HORZ 31007 // pan X-axis 694 | #define AFX_IDC_MOUSE_PAN_VERT 31008 // pan Y-axis 695 | 696 | // Wheel mouse bitmaps 697 | #define AFX_IDC_MOUSE_ORG_HORZ 31009 // anchor for horz only 698 | #define AFX_IDC_MOUSE_ORG_VERT 31010 // anchor for vert only 699 | #define AFX_IDC_MOUSE_ORG_HV 31011 // anchor for horz/vert 700 | #define AFX_IDC_MOUSE_MASK 31012 701 | 702 | // Mini frame window bitmap ID 703 | #define AFX_IDB_MINIFRAME_MENU 30994 704 | 705 | // CheckListBox checks bitmap ID 706 | #define AFX_IDB_CHECKLISTBOX_95 30996 707 | 708 | // AFX standard accelerator resources 709 | #define AFX_IDR_PREVIEW_ACCEL 30997 710 | 711 | // AFX standard ICON IDs (for MFC V1 apps) (0x7A01->) 712 | #define AFX_IDI_STD_MDIFRAME 31233 713 | #define AFX_IDI_STD_FRAME 31234 714 | 715 | ///////////////////////////////////////////////////////////////////////////// 716 | // AFX OLE control implementation - control IDs (AFX_IDC) 717 | 718 | // Font property page 719 | #define AFX_IDC_FONTPROP 1000 720 | #define AFX_IDC_FONTNAMES 1001 721 | #define AFX_IDC_FONTSTYLES 1002 722 | #define AFX_IDC_FONTSIZES 1003 723 | #define AFX_IDC_STRIKEOUT 1004 724 | #define AFX_IDC_UNDERLINE 1005 725 | #define AFX_IDC_SAMPLEBOX 1006 726 | 727 | // Color property page 728 | #define AFX_IDC_COLOR_BLACK 1100 729 | #define AFX_IDC_COLOR_WHITE 1101 730 | #define AFX_IDC_COLOR_RED 1102 731 | #define AFX_IDC_COLOR_GREEN 1103 732 | #define AFX_IDC_COLOR_BLUE 1104 733 | #define AFX_IDC_COLOR_YELLOW 1105 734 | #define AFX_IDC_COLOR_MAGENTA 1106 735 | #define AFX_IDC_COLOR_CYAN 1107 736 | #define AFX_IDC_COLOR_GRAY 1108 737 | #define AFX_IDC_COLOR_LIGHTGRAY 1109 738 | #define AFX_IDC_COLOR_DARKRED 1110 739 | #define AFX_IDC_COLOR_DARKGREEN 1111 740 | #define AFX_IDC_COLOR_DARKBLUE 1112 741 | #define AFX_IDC_COLOR_LIGHTBROWN 1113 742 | #define AFX_IDC_COLOR_DARKMAGENTA 1114 743 | #define AFX_IDC_COLOR_DARKCYAN 1115 744 | #define AFX_IDC_COLORPROP 1116 745 | #define AFX_IDC_SYSTEMCOLORS 1117 746 | 747 | // Picture porperty page 748 | #define AFX_IDC_PROPNAME 1201 749 | #define AFX_IDC_PICTURE 1202 750 | #define AFX_IDC_BROWSE 1203 751 | #define AFX_IDC_CLEAR 1204 752 | 753 | ///////////////////////////////////////////////////////////////////////////// 754 | // IDRs for OLE control standard components 755 | 756 | // Standard propery page dialogs app should leave alone (0x7E01->) 757 | #define AFX_IDD_PROPPAGE_COLOR 32257 758 | #define AFX_IDD_PROPPAGE_FONT 32258 759 | #define AFX_IDD_PROPPAGE_PICTURE 32259 760 | 761 | ///////////////////////////////////////////////////////////////////////////// 762 | // Standard OLE control strings 763 | 764 | // OLE Control page strings 765 | #define AFX_IDS_PROPPAGE_UNKNOWN 0xFE01 766 | #define AFX_IDS_COLOR_DESKTOP 0xFE04 767 | #define AFX_IDS_COLOR_APPWORKSPACE 0xFE05 768 | #define AFX_IDS_COLOR_WNDBACKGND 0xFE06 769 | #define AFX_IDS_COLOR_WNDTEXT 0xFE07 770 | #define AFX_IDS_COLOR_MENUBAR 0xFE08 771 | #define AFX_IDS_COLOR_MENUTEXT 0xFE09 772 | #define AFX_IDS_COLOR_ACTIVEBAR 0xFE0A 773 | #define AFX_IDS_COLOR_INACTIVEBAR 0xFE0B 774 | #define AFX_IDS_COLOR_ACTIVETEXT 0xFE0C 775 | #define AFX_IDS_COLOR_INACTIVETEXT 0xFE0D 776 | #define AFX_IDS_COLOR_ACTIVEBORDER 0xFE0E 777 | #define AFX_IDS_COLOR_INACTIVEBORDER 0xFE0F 778 | #define AFX_IDS_COLOR_WNDFRAME 0xFE10 779 | #define AFX_IDS_COLOR_SCROLLBARS 0xFE11 780 | #define AFX_IDS_COLOR_BTNFACE 0xFE12 781 | #define AFX_IDS_COLOR_BTNSHADOW 0xFE13 782 | #define AFX_IDS_COLOR_BTNTEXT 0xFE14 783 | #define AFX_IDS_COLOR_BTNHIGHLIGHT 0xFE15 784 | #define AFX_IDS_COLOR_DISABLEDTEXT 0xFE16 785 | #define AFX_IDS_COLOR_HIGHLIGHT 0xFE17 786 | #define AFX_IDS_COLOR_HIGHLIGHTTEXT 0xFE18 787 | #define AFX_IDS_REGULAR 0xFE19 788 | #define AFX_IDS_BOLD 0xFE1A 789 | #define AFX_IDS_ITALIC 0xFE1B 790 | #define AFX_IDS_BOLDITALIC 0xFE1C 791 | #define AFX_IDS_SAMPLETEXT 0xFE1D 792 | #define AFX_IDS_DISPLAYSTRING_FONT 0xFE1E 793 | #define AFX_IDS_DISPLAYSTRING_COLOR 0xFE1F 794 | #define AFX_IDS_DISPLAYSTRING_PICTURE 0xFE20 795 | #define AFX_IDS_PICTUREFILTER 0xFE21 796 | #define AFX_IDS_PICTYPE_UNKNOWN 0xFE22 797 | #define AFX_IDS_PICTYPE_NONE 0xFE23 798 | #define AFX_IDS_PICTYPE_BITMAP 0xFE24 799 | #define AFX_IDS_PICTYPE_METAFILE 0xFE25 800 | #define AFX_IDS_PICTYPE_ICON 0xFE26 801 | #define AFX_IDS_COLOR_PPG 0xFE28 802 | #define AFX_IDS_COLOR_PPG_CAPTION 0xFE29 803 | #define AFX_IDS_FONT_PPG 0xFE2A 804 | #define AFX_IDS_FONT_PPG_CAPTION 0xFE2B 805 | #define AFX_IDS_PICTURE_PPG 0xFE2C 806 | #define AFX_IDS_PICTURE_PPG_CAPTION 0xFE2D 807 | #define AFX_IDS_PICTUREBROWSETITLE 0xFE30 808 | #define AFX_IDS_BORDERSTYLE_0 0xFE31 809 | #define AFX_IDS_BORDERSTYLE_1 0xFE32 810 | 811 | // OLE Control verb names 812 | #define AFX_IDS_VERB_EDIT 0xFE40 813 | #define AFX_IDS_VERB_PROPERTIES 0xFE41 814 | 815 | // OLE Control internal error messages 816 | #define AFX_IDP_PICTURECANTOPEN 0xFE83 817 | #define AFX_IDP_PICTURECANTLOAD 0xFE84 818 | #define AFX_IDP_PICTURETOOLARGE 0xFE85 819 | #define AFX_IDP_PICTUREREADFAILED 0xFE86 820 | 821 | // Standard OLE Control error strings 822 | #define AFX_IDP_E_ILLEGALFUNCTIONCALL 0xFEA0 823 | #define AFX_IDP_E_OVERFLOW 0xFEA1 824 | #define AFX_IDP_E_OUTOFMEMORY 0xFEA2 825 | #define AFX_IDP_E_DIVISIONBYZERO 0xFEA3 826 | #define AFX_IDP_E_OUTOFSTRINGSPACE 0xFEA4 827 | #define AFX_IDP_E_OUTOFSTACKSPACE 0xFEA5 828 | #define AFX_IDP_E_BADFILENAMEORNUMBER 0xFEA6 829 | #define AFX_IDP_E_FILENOTFOUND 0xFEA7 830 | #define AFX_IDP_E_BADFILEMODE 0xFEA8 831 | #define AFX_IDP_E_FILEALREADYOPEN 0xFEA9 832 | #define AFX_IDP_E_DEVICEIOERROR 0xFEAA 833 | #define AFX_IDP_E_FILEALREADYEXISTS 0xFEAB 834 | #define AFX_IDP_E_BADRECORDLENGTH 0xFEAC 835 | #define AFX_IDP_E_DISKFULL 0xFEAD 836 | #define AFX_IDP_E_BADRECORDNUMBER 0xFEAE 837 | #define AFX_IDP_E_BADFILENAME 0xFEAF 838 | #define AFX_IDP_E_TOOMANYFILES 0xFEB0 839 | #define AFX_IDP_E_DEVICEUNAVAILABLE 0xFEB1 840 | #define AFX_IDP_E_PERMISSIONDENIED 0xFEB2 841 | #define AFX_IDP_E_DISKNOTREADY 0xFEB3 842 | #define AFX_IDP_E_PATHFILEACCESSERROR 0xFEB4 843 | #define AFX_IDP_E_PATHNOTFOUND 0xFEB5 844 | #define AFX_IDP_E_INVALIDPATTERNSTRING 0xFEB6 845 | #define AFX_IDP_E_INVALIDUSEOFNULL 0xFEB7 846 | #define AFX_IDP_E_INVALIDFILEFORMAT 0xFEB8 847 | #define AFX_IDP_E_INVALIDPROPERTYVALUE 0xFEB9 848 | #define AFX_IDP_E_INVALIDPROPERTYARRAYINDEX 0xFEBA 849 | #define AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME 0xFEBB 850 | #define AFX_IDP_E_SETNOTSUPPORTED 0xFEBC 851 | #define AFX_IDP_E_NEEDPROPERTYARRAYINDEX 0xFEBD 852 | #define AFX_IDP_E_SETNOTPERMITTED 0xFEBE 853 | #define AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME 0xFEBF 854 | #define AFX_IDP_E_GETNOTSUPPORTED 0xFEC0 855 | #define AFX_IDP_E_PROPERTYNOTFOUND 0xFEC1 856 | #define AFX_IDP_E_INVALIDCLIPBOARDFORMAT 0xFEC2 857 | #define AFX_IDP_E_INVALIDPICTURE 0xFEC3 858 | #define AFX_IDP_E_PRINTERERROR 0xFEC4 859 | #define AFX_IDP_E_CANTSAVEFILETOTEMP 0xFEC5 860 | #define AFX_IDP_E_SEARCHTEXTNOTFOUND 0xFEC6 861 | #define AFX_IDP_E_REPLACEMENTSTOOLONG 0xFEC7 862 | 863 | ///////////////////////////////////////////////////////////////////////////// 864 | 865 | #ifdef _AFX_MINREBUILD 866 | #pragma component(minrebuild, on) 867 | #endif 868 | 869 | #endif //__AFXRES_H__ 870 | 871 | ///////////////////////////////////////////////////////////////////////////// 872 | -------------------------------------------------------------------------------- /IFS Tool/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeTheTech101/ifs-tool/cc0a00c76ac883932f27ed7af57ea0191651631f/IFS Tool/icon.ico -------------------------------------------------------------------------------- /IFS Tool/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeTheTech101/ifs-tool/cc0a00c76ac883932f27ed7af57ea0191651631f/IFS Tool/resource.h -------------------------------------------------------------------------------- /IFS Tool/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include "Utils.h" 11 | #include "IFS.h" 12 | 13 | #define DO_DEBUG 0 14 | -------------------------------------------------------------------------------- /IFS2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeTheTech101/ifs-tool/cc0a00c76ac883932f27ed7af57ea0191651631f/IFS2.dll -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | IFS Tool 2 | ======== 3 | 4 | As of version 1.2.1.12, Call of Duty: Online assets have been recompressed/packed into a 'new' archive system called IFS (or so...) 5 | This tool allows you to extract all the files from such archives. 6 | Just drag the *.ifs files ontop of the 'IFS Tool.exe' (make sure you have Tencent's IFS2.dll aswell) 7 | It should extract all the files from the archives then. 8 | 9 | This tool was written as part of the React project (https://react.kthx.at/) 10 | Copyright © 2014 Maurice Heumann/momo5502 - All rights reserved. 11 | 12 | ================================================================================= 13 | 14 |

If you like my work, feel free to contribute:
15 |

16 | --------------------------------------------------------------------------------