Ah i see, the original API call reference that I used said type [Any] on lParam, which I assumed meant that I could change it to a string at the time. The MSDN reference then contradicted that when I read it, hence why I got confused,
To be honest, the code does actually work, it works if I use...