look for BOOBS :) i mean 0xboob cmp eax, 0xboob or more generic cmp R32, BOOBh
thats message goes through wndproc (subclassed wndproc)
the most generic Message to the WndProc is boob and ends up in Default Switch case
doesnt ida tell you about CONTROLS::TCONTROL::WndProc ? Im sure it should show you referance to every Twin_Controls
if not find dede and run through it will decode all those tcraps and get you a nice txt output
Is the question harder than I'm understanding? Don't you just look at all the functions that are registered as WndProc functions when calling RegisterClass*? And you say "the" window procedure, like there can only be one...
if it is a bcb builder application normally the RegisterClassExA or RegisterClassA function's argument will have a stub which would set up a different Wndproc with SetWindowLongA (GWL_WNDPROC) Before SW_SHOWWINDOW is called after that those are almost never used
for Every CreateWindow() there would exist a WndProc
that has been subclassed
if he was debugging it with lets say ollydbg i could simply have said him to do
ctrl+n -->registerclass-->findreferances to import ->set break on all -> log [[esp+4]+4] on pause pass to plugin
.bp [[esp+4]+4] .run
/CALL to SetWindowLongA from PROJECT1.00462BE0
|hWnd = 000008B8 (class='TForm1',wndproc=00462BB8)
|Index = GWL_WNDPROC
\NewValue = 1210FD5 <--- out of module
/CALL to SetPropA from PROJECT1.00462C27
|hWnd = 000008B8 (class='TForm1',wndproc=01210FD5)
|Property = C67E
\hData = 0111200C
and one could possibly follow from there
the answer was just a pointer to locate the WM_APP message
that is used by TwinControl
so may be it is using those rtls(run time libraries) and linked dynamically to vclbpl borlndmm and other bloat of dlls
tracing bloat statically is a chore i hate to undertake
i know it should all should end up in CallWindowProc() CallWindowProcAoeW() InternalCallWinProc() or should get to NtUsermessageCall() from the vtable at
gapfnScSendMessage RealDefWindowProc() RealDefWindowProcWorker() via DefWindowProc() i simply wait there in a debugger with some conditions and take on from there