1*f6dc9357SAndroid Build Coastguard Worker // 7zip/Far/Plugin.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_7ZIP_FAR_PLUGIN_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_7ZIP_FAR_PLUGIN_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyCom.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker // #include "../../../Windows/COM.h" 9*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/FileFind.h" 10*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/PropVariant.h" 11*f6dc9357SAndroid Build Coastguard Worker 12*f6dc9357SAndroid Build Coastguard Worker #include "../Common/WorkDir.h" 13*f6dc9357SAndroid Build Coastguard Worker 14*f6dc9357SAndroid Build Coastguard Worker #include "../Agent/Agent.h" 15*f6dc9357SAndroid Build Coastguard Worker 16*f6dc9357SAndroid Build Coastguard Worker #include "FarUtils.h" 17*f6dc9357SAndroid Build Coastguard Worker 18*f6dc9357SAndroid Build Coastguard Worker const UInt32 kNumInfoLinesMax = 64; 19*f6dc9357SAndroid Build Coastguard Worker 20*f6dc9357SAndroid Build Coastguard Worker class CPlugin 21*f6dc9357SAndroid Build Coastguard Worker { 22*f6dc9357SAndroid Build Coastguard Worker CAgent *_agent; 23*f6dc9357SAndroid Build Coastguard Worker CMyComPtr<IInFolderArchive> m_ArchiveHandler; 24*f6dc9357SAndroid Build Coastguard Worker CMyComPtr<IFolderFolder> _folder; 25*f6dc9357SAndroid Build Coastguard Worker 26*f6dc9357SAndroid Build Coastguard Worker // NWindows::NCOM::CComInitializer m_ComInitializer; 27*f6dc9357SAndroid Build Coastguard Worker UString m_CurrentDir; 28*f6dc9357SAndroid Build Coastguard Worker 29*f6dc9357SAndroid Build Coastguard Worker UString m_PannelTitle; 30*f6dc9357SAndroid Build Coastguard Worker FString m_FileName; 31*f6dc9357SAndroid Build Coastguard Worker NWindows::NFile::NFind::CFileInfo m_FileInfo; 32*f6dc9357SAndroid Build Coastguard Worker 33*f6dc9357SAndroid Build Coastguard Worker UString _archiveTypeName; 34*f6dc9357SAndroid Build Coastguard Worker 35*f6dc9357SAndroid Build Coastguard Worker InfoPanelLine m_InfoLines[kNumInfoLinesMax]; 36*f6dc9357SAndroid Build Coastguard Worker 37*f6dc9357SAndroid Build Coastguard Worker char m_FileNameBuffer[1024]; 38*f6dc9357SAndroid Build Coastguard Worker char m_CurrentDirBuffer[1024]; 39*f6dc9357SAndroid Build Coastguard Worker char m_PannelTitleBuffer[1024]; 40*f6dc9357SAndroid Build Coastguard Worker 41*f6dc9357SAndroid Build Coastguard Worker AString PanelModeColumnTypes; 42*f6dc9357SAndroid Build Coastguard Worker AString PanelModeColumnWidths; 43*f6dc9357SAndroid Build Coastguard Worker // PanelMode _panelMode; 44*f6dc9357SAndroid Build Coastguard Worker void AddColumn(PROPID aPropID); 45*f6dc9357SAndroid Build Coastguard Worker 46*f6dc9357SAndroid Build Coastguard Worker void EnterToDirectory(const UString &dirName); 47*f6dc9357SAndroid Build Coastguard Worker void GetPathParts(UStringVector &pathParts); 48*f6dc9357SAndroid Build Coastguard Worker void SetCurrentDirVar(); 49*f6dc9357SAndroid Build Coastguard Worker // HRESULT AfterUpdate(CWorkDirTempFile &tempFile, const UStringVector &pathVector); 50*f6dc9357SAndroid Build Coastguard Worker 51*f6dc9357SAndroid Build Coastguard Worker public: 52*f6dc9357SAndroid Build Coastguard Worker 53*f6dc9357SAndroid Build Coastguard Worker bool PasswordIsDefined; 54*f6dc9357SAndroid Build Coastguard Worker UString Password; 55*f6dc9357SAndroid Build Coastguard Worker 56*f6dc9357SAndroid Build Coastguard Worker CPlugin(const FString &fileName, CAgent *agent, UString archiveTypeName); 57*f6dc9357SAndroid Build Coastguard Worker ~CPlugin(); 58*f6dc9357SAndroid Build Coastguard Worker 59*f6dc9357SAndroid Build Coastguard Worker void ReadPluginPanelItem(PluginPanelItem &panelItem, UInt32 itemIndex); 60*f6dc9357SAndroid Build Coastguard Worker 61*f6dc9357SAndroid Build Coastguard Worker int GetFindData(PluginPanelItem **panelItems,int *itemsNumber,int opMode); 62*f6dc9357SAndroid Build Coastguard Worker void FreeFindData(PluginPanelItem *panelItem,int ItemsNumber); 63*f6dc9357SAndroid Build Coastguard Worker int SetDirectory(const char *aszDir, int opMode); 64*f6dc9357SAndroid Build Coastguard Worker void GetOpenPluginInfo(struct OpenPluginInfo *info); 65*f6dc9357SAndroid Build Coastguard Worker int DeleteFiles(PluginPanelItem *panelItems, unsigned itemsNumber, int opMode); 66*f6dc9357SAndroid Build Coastguard Worker 67*f6dc9357SAndroid Build Coastguard Worker HRESULT ExtractFiles( 68*f6dc9357SAndroid Build Coastguard Worker bool decompressAllItems, 69*f6dc9357SAndroid Build Coastguard Worker const UInt32 *indices, 70*f6dc9357SAndroid Build Coastguard Worker UInt32 numIndices, 71*f6dc9357SAndroid Build Coastguard Worker bool silent, 72*f6dc9357SAndroid Build Coastguard Worker NExtract::NPathMode::EEnum pathMode, 73*f6dc9357SAndroid Build Coastguard Worker NExtract::NOverwriteMode::EEnum overwriteMode, 74*f6dc9357SAndroid Build Coastguard Worker const UString &destPath, 75*f6dc9357SAndroid Build Coastguard Worker bool passwordIsDefined, const UString &password); 76*f6dc9357SAndroid Build Coastguard Worker 77*f6dc9357SAndroid Build Coastguard Worker NFar::NFileOperationReturnCode::EEnum GetFiles(struct PluginPanelItem *panelItem, unsigned itemsNumber, 78*f6dc9357SAndroid Build Coastguard Worker int move, char *destPath, int opMode); 79*f6dc9357SAndroid Build Coastguard Worker 80*f6dc9357SAndroid Build Coastguard Worker NFar::NFileOperationReturnCode::EEnum GetFilesReal(struct PluginPanelItem *panelItems, 81*f6dc9357SAndroid Build Coastguard Worker unsigned itemsNumber, int move, const char *_aDestPath, int opMode, bool showBox); 82*f6dc9357SAndroid Build Coastguard Worker 83*f6dc9357SAndroid Build Coastguard Worker NFar::NFileOperationReturnCode::EEnum PutFiles(struct PluginPanelItem *panelItems, unsigned itemsNumber, 84*f6dc9357SAndroid Build Coastguard Worker int move, int opMode); 85*f6dc9357SAndroid Build Coastguard Worker HRESULT CreateFolder(); 86*f6dc9357SAndroid Build Coastguard Worker 87*f6dc9357SAndroid Build Coastguard Worker HRESULT ShowAttributesWindow(); 88*f6dc9357SAndroid Build Coastguard Worker 89*f6dc9357SAndroid Build Coastguard Worker int ProcessKey(int key, unsigned controlState); 90*f6dc9357SAndroid Build Coastguard Worker }; 91*f6dc9357SAndroid Build Coastguard Worker 92*f6dc9357SAndroid Build Coastguard Worker HRESULT CompressFiles(const CObjectVector<PluginPanelItem> &pluginPanelItems); 93*f6dc9357SAndroid Build Coastguard Worker 94*f6dc9357SAndroid Build Coastguard Worker #endif 95