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

  • From: Abhinav Singh <abhinav4ever@xxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Sat, 3 Jan 2015 15:44:13 +0530

as i mentioned in my original post,  i am creating an instance of the APO to 
only check if the APO is installed correctly on the system. I am using the 
Windows registry to communicate settings to the APO instance running in the  
audio engine process.If there is a better way of checking existence of an APO, 
please let me know. I thought of checking if the APO dll is loaded into the 
audiodg.exe process but just never really tried that. From: 
Frank.Yerrace@xxxxxxxxxxxxx
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Create an object of an APO in a win32 APP
Date: Fri, 2 Jan 2015 21:07:18 +0000









I guess this implies you have some form of private mechanism for communicating 
settings to the APO instances that are running in the Windows audio system. Is
 that right? 
 
It’s not clear to me why you need to load your APO in order to adjust its 
settings through that private mechanism, unless you have a custom “settings” 
interface
 implemented by the APO that you want to leverage. 
 
Regards,
Frank Yerrace
Microsoft
 


From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx]
On Behalf Of Matthew van Eerde

Sent: Friday, January 2, 2015 9:16 AM

To: wdmaudiodev@xxxxxxxxxxxxx

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


 
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

To: 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]
On Behalf Of Abhinav Singh

Sent: Wednesday, December 24, 2014 7:04 AM

To: 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

Sent: ‎Monday‎, ‎December‎ ‎22‎, ‎2014 ‎1‎:‎33‎ ‎PM

To: 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]
On Behalf Of Abhinav Singh

Sent: Monday, December 22, 2014 1:24 PM

To: 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: