home *** CD-ROM | disk | FTP | other *** search
- unit testDemoAutoobju;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls,Demoauto_TLB;
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- CoDispDemoAutoObj = class
- class function Create: IDemoAutoObjDisp;
- class function CreateRemote(const MachineName: string): IDemoAutoObjDisp;
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
-
- {$R *.DFM}
-
- uses ComObj,ActiveX, CreateRem, DCOMSecUtils;
-
- class function CoDispDemoAutoObj.Create: IDemoAutoObjDisp;
- begin
- Result := IDemoAutoObjDisp(CreateComObject(Class_DemoAutoObj) as IDispatch);
- end;
-
- class function CoDispDemoAutoObj.CreateRemote(const MachineName: string): IDemoAutoObjDisp;
- begin
- Result := IDemoAutoObjDisp(CreateRemoteComObject(MachineName, Class_DemoAutoObj) as IDispatch);
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- var
- ADemoAutoObj : IDemoAutoObjDisp;
- begin
- SwitchSecurityOff(false);
- ADemoAutoObj := IDemoAutoObjDisp(CreateRemComObject('OBELIX',
- Class_DemoAutoObj, IDispatch));
- OleCheck(CoSetProxyBlanket(ADemoAutoObj,
- RPC_C_AUTHN_WINNT,
- RPC_C_AUTHZ_NONE,
- nil,
- RPC_C_AUTHN_LEVEL_CONNECT,
- RPC_C_IMP_LEVEL_IMPERSONATE,
- nil,
- 0));
- //CoDispDemoAutoObj.CreateRemote('Obelix');
- Caption := ADemoAutoObj.AMessage;
- end;
-
- procedure TForm1.Button2Click(Sender: TObject);
- var
- ADemoAutoObj :IDemoAutoObj;
- begin
- SwitchSecurityOff(false);
- ADemoAutoObj := IDemoAutoObj(CreateRemComObject('Obelix',
- Class_DemoAutoObj, IDemoAutoObj));
- //CoDemoAutoObj.CreateRemote('Obelix');
- Caption := ADemoAutoObj.AMessage;
- end;
-
- //{$R DemoAuto.tlb}
-
- procedure TForm1.FormCreate(Sender: TObject);
- var
- pTypeLib : ITypeLib;
- begin
- //OleCheck(...) requires COMObj to be in the uses clause
- //LoadTypeLibEx(...) requires ActiveX to be in the uses clause
- //uses ComObj,ActiveX;
- //OleCheck(LoadTypeLibEx('EmptyDLL.DLL',REGKIND_REGISTER, pTypeLib));
- //OleCheck(LoadTypeLibEx(StringToOLEStr(Application.ExeName),REGKIND_REGISTER, pTypeLib))
- // OleCheck(LoadTypeLibEx('DemoAuto.tlb',REGKIND_REGISTER, pTypeLib));
- end;
-
- end.
-