home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 May / Pcwk5b98.iso / Borland / Cplus45 / BC45 / MSINC.PAK / COBJPS.H < prev    next >
Text File  |  1995-08-29  |  3KB  |  76 lines

  1. /*****************************************************************************\
  2. *                                                                             *
  3. * cobjps.h -    Definitions for writing standard proxies and stubs                        *
  4. *                                                                             *
  5. *               OLE Version 2.0                                               *
  6. *                                                                             *
  7. \*****************************************************************************/
  8.  
  9. /*
  10.  *      C/C++ Run Time Library - Version 6.5
  11.  *
  12.  *      Copyright (c) 1994 by Borland International
  13.  *      All Rights Reserved.
  14.  *
  15.  */
  16.  
  17. #if !defined( _COBJPS_H_ )
  18. #define _COBJPS_H_
  19. #define __COBJPS_H
  20.  
  21. /****** IRpcChannel Interface ***********************************************/
  22.  
  23. interface IRpcChannel : IUnknown 
  24. {
  25.     STDMETHOD(GetStream)(REFIID iid, int iMethod, BOOL fSend,
  26.              BOOL fNoWait, DWORD size, IStream FAR* FAR* ppIStream) = 0;
  27.     STDMETHOD(Call)(IStream FAR* pIStream) = 0;
  28.     STDMETHOD(GetDestCtx)(DWORD FAR* lpdwDestCtx, LPVOID FAR* lplpvDestCtx) = 0;
  29.     STDMETHOD(IsConnected)(void) = 0;
  30. };
  31.  
  32.  
  33. /****** IRpcProxy Interface *************************************************/
  34.  
  35. // IRpcProxy is an interface implemented by proxy objects.  A proxy object has
  36. // exactly the same interfaces as the real object in addition to IRpcProxy.
  37. //
  38.  
  39. interface IRpcProxy : IUnknown 
  40. {
  41.     STDMETHOD(Connect)(IRpcChannel FAR* pRpcChannel) = 0;
  42.     STDMETHOD_(void, Disconnect)(void) = 0;
  43. };
  44.  
  45.  
  46. /****** IRpcStub Interface **************************************************/
  47.  
  48. // IRpcStub is an interface implemented by stub objects.  
  49. //
  50.  
  51. interface IRpcStub : IUnknown
  52. {
  53.     STDMETHOD(Connect)(IUnknown FAR* pUnk) = 0;
  54.     STDMETHOD_(void, Disconnect)(void) = 0;
  55.     STDMETHOD(Invoke)(REFIID iid, int iMethod, IStream FAR* pIStream,
  56.         DWORD dwDestCtx, LPVOID lpvDestCtx) = 0;
  57.     STDMETHOD_(BOOL, IsIIDSupported)(REFIID iid) = 0;
  58.     STDMETHOD_(ULONG, CountRefs)(void) = 0;
  59. };
  60.  
  61.  
  62. /****** IPSFactory Interface ************************************************/
  63.  
  64. // IPSFactory - creates proxies and stubs
  65. //
  66.  
  67. interface IPSFactory : IUnknown
  68. {
  69.     STDMETHOD(CreateProxy)(IUnknown FAR* pUnkOuter, REFIID riid, 
  70.     IRpcProxy FAR* FAR* ppProxy, void FAR* FAR* ppv) = 0;
  71.     STDMETHOD(CreateStub)(REFIID riid, IUnknown FAR* pUnkServer,
  72.     IRpcStub FAR* FAR* ppStub) = 0;
  73. };
  74.  
  75. #endif // _COBJPS_H_
  76.