home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / oleserver.hpp < prev    next >
C/C++ Source or Header  |  2000-02-01  |  5KB  |  149 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'OleServer.pas' rev: 5.00
  6.  
  7. #ifndef OleServerHPP
  8. #define OleServerHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #pragma option push -Vx
  13. #include <ComObj.hpp>    // Pascal unit
  14. #include <Classes.hpp>    // Pascal unit
  15. #include <SysUtils.hpp>    // Pascal unit
  16. #include <ActiveX.hpp>    // Pascal unit
  17. #include <Messages.hpp>    // Pascal unit
  18. #include <Windows.hpp>    // Pascal unit
  19. #include <SysInit.hpp>    // Pascal unit
  20. #include <System.hpp>    // Pascal unit
  21.  
  22. //-- user supplied -----------------------------------------------------------
  23.  
  24. namespace Oleserver
  25. {
  26. //-- type declarations -------------------------------------------------------
  27. typedef DynamicArray<OleVariant >  TVariantArray;
  28.  
  29. #pragma option push -b-
  30. enum TConnectKind { ckRunningOrNew, ckNewInstance, ckRunningInstance, ckRemote, ckAttachToInterface 
  31.     };
  32. #pragma option pop
  33.  
  34. class DELPHICLASS TServerEventDispatch;
  35. class DELPHICLASS TOleServer;
  36. struct TServerData;
  37. typedef TServerData *PServerData;
  38.  
  39. class PASCALIMPLEMENTATION TOleServer : public Classes::TComponent 
  40. {
  41.     typedef Classes::TComponent inherited;
  42.     
  43. private:
  44.     TServerData *FServerData;
  45.     int FRefCount;
  46.     TServerEventDispatch* FEventDispatch;
  47.     int FEventsConnection;
  48.     bool FAutoConnect;
  49.     AnsiString FRemoteMachineName;
  50.     TConnectKind FConnectKind;
  51.     
  52. protected:
  53.     virtual HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
  54.     HIDESBASE int __stdcall _AddRef(void);
  55.     HIDESBASE int __stdcall _Release(void);
  56.     virtual void __fastcall Loaded(void);
  57.     virtual void __fastcall InitServerData(void) = 0 ;
  58.     virtual _di_IUnknown __fastcall GetServer();
  59.     void __fastcall ConnectEvents(const _di_IUnknown Obj);
  60.     void __fastcall DisconnectEvents(const _di_IUnknown Obj);
  61.     virtual void __fastcall InvokeEvent(int DispID, TVariantArray &Params);
  62.     TConnectKind __fastcall GetConnectKind(void);
  63.     void __fastcall SetConnectKind(TConnectKind ck);
  64.     bool __fastcall GetAutoConnect(void);
  65.     void __fastcall SetAutoConnect(bool flag);
  66.     __property PServerData ServerData = {read=FServerData, write=FServerData};
  67.     __property TServerEventDispatch* EventDispatch = {read=FEventDispatch, write=FEventDispatch};
  68.     
  69. public:
  70.     __fastcall virtual TOleServer(Classes::TComponent* AOwner);
  71.     __fastcall virtual ~TOleServer(void);
  72.     virtual void __fastcall Connect(void) = 0 ;
  73.     virtual void __fastcall Disconnect(void) = 0 ;
  74.     
  75. __published:
  76.     __property bool AutoConnect = {read=GetAutoConnect, write=SetAutoConnect, nodefault};
  77.     __property TConnectKind ConnectKind = {read=GetConnectKind, write=SetConnectKind, nodefault};
  78.     __property AnsiString RemoteMachineName = {read=FRemoteMachineName, write=FRemoteMachineName};
  79. private:
  80.         
  81.     void *__IUnknown;    /* IUnknown */
  82.     
  83. public:
  84.     operator IUnknown*(void) { return (IUnknown*)&__IUnknown; }
  85.     
  86. };
  87.  
  88.  
  89. class PASCALIMPLEMENTATION TServerEventDispatch : public System::TObject 
  90. {
  91.     typedef System::TObject inherited;
  92.     
  93. private:
  94.     TOleServer* FServer;
  95.     int InternalRefCount;
  96.     
  97. protected:
  98.     HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
  99.     int __stdcall _AddRef(void);
  100.     int __stdcall _Release(void);
  101.     HRESULT __stdcall GetTypeInfoCount(/* out */ int &Count);
  102.     HRESULT __stdcall GetTypeInfo(int Index, int LocaleID, /* out */ void *TypeInfo);
  103.     HRESULT __stdcall GetIDsOfNames(const GUID &IID, void * Names, int NameCount, int LocaleID, void * 
  104.         DispIDs);
  105.     HRESULT __stdcall Invoke(int DispID, const GUID &IID, int LocaleID, Word Flags, void *Params, void * 
  106.         VarResult, void * ExcepInfo, void * ArgErr);
  107.     __property TOleServer* Server = {read=FServer};
  108.     bool __fastcall ServerDisconnect(void);
  109.     
  110. public:
  111.     __fastcall TServerEventDispatch(TOleServer* Server);
  112. public:
  113.     #pragma option push -w-inl
  114.     /* TObject.Destroy */ inline __fastcall virtual ~TServerEventDispatch(void) { }
  115.     #pragma option pop
  116.     
  117. private:
  118.     void *__IDispatch;    /* IDispatch */
  119.     
  120. public:
  121.     operator IDispatch*(void) { return (IDispatch*)&__IDispatch; }
  122.     operator IUnknown*(void) { return (IUnknown*)&__IDispatch; }
  123.     
  124. };
  125.  
  126.  
  127. struct TServerData
  128. {
  129.     GUID ClassID;
  130.     GUID IntfIID;
  131.     GUID EventIID;
  132.     void *LicenseKey;
  133.     int Version;
  134.     int InstanceCount;
  135. } ;
  136.  
  137. //-- var, const, procedure ---------------------------------------------------
  138.  
  139. }    /* namespace Oleserver */
  140. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  141. using namespace Oleserver;
  142. #endif
  143. #pragma option pop    // -w-
  144. #pragma option pop    // -Vx
  145.  
  146. #pragma delphiheader end.
  147. //-- end unit ----------------------------------------------------------------
  148. #endif    // OleServer
  149.