| |
|
|
| as starting point for our Views should once following View source herhalten:
Declare Treeview3&,TV_INSERT#,TV_TEXT$,Parent&,Child&,Neu&
Windowstyle 31
Windowtitle "Treeviewtest"
Window 0,0-640,440
DIM TV_INSERT#,48
Let Treeview3&=@control("SysTreeView32","Testtree",$40000000+$10000000+$800000+$200000+$0002+$0010+$0020+$10000+$800,10,100,600,300,%HWND,2603,%Hinstance) treeview becomes prepares
The first entry the Treeviews becomes prepares
Clear TV_INSERT#
LET TV_TEXT$="Root" The Text in the Label.
long TV_INSERT#,0=0 The entry is the first entry in the Treeview.
long TV_INSERT#,4=$FFFF0002 The entry comes on whom Schluß.
long TV_INSERT#,8=$0001 only Text, no further indicated to that entry.
long TV_INSERT#,24=@ADDR(TV_TEXT$) address the Textes the Eintrags.
long TV_INSERT#,28=$FFFF Maximale length the Eintrags.
@sendmessage(Treeview3&,$1100,0,TV_INSERT#) Message to that Insert one Eintrages.
Print "Handle the indicated Treeviews: "+@STR$(Treeview3&) data go to control issued.
Let Treeview3&=@val(@Input$("Handle one Treeviews prompt:","Handle",@Str $(Treeview3&))) the lever one Treeviews can association be. Standardmäßig standing here the begot Treeview.
LET Parent&=@Sendmessage(Treeview3&,$110A,0,0) The first entry this Treevies becomes determined.
PRINT "Handle the Rootitems the inputted Treeviews: "+@st$(Parent&) data go to control issued.
LET Child&=@Sendmessage(Treeview3&,$110A,$4,Parent&) The follow up entry under the first entry becomes determined.
PRINT "Handle the first Kinditems the inputted Treeviews: "+@st$(CHILD&) data go to control issued.
Print "Zeit="+@time$(0) data go to control issued.
The second entry the Treeviews becomes prepares
Clear TV_INSERT#
LET TV_TEXT$=@time$(0)+" these one Treeview-Test! these one Treeview-Test! these one Treeview-Test! these one Treeview-Test! these one Treeview-Test! these one Treeview-Test! these one Treeview-Test!" The Text in the Label
long TV_INSERT#,0=Parent& The second entry becomes under the Rooteintrag prepares.
long TV_INSERT#,4=$FFFF0002 The entry comes on whom Schluß.
long TV_INSERT#,8=$0001 only Text, no further indicated to that entry.
long TV_INSERT#,24=@ADDR(TV_TEXT$) Adress of Label
long TV_INSERT#,28=$FFFF Maximale length the Eintrags.
LET NEU&=@sendmessage(Treeview3&,$1100,0,TV_INSERT#) Message to that Insert one Eintrages.
PRINT "Handle the new Treeviewitems: "+@STR$(Neu&) data go to control issued.
Time to that look over and cogitate give...
While 0=0
Waitinput Schnarchpause insert....
wend
Dispose TV_INSERT# Garbage clear away...
Please simply always OK pressing and for the time being in the Input nothing change. by me sees The story to one Double-click on whom entry ROOT then so from:
[...]
us should for the time being once not the Rooteintrag, separate the entry with the Uhrzeit under interested. the from the Message TVM_INSERTITEM zurückgegebene lever this Eintrags sounds by me 36687824. now comes again TNT in that game. after we in the Treeview of TNT whom straight begot Process klicked having, make we time again the altbekannte game and do integrally impudent so, as would the lever a address. moreover let we The Heaps the Prozesses lists - if to the Program not Profan2Cpp compiliert, can the Listing something after The Heapblockadresse The the lever corresponds to (36687824) was achieved, with the Button PAUSE aborted go. now search we times the Heapblockstartadresse, The the lever the Treevieweintrags corresponds to and let us whom Content the Blocks as dezimale Doublewords Show:
[...]
The following becomes by me displayed: [box:fc91e92bbb] X1=36685936 X2=0 X3=0 X4=36688672 X5=0 X6=0 X7=0 X8=131071 X9=-1412628479 X10=47382540 X11=393242 X12=524544 [/box:fc91e92bbb] X1 is here apparently the lever the übergeordneten Eintrags, this is slight obviously. now look we time X4 on. we do again so, as would the Doubleword X4 a address (hopefully Better get going not tedious) and look to, whether we a Heapblock find, which Startadresse this address (by me 3668872) corresponds to and let us then whom Content the Heapblocks as String present. so siehts by me from:
[...]
How one sees, here standing the Text the Treevieweintrages. the lever, the we by the Send the Message TVM_INSERTITEM and the so connected Create one new Treevieweintrags receive, is means So the lever the Heapblocks, in the the entry standing - and the lever corresponds to exactly the Startadresse the Blockes. Eingentlich sees the Yes integrally unspektakulär from, is But not - because what important is, is the fact that I here through simple Send of Messages a address one Speicherbereiches - Perhaps too within one strangers Prozesses - sustain. an further, very interesting story is, that itself the Heapblock with the Text the Items only little oberhalb this address befindet. now becomes something phantasiegeladen: If it now possible would, a Treevieweintrag in a strangers Process To produce, would me with the Erzeugung same a address included go. but not Text could I at produce a DLL View source transfer and the at Send the Message TVM_INSERTITEM sustained address could I as starting point for take, whom in the DLL encompassed View source (through WM_TIMER, a thing The I already successful with a MultiEdit implemented have) to address - and the without any Schreib- or Leserechte on the Process to have! but does it really? time look...
moreover must we simply whom already known View source twice started. at that first Start clicking we at Input on OK, at second Start give we the lever the Treeviews the first Prozesses (not the Eintrages) one and confirm then with OK: between whom starts the both processes must absolutely some minutes lying, this is very important. the here shows by me then the first launched Process on:
[...]
Mmh - if one not exactly hinsieht, was our think about successful. what with näherer Betrachtung but auffällt - The times the both Entries müßten Yes different his, are you but not! What is very happen? From me Gibts here following Statement: what at Send of/ one Message transfer becomes are always only four Doublewords - in unserem drop watts here as fourth Parameter one Pointer, means The Startadresse the structure TV_INSERT#, transfer. The Empfänger the Message (Process number one) relating The with the Message übertragene address complete on its Adressbereicht. there it itself with whom both Prozessen around the same Program deals, standing on this address ditto yet the structure TV_INSERT# - what in TV_TEXT$ standing, distinguish itself but. Fazit: Messages transfer no Structures separate only Adressen, which on the each actually Process relating. .... - but How functions then the clipboard? time look........... |
|
|
| |
|
|