[wdmaudiodev] Re: Create an object of an APO in a win32 APP

  • From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 2 Jan 2015 17:16:07 +0000

I see.

If you control the APO, you can update the .inf to include both native and 
WOW64 versions of your .dll, and register a control interface in both the 
native and WOW64 COM registries.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Abhinav Singh
Sent: Tuesday, December 30, 2014 10:18 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Create an object of an APO in a win32 APP

I am creating a deskband(taskbar toolbar, just a simple button) to provide 
quick access to the user to turn on/off the APO effect.
________________________________
From: Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Create an object of an APO in a win32 APP
Date: Mon, 29 Dec 2014 17:00:04 +0000
Interesting… why are you instantiating an APO from an Explorer plugin?

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Abhinav Singh
Sent: Wednesday, December 24, 2014 7:04 AM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Create an object of an APO in a win32 APP

thanks…I was running trying to create the APO object from a 32 bit app which 
was causing this problem..I actually encountered this problem when trying to 
create an APO instance from a dll loaded in explorer.exe but somehow it always 
failed so I decided to check it on a simple win32 app…a restart fixed the issue 
with the dll loaded in the explorer as well.

Sent from Windows Mail

From: Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>
Sent: ‎Monday‎, ‎December‎ ‎22‎, ‎2014 ‎1‎:‎33‎ ‎PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>

If you’re running a 32-bit app on a 64-bit version of Windows, this is 
expected; APOs are typically native-only.

If you’re running native, check to see that the CLSID in question is registered 
under HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} and that 
the hosting .dll exists.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Abhinav Singh
Sent: Monday, December 22, 2014 1:24 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Create an object of an APO in a win32 APP


I am using the code below to create an object of an APO from a  normal win32 
app. The intention is to check whether the APO is installed in the PC. However 
i get a Class Not Registered error every time i execute the below piece of code.

HRESULT isExistAPO(CLSID CLSID_ClassID, IID IID_InterfaceID)
            {
                 // CLSID_ClassID is the class GUID of the APO
                //IID_InterfaceID is the interface ID of the APO

                        //CoInitialize(NULL);

                        CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);

                        HRESULT hr = S_OK;

                        IUnknown *pAPO = NULL;

                        hr = CoCreateInstance(CLSID_ClassID,
                                    NULL,
                                    CLSCTX_INPROC_SERVER,
                                    IID_InterfaceID,
                                    (void**)&pAPO);
                        if (SUCCEEDED(hr))
                        {
                                    //APO found
                                    pAPO->Release();
                        }
                        else
                        {
                                    //Failed
                        }
                        CoUninitialize();
                        return hr;
            }

Other related posts: