3 Replies Latest reply on Nov 8, 2014 11:48 AM by Barry Cavanaugh

    System.ArgumentException in SetRevisionCounters(...)

    Angus McLeod

      I have come to a standstill while going through the EPDM API "Set Revisions" example in the API Fundamentals book.

      I am writing the examples in C# even though they are presented in VB. I presume that these examples should work in both languages.

       

      Error as follows:

      "An unhandled exception of type 'System.ArgumentException' occurred in EPDM_SetRevision.exe

      Additional information: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))"

       

      The error seems to occur when calling the "SetRevisionCounters(fileObj.ID, revCounters)" method. See code below...

       

           ...

           // Assign the new revison counter value to the value stored in the Revision card variable

           // converted to an integer.

           long revInt = Strings.Asc(revisionProp.ToUpper()) - Strings.Asc("A") + 1;

           revCounters[0].mlCounter = (int)revInt;

       

           // Set the revision counter to the new values.

           revMgr.SetRevisionCounters(fileObj.ID, revCounters);

       

           // Set the revision of the file to the new values.

           revMgr.IncrementRevision(fileObj.ID);

           ...

       

      Debug output:

      ...

      A first chance exception of type 'System.ArgumentException' occurred in EPDM_SetRevision.exe

      An unhandled exception of type 'System.ArgumentException' occurred in EPDM_SetRevision.exe

      Additional information: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))

      The program '[4748] EPDM_SetRevision.vshost.exe: Managed (v4.0.30319)' has exited with code -1 (0xffffffff).

       

       

      Method prototype (COM):

      HRESULT SetRevisionCounters( [in] long lFileID,
                                   [in] SAFEARRAY ( struct EdmRevCounter ) poCounters );

      Displays in VS2012 (C#) as:

      void SetRevisionCounters(int lFileID, Array poCounters);

       

       

      Has this happened to anyone else before? Any help would be most appreciated.

       

      I am running EPDM and Solidworks 2013 and developing in Visual Studio Express 2012.

      Am using WPF for my launch application.

       

      Cheers