Another common pattern with COM objects is CoCreateInstance function. COM objects are registered in system special registry. And they can be created if you know their class ID.
Here's example code for WASAPI: https://docs.microsoft.com/en-us/...ktop/coreaudio/rendering-a-stream
See how IMMDeviceEnumerator object (pEnumerator) is created by calling CoCreateInstance and passing its class id value - CLSID_MMDeviceEnumerator. No need for GetProcAddress or linking to dll file at all.