Hello.
Ad 1. Yes.
Ad 2. If you were using .NET, there are multiple overloads of the WaitForMultipleItemValues, which would allow you to omit extra parameters. But all they do is just transform the input arguments, and the core functionality is still available in VB6. In most cases (including probably your case), you need to wait for a Good quality (that one has numerical value at least 192). So, for the second argument to the method (minimumQuality), you need to create a DAQuality object and set its InternalValue (
opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...s.DAQuality~InternalValue.html ) to 192, and pass this object as the second argument to WaitForMultipleItemValues .
Ad 3. I am not sure if I understand the question. The items are being processed in parallel, not one by one. So the timeout is "per item" and, and the same time, for "all the items". And there is no "reading". The method establishes a subscription to all these items, so that it can obtain not just a one-time value, but also the subsequent changes (beware that this is much more demanding, performance-wise, that a simple read). If all items are known the have the sufficient quality before the timeout elapses, the function returns. If at least one item does not have it, the function will return after the timeout elapses, and the items that do not have the sufficient quality will have an error indication in the return array.
Some documentation:
opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...ng%20for%20OPC-DA%20Items.html
Best regards