Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Внизкак получить интерфейс IUnknown Найти похожие ветки
← →
vic_774N (2002-02-13 20:51) [0]Вопрос по COM технологии:
я с COM/OLE не работал так чтовопрос совершенно "чайниковский".
помогите советом или ссылкой на работающий пример (Delphi)
как получить интерфейс IUnknown, нужно ли насильно заполнять IID: TGUID или как-то его запрашивать ?
в общем - очень желателен маленький рабочий примерчик
Спасибо.
вот программка-клиент : место где не работает указано.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleServer, WINFIOLLib_TLB, Menus, ComObj;
{
const
WFEVENTMASK_NONE = 0; // do not notify any event
WFEVENTMASK_ALL = 255; // notify all possible events
WFEVENTMASK_INIT = 1; // notify initialization and cleanup events
WFEVENTMASK_PORT = 2; // notify change of port status
WFEVENTMASK_LOGIN = 3; // notify login status
WFEVENTMASK_LOGOUT = 4; // notify logout status
WFEVENTMASK_WINDOW = 5; // notify window state events
WFEVENTMASK_CHNL = 6; // notify change of active channel events
WFEVENTMASK_LOCK = 7; // notify lock and unlock events
WFEVENTMASK_TRSM = 8; // notify change of transmission status
WFEVENTMASK_LINE = 9; // notify reception of a line from the target exchange
WFEVENTMASK_PRINTOUT = 10; // notify reception of a printout from the target exchange
WFEVENTMASK_READ = 11; // notify read buffer status change
WFEVENTMASK_SEND = 12; // notify change of MML command send status
}
type
TForm1 = class(TForm)
WFiol: TWinFIOL_Application;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Edit1: TEdit;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure WFiolNotify(Sender: TObject; event: Integer;
var text: OleVariant);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Channel: IWFChannel;
ChannelEvent: IWFEvent;
pIWFEvent: IUnknown;
Main: IWFMain;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
WFiol.Connect;
WFiol.SetClientName("Test");
Memo1.Text:=IntToStr(WFiol.GetCurrentChannel);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WFiol.Disconnect;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Channel := nil;
Channel := WFiol.GetChannelPointer(WFiol.GetCurrentChannel);
WFiol.Disconnect;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Channel.SetReadBuffer(8192,0);
Channel.SendCommand(Edit1.Text,true);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Channel.TerminalConnect("","");
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Channel.TerminalRelease;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Channel.Unadvise;
end;
procedure TForm1.Button7Click(Sender: TObject);
var
Event: IWFEvent; // IWFEvent: IUnknown;
begin
Event.Notify(255,Memo1.Text);
Channel.Advise(Event,255); //Тут ошибка -> Event = nil
end;
procedure TForm1.WFiolNotify(Sender: TObject; event: Integer;
var text: OleVariant);
begin
if event = 255 then Memo1.Lines.Append(text);
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Channel._Release;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
//
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c