winapivisual-c++windows-xpcd-burningcd-rom

How do I call ICDBurn::GetRecorderDriveLetter() in VS2008 C++? (Solving XP CD write to root)


I am trying to implement the solution given in

GetSaveFileName() not returning path of CD burning staging area on XP

I'm trying to implement this in VS2008 C++. The ICDBurn::GetRecorderDriveLetter() method is not static and thus cannot be called as written (ICDBurn::GetRecorderDriveLetter) in the above answer. ICDBurn can't be instantiated because it's an abstract class. How do I call ICDBurn::GetRecorderDriveLetter() from C++?


Solution

  • You need to create the COM object first.

    ICDBurn* pICDBurn;
    HRESULT hr = CoCreateInstance(CLSID_CDBurn, NULL,CLSCTX_INPROC_SERVER,IID_ICDBurn,(LPVOID*)&pICDBurn);
    if (SUCCEEDED(hr))
    {
    
    // do something ...
    pICDBurn->Release();
    
    }