Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

Связка ActiveX и WEB - проблемы!   Найти похожие ветки 

 
Gremlin   (2003-04-25 13:03) [0]

Здравствуйте, уважаемые.
Требуется консультация по поводу связки ActiveX и WWW, а конкретно интересует работа OCX-файлов.
Создаю Active Form на нём обычную кнопку. В этом же проекте статически загружаю DLL и на событие Button1Click выполняю процедуру из подключенной DLL:


implementation
uses ComObj, ComServ;
{$R *.DFM}
procedure RunProc01(); stdcall; external "MyDLL01.dll";
{ TMyActiveFX01 }

procedure TMyActiveFX01.Button1Click(Sender: TObject);
begin
RunProc01();
end;


Данная DLL выглядит следующим образом:


library MyDLL01;
uses
Windows, SysUtils, Messages, ShellAPI;

procedure Test02() export; stdcall;
begin
MessageBox(0, PChar("It work!!!"), PChar("Message from DLL"), 0);
end;

procedure RunProc01() export; stdcall;
begin
MessageBox(0, PChar("It work!!!"), PChar("Message from DLL"), 0);
try
ShellExecute(0, "open", "vcstub.exe", nil, nil, SW_SHOW);
except
MessageBox(0, PChar("ShellExecute dos""t work!!!"), PChar("Message from DLL"), 0);
end; {try}
end;

exports
Test02, RunProc01;

begin
end.


Далее в проекте:
Project-> WedDeploymentOptions выставляю всё как надо, в том числе в Additional Files вставляю vcstub.exe и MyDLL01.dll.
Далее Web deploy, создаётся ocx-файл, htm-файл и inf-файл соответственно.
При первом запуске MyActiveFX01Proj1.htm сначала запускается vcstub.exe, потом подгружается непосредственно моя ActiveForm. При этом при вызове процедуры RunProc01() из DLL-ки сообщение выдаётся, но ShellExecute(0, "open", "vcstub.exe", nil, nil, SW_SHOW); не выполняется, хотя вроде и "vcstub.exe" и моя DLL-ка находятся в одном каталоге.
При последующих запусках странички MyActiveFX01Proj1.htm vcstub.exe не запускается!
При изменении проекта (Caption у кнопки поменяли допустим) после повторного компилирования и Web Deploy проекта, содержащего AXForm-у, сама AXForm-a не обновляется на htm-страничке, несмотря на то, что казалось бы всё было собрано заново.
В связи со всем этим вопросы:

1). Возможности OCX-файлов в системе, их полномочия.
2). Каким образом сделать так, что бы мой exe-файл всегда запускался на выполнение при открытии html-страницы, на которой расположена моя ActiveForm?
3). Как добиться обновления OCX-файлов после их повторной сборки?
4). Я не нашёл место, куда система записывает ocx, dll и exe файлы, когда пользователь заходит на страницу с AXForm:


OBJECT
classid="clsid:9EAEAD86-B907-4912-AE46-8B5EF41C7EE0"
codebase=file://I /temp/2del/UrlTest/MyActiveFX01Proj1.inf


сам INF:

;Delphi-generated INF file for MyActiveFX01Proj1.ocx
[Add.Code]
MyActiveFX01Proj1.ocx=MyActiveFX01Proj1.ocx
VCStub.exe=VCStub.exe
MyDLL01.dll=MyDLL01.dll

[MyActiveFX01Proj1.ocx]
file=file://I/temp/2del/UrlTest/MyActiveFX01Proj1.ocx
clsid={9EAEAD86-B907-4912-AE46-8B5EF41C7EE0}
RegisterServer=yes

[VCStub.exe]
file=file://I/temp/2del/UrlTest/VCStub.exe

[MyDLL01.dll]
file=file://I/temp/2del/UrlTest/MyDLL01.dll


5). Почему не работают функции их ShellAPI типа ShellExecute?
6). Посоветуйте толковую литературу по данной теме, а то в Тейксейре и в остальных своих книгах, имеющих отношение к COM based технологиям про использовании ActiveX в WEB сказано вскользь.

Спасибо.


 
Gremlin   (2003-04-28 14:51) [1]

up



Страницы: 1 вся ветка

Текущий архив: 2003.07.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
3-7330
Delph1
2003-06-10 09:09
2003.07.03
Помогите красиво выбрать иерархические данные.


1-7433
stalker780
2003-06-23 13:32
2003.07.03
DevEx QGrid 4 и Bar 4 в DLL


14-7675
Солер
2003-06-16 15:46
2003.07.03
Ох уж эти даты :(


3-7309
yaric
2003-06-09 09:10
2003.07.03
События в Interbase


1-7418
Zelius
2003-06-22 20:33
2003.07.03
Как у TPageControl а убить бордер, что бы он не рисовался?