Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.5 KiB

  1. /*****************************************************************************\
  2. * *
  3. * cobjps.h - Definitions for writing standard proxies and stubs *
  4. * *
  5. * OLE Version 2.0 *
  6. * *
  7. * Copyright (c) Microsoft Corporation. All rights reserved. *
  8. * *
  9. \*****************************************************************************/
  10. #if !defined( _COBJPS_H_ )
  11. #define _COBJPS_H_
  12. #if _MSC_VER > 1000
  13. #pragma once
  14. #endif
  15. /****** IRpcChannel Interface ***********************************************/
  16. interface IRpcChannel : IUnknown
  17. {
  18. STDMETHOD(GetStream)(REFIID iid, int iMethod, BOOL fSend,
  19. BOOL fNoWait, DWORD size, IStream FAR* FAR* ppIStream) = 0;
  20. STDMETHOD(Call)(IStream FAR* pIStream) = 0;
  21. STDMETHOD(GetDestCtx)(DWORD FAR* lpdwDestCtx, LPVOID FAR* lplpvDestCtx) = 0;
  22. STDMETHOD(IsConnected)(void) = 0;
  23. };
  24. /****** IRpcProxy Interface *************************************************/
  25. // IRpcProxy is an interface implemented by proxy objects. A proxy object has
  26. // exactly the same interfaces as the real object in addition to IRpcProxy.
  27. //
  28. interface IRpcProxy : IUnknown
  29. {
  30. STDMETHOD(Connect)(IRpcChannel FAR* pRpcChannel) = 0;
  31. STDMETHOD_(void, Disconnect)(void) = 0;
  32. };
  33. /****** IRpcStub Interface **************************************************/
  34. // IRpcStub is an interface implemented by stub objects.
  35. //
  36. interface IRpcStub : IUnknown
  37. {
  38. STDMETHOD(Connect)(IUnknown FAR* pUnk) = 0;
  39. STDMETHOD_(void, Disconnect)(void) = 0;
  40. STDMETHOD(Invoke)(REFIID iid, int iMethod, IStream FAR* pIStream,
  41. DWORD dwDestCtx, LPVOID lpvDestCtx) = 0;
  42. STDMETHOD_(BOOL, IsIIDSupported)(REFIID iid) = 0;
  43. STDMETHOD_(ULONG, CountRefs)(void) = 0;
  44. };
  45. /****** IPSFactory Interface ************************************************/
  46. // IPSFactory - creates proxies and stubs
  47. //
  48. interface IPSFactory : IUnknown
  49. {
  50. STDMETHOD(CreateProxy)(IUnknown FAR* pUnkOuter, REFIID riid,
  51. IRpcProxy FAR* FAR* ppProxy, void FAR* FAR* ppv) = 0;
  52. STDMETHOD(CreateStub)(REFIID riid, IUnknown FAR* pUnkServer,
  53. IRpcStub FAR* FAR* ppStub) = 0;
  54. };
  55. #endif // _COBJPS_H_