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
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/