Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
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).