Graphics.EnumerateMetafile , к сожалению, очень и очень тонкий слой вокруг Win32 API. Для каждой записи в EMF вы получаете адрес неуправляемой памяти для структуры, специфичной для записи. Никакой документации о том, что она может содержать, но в мире Win32 тоже мало что можно сделать.
Так что вам нужно ознакомиться с древними текстами!
Эта книга поставляется с образцом кода CD-ROM , который включает примеры программ для использования API воспроизведения EMF.
Это оставляет вас с двумя проблемами.
Книга, по-видимому, больше не печатается, поэтому убедитесь, что в каждой купленной вами копии есть рабочий CD-ROM.
Все примеры кода на C / C ++, и будет нетривиальной задачей объявить необходимое взаимодействие для примерно 100 структур, которые используются для описания всех записей EMF.
Таким образом, другой подход может состоять в том, чтобы объявить огромный интерфейс в .NET, который имеет метод для каждого вызова GDI, который вам нужно перехватить, а затем использовать C ++ / CLI для адаптации примера кода C ++, чтобы он вызывал ваш огромный интерфейс для каждого запись.
Обновление
Хотя документация MSDN для воспроизведения EMF не содержит сведений о конкретных записях EMF, Microsoft по состоянию на 2006 год опубликовала полную спецификацию:
MS-EMF: расширенный формат метафайла
Также автор книги, на которую я ссылался выше, сделал доступным для скачивания исходный код образцов CDROM:
Исходный код для графического программирования Windows