RoSt -
Yes you could use DDE.
If the code for the hardware is in the modelsupport2.dll, then you could use the CVI function PostDeferredCall().
If the code that will monitor the hardware is in the same process as modelsupport2.dll a simple mechanism would be to use the CVI function RegisterWinMsgCallback() and the SDK function PostMessage from the hardware. The "tricky" part will be how to get the window handle returned from GetCVIWindowHandle() and the message number returned from RegisterWinMsgCallback() to the hardward code.
You could even use this option out of process, the key is to share the window handle and message number data between processes. For this you could use the SDK to share memory.
Scott Richardson (NI)
Scott Richardson
https://testeract.com