Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 20:44 01.06.24 
Клубове/ Компютри и Интернет / Delphi Всички теми * Пълен преглед*
Информация за клуба
Тема Малко Delphi Source [re: ДъpвeнФилocoф]
Автор z_free (людоед)
Публикувано04.10.03 13:27  



TDownloadStatusCallback = class(TObject,IUnknown,IBindStatusCallback)

private
fUserCancel: Boolean;
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
function OnStartBinding(dwReserved: DWORD; pib: IBinding): HResult; stdcall;
function GetPriority(out nPriority): HResult; stdcall;
function OnLowResource(reserved: DWORD): HResult; stdcall;
function OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult; stdcall;
function OnStopBinding(hresult: HResult; szError: LPCWSTR): HResult; stdcall;
function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
function OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; formatetc: PFormatEtc; stgmed: PStgMedium): HResult; stdcall;
function OnObjectAvailable(const iid: TGUID; punk: IUnknown): HResult; stdcall;
public
OnFindingSource: TNotifyEvent;
OnConnecting: TNotifyEvent;
OnBeginDownload: TNotifyEvent;
OnDownLoading: TNotifyEvent;
OnEndDownLoad: TNotifyEvent;
constructor Create;
procedure CancelDownload;
end;

function TDownloadStatusCallback._AddRef: Integer;
begin
Result := 0;
end;

function TDownloadStatusCallback._Release: Integer;
begin
Result := 0;
end;

function TDownloadStatusCallback.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
if(GetInterface(IID,Obj)) then
begin
Result := 0
end
else
begin
Result := E_NOINTERFACE;
end;
end;

function TDownloadStatusCallback.OnStartBinding(dwReserved: DWORD; pib: IBinding): HResult;
begin
Result := S_OK;
end;

function TDownloadStatusCallback.GetPriority(out nPriority): HResult;
begin
Result := S_OK;
end;

function TDownloadStatusCallback.OnLowResource(reserved: DWORD): HResult;
begin
Result := S_OK;
end;

function TDownloadStatusCallback.OnStopBinding(hresult: HResult; szError: LPCWSTR): HResult; stdcall;
begin
Result := S_OK;
end;

function TDownloadStatusCallback.GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
begin
Result := S_OK;
end;

function TDownloadStatusCallback.OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; formatetc: PFormatEtc; stgmed: PStgMedium): HResult;
begin
Result := S_OK;
end;

function TDownloadStatusCallback.OnObjectAvailable(const iid: TGUID; punk: IUnknown): HResult; stdcall;
begin
Result := S_OK;
end;


function TDownloadStatusCallback.OnProgress(ulProgress, ulProgressMax,
ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult;
begin
case ulStatusCode of
BINDSTATUS_FINDINGRESOURCE:
begin
if Assigned(OnFindingSource) then
OnFindingSource(Self);
if (fUserCancel) then
begin
Result := E_ABORT;
exit;
end;
end;
BINDSTATUS_CONNECTING:
begin
if Assigned(OnConnecting) then
OnConnecting(Self);
if (fUserCancel) then begin
Result := E_ABORT;
exit;
end;
end;
BINDSTATUS_BEGINDOWNLOADDATA:
begin
if Assigned(OnBeginDownload) then
OnBeginDownload(Self);
if (fUserCancel) then begin
Result := E_ABORT;
exit;
end;
end;
BINDSTATUS_DOWNLOADINGDATA:
begin
if Assigned(OnDownLoading) then
OnDownLoading(Self);
if (fUserCancel) then begin
Result := E_ABORT;
exit;
end;
end;
BINDSTATUS_ENDDOWNLOADDATA:
begin
if Assigned(OnEndDownLoad) then
OnEndDownLoad(Self);
end;
end;
Result := S_OK;
end;


constructor TDownloadStatusCallback.Create;
begin
inherited;
fUserCancel := False;
end;

-
T'ва - за StatusCallBack-a .....
-------------
Special killer double trouble triple extra nicotine monster!

Редактирано от z_free на 04.10.03 13:30.



Цялата тема
ТемаАвторПубликувано
* Сваляне на файлове по даден адрес ДъpвeнФилocoф   25.09.03 19:09
. * Re: Сваляне на файлове по даден адрес Pechenia   25.09.03 19:30
. * Re: Сваляне на файлове по даден адрес ShaDoW   25.09.03 23:35
. * Не работи ДъpвeнФилocoф   26.09.03 17:35
. * От тебе не го очаквах... Pechenia   26.09.03 20:00
. * Мани, мани ... ДъpвeнФилocoф   27.09.03 20:07
. * Re: Мани, мани ... Ptr   27.09.03 20:58
. * Хм ... ДъpвeнФилocoф   29.09.03 17:58
. * Re: Хм ... andrew_nikoloff   29.09.03 18:15
. * Re: Хм ... ДъpвeнФилocoф   29.09.03 18:45
. * Re: Хм ... andrew_nikoloff   30.09.03 08:47
. * Работи си! Chefo   01.10.03 13:17
. * Бе аз ли кофти обяснявам, или е само за висшисти? Pechenia   29.09.03 19:00
. * Re: Сваляне на файлове по даден адрес killall   29.09.03 19:12
. * BIND STATUS CALLBACK z_free   02.10.03 16:24
. * Re: BIND STATUS CALLBACK Pechenia   02.10.03 22:03
. * Малко Delphi Source z_free   04.10.03 13:27
. * Re: Малко Delphi Source M   08.10.03 13:20
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.