Здравствуйте, D. Mon, Вы писали:
DM>formatType — это просто Guid. Речь, вероятно, о formatPtr. Как его создать — см. методы из Marshal.
Речь действительно шла о formatPtr. А нельзя ли более конкретно о том, какие методы из Marshal нужно использовать?
Дело в том, что на тестовом проекте я пробовал перекинуть медиатайпы между двумя графами. Если использовать для этого одну переменную, то есть полученное значение непосредственно передать в граф-приемник, то проблемне возникает, что и понятно. Но вот когда я попробовал скопировать медиатайп в новую структуру (причем не только сам укзатель formatPtr, но и данные на которые он ссылается), получил ошибку

Память я выделил при помощи Marshal.AllocCoTaskMem(). Правда я не уверен, что правильно копировал данные буфера. Я для этого использовал промежуточный managed массив, с которым работал через Marshal.Copy.
Вообще я нашел один или два примера, в которых вручную формируется медиатайп. В них formatPtr формируется на основе managed структуры, через Marshal.StructureToPtr(). Такой вариант при существующей архитектуре приложения не приемлем