Plugin upgrade to SDK10

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 13/07/2007 at 04:26, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   10 
Platform:   Windows  ; Mac  ;  Mac OSX  ; 
Language(s) :     C++  ;

---------
Hi all,

I have a command plugin written under the SDK9.1. Now, I want to upgrade SDK 10.

I have the plugin and an other application (APP), which communicates the plugin via a dump file. Always the APP starts the communication, APP calls the maxon and sends the path where the plugin can find the dump file.

This is the my plugin class:

  
class Exchange : public CommandData  
{  
    public:  
        virtual Bool Execute(BaseDocument *doc);  
  
        virtual void Message(const BaseContainer &msg;);  
};  

and implementation of Message:

  
void Exchange::Message(const BaseContainer &msg;)  
{  
    String mess;  
    String cmdline = msg.GetString(0); // <-- here get the path!!  
  
    // DocPath and TmpPath  
    CHAR tmpPathBuffer[1024]   = { 0 };  
  
    // UNITS  
    LONG pos = 0;  
    LONG unit = 0; // default -> no unit  
    // "@" behind the path ?  
    if ( cmdline.FindLast( "@", &pos; ) )  
    {  
        // space behind the "@" ?  
        if ( pos+1 < cmdline.GetLength() )  
        {  
            // get unit from string  
            String strUnit = cmdline.SubStr( pos+1, cmdline.GetLength()-pos-1 );  
            unit = strUnit.StringToLong();  
        }  
  
        // clean path by cutting off the unit  
        cmdline = cmdline.SubStr( 0, pos );  
    }  
  
    // get paths from command string  
    cmdline.GetCString( tmpPathBuffer, 1024 );  
  
    // and so on..  
}  

And my problem is
void CommandData::Message(BaseContainer& msg) was changed to LONG CommandData::Message(LONG type, void* data)
Now, how can I get the message which contains the path?

Thanx,
and have a nice day.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 13/07/2007 at 08:25, xxxxxxxx wrote:

Hi,

you must type cast the void pointer to the according data (or to CommandInfoData) and check what message has been sent I assume. Maybe you can also directly cast the pointer to a BaseContainer.

It´s looong time I created a CommandData plugin so this is all just guessed (but you definetly need to type cast the pointer, that´s for sure).

Maybe the support can help.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 14/07/2007 at 04:51, xxxxxxxx wrote:

Thanx again, works fine...