For the vector-view it would generally be interesting, if you receive the same object everytime you query for the default voices list, or not. If you receive a different object, then you could just use the built-in Vector implementation, delete the static interface and just return a VectorView via IVector_GetView() everytime it's queried. If not, it would still be worth checking if you receive the same `IVoiceInformation` objects, if not you could make a list and just return copies without having to not delete these instances in the Release function.