StringList com API do Windows

26/03/2006

Holla,

gostaria de saber se alguem aqui no forum sabe como posso usar uma StringList atras da API do Windows.
Estou estudando o desenvolvimento de uma aplicação atras da API do Windows dessa forma nao estou usando as CLASSES do Delphi. Uso somente a classe Windows e Messages ate agora.


program Project1;

uses
  Windows,
  Messages;

{$R *.RES}

var
wClass: TWndClass;
Msg: TMsg;
MainForm, ListBox1: Integer;

function WindowProc(hWnd,Msg,wParam,lParam:Integer):Integer; stdcall;
begin
if Msg = WM_DESTROY then PostQuitMessage(0);
Result := DefWindowProc(hWnd,Msg,wParam,lParam);
end;

begin
wClass.lpszClassName:= ´CN´;
wClass.lpfnWndProc :=  @WindowProc;

wClass.hInstance := hInstance;
wClass.hbrBackground:= 1;

 wClass.hIcon := LoadIcon(hInstance,´MAINICON´);
 wClass.hCursor := LoadCursor(0,IDC_ARROW);

RegisterClass(wClass);

MainForm:= CreateWindow(wClass.lpszClassName,´Title Bar´,
             WS_OVERLAPPEDWINDOW or WS_VISIBLE,
             10,10,340,220,0,0,hInstance,nil);

ListBox1:= CreateWindowEx(WS_EX_CLIENTEDGE,´LISTBOX´,´ListBox 3 selected is ´,
    WS_VISIBLE or WS_CHILD or LBS_HASSTRINGS or LBS_NOTIFY or WS_VSCROLL,
    10,10,150,150,MainForm,0,hInstance,nil);

SendMessage(ListBox1,WM_SETFONT,GetStockObject(ANSI_FIXED_FONT),0);
SendMessage(ListBox1, LB_INSERTSTRING, 0, Integer(PChar(´List Box 3´)));


while GetMessage(Msg,0,0,0) do
DispatchMessage(Msg);

end.




O problema que estou tendo é com relação a essa função:
function GetUrlFromIE (Handle: THandle; List: TStringList): boolean; stdcall;
var
  hWndIE, hWndIEChild : HWND;
  Buffer : array[0..255&93; of Char;
begin
  SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0&93;));

  hWndIE := FindWindow(´IEFrame´, Buffer);
  if hWndIE > 0 then
  begin
    hWndIEChild := FindWindowEx(hWndIE, 0, ´WorkerW´, nil);
    if hWndIEChild > 0 then
    begin
      hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ReBarWindow32´, nil);
      if hWndIEChild > 0 then
      begin
        hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ComboBoxEx32´, nil);
        if hWndIEChild > 0 then
        begin
          SendMessage(hWndIEChild, WM_GETTEXT, 255, integer(@Buffer));
          List.AddObject(Buffer,TObject(hWndIE));
        end;
      end;
    end;
  end;
  Result :=True;
end;

Na qual recebe como parametro uma List: TStringList. Sendo que a TStringList é um metodo da Classe (CLASSES) do Delphi.
Preciso saber como criar uma StringList com a API do Windows sem utilizar os metodos do DELPHI.
Se alguem souber como posso fazer isso agradeço.


Sem mais,
Antônio.


Janbaceiredo