GetDataInstance and GetParameter in TagData Read



  • On 16/09/2016 at 00:47, xxxxxxxx wrote:

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

    ---------
    Hello.

    I have a filename parameter, which I try to retrieve in Read method (TagData plugin).

    Here is the code using GetDataInstance and GetParameter

    //1
    BaseContainer* tag_data = tag->GetDataInstance();
    String filename = tag_data->GetFilename(FILENAME_PARAM).GetString();
      
    //2
    GeData ge_data;
    tag->GetParameter(FILENAME_PARAM, ge_data, DESCFLAGS_GET_PARAM_GET);
    String filename = ge_data.GetFilename().GetString();
    

    The first filename gets the value correctly, while the second filename string appears empty.
    Why GetParameter doesn't return the value correctly ?

    Thank you.



  • On 16/09/2016 at 02:07, xxxxxxxx wrote:

    Hi,

    you are using DESCFLAGS_GET_PARAM_GET, which is the flag for saying, the parameter got read successfully. Can you please try, if the problem persists, if you use DESCFLAGS_GET_0 instead?



  • On 16/09/2016 at 05:44, xxxxxxxx wrote:

    Hello.

    Using DESCFLAGS_GET_0 returns the correct value. So I assume that whenever I want to read a parameter, I have to use DESCFLAGS_GET_0 right ?
    When am I supposed to use DESCFLAGS_GET_PARAM_GET ?

    Thank you for your time.



  • On 16/09/2016 at 05:50, xxxxxxxx wrote:

    Hi,

    DESCFLAGS_GET_PARAM_GET is used inside GetDParameter() to mark the successful retrieval of the parameter. You don't pass it into GetParameter().



  • On 16/09/2016 at 06:16, xxxxxxxx wrote:

    Hello.

    I didn't know that. I assume SET_PARAM_SET does the same right (in SetDParameter)?

    thnx.



  • On 16/09/2016 at 08:56, xxxxxxxx wrote:

    Yes. Sorry, I got disturbed, while posting. I actually wanted to mention this in my post.



  • On 16/09/2016 at 09:01, xxxxxxxx wrote:

    Even worse, I forgot to post the links to our documentation.
    Manuals on GetDParameter() and SetDParameter() and here the API reference: GetDParameter() and SetDParameter().


Log in to reply