GetPackerCaps
GetPackerCaps tells Totalcmd what features your packer plugin supports.
int __stdcall GetPackerCaps();
Description
Implement GetPackerCaps to return a combination of the following values:
Constant | Value | Description |
---|---|---|
PK_CAPS_NEW | 1 | Can create new archives |
PK_CAPS_MODIFY | 2 | Can modify existing archives |
PK_CAPS_MULTIPLE | 4 | Archive can contain multiple files |
PK_CAPS_DELETE | 8 | Can delete files |
PK_CAPS_OPTIONS | 16 | Has options dialog |
PK_CAPS_MEMPACK | 32 | Supports packing in memory |
PK_CAPS_BY_CONTENT | 64 | Detect archive type by content |
PK_CAPS_SEARCHTEXT | 128 | Allow searching for text in archives created with this plugin |
PK_CAPS_HIDE | 256 | Don't show packer icon, don't open with Enter but with Ctrl+PgDn |
Omitting PK_CAPS_NEW and PK_CAPS_MODIFY means PackFiles will never be called and so you don’t have to implement PackFiles. Omitting PK_CAPS_MULTIPLE means PackFiles will be supplied with just one file. Leaving out PK_CAPS_DELETE means DeleteFiles will never be called; leaving out PK_CAPS_OPTIONS means ConfigurePacker will not be called. PK_CAPS_MEMPACK enables the functions StartMemPack, PackToMem and DoneMemPack
. If PK_CAPS_BY_CONTENT is returned, Totalcmd calls the function CanYouHandleThisFile when the user presses Ctrl+PageDown on an unknown archive type. Finally, if PK_CAPS_SEARCHTEXT is returned, Total Commander will search for text inside files packed with this plugin. This may not be a good idea for certain plugins like the diskdir plugin, where file contents may not be available. If PK_CAPS_HIDE is set, the plugin will not show the file type as a packer. This is useful for plugins which are mainly used for creating files, e.g. to create batch files, avi files etc. The file needs to be opened with Ctrl+PgDn in this case, because Enter will launch the associated application.
Important note:
If you change the return values of this function, e.g. add packing support, you need to reinstall the packer plugin in Total Commander, otherwise it will not detect the new capabilities.