But is there possibility to work with mutex _without_ starting TestStand Engine or passing reference to it?
It's clear that I can use it withing my Operator Interface. But some applets (.exe files), which need to be synchronized with, know only CreateMutex and WaitForSingleObject operations. Recompiling them in order to get COM support would take huge amount of time and people resources.
In source code for "Mutex.cpp" we have something like: (name for lock is "*SystemWideLock")
...
ISyncManagerPtr syncManager = engine->GetSyncManager(objNameStr);
...
IMutexPtr mutex = syncManager->CreateMutex(objNameStr, &alreadExists);
...
I've tryed to get mutex handle from CPP code via:
...
CString name = "*SystemWideLock";
HANDLE hMutex = OpenMutex(SYNCHR
ONIZE, FALSE, name);
...
But it allways fails. It seems that TestStand uses it's own synchronization techniques (I couldn't get deeper than "raw_CreateMutex" operation in source code).
The similar problem arises with "Queue" step.
Please, inform me if there is no way to implement things i'am trying to do, so I'll start developing custom data types, which suit my needs.
Thanks for help!