У нас есть 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, или это так?
ТИА
Задача ещё не решена.
Других решений пока нет …