It's not working because you are posting the WM_COMMAND command to the button not the dialog the button is in.
You need to understand a button posts it's button ID to the window containing it and the lParam should be the handle to the button the handle you are currently posting the message too
http://msdn.microsoft.com/en-us/library/windows/desktop/ms647591%28v=vs.85%29.aspx[
^]
Now I dont know what the call to GetParent on the the api looks like in VB but so I will write what you need in C convert it
PostMessage(GetParent(btn_HELP_hwnd), WM_COMMAND, 4777, (LPARAM) btn_HELP_hwnd);
So I am posting the message to the parent of the button and filling in all the parameters as required to meet the call requirement