My error and code can be seen below.
It fails on the line "BatchChanger = (IEdmBatchChangeState4)vault...
Some key pieces of information are that I have a standalone application running a background worker. The Form1 is running a background worker that kicks off a new Class instance where the code below is. It picks up many other PDM code such as get, open, add, check out (although i have to use the original unlock IEdm because the unlock2 causes a similar error to this). Any thoughts?
IEdmVault13 vault;
IEdmBatchChangeState4 batchChanger;
vault = (IEdmVault13)new EdmVault5();
if (!vault.IsLoggedIn)
{
vault.LoginAuto("MyVault", 0);
}
batchChanger = (IEdmBatchChangeState4)vault.CreateUtility(EdmUtility.EdmUtil_BatchChangeState);
System.InvalidCastException
HResult=0x80004002
Message=Unable to cast COM object of type 'System.__ComObject' to interface type 'EPDM.Interop.epdm.IEdmBatchChangeState4'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{5009FB4B-4AEB-4808-99CD-75A92430DBD4}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
Source=PDM_Mass_Tool
StackTrace:
at PDM_Mass_Tool.ItemObsolete..ctor(DataTable importTable, String user, String department, String errorMsg, LogFile log, BackgroundWorker bw) in \\fplfile2\u\sdonnelly\C# Projects\PDM Mass Tool\PDM Mass Tool\ItemObsolete.cs:line 57
at PDM_Mass_Tool.frm5_Execute.backgrndWrk_DoWork(Object sender, DoWorkEventArgs e) in \\fplfile2\u\sdonnelly\C# Projects\PDM Mass Tool\PDM Mass Tool\frm5_Execute.cs:line 297
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
SolidworksApi/macros