Array
(
)

StringList com API do Windows

Janbaceiredo
   - 26 mar 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.

#Código



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:
#Código

function GetUrlFromIE (Handle: THandle; List: TStringList): boolean; stdcall;
var
hWndIE, hWndIEChild : HWND;
Buffer : array[0..255] of Char;
begin
SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0]));

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.