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 http://doxygen.reactos.org/dc/d82/win32ss_2user_2win32csr_2console_8c_ae68a35bb4862b3003b0bce3fc08668c3.html#ae68a35bb4862b3003b0bce3fc08668c3 and http://doxygen.reactos.org/de/d8b/dll_2win32_2kernel32_2client_2file_2console_8c_a83d98dc02dd687b40ce9c5e978d46cb7.html#a83d98dc02dd687b40ce9c5e978d46cb7.
in reply to Re^3: Can't change icon with win32 module
in thread Can't change icon with win32 module