Staredit Network > Forums > General StarCraft > Topic: Function to send message
Function to send message
Dec 19 2016, 1:48 am
By: iCCup.xboi209  

Dec 19 2016, 1:48 am iCCup.xboi209 Post #1



Does anyone know which WinAPI function StarCraft uses to send messages to the chat channel listbox? I'm interested in figuring out how to enable unicode chat.


Screenshot above shows me sending unicode messages via SendMessageW with success.




Dec 19 2016, 3:24 am jjf28 Post #2

Cartography Artisan

listbox? If you mean the chatbox you could try SetWindowTextW(hWnd, str), WM_SETTEXT, WM_UNICHAR, or WM_KEYDOWN



Rs_yes-im4real - Clan Aura - jjf28.net84.net

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Dec 19 2016, 5:54 am iCCup.xboi209 Post #3



I know how to send messages myself, I just want to know which function StarCraft uses to send it. The chat channel uses what's called a List Box.




Dec 19 2016, 11:23 pm jjf28 Post #4

Cartography Artisan

Ah to the message history listbox; that's a much more involved task...

I'd pull up a windowed StarCraft then hook it with Visual Studio's Spy++, find the listbox in the window tree and check its styles...

If it has LBS_HASSTRINGS... then it's a simple matter of LB_ADDSTRING or LB_INSERTSTRING with LPARAM as a pointer to the string (noteworthy that the strings passed could be inside a managed array inside of StarCraft rather than just something done in WinAPI).

If it doesn't have the LBS_HASSTRINGS style then the listbox contains pointers to something for which StarCraft's structs/code might have to be decompiled.

Post has been edited 1 time(s), last time on Dec 19 2016, 11:28 pm by jjf28.



Rs_yes-im4real - Clan Aura - jjf28.net84.net

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Dec 21 2016, 3:17 am iCCup.xboi209 Post #5



It does have LBS_HASSTRINGS, I'm just trying to figure out how SC passes strings to the listbox so that I could hook the function.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[02:02 pm]
Corbo -- Suicidal Insanity
Suicidal Insanity shouted: I had thought it loads it from the MPQs and parses it, so I was working on re-implmenting that with the MPQ code changes, and then noticed that it does grab the MPQ interface but then ignores it :X
nice
[09:23 am]
Suicidal Insanity -- I also still could use spec sheet for the formats to make sure I am using them correctly - it appears BWscript doesn't have string names? Or they are in a different spot?
[09:22 am]
Suicidal Insanity -- I had thought it loads it from the MPQs and parses it, so I was working on re-implmenting that with the MPQ code changes, and then noticed that it does grab the MPQ interface but then ignores it :X
[09:03 am]
Pr0nogo -- ok, i'll explore that when you have that changed
[08:54 am]
Suicidal Insanity -- if trigedit has such things
[08:54 am]
Suicidal Insanity -- Or maybe change it to a warning
[08:54 am]
Suicidal Insanity -- I just need to disable the verification, then it would allow arbitrary characters
[08:48 am]
Pr0nogo -- would be nice to change that and see if that allows arbitrary characters
[07:24 am]
Suicidal Insanity -- Pr0nogo
Pr0nogo shouted: trigedit won't compile or throw errors, i'll try with the custom aiscript files imported to the scmd mpq
Ya trigedit has the aiscript.bin file added to its resource - it doesn't load it from the MPQs
[06:13 am]
Pr0nogo -- agreed
Please log in to shout.


Members Online: Roy, Corbo