[wdmaudiodev] Re: Problem with setting IPropertyStore values from within Vista APO

  • From: "Michael R. Preston" <mike@xxxxxxxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Sun, 20 Aug 2006 08:32:58 -0700

After digging around through the Vista APO sample code, I found that I have some more questions. The Microsoft SysFX white paper says there is one property store associated with the audio endpoint. However, it looks like the APO sample code is using two different property stores - one associated with the system effects, and one associated with the audio endpoint. The system effects property store is passed to the APO as the pAPOSystemEffectsProperties member of the APOInitSystemEffects structure, and to the property page DLL as the pFxProperties member of the AudioFXExtensionParams structure. The audio endpoint property store is passed to the APO as the pAPOEndpointProperties member of the APOInitSystemEffects structure, and must be queried from the MMDevice enumerator using the endpoint ID string to be used by the property page DLL. It looks like both property stores cannot be written to by the APO, although the APO can write to the audio endpoint property store if it does what the property page DLL does by opening it from the MMDevice enumerator. So my question is - why are there two property stores, and how/when should they be used?

My third question is - how can an external application access the system effects property store to set properties? It looks like it might be possible to access the audio endpoint property store by using the MMDevice enumerator, but the system effects property store is passed directly to both the APO and the property page DLL. Maybe this is related to my question above? Should I even be using this?

If anyone has any information on all this, it would be greatly appreciated.

Thanks,
Mike

Michael R. Preston wrote:
Sorry...  I meant IPropertyStore.


Michael R. Preston wrote:

Hi, all. I have another Vista APO question. Is it possible to set property values with the IPropertyStorage interface from within a GFX or LFX? I know it's possible to get values from within the APO, and I know it's possible to have values passed to them, but whenever I try setting values, I get an HRESULT of 0x80070005 - E_ACCESSDENIED. I've tried this from within the APOProcess() function, and from the OnPropertyValueChanged() function, and got the same result. Does anyone have any suggestions?

Thanks,
Mike Preston



-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Mike Preston | Home/Office: (360)756-1655 | | E-mail: mike@xxxxxxxxxxxxxxxxxxx | Cell: (360)303-9331 | |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| | The man who follows the crowd will usually get no | | further than the crowd. The man who walks alone is | | likely to find himself in places no one has ever been. | | -- Alan Ashley-Pitt | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: