   DirectMusic question?
  I'm pretty sure this post should go here.I am learning how to create a sound class for my project using DirectMusic.  I have a question on the call to CoCreateInstance.I have two variables:IDirectMusicLoader8 *m_loader;CoCreateInstance( CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, IID_IDirectMusicLoader8, (void**)&m_loader );This is probably a dumb question buy why is m_loader cast with (void**).  I don't understand the reason or what this is accomplishing.Thanks in advance for the help.   
  Hmmm maybe I'm not right, but I think that's because DirectX stuff innherits from IUnknown interface. So you have to pass void pointer to it because IUnknown interface does not know which type you are using so interface use void*. That's why is there another pointer to reference (void**)& to get proper adress of DirectX interface (in this example DirectMusic).But maybe I'm wrong [smile]   ;  CoCreateInstance can actually create COM objects of any type depending on the other parameters, so it expects a void** to put the result into instead of a IDirectMusicLoader8** or whatever.tj963   ;  Thanks for the help, I remember reading about the IUnknown.Thanks again for the quick replies.   