AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TAudioVolume Komponente incl. System Mixer
Thema durchsuchen
Ansicht
Themen-Optionen

TAudioVolume Komponente incl. System Mixer

Ein Thema von EWeiss · begonnen am 6. Mai 2018 · letzter Beitrag vom 24. Jul 2019
Antwort Antwort
Seite 19 von 21   « Erste     9171819 2021      
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 05:45 Uhr)
 
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 11 Alexandria
 
#181
  Alt 25. Jun 2018, 21:21
Schon ohne const probiert?
  Mit Zitat antworten Zitat
EWeiss
 
#182
  Alt 25. Jun 2018, 21:23
Schon ohne const probiert?
Es ist so nicht in der API definiert. Siehe C++ Beispiel.
HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(LPCWSTR pwstrDeviceId, const PROPERTYKEY key)

gruss

Geändert von EWeiss (25. Jun 2018 um 21:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 11 Alexandria
 
#183
  Alt 25. Jun 2018, 21:27
Ich habe mir hier ein paar Beispiele angeschaut, vielleicht hilft es Dir, ist Api.

Nach "TPROPERTYKEY" auf der Seite suchen.
  Mit Zitat antworten Zitat
EWeiss
 
#184
  Alt 25. Jun 2018, 21:31
Ich habe mir hier ein paar Beispiele angeschaut, vielleicht hilft es Dir, ist Api.

Nach "TPROPERTYKEY" auf der Seite suchen.
Theoretisch
Aber es geht nicht um TPROPERTYKEY sondern darum warum Key nicht verfügbar ist.

Nochmal das Problem.
Wenn ich im Windows Dialog unter Eigenschaften das Icon des MasterDevice ändere dann wird das Event OnPropertyValueChanged aufgerufen.
Nur wenn ich über den Key nichts vergleichen kann welchen sinn hat dieses Event.
Darum geht es mir. Ich möchte dann mein Icon ändern.
Warum wird mir die VALUE die geändert wurde nicht weitergereicht?

gruss

Geändert von EWeiss (11. Jul 2019 um 16:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 11 Alexandria
 
#185
  Alt 25. Jun 2018, 21:57
Sorry da kann ich nicht helfen, ich finde nur Beispiele wo es als var/out definiert wird was nichts mit Deinem Problem zu tun hat.
  Mit Zitat antworten Zitat
EWeiss
 
#186
  Alt 25. Jun 2018, 22:03
ich finde nur Beispiele wo es als var/out definiert wird
Aber wie gesagt ich kann nicht einfach die API ändern

Ok werde mal was anderes versuchen.
Es scheint so das ich den Key auf diese weise nicht erreichen kann.

Mal sehn ob ich ihn über IPropertyStore und GetAt in Erfahrung bringe.

Edit:
Nope.. Key ist leer.

gruss

Geändert von EWeiss (26. Jun 2018 um 02:01 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#187
  Alt 26. Jun 2018, 02:00
Schon ohne const probiert?
Keine Ahnung warum hier in C++ und Delphi ein Unterschied gemacht wird aber ja du hast recht ohne "const" funktioniert es.
Wäre schön wenn mir jemand sagen könnte warum das so ist.

Danke..

gruss
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 11 Alexandria
 
#188
  Alt 26. Jun 2018, 06:54
LOL Na dann hat es sich ja gelohnt diese Seite zu füllen
  Mit Zitat antworten Zitat
EWeiss
 
#189
  Alt 5. Jul 2018, 10:36
Für die Technik versierten..

Hier der Trick wie es mit den Icons Funktioniert.
Ich habe beim debuggen herausgefunden das es einen nicht dokumentierten PropertyKey dafür gibt.
Und andere..
PKEY_DEVICE_DESCRIPTION, PKEY_DEVICE_INTERFACE_FRIENDLY_NAME...

Hier mal der für die Icons..
In der Funktion
function TAudioVolume.OnPropertyValueChanged(DeviceId: PWideChar; Key: PROPERTYKEY): HResult;

Diesen Key habe ich mir jetzt angelegt.
Delphi-Quellcode:
   PKEY_DEVICE_ICON: TPropertyKey = (
                fmtid: (D1:$259ABFFC; D2:$50A7; D3:$47CE;
                D4:($AF, $08, $68, $C9, $A7, $D7, $33, $66));
                pid: 12);
Und hier hole ich mir dann den IconPfad..

Delphi-Quellcode:
function GetDeviceInfo(Device: IMMDevice): TDeviceInfo;
var
  pvIconPath: PROPVARIANT;
  IconBuf: array [0 .. 127] of WideChar;
  IconPath: PWideChar;
begin

//....
    // IconPath
    PropVariantInit(pvIconPath);
    HR := propertyStore.GetValue(PKEY_DEVICE_ICON, pvIconPath);
    if HR <> S_OK then
      raise Exception.Create('Unable to retrieve IconPath for a device !');

    if pvIconPath.vt = VT_LPWSTR then
    begin
      IconPath := @IconBuf[0];
      StrCopy(IconPath, pvIconPath.pwszVal);

      Result.IconPath := IconPath;
    end;
end;
Vielleicht kann es ja mal jemand gebrauchen.

gruss
  Mit Zitat antworten Zitat
EWeiss
 
#190
  Alt 5. Jul 2018, 10:49
Mixer Source addiert..
Erster Beitrag..

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 19 von 21   « Erste     9171819 2021      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz