Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#180

AW: TAudioVolume Komponente incl. System Mixer

  Alt 25. Jun 2018, 20:06
Habe da noch ein Problem laut MS wenn sich das Event OnPropertyValueChanged ändert
kann ich mir theoretisch die GUIDE über key.fmtid ausgeben lassen.

Zitat:
HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(
LPCWSTR pwstrDeviceId,
const PROPERTYKEY key)
{
printf(" -->Changed device property "
"{%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x}#%d\n",
key.fmtid.Data1, key.fmtid.Data2, key.fmtid.Data3,
key.fmtid.Data4[0], key.fmtid.Data4[1],
key.fmtid.Data4[2], key.fmtid.Data4[3],
key.fmtid.Data4[4], key.fmtid.Data4[5],
key.fmtid.Data4[6], key.fmtid.Data4[7],
key.pid);
return S_OK;
}
};


Ich mache es einfach so in Delphi..
OutPutDebugString(PWideChar(GUIDToString(key.fmtid))); Zum testen wird nachher mit realer GUID verglichen und darauf hin eine Aktion ausgeführt.

Das Problem ist nur Key ist unter Delphi nicht verfügbar obwohl das Event aufgerufen wird.
Original..
Delphi-Quellcode:
function OnPropertyValueChanged(DeviceId: LPCWSTR; const Key: PROPERTYKEY): HResult; stdcall;
function TAudioVolume.OnPropertyValueChanged(DeviceId: LPCWSTR; const Key: PROPERTYKEY): HResult;
funktioniert nicht Key ist nicht verfügbar.

geändert..
Delphi-Quellcode:
function OnPropertyValueChanged(DeviceId: LPCWSTR; const Key: TPROPERTYKEY): HResult; stdcall;
function TAudioVolume.OnPropertyValueChanged(DeviceId: LPCWSTR; const Key: TPROPERTYKEY): HResult;
das selbe Key ist nicht verfügbar.

verstehe ich nicht. out reicht ihn normalerweise weiter.. nur so ist die originale Funktion nicht definiert.
Auf was soll ich reagieren wenn der Key nicht verfügbar ist.

Wenn hier gar nichts zu vergleichen ist und ich den Key selbst zuweisen muss welchen sinn hat diese Funktion?

gruss

Geändert von EWeiss (25. Jun 2018 um 20:14 Uhr)
  Mit Zitat antworten Zitat