private Array GetVector <T>() { int count = PropVariantNativeMethods.PropVariantGetElementCount(this); if (count <= 0) { return(null); } lock (_padlock) { if (_vectorActions is null) { _vectorActions = GenerateVectorActions(); } } Action <PropVariant, Array, uint> action = null; if (!_vectorActions.TryGetValue(typeof(T), out action)) { throw new InvalidCastException(LocalizedMessages.PropVariantUnsupportedType); } Array array = new T[count]; for (int i = 0; i < count; i++) { action(this, array, (uint)i); } return(array); }