Но он написан на Delphi.
А я изучаю C++, пишу в Билдере
 
 Дайте пожалуйста какой-то примерчик
для Билдера с такой же формой в окне чата.
Желание сделать пару графических плагинов огромное.
Без вас мне не справится.
 
 Вот допишу плагин и попробую!Cilvay писал(а):делай так же как в делфи - тупо портируй код.
Берешь строку из делфи и переписываешь тоже самое с синтаксисом си. Должно работать.
Исходник примера напрямую с билдера портирован в делфи
Код: Выделить всё
function CallWndProcHookProc(CODE, WParam, LParam: DWORD): DWORD; stdcall;
var _CwpStruct : ^TCWPStruct;
begin
  try
    _CwpStruct := Pointer(LParam);
    case _CwpStruct.message of
      WM_SIZE :
        begin
          if Assigned(form1) and (form1.ParentChanHandle = _CwpStruct.hwnd) then
            FixWindowPos(form1);
        end;
    end;
  finally
    Result := CallNextHookEx(CallWndProcHookHandle, code, WParam, LParam);
  end;
end;
Ну у меня с самого начала вот с этой строкойMaxim Mirgorodsky писал(а):Что именно в этой функции?

Код: Выделить всё
TCWPStruct *_CwpStruct;
Код: Выделить всё
  try
    _CwpStruct := Pointer(LParam);
	case _CwpStruct.message of
      WM_SIZE :
		begin
          if Assigned(form1) and (form1.ParentChanHandle = _CwpStruct.hwnd) then
            FixWindowPos(form1);
        end;
    end;
  finally
    Result := CallNextHookEx(CallWndProcHookHandle, code, WParam, LParam);
  end;100500 готовых компонентов, простой язык и высочайшая скорость разработки. Минусов нетJenya-Grin писал(а):Почему все на Delphi пишут тут, незнаю...
Как по мне, то C++ удобнее в раза 3, и как-то воспринимается легче.
На вкус и цвет среда разработки разная. По мне проще делфи, вот решил сейчас изучить C#.Cilvay писал(а):100500 готовых компонентов, простой язык и высочайшая скорость разработки. Минусов нетJenya-Grin писал(а):Почему все на Delphi пишут тут, незнаю...
Как по мне, то C++ удобнее в раза 3, и как-то воспринимается легче.
Код: Выделить всё
function CallWndProcHookProc(CODE, WParam, LParam: DWORD): DWORD; stdcall;
var _CwpStruct : ^TCWPStruct;
begin
  try
    _CwpStruct := Pointer(LParam); 
 Код: Выделить всё
BOOL PluginStart(DWORD dwThisPluginID, typeCommFortProcess func1, typeCommFortGetData func2)
{
	dwPluginID = dwThisPluginID;
	CommFortProcess = func1;
	CommFortGetData = func2;
	ChatWindow = FindWindow("TfChatClient", NULL);
	ChannelsPanel = FindWindowEx(ChatWindow, 0, "TPanel", NULL);
	if ( CallWndProcHookHandle == 0 )
	{
		CallWndProcHookHandle = SetWindowsHookEx(WH_CALLWNDPROC, *CallWndProcHookProc, HInstance, GetCurrentThreadId() );
	}
	else
	{
	  return FALSE;
	  exit;
	}
	FHeight = 55;
	return TRUE;
}Код: Выделить всё
CallWndProcHookHandle = SetWindowsHookEx(WH_CALLWNDPROC, *CallWndProcHookProc, HInstance, GetCurrentThreadId() );