home *** CD-ROM | disk | FTP | other *** search
/ Delphi Anthology / aDELPHI.iso / Runimage / Delphi50 / Demos / Corba / Datamodule / corbaserver_tlb.pas < prev    next >
Pascal/Delphi Source File  |  1999-08-11  |  14KB  |  346 lines

  1. unit CORBAServer_TLB;
  2.  
  3. // ************************************************************************ //
  4. // WARNING                                                                    
  5. // -------                                                                    
  6. // The types declared in this file were generated from data read from a       
  7. // Type Library. If this type library is explicitly or indirectly (via        
  8. // another type library referring to this type library) re-imported, or the   
  9. // 'Refresh' command of the Type Library Editor activated while editing the   
  10. // Type Library, the contents of this file will be regenerated and all        
  11. // manual modifications will be lost.                                         
  12. // ************************************************************************ //
  13.  
  14. // PASTLWTR : $Revision:   1.68  $
  15. // File generated on 5/6/99 11:18:43 AM from Type Library described below.
  16.  
  17. // ************************************************************************ //
  18. // Type Lib: D:\delphi4\Demos\Corba\Datamodule\corbaserver.tlb (1)
  19. // IID\LCID: {16076F24-0184-11D2-AAA3-00C04FA368D1}\0
  20. // Helpfile: 
  21. // DepndLst: 
  22. //   (1) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL)
  23. //   (2) v2.0 stdole, (C:\WINNT\System32\STDOLE2.TLB)
  24. //   (3) v1.0 Midas, (E:\tp\bin\midas.dll)
  25. // ************************************************************************ //
  26. interface
  27.  
  28. uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL, SysUtils, CORBAObj, OrbPas, CorbaStd, 
  29.   MIDAS;
  30.  
  31. // *********************************************************************//
  32. // GUIDS declared in the TypeLibrary. Following prefixes are used:        
  33. //   Type Libraries     : LIBID_xxxx                                      
  34. //   CoClasses          : CLASS_xxxx                                      
  35. //   DISPInterfaces     : DIID_xxxx                                       
  36. //   Non-DISP interfaces: IID_xxxx                                        
  37. // *********************************************************************//
  38. const
  39.   LIBID_CORBAServer: TGUID = '{16076F24-0184-11D2-AAA3-00C04FA368D1}';
  40.   IID_IDemoCORBA: TGUID = '{16076F25-0184-11D2-AAA3-00C04FA368D1}';
  41.   CLASS_DemoCORBA: TGUID = '{16076F27-0184-11D2-AAA3-00C04FA368D1}';
  42. type
  43.  
  44. // *********************************************************************//
  45. // Forward declaration of types defined in TypeLibrary                    
  46. // *********************************************************************//
  47.   IDemoCORBA = interface;
  48.   IDemoCORBADisp = dispinterface;
  49.  
  50. // *********************************************************************//
  51. // Declaration of CoClasses defined in Type Library                       
  52. // (NOTE: Here we map each CoClass to its Default Interface)              
  53. // *********************************************************************//
  54.   DemoCORBA = IDemoCORBA;
  55.  
  56.  
  57. // *********************************************************************//
  58. // Interface: IDemoCORBA
  59. // Flags:     (4416) Dual OleAutomation Dispatchable
  60. // GUID:      {16076F25-0184-11D2-AAA3-00C04FA368D1}
  61. // *********************************************************************//
  62.   IDemoCORBA = interface(IAppServer)
  63.     ['{16076F25-0184-11D2-AAA3-00C04FA368D1}']
  64.   end;
  65.  
  66. // *********************************************************************//
  67. // DispIntf:  IDemoCORBADisp
  68. // Flags:     (4416) Dual OleAutomation Dispatchable
  69. // GUID:      {16076F25-0184-11D2-AAA3-00C04FA368D1}
  70. // *********************************************************************//
  71.   IDemoCORBADisp = dispinterface
  72.     ['{16076F25-0184-11D2-AAA3-00C04FA368D1}']
  73.     function  AS_ApplyUpdates(const ProviderName: WideString; Delta: OleVariant; 
  74.                               MaxErrors: Integer; out ErrorCount: Integer; var OwnerData: OleVariant): OleVariant; dispid 20000000;
  75.     function  AS_GetRecords(const ProviderName: WideString; Count: Integer; out RecsOut: Integer; 
  76.                             Options: Integer; const CommandText: WideString; 
  77.                             var Params: OleVariant; var OwnerData: OleVariant): OleVariant; dispid 20000001;
  78.     function  AS_DataRequest(const ProviderName: WideString; Data: OleVariant): OleVariant; dispid 20000002;
  79.     function  AS_GetProviderNames: OleVariant; dispid 20000003;
  80.     function  AS_GetParams(const ProviderName: WideString; var OwnerData: OleVariant): OleVariant; dispid 20000004;
  81.     function  AS_RowRequest(const ProviderName: WideString; Row: OleVariant; RequestType: Integer; 
  82.                             var OwnerData: OleVariant): OleVariant; dispid 20000005;
  83.     procedure AS_Execute(const ProviderName: WideString; const CommandText: WideString; 
  84.                          var Params: OleVariant; var OwnerData: OleVariant); dispid 20000006;
  85.   end;
  86.  
  87.   TDemoCORBAStub = class(TAppServerStub, IDemoCORBA)
  88.   public
  89.   end;
  90.  
  91.   TDemoCORBASkeleton = class(TAppServerSkeleton)
  92.   private
  93.     FIntf: IDemoCORBA;
  94.   public
  95.     constructor Create(const InstanceName: string; const Impl: IUnknown); override;
  96.     procedure GetImplementation(out Impl: IUnknown); override; stdcall;
  97.   published
  98.   end;
  99.  
  100. // *********************************************************************//
  101. // The Class CoDemoCORBA provides a Create and CreateRemote method to          
  102. // create instances of the default interface IDemoCORBA exposed by              
  103. // the CoClass DemoCORBA. The functions are intended to be used by             
  104. // clients wishing to automate the CoClass objects exposed by the         
  105. // server of this typelibrary.                                            
  106. // *********************************************************************//
  107.   CoDemoCORBA = class
  108.     class function Create: IDemoCORBA;
  109.     class function CreateRemote(const MachineName: string): IDemoCORBA;
  110.   end;
  111.  
  112.  
  113. // *********************************************************************//
  114. // OLE Server Proxy class declaration
  115. // Server Object    : TDemoCORBA
  116. // Help String      : DemoCORBA Object
  117. // Default Interface: IDemoCORBA
  118. // Def. Intf. DISP? : No
  119. // Event   Interface: 
  120. // TypeFlags        : (2) CanCreate
  121. // *********************************************************************//
  122. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  123.   TDemoCORBAProperties= class;
  124. {$ENDIF}
  125.   TDemoCORBA = class(TOleServer)
  126.   private
  127.     FIntf:        IDemoCORBA;
  128.     function      GetDefaultInterface: IDemoCORBA;
  129. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  130.     FProps:       TDemoCORBAProperties;
  131.     function      GetServerProperties: TDemoCORBAProperties;
  132. {$ENDIF}
  133.   protected
  134.     procedure InitServerData; override;
  135.   public
  136.     constructor Create(AOwner: TComponent); override;
  137.     destructor  Destroy; override;
  138.     procedure Connect; override;
  139.     procedure Disconnect; override;
  140.     function  AS_ApplyUpdates(const ProviderName: WideString; Delta: OleVariant; 
  141.                               MaxErrors: Integer; out ErrorCount: Integer; var OwnerData: OleVariant): OleVariant;
  142.     function  AS_GetRecords(const ProviderName: WideString; Count: Integer; out RecsOut: Integer; 
  143.                             Options: Integer; const CommandText: WideString; 
  144.                             var Params: OleVariant; var OwnerData: OleVariant): OleVariant;
  145.     function  AS_DataRequest(const ProviderName: WideString; Data: OleVariant): OleVariant;
  146.     function  AS_GetProviderNames: OleVariant;
  147.     function  AS_GetParams(const ProviderName: WideString; var OwnerData: OleVariant): OleVariant;
  148.     function  AS_RowRequest(const ProviderName: WideString; Row: OleVariant; RequestType: Integer; 
  149.                             var OwnerData: OleVariant): OleVariant;
  150.     procedure AS_Execute(const ProviderName: WideString; const CommandText: WideString; 
  151.                          var Params: OleVariant; var OwnerData: OleVariant);
  152.     property  DefaultInterface: IDemoCORBA read GetDefaultInterface;
  153.   published
  154. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  155.     property Server: TDemoCORBAProperties read GetServerProperties;
  156. {$ENDIF}
  157.   end;
  158.  
  159. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  160. // *********************************************************************//
  161. // OLE Server Properties Proxy Class
  162. // Server Object    : TDemoCORBA
  163. // (This object is used by the IDE's Property Inspector to allow editing
  164. //  of the properties of this server)
  165. // *********************************************************************//
  166.  TDemoCORBAProperties = class(TPersistent)
  167.   private
  168.     FServer:    TDemoCORBA;
  169.     function    GetDefaultInterface: IDemoCORBA;
  170.     constructor Create(AServer: TDemoCORBA);
  171.   protected
  172.   public
  173.     property DefaultInterface: IDemoCORBA read GetDefaultInterface;
  174.   published
  175.   end;
  176. {$ENDIF}
  177.  
  178.  
  179.   TDemoCORBACorbaFactory = class
  180.     class function CreateInstance(const InstanceName: string): IDemoCORBA;
  181.   end;
  182.  
  183. procedure Register;
  184.  
  185. implementation
  186.  
  187. uses ComObj;
  188.  
  189. { TDemoCORBAStub }
  190.  
  191. { TDemoCORBASkeleton }
  192.  
  193. constructor TDemoCORBASkeleton.Create(const InstanceName: string; const Impl: IUnknown);
  194. begin
  195.   inherited;
  196.   inherited InitSkeleton('DemoCORBA', InstanceName, 'IDL:CORBAServer/IDemoCORBA:1.0', tmMultiThreaded, True);
  197.   FIntf := Impl as IDemoCORBA;
  198. end;
  199.  
  200. procedure TDemoCORBASkeleton.GetImplementation(out Impl: IUnknown);
  201. begin
  202.   Impl := FIntf;
  203. end;
  204.  
  205. class function CoDemoCORBA.Create: IDemoCORBA;
  206. begin
  207.   Result := CreateComObject(CLASS_DemoCORBA) as IDemoCORBA;
  208. end;
  209.  
  210. class function CoDemoCORBA.CreateRemote(const MachineName: string): IDemoCORBA;
  211. begin
  212.   Result := CreateRemoteComObject(MachineName, CLASS_DemoCORBA) as IDemoCORBA;
  213. end;
  214.  
  215. procedure TDemoCORBA.InitServerData;
  216. const
  217.   CServerData: TServerData = (
  218.     ClassID:   '{16076F27-0184-11D2-AAA3-00C04FA368D1}';
  219.     IntfIID:   '{16076F25-0184-11D2-AAA3-00C04FA368D1}';
  220.     EventIID:  '';
  221.     LicenseKey: nil;
  222.     Version: 500);
  223. begin
  224.   ServerData := @CServerData;
  225. end;
  226.  
  227. procedure TDemoCORBA.Connect;
  228. var
  229.   punk: IUnknown;
  230. begin
  231.   if FIntf = nil then
  232.   begin
  233.     punk := GetServer;
  234.     Fintf:= punk as IDemoCORBA;
  235.   end;
  236. end;
  237.  
  238. procedure TDemoCORBA.DisConnect;
  239. begin
  240.   FIntf := nil;
  241. end;
  242.  
  243. function TDemoCORBA.GetDefaultInterface: IDemoCORBA;
  244. begin
  245.   Connect;
  246.   Result := FIntf;
  247. end;
  248.  
  249. constructor TDemoCORBA.Create(AOwner: TComponent);
  250. begin
  251.   inherited Create(AOwner);
  252. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  253.   FProps := TDemoCORBAProperties.Create(Self);
  254. {$ENDIF}
  255. end;
  256.  
  257. destructor TDemoCORBA.Destroy;
  258. begin
  259. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  260.   FProps.Free;
  261. {$ENDIF}
  262.   inherited Destroy;
  263. end;
  264.  
  265. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  266. function TDemoCORBA.GetServerProperties: TDemoCORBAProperties;
  267. begin
  268.   Result := FProps;
  269. end;
  270. {$ENDIF}
  271.  
  272. function  TDemoCORBA.AS_ApplyUpdates(const ProviderName: WideString; Delta: OleVariant; 
  273.                                      MaxErrors: Integer; out ErrorCount: Integer; 
  274.                                      var OwnerData: OleVariant): OleVariant;
  275. begin
  276.   Result := DefaultInterface.AS_ApplyUpdates(ProviderName, Delta, MaxErrors, ErrorCount, OwnerData);
  277. end;
  278.  
  279. function  TDemoCORBA.AS_GetRecords(const ProviderName: WideString; Count: Integer; 
  280.                                    out RecsOut: Integer; Options: Integer; 
  281.                                    const CommandText: WideString; var Params: OleVariant; 
  282.                                    var OwnerData: OleVariant): OleVariant;
  283. begin
  284.   Result := DefaultInterface.AS_GetRecords(ProviderName, Count, RecsOut, Options, CommandText, 
  285.                                            Params, OwnerData);
  286. end;
  287.  
  288. function  TDemoCORBA.AS_DataRequest(const ProviderName: WideString; Data: OleVariant): OleVariant;
  289. begin
  290.   Result := DefaultInterface.AS_DataRequest(ProviderName, Data);
  291. end;
  292.  
  293. function  TDemoCORBA.AS_GetProviderNames: OleVariant;
  294. begin
  295.   Result := DefaultInterface.AS_GetProviderNames;
  296. end;
  297.  
  298. function  TDemoCORBA.AS_GetParams(const ProviderName: WideString; var OwnerData: OleVariant): OleVariant;
  299. begin
  300.   Result := DefaultInterface.AS_GetParams(ProviderName, OwnerData);
  301. end;
  302.  
  303. function  TDemoCORBA.AS_RowRequest(const ProviderName: WideString; Row: OleVariant; 
  304.                                    RequestType: Integer; var OwnerData: OleVariant): OleVariant;
  305. begin
  306.   Result := DefaultInterface.AS_RowRequest(ProviderName, Row, RequestType, OwnerData);
  307. end;
  308.  
  309. procedure TDemoCORBA.AS_Execute(const ProviderName: WideString; const CommandText: WideString; 
  310.                                 var Params: OleVariant; var OwnerData: OleVariant);
  311. begin
  312.   DefaultInterface.AS_Execute(ProviderName, CommandText, Params, OwnerData);
  313. end;
  314.  
  315. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  316. constructor TDemoCORBAProperties.Create(AServer: TDemoCORBA);
  317. begin
  318.   inherited Create;
  319.   FServer := AServer;
  320. end;
  321.  
  322. function TDemoCORBAProperties.GetDefaultInterface: IDemoCORBA;
  323. begin
  324.   Result := FServer.DefaultInterface;
  325. end;
  326.  
  327. {$ENDIF}
  328.  
  329. class function TDemoCORBACorbaFactory.CreateInstance(const InstanceName: string): IDemoCORBA;
  330. begin
  331.   Result := CorbaFactoryCreateStub('IDL:CORBAServer/DemoCORBAFactory:1.0', 'DemoCORBA',
  332.     InstanceName, '', IDemoCORBA) as IDemoCORBA;
  333. end;
  334.  
  335. procedure Register;
  336. begin
  337.   RegisterComponents('Servers',[TDemoCORBA]);
  338. end;
  339.  
  340. initialization
  341.   CorbaStubManager.RegisterStub(IDemoCORBA, TDemoCORBAStub);
  342.   CorbaInterfaceIDManager.RegisterInterface(IDemoCORBA, 'IDL:CORBAServer/IDemoCORBA:1.0');
  343.   CorbaSkeletonManager.RegisterSkeleton(IDemoCORBA, TDemoCORBASkeleton);
  344.  
  345. end.
  346.