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.
[10:42 pm]
pallfy -- use bgh
[10:40 pm]
pallfy -- Wow thanks
[10:18 pm]
Suicidal Insanity -- On game start you could detect who is at which start location, store that in switches / dcs, and use that to permanently force alliances. Lots of combinations though
[09:43 pm]
MTiger156 -- That 2v2v2v2 mapping problem does sound like an interesting challenge. Its worth putting some experimentation into. I could make an example map for combining locked alliances (based on lobby forces) + random start location. Though an EUD solution would be the most efficient, I will avoid that for the sake of simplicity.
[08:53 pm]
NudeRaider -- *compromises
[08:52 pm]
NudeRaider -- pallfy
pallfy shouted: thanks, but that sounds complicated
well, that's the gist of sc mapping. Either accept the limits sc sets for you and work within those parameters, or get creative and find complicated solutions to achieve what you want. The latter can be most satisfying. Sometimes comprised are inevitable though. Also see my respnse in the thread.
[08:13 pm]
pallfy -- thanks, but that sounds complicated
[08:13 pm]
pallfy -- hey raider
[07:18 am]
NudeRaider -- FaRTy1billion
FaRTy1billion shouted: also ya, I showed her my chair wasn't scary and now whenever I'm not in the chair she is
hard to believe that they are predators with almost no enemies in the wild
[07:17 am]
NudeRaider -- Suicidal Insanity obviously francis
Please log in to shout.


Members Online: Roy, Kolokol