Yes, I know there are some old work arounds prior to PBWIN 9; but, I'd like to figure out why it is not doing what it is supposed to do. I've been pulling my hair out. Is it the include files or my method?
It is in endpointvolume.inc under INTERFACE IAudioEndpointVolume $IID_IAudioEndpointVolume. Any ideas?
This is how I'm using it:
Given ppNotify is defined as IAudioEndpointVolumeCallback
The interface is this:
Which in turn calls this:
Which populates this:
It is in endpointvolume.inc under INTERFACE IAudioEndpointVolume $IID_IAudioEndpointVolume. Any ideas?
This is how I'm using it:
Given ppNotify is defined as IAudioEndpointVolumeCallback
Code:
xhr = gpIAudioEndpointVolumeStereoSpeakers.RegisterControlChangeNotify( _ BYVAL ppNotify) 'IAudioEndpointVolumeCallback IF ISOBJECT(ppNotify) THEN ? "RegisterControlChangeNotify" END IF
Code:
METHOD RegisterControlChangeNotify ( _ ' VTable offset = 12 BYVAL pNotify AS IAudioEndpointVolumeCallback _ ' __in IAudioEndpointVolumeCallback *pNotify ) AS LONG ' HRESULT
Code:
INTERFACE IAudioEndpointVolumeCallback $IID_IAudioEndpointVolumeCallback INHERIT IUNKNOWN ' ===================================================================================== METHOD OnNotify ( _ ' VTable offset = 12 BYREF pNotify AS AUDIO_VOLUME_NOTIFICATION_DATA _ ' __in PAUDIO_VOLUME_NOTIFICATION_DATA pNotify ) AS LONG ' HRESULT ' ===================================================================================== END INTERFACE
Code:
' // Size = 32 bytes TYPE AUDIO_VOLUME_NOTIFICATION_DATA DWORD guidEventContext AS GUID ' GUID bMuted AS LONG ' BOOL fMasterVolume AS SINGLE ' float nChannels AS DWORD ' UINT afChannelVolumes(0) AS SINGLE ' float END TYPE
Comment