Я портирую старый 32-битный COM-сервер на 64-битную архитектуру.
Многие функции принимают адреса буфера и смещения в качестве параметров, как указатели __int3264 и __int3264. Проблема в том, что этот тип не генерируется автоматически как __int64 в x64, так как интерфейсы наследуются IDispatch, а __int3264 не поддерживается с интерфейсами автоматизации!
Для функций, ожидающих адреса, я заменю __int3264 * на void *.
Параметры смещения были заданы как __int3264 и LONG (оба 32-разрядных в автоматизации + x64). Я не могу использовать гипер (отображается как __int64), так как он сломается в 32-битных системах.
Должен ли я использовать void * для всех параметров смещения / адреса или есть другой способ перенести их на COM-сервер x64?