Plugin interface descriptions for TC 7.55 (beta)
Moderators: Hacker, petermad, Stefan2, white
BTW, isn't it time to move the specifications out of beta?
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
Using TC 11.03 / Win10 x64
Using TC 11.03 / Win10 x64
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Yes, I think that this is a good idea - when I find the time...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
The plugin writer's guides are out of beta now, you can get them from the plugins page here:
http://www.ghisler.com/plugins.htm
There were no changes to the actual functions since the last beta.
http://www.ghisler.com/plugins.htm
There were no changes to the actual functions since the last beta.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
ghisler(Author)
Hm… I just looked there, but there are still old versions (2.20 for WCX, 2.0 for WDX/WFX/WLX).
Hm… I just looked there, but there are still old versions (2.20 for WCX, 2.0 for WDX/WFX/WLX).
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
Using TC 11.03 / Win10 x64
Using TC 11.03 / Win10 x64
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Nearly everything's fine, just fix the typo on the Plugins page that refers to inexistent file:
https://plugins.ghisler.com/content/contentpluginhelp2.2.zip
The link should be:
https://plugins.ghisler.com/content/contentpluginhelp2.1.zip
https://plugins.ghisler.com/content/contentpluginhelp2.2.zip
The link should be:
https://plugins.ghisler.com/content/contentpluginhelp2.1.zip
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
Using TC 11.03 / Win10 x64
Using TC 11.03 / Win10 x64
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
I will consider it - but I think that developpers should be clever enough to install the hlp viewer for Windows 7. 

Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Agree.ghisler(Author) wrote:I will consider it - but I think that developpers should be clever enough to install the hlp viewer for Windows 7.

Christian,
I found an error in ContentDefaultParamStruct description (WDX API help):
typedef struct {
int size;
DWORD PluginInterfaceVersionLow;
DWORD PluginInterfaceVersionHi;
char DefaultIniName[MAX_PATH];
} ListDefaultParamStruct;
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Christian, it would be great to reflect details described here in API documentation (use MaxLen parameter name for string lengths, MaxChars for buffer sizes in characters, MaxBytes for buffer sizes in Bytes, and use const modifier for input only strings/buffers/structs).
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Unfortunately changing these headers would probably break almost all existing plugins...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Christian, no one tells to authors of existing plugins to use theese headers, they can still use their own old copies. But new ones will use correct headers.
And, only a few changes in code required - to add const modifiers for pointers that work with input (constant) strings/buffers (such buffers must not be written anyway).
Also, if function prototype differs from its declaration in CPP, compiler just ignores prototype (if function is not called from another CPP by including header with prototype). Even more, it is OK when variable names in prototypes and realization differ (compiler compares only types).
And, only a few changes in code required - to add const modifiers for pointers that work with input (constant) strings/buffers (such buffers must not be written anyway).
Also, if function prototype differs from its declaration in CPP, compiler just ignores prototype (if function is not called from another CPP by including header with prototype). Even more, it is OK when variable names in prototypes and realization differ (compiler compares only types).
- ghisler(Author)
- Site Admin
- Posts: 50383
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
For example, people who add Unicode support to their plugins will get the latest headers - but this will break their existing plugins if the parameters change.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com