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; }