Макрос BASE_OFFSET из Essential COM

Я читал Essential COM и обнаружил макрос 'BASE_OFFSET' из главы 2 книги, и я действительно не понимаю его синтаксис или почему это сделано именно так.

#define BASE_OFFSET(ClassName, BaseName) \
(DWORD_PTR(static_cast<BaseName*>(reinterpret_cast<ClassName*>(0x10000000))) - 0x10000000)

Кто-нибудь может объяснить этот макрос и как мы его используем? Фактически, в книге используется этот макрос, но, поскольку я не совсем понимаю его, я не вижу практического использования его. Заранее большое спасибо.

5
задан Etienne de Martel 10 December 2011 в 16:17
поделиться