Пишу на ATL VC6. Сделал метод в интерфейсе событий с параметром VARIANT prm. Через ATL сделал реализацию этого интерфейса, компилюсь и он ругается на строчку
pvars[0] = &prm;
warning C4305: 'argument' : truncation from 'struct tagVARIANT *' to 'bool'... и не работает.
Исправляю на
pvars[0] = prm;
и всё работает.
Это нормально?
Здравствуйте, lexavrn, Вы писали:
L>Исправляю на pvars[0] = prm; и всё работает.
L>Это нормально?
Когда как. Если это то, что тебе нужно, то нормально. Если же нет, то нет.
Есть два варианта передачи Варианта
pvars[0] = prm — копирование содержимого, т.е. прямая передача
pvars[0].pvarVal = &prm и pvars[0].vt = VT_BYREF|VT_VARIANT — косвенная передача