Look at the assembly code, it doesn't do anything but call CsrClientCallServer, which is IPC to CSRSS. Perl is started in one of 2 ways, in an existing console box owned by cmd.exe, or in its own console box owned by perl.exe. SetConsoleIcon will work on both probably, but SetClassLong will only work if the console is owned by perl.exe I *guess* (start-run-perl.exe). See
.