А зачем вы в SomeClass::someFunc меняете значения указателей (локальные для функции), вместо того, чтобы менять значения, на которые они указывают? Типа того:
void SomeClass::someFunc(SYSTEMTIME * _minDate, SYSTEMTIME * _maxDate){
SYSTEMTIME minDate, maxDate;
std::vector<SYSTEMTIME> dates;
...
minDate = dates[0]; // тут все хорошо. Новые значения присвоены
maxDate = dates[1];
...
*_minDate = minDate;
*_maxDate = maxDate;
}
Ну, или если уж необходимо действительно указатели менять, то, например, так:
void SomeClass::someFunc(SYSTEMTIME * & _minDate, SYSTEMTIME * & _maxDate){
SYSTEMTIME minDate, maxDate;
std::vector<SYSTEMTIME> dates;
...
minDate = dates[0]; // тут все хорошо. Новые значения присвоены
maxDate = dates[1];
...
// что-то сделать с объектами, на которые указывают _minDate и _maxDate, например освободить
_minDate = new SYSTEMTIME(minDate); // _minDate присвоен указатель на новый объект.
_maxDate = new SYSTEMTIME(maxDate); // проветил, _minDate и _maxDate дейсвтиетльно какие нужно.
}