Hello,
You writing that IID is the same as CLSID that probably an error.
1. Be sure that the CLSID and IID are the same as in IDL file.
If you have no IDL file try to load the COM DLL in there object located in OLE View Tool via menu: File->View TypeLib. in there you can find the CLSID and IID of your object.
> NOTE: Type Library can be in separate file with same name but with *.tlb extension.
> NOTE: Worst if COM DLL does not contain Type Library in that case try to find CLSID in registry: HKCR\CLSID\{"Your CLSID"} - it should exists and subkey "InprocServer32" should consist of path to your DLL.
2. Try to initialize your object with
IUnknown
interface and query your interface from it - this way you will find there an issue in IID or CLSID:
IUnknown * pUnknown;
HRESULT hr;
hr = CoCreateInstance (clsidASIO, NULL, CLSCTX_INPROC_SERVER,
IID_IUnknown, (void**) &pUnknown );
hr = pUnknown-<QueryInterface(iidASIO, (void**) &pIAD);
.....
pUnknown-<Release();
Regards,
Maxim.