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