Priority CoreMessage



  • On 22/02/2014 at 05:08, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R15 
    Platform:      
    Language(s) :     C++  ;

    ---------
    I am using chilkat to download files.

    To show the progress, I use SpecialEventAdd to send this progress to my main dialog (CoreMessage).
    So far so good. I get the information in my dialog.

    However, looking at the console, I see that the download is completed before CoreMessage receives any messages.
    In the console you see first all progress message from the threat and only AFTER that the messages in CoreMessage.
    I would expect them one by one.
    So progress message in the threat and a message from CoreMessage.

    PercentDone: %d percent 88
    CoreMessage progress 88
    PercentDone: %d percent 89
    CoreMessage progress 89
    PercentDone: %d percent 90
    CoreMessage progress 90
    ...

    Here some code from the threat.

    		GePrint("PercentDone: %d percent: " + String::IntToString(pctDone));
      
    		SpecialEventAdd(1014856121, 9001, pctDone);
    

    And from CoreMEssage

    Bool MainDialog::CoreMessage( Int32 id,const BaseContainer &msg )
    {
    	switch ( id )
    	{
    		case  1014856121:                                      // internal message
    		{
    		UInt  selector;
            
    		selector = (UInt) msg.GetVoid( BFM_CORE_PAR1 );
      
    		if ( selector == 9001 )
    		{
    			Int32 progress;
    			progress = (Int32) msg.GetVoid( BFM_CORE_PAR2 );
    			GePrint("CoreMessage progress: " + String::IntToString(progress));
    			SetInt32(1001, progress);
    		}
    		break;
    		}
    	}
    	return GeDialog::CoreMessage( id, msg );
    }
    


  • On 23/02/2014 at 04:41, xxxxxxxx wrote:

    My fault. I receive the message in CorMessage, but I do not handle correctly getting the second parameter.
    I am not sure how to do that?

    Bool MainDialog::CoreMessage( Int32 id,const BaseContainer &msg )
    {
    	GePrint("CoreMessage id:" + String::IntToString(id));
    	switch ( id )
    	{
    		case  1014856121:                                      // internal message
    		{
    		UInt  selector;
            
    		selector = (UInt) msg.GetVoid( BFM_CORE_PAR1 );		// GOES WRONG
    		selector = (UInt) msg.GetInt32( BFM_CORE_PAR1 );		// THIS GOES WRONG TOO
      
    		if ( selector == 9001 )
    		{
    

    The call to CoreMessage is:

    SpecialEventAdd(1014856121, 9001, pctDone);
    


  • On 23/02/2014 at 05:38, xxxxxxxx wrote:

    I'm now using GeSyncMessage instead of SpecialEventAdd and that works!
    Issue solved (on to the next).


Log in to reply