SNHook not working



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

    On 03/11/2012 at 17:37, xxxxxxxx wrote:

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

    ---------
    Hey Guys,

    I want to protect my plugin so I use the SNHook.
    Cinema ask for serial, all fine. But if the serial is wrong and i click cancel, the plugin is still loaded?!?

    I tried it at R13 and my mate in R14. What do I wrong?

      
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------//  
    LONG RoomMakerSNHook::SNCheck(const String &c4dsn,const String &sn,LONG regdate,LONG curdate)  
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------//  
    {      
      return SN_WRONGNUMBER;  
    }  
    
      
    case C4DPL_INIT_SYS:  
              if (!resource.Init()) return FALSE; // don't start plugin without resource  
      
              // serial hook example; if used must be registered before PluginStart(), best in C4DPL_INIT_SYS  
              if (!RegisterExampleSNHook()) return FALSE;  
    

    Nothing, it still load my objectData !?



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

    On 04/11/2012 at 01:29, xxxxxxxx wrote:

    Returning FALSE from PluginMessage() when C4DPL_INIT_SYS is sent does not prevent Cinema to call PluginStart(). Ask your SNHook subclass instance if it registration was successful.

    -Niklas



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

    On 04/11/2012 at 03:51, xxxxxxxx wrote:

    My Subclass?



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

    On 04/11/2012 at 05:33, xxxxxxxx wrote:

    RoomMakerSNHook is your subclass of the SNHook class, isn't it?

    LONG RoomMakerSNHook::SNCheck(const String &c4dsn,const String &sn,LONG regdate,LONG curdate) {  
      Bool registration_successful = FALSE;  
      /* ... */  
      this->success = registration_successful;  
      if (!registration_successful) return SN_WRONGNUMBER;  
      else return SN_OKAY;  
    }  
      
    Bool RoomMakerSNHook::Success() {  
      return this->success;  
    }  
      
    /* ... */  
      
    RoomMakerSNHook snhook;  
      
    Bool PluginStart() {  
      if (!snhook->Success()) return TRUE;  
      /* Register your plugins. */  
    }  
      
    Bool PluginMessage(LONG id, void* ptr) {  
      switch (id) {  
          case C4DPL_INIT_SYS:  
              /* Register SNHook and etc. */  
              break;  
      }  
      return TRUE;  
    }
    

    That's how I was doin' it. Maybe I missed something obvious. But it works.

    Cheers,



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

    On 05/11/2012 at 01:11, xxxxxxxx wrote:

    All right. Thank you. :)


Log in to reply