size_t
определяется реализацией, но с использованием CRT в Visual Studio это 32-разрядное целое число без знака при компиляции для 32-разрядных архитектур и 64-разрядное целое число без знака при компиляции для 64-разрядных архитектур. Вы захотите использовать unsigned __int3264
, что составляет 32 бита в 32-битной архитектуре и 64 бита в 64-битной архитектуре.
void*
- это еще один тип, зависящий от платформы. MIDL обеспечивает тип void*
, но это всего лишь 32-битный указатель, независимо от целевого размера адреса, я считаю. Вместо этого вы можете использовать тип unsigned __int3264
.
MIDL предоставляет типы с такими же именами, что и различные типы дескрипторов, хотя я не уверен, включены ли все типы дескрипторов; Я знаю HBITMAP
, по крайней мере.