Én csak az előző linkből olvastam:
Pointerek használata Visual Basicben
Vannak-e a Visual Basicben 'pointerek'? A válasz erre a kérdésre általában 'nem', hiszen nem látunk pointer deklarációkat vagy makrókat a Visual Basicben, mint ahogy a C/C++-ban... A helyes válasz mégis 'igen' lenne. A Visual Basic (mint általában a legtöbb programozási nyelv) használ pointereket. A különbség az, hogy a Visual Basic elrejti őket, amikor csak lehetséges, vagy más néven nevezi, hogy ne terheljen minket a formalitásokkal és a protokollokkal, amik a használatukhoz szükségesek.
A VarPtr (Variable Pointer), StrPtr (String Pointer), és ObjPtr (Object Pointer) nem dokumentált és nem támogatott funkciók, melyeket a Microsoft elérhetővé tett a Visual Basic 5.0-ás és 6.0-ás verzióiban. Ezek a funkciók (sok mással együtt) a Visual Basic.Net-ben már nem találhatók meg. Ezek a funkciók lehetővé teszik a programozónak, hogy elérje azt a memóriacímet, ahol a Visual Basic változói (pointerek) vannak, valamint azt a címet, ahol maga a valódi adat található, amire a változók mutatnak. Az oka annak, hogy ezek a funkciók olyan hasznosak, az, hogy ha ismerjük az adat memóriacímét, akkor módosíthatjuk, másolhatjuk, vagy közvetlenül át is adhatjuk, ahelyett, hogy ezt a Visual Basic tenné meg helyettünk. Ez így gyorsabbá teszi a munkát és némely esetben képessé tesz minket arra, hogy megtegyünk dolgokat, amire a Visual Basic önmagában nem képes.
A Microsoft MSDN leírása a VarPtr-ről:
Ez a funkció arra használható, hogy lekérdezzük egy változó vagy egy tömbelem címét. A változó nevét vagy a tömbelemet paraméterként veszi és visszaadja a címet. De nem szabad megfeledkezni arról, hogy a dinamikus tömböket a Visual Basic újra lefoglalhatja, ezért óvatosan kell használni a VarPtr-t a tömbelem címének lekérdezésénél. Nem használható tömbök címének lekérdezéshez.
….
Gyakorlatilag VB használó én sem vagyok!