PI>Спасибо, суть ясна. Это то, что и требовалось. Но теперь меня начинает беспокоить вопрос: а на сколько это переносимо? Дело в том, что в приведённом Вами виде, с учётом исправления опечатки в строке int encrypt = GET_TRANSACTION_ENCRYTION(ret_type); \
на int encrypt = GET_TRANSACTION_ENCRYPTION(ret_type); \
, код не компилируется GCC 4.5.0.
И не должен

Там требуется дополнительный уровень перевызова — особенности препроцессора. Для MSVC без разницы.
PI> А за идею и за то что меня "ткнули носом", ещё раз спасибо. А то у меня мЫшление всё как-то шло в другой плоскости
Удачи.