Если бы мне понадобилось работать именно с бинарным потоком, то я бы создал небольшую обертку типа вот такой:
Это решение, конечно же, очевидно и напрашивается само собой, однако... Вы же понимаете, что это не совсем то, о чём я спрашивал.
Суть вопроса в том, чтобы читать из потока (MemoryStream), что называется "на лету". Подозреваю, что это не удастся, но мало ли, чем чёрт не шутит... Может всё же есть недокументированные функции C++ для которых можно было бы написать обёртку.
За код, конечно же, спасибо.