Я пишу программу, которая автоматизирует некоторые задачи, которые необходимо выполнить при обнаружении съемного устройства. Изначально использовались только файловые потоки. Когда я понял, что не все съемные устройства могут быть доступны таким образом, я начал использовать SHFileOperation, но теперь я понял, что некоторые устройства не могут быть доступны даже с помощью этого метода.
Я хочу использовать WPD API, но моя программа компилируется с использованием MingW, а библиотеки, которые она использует, компилируются также с использованием MingW. Единственные две возможности, которые я вижу, — это перекомпилировать все для Visual C ++ (я хочу избежать этого, если это возможно) или написать небольшую библиотеку-оболочку, которая будет компилироваться как DLL и которая экспортирует только функции и может быть легко связана с программой, скомпилированной с помощью MingW. даже если сама DLL была скомпилирована с Visual C ++ (поэтому она может использовать WPD API).
Например, если кто-то знает библиотеку, в которой уже есть WPD, это сэкономит мне много времени.
Я не думаю, что вы найдете какие-либо общие обертки для WPD, поскольку API предоставляет COM-интерфейсы, к которым можно получить доступ непосредственно из MinGW. Проблема в том, что нет совместимых с MinGW заголовков, объявляющих интерфейсы и связанные типы. Есть несколько возможных решений, которые не связаны с использованием компилятора Microsoft:
IDispatch
) поддерживаются MinGW. Документация Windows SDK кратко адреса этот вариант.