Как и в заголовке, я получаю код ошибки, которого нет в документации CoCreateInstance. Конкретный код ошибки — 0x800401F0.
Примечание. Я новичок в C++ и программировании на этом уровне в целом. Пытаюсь учиться, создавая инструмент аудиовизуализации.
#include <stdio.h>
#include <Mmdeviceapi.h>
int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
const CLSID rclsid = __uuidof(MMDeviceEnumerator);
const IID riid = __uuidof(IMMDeviceEnumerator);
IMMDeviceEnumerator* pEnumerator;
IMMDeviceCollection* pEndpoints;
// Create a device enumerator
HRESULT hr = CoCreateInstance(
rclsid,
NULL,
CLSCTX_ALL,
riid,
reinterpret_cast<void **>(&pEnumerator)
);
if (FAILED(hr)) {
printf("%x\n", hr);
}
// Create a collection of endpoints
// pEnumerator->EnumAudioEndpoints(
// eCapture,
// DEVICE_STATE_ACTIVE,
// &pEndpoints
// );
// UINT deviceCount;
// pEndpoints->GetCount(&deviceCount);
// printf("%u\n", deviceCount);
return 0;
}
Подборка gcc audio.cpp -lole32
Я использую 64-битную машину. Не уверен, что это может быть частью проблемы. Какие-либо предложения?