Почему 32-разрядные значения экспортируются из OCX как 64-разрядные?

У нас есть 32-битный C ++ OCX, который экспортирует свойство:

LPITEMIDLIST CMyClass::GetCurrentPIDL()

В 32-битном двоичном LPITEMIDLIST конечно это 32-битный указатель.

32-битное клиентское приложение C ++ .uses #import импортировать OCX. Сгенерированный файл .TLH содержит это:

__declspec(property(get=GetCurrentPIDL,put=PutCurrentPIDL))
__int64 CurrentPIDL;

Клиент не может получить доступ к свойству без приведения типа, потому что компилятор жалуется, что не может преобразовать __int64 для LPITEMIDLIST,

Все это работает, но все же я хотел бы знать, почему OCX экспортирует свойство как __int64 а не LPITEMIDLIST, Не похоже, что я должен был его разыграть.

Я делаю что-то не так в коде OCX, или это так?

ТИА

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]