Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Systemicons und Listview (https://www.delphipraxis.net/21893-systemicons-und-listview.html)

MathiasSimmack 4. Jun 2004 09:35

Re: Systemicons und Listview
 
Zitat:

Zitat von Thunderchild
Nach meiner Doku hier übergibt das einen Zeiger [...]

Was für eine Doku hast du denn? Sag jetzt nicht: Das PSDK, denn da steht´s drin:
Zitat:

This interface must be used to free memory that was allocated by the Shell or to allocate memory that will be freed by the Shell.
Im Prinzip das, was mirage schrieb.

btw: Das PSDK würde ich dir ohnehin als Lektüre empfehlen.

Thunderchild 4. Jun 2004 11:15

Re: Systemicons und Listview
 
Was bei Delphi dabei ist.
Zitat:

Retrieves a pointer to the shell's IMalloc interface. A shell extension must use this interface to allocate memory that is later freed by the shell.
Entweder ist das einfach nur unglücklich formuliert oder ich bin nicht in der Lage, das korrekt zu übersetzen. Denn so wie ich das verstehe ist das genau das Umgedrehte von dem, was Deine Doku sagt; es belegt den Speicher ("used to allocate memory"), der später frei gegeben werden muß ("that is later freed"). :roll:

MathiasSimmack 4. Jun 2004 11:59

Re: Systemicons und Listview
 
Wieso? Im Prinzip steht das gleiche auch in meinem Zitat:
Zitat:

Zitat von MathiasSimmack
Zitat:

This interface must be used to free memory that was allocated by the Shell or to allocate memory that will be freed by the Shell.


Christian Seehase 4. Jun 2004 19:56

Re: Systemicons und Listview
 
Moin Thunderchild,

bei IMalloc verhält es sich so ähnlich wie bei den Netapi Funktionen unter NT ff.

Hier wird den Funktionen die Adresse einer Variablen übergeben, in denen die Funktion (z.B. bei NetShareEnum) dann die Adresse ihres Ergebnisses speichert, wobei die Funktion den notwendigen Speicher selber anfordert.
Um diesen dann wieder freizugeben muss man NetApiBufferFree benutzen.

In dem Beispiel hier entspricht dann SHGetSpecialFolderLocation der Funktion die von sich aus Speicher reserviert, und IMalloc.Free dem Aufruf von NetApiBufferFree.

@Mathias:
Stimmt überhaupt, ich hätte CSIDL_DRIVES nehmen müssen :oops:
Dafür hast Du dann den Aufruf von Free vergessen ;-)

MathiasSimmack 5. Jun 2004 08:36

Re: Systemicons und Listview
 
Upps, stimmt. :oops:
Ansonsten macht ja das "SHGetMalloc" nicht viel Sinn.

Thunderchild 5. Jun 2004 13:35

Re: Systemicons und Listview
 
Zitat:

Zitat von MathiasSimmack
Zitat:

This interface must be used to free memory that was allocated by the Shell or to allocate memory that will be freed by the Shell.

Was so ein kleines Wörtchen alles anrichten kann. :roteyes:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz