[Userllibs] NOTIFYICONDATA Structure übergeben?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Badudel

Betreff: [Userllibs] NOTIFYICONDATA Structure übergeben?

BeitragSo, Apr 04, 2010 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

vorab, ich dachte, das gehört nicht in Userlibs (da Frage), wenn ich hier falsch bin, einfach verschieben, bitte.

Also,
ich mache gerade meine ersten Versuche mit eigenen Userlibs. Einfache Sachen wie Tasten abfragen oder simulieren funktionieren, jetzt versuche ich mich an etwas Schwierigerem:
Ich möchte NotifyIcon zum Laufen bringen (ja, ich weiß, für Traysymbole gibt es bereits Lösungen, aber ich möchte es selbst versuchen).
Mein Problem ist nur, dass als zweiter Parameter eine "NOTIFYICONDATA Structure" übergeben werden muss.

Da ich C nie richtig gelernt habe, weiß ich nicht, wie so eine Typdefinierung funktioniert, und wie (und ob überhaupt) ich das übergeben kann.

Freue mich über Hilfestellungen, viele Grüße und frohe Ostern, Badudel
Wir werden dem Schwein schon schlachten, auch wenn ihm quiekt.
Zum Teufel mit das Grammatik!

Thunder

BeitragSo, Apr 04, 2010 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme an, dass das nicht funktionieren wird, weil du einen Zeiger auf so eine Struktur übergeben musst. Die einzige Lösung, die mir einfällt wäre, statt der Struktur einen String zu übergeben (String ~ Zeiger). In dem String musst du alle Variablen unterbringen, die eine NOTIFYICONDATA-Struktur normalerweise hat.
(Achtung: Keine Garantie, dass es funktioniert)

Leichter wäre es einen Wrapper (ich glaube das nennt man so) in Form einer DLL zu schreiben.


mfg Thunder


Edit:
Genial. Auf das mit der Bank bin ich nicht gekommen.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
  • Zuletzt bearbeitet von Thunder am So, Apr 04, 2010 22:10, insgesamt einmal bearbeitet
 

ChristianK

BeitragSo, Apr 04, 2010 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Speicher alle Werte in einer Bank. Wenn du diese Bank an Shell_NotifyIcon weitergibst, bekommt die Funktion einen Zeiger auf die enthaltenen Daten. Die Bank muss dann einfach der Größe der Struktur entsprechen.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Badudel

BeitragSo, Apr 04, 2010 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Also gut, das wirft dann einige Fragen auf...

Int braucht unter c++ nur 2 byte, DWORD sind doch die 4 byte... Ist das richtig? Und wie manage ich das?

Und wie viel bytes braucht ein hWnd-Parameter? Und hIcon?

Und was halte ich von
Zitat:
union {
UINT uTimeout;
UINT uVersion;
} ;

Was mache ich damit?

Freue mich über jeden Tip, viele Grüße, Badudel
Wir werden dem Schwein schon schlachten, auch wenn ihm quiekt.
Zum Teufel mit das Grammatik!

Noobody

BeitragSo, Apr 04, 2010 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Badudel hat Folgendes geschrieben:
Int braucht unter c++ nur 2 byte, DWORD sind doch die 4 byte... Ist das richtig?

In heutigen Implementationen braucht Int meistens 4 Byte. Je nach Plattform stimmt es nicht immer, aber man kann normalerweise davon ausgehen. DWORD ist auf der x86 Architektur immer 4 Bytes, das stimmt.


Badudel hat Folgendes geschrieben:
Was mache ich damit?

Union heisst, dass man zwar mehrere Bezeichner (und je nach dem auch verschiedene Datentypen) angibt, diese aber nur eine einzige Speicherstelle benutzen. Das heisst in diesem Fall, dass nur Platz für ein UINT belegt ist, obwohl da zwei Felder deklariert werden, du also einfach nur 4 Bytes für das Union reservieren musst.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group