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