问:为什么通过下面的语句无法把VBS文件中的文本流入到文本框中呢?{*******************************************************}
{ 流入文本 }
{*******************************************************}
function StreamIn(dwCookie: Longint; pbBuff: PByte; cb: Longint; var pcb: Longint): Longint; stdcall;
begin
fileread(dwCookie,pbbuff^,cb);
end;{*******************************************************}
{ 打开文件 }
{*******************************************************}
procedure OpenFile();
var
FileHandle:integer;
TEditStream:editstream;
begin
with form1 do
begin
//显示打开对话框
opendialog1.initialdir:=extractfilepath(application.ExeName)+'vbs\';
opendialog1.filter:='VBScript File (*.vbs)|*.vbs';
if opendialog1.execute then//选择打开
begin
FileHandle:=fileopen(opendialog1.FileName,fmopenread);
if FileHandle<0 then
messagebox(form1.Handle,'文件打开失败.','打开提示信息',MB_OK+MB_ICONERROR)
else
begin
TEditStream.dwCookie:=FileHandle;
TEditStream.pfnCallback:=StreamIn;
//流入文本
sendmessage(mWnd,EM_STREAMIN,SF_TEXT,integer(@TEditStream));
//关闭文件
fileclose(FileHandle);
end;
end;
end;
end;
{ 流入文本 }
{*******************************************************}
function StreamIn(dwCookie: Longint; pbBuff: PByte; cb: Longint; var pcb: Longint): Longint; stdcall;
begin
fileread(dwCookie,pbbuff^,cb);
end;{*******************************************************}
{ 打开文件 }
{*******************************************************}
procedure OpenFile();
var
FileHandle:integer;
TEditStream:editstream;
begin
with form1 do
begin
//显示打开对话框
opendialog1.initialdir:=extractfilepath(application.ExeName)+'vbs\';
opendialog1.filter:='VBScript File (*.vbs)|*.vbs';
if opendialog1.execute then//选择打开
begin
FileHandle:=fileopen(opendialog1.FileName,fmopenread);
if FileHandle<0 then
messagebox(form1.Handle,'文件打开失败.','打开提示信息',MB_OK+MB_ICONERROR)
else
begin
TEditStream.dwCookie:=FileHandle;
TEditStream.pfnCallback:=StreamIn;
//流入文本
sendmessage(mWnd,EM_STREAMIN,SF_TEXT,integer(@TEditStream));
//关闭文件
fileclose(FileHandle);
end;
end;
end;
end;
dwcookie:longint;
dwerror:longint;
pfncallback:teditstreamcallback;
end;