Ik maak zelf met de hand een nieuwe snelkoppeling aan. Wanneer ik met een programma vervolgens een instantie maak van IShellLink van dit object, geeft de GetIconLocation() methode een leeg pad en 0 index terug terwijl de methode wel een successvol hresult oplevert.
Wanneer ik echter eerst na het maken van de snelkoppeling, overnieuw hetzelfde(!) icoon selecteer, geeft GetItemLocation() wel het juiste pad en index en vervolgens ook altijd, ook na herstarten computer.
Ik heb geen idee waar dit verschil vandaan komt. De andere methoden van IShellLink werken meteen wel goed (zoals het opvragen van de werkdirectory). Misschien dat er een verschil wordt veroorzaakt door de manier waarop ik een instantie van IShell Link aanmaak. In een voorbeeld heb ik gezien dat dit gebeurde door in een leeg object de informatie via een persist folder te laden. Ik doe het iets anders: ik gebruik de GetUIObjectOf methode van IShellFolder. Wel is ergens te lezen dat deze indirect persist folder gebruikt dus dat zou eigenlijk hetzelfde moeten zijn?
Heeft iemand enig idee waarom GetItemLocation() niet faalt maar wel een leeg resultaat geeft?
Wanneer ik echter eerst na het maken van de snelkoppeling, overnieuw hetzelfde(!) icoon selecteer, geeft GetItemLocation() wel het juiste pad en index en vervolgens ook altijd, ook na herstarten computer.
Ik heb geen idee waar dit verschil vandaan komt. De andere methoden van IShellLink werken meteen wel goed (zoals het opvragen van de werkdirectory). Misschien dat er een verschil wordt veroorzaakt door de manier waarop ik een instantie van IShell Link aanmaak. In een voorbeeld heb ik gezien dat dit gebeurde door in een leeg object de informatie via een persist folder te laden. Ik doe het iets anders: ik gebruik de GetUIObjectOf methode van IShellFolder. Wel is ergens te lezen dat deze indirect persist folder gebruikt dus dat zou eigenlijk hetzelfde moeten zijn?
Heeft iemand enig idee waarom GetItemLocation() niet faalt maar wel een leeg resultaat geeft?