Source code of Windows XP (NT5)
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.

86 lines
3.1 KiB

  1. /*==========================================================================
  2. *
  3. * Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
  4. *
  5. * File: ClassFac.h
  6. * Content: DirectNet class factory header file
  7. *@@BEGIN_MSINTERNAL
  8. * History:
  9. * Date By Reason
  10. * ==== == ======
  11. * 10/08/99 jtk Created
  12. *@@END_MSINTERNAL
  13. *
  14. ***************************************************************************/
  15. #ifndef __CLASSFAC_H__
  16. #define __CLASSFAC_H__
  17. //**********************************************************************
  18. // Constant definitions
  19. //**********************************************************************
  20. //**********************************************************************
  21. // Macro definitions
  22. //**********************************************************************
  23. //**********************************************************************
  24. // Structure definitions
  25. //**********************************************************************
  26. //
  27. // COM interface for class factory
  28. //
  29. #undef INTERFACE // External COM Implementation
  30. #define INTERFACE IDirectPlay8AddressClassFact
  31. DECLARE_INTERFACE_(IDirectPlay8AddressClassFact,IUnknown)
  32. {
  33. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
  34. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  35. STDMETHOD_(ULONG,Release) (THIS) PURE;
  36. STDMETHOD(CreateInstance) (THIS_ LPUNKNOWN lpUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
  37. STDMETHOD(LockServer) (THIS_ BOOL bLock) PURE;
  38. };
  39. typedef struct _IDirectPlay8AddressClassFact { // Internal Implementation (overlay's external imp.)
  40. IDirectPlay8AddressClassFactVtbl *lpVtbl; // lpVtbl Must be first element (to match external imp.)
  41. LONG lRefCount;
  42. DWORD dwLocks;
  43. } _IDirectPlay8AddressClassFact, *_LPIDirectPlay8AddressClassFact;
  44. //**********************************************************************
  45. // Variable definitions
  46. //**********************************************************************
  47. //
  48. // VTable for class factory
  49. //
  50. extern IDirectPlay8AddressClassFactVtbl DP8ACF_Vtbl;
  51. //
  52. // VTable for IUnknown
  53. extern IUnknownVtbl DP8A_UnknownVtbl;
  54. //**********************************************************************
  55. // Function prototypes
  56. //**********************************************************************
  57. // DirectNet - IUnknown
  58. STDMETHODIMP DP8A_QueryInterface(LPVOID lpv, REFIID riid,LPVOID *ppvObj);
  59. STDMETHODIMP_(ULONG) DP8A_AddRef(LPVOID lphObj);
  60. STDMETHODIMP_(ULONG) DP8A_Release(LPVOID lphObj);
  61. // Class Factory
  62. STDMETHODIMP DP8ACF_QueryInterface(IDirectPlay8AddressClassFact *pInterface,REFIID riid,LPVOID *ppvObj);
  63. STDMETHODIMP_(ULONG) DP8ACF_AddRef(IDirectPlay8AddressClassFact *pInterface);
  64. STDMETHODIMP_(ULONG) DP8ACF_Release(IDirectPlay8AddressClassFact *pInterface);
  65. STDMETHODIMP DP8ACF_CreateInstance(IDirectPlay8AddressClassFact *pInterface,LPUNKNOWN lpUnkOuter,REFIID riid,LPVOID *ppv);
  66. STDMETHODIMP DP8ACF_LockServer(IDirectPlay8AddressClassFact *pInterface,BOOL bLock);
  67. // Class Factory - supporting
  68. HRESULT DP8ACF_CreateObject(LPVOID *lplpv,REFIID riid);
  69. HRESULT DP8ACF_FreeObject(LPVOID lpv);
  70. #endif // __CLASSFAC_H__