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.

91 lines
2.8 KiB

  1. /*==========================================================================
  2. *
  3. * Copyright (C) 1999-2002 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. * 05/04/00 mjn Cleaned up functions
  13. * 06/09/00 rmt Updates to split CLSID and allow whistler compat and support external create funcs
  14. *@@END_MSINTERNAL
  15. *
  16. ***************************************************************************/
  17. #ifndef __CLASSFAC_H__
  18. #define __CLASSFAC_H__
  19. //**********************************************************************
  20. // Constant definitions
  21. //**********************************************************************
  22. //**********************************************************************
  23. // Macro definitions
  24. //**********************************************************************
  25. //**********************************************************************
  26. // Structure definitions
  27. //**********************************************************************
  28. //**********************************************************************
  29. // Variable definitions
  30. //**********************************************************************
  31. #ifndef DPNBUILD_LIBINTERFACE
  32. //
  33. // VTable for class factory
  34. //
  35. extern IClassFactoryVtbl DNCF_Vtbl;
  36. #endif // ! DPNBUILD_LIBINTERFACE
  37. //**********************************************************************
  38. // Function prototypes
  39. //**********************************************************************
  40. //
  41. // DirectNet - IUnknown
  42. //
  43. STDMETHODIMP DN_QueryInterface(void *pInterface,
  44. DP8REFIID riid,
  45. void **ppv);
  46. STDMETHODIMP_(ULONG) DN_AddRef(void *pInterface);
  47. STDMETHODIMP_(ULONG) DN_Release(void *pInterface);
  48. //
  49. // Class Factory
  50. //
  51. #ifndef DPNBUILD_LIBINTERFACE
  52. STDMETHODIMP DNCORECF_CreateInstance(IClassFactory* pInterface, LPUNKNOWN lpUnkOuter, REFIID riid, LPVOID *ppv);
  53. #endif // ! DPNBUILD_LIBINTERFACE
  54. // Class Factory - supporting
  55. HRESULT DNCF_CreateObject(
  56. #ifndef DPNBUILD_LIBINTERFACE
  57. IClassFactory* pInterface,
  58. #endif // ! DPNBUILD_LIBINTERFACE
  59. #ifdef DPNBUILD_PREALLOCATEDMEMORYMODEL
  60. XDP8CREATE_PARAMS * pDP8CreateParams,
  61. #else // ! DPNBUILD_PREALLOCATEDMEMORYMODEL
  62. DP8REFIID riid,
  63. #endif // ! DPNBUILD_PREALLOCATEDMEMORYMODEL
  64. LPVOID *lplpv
  65. );
  66. HRESULT DNCF_FreeObject(LPVOID lpv);
  67. #ifndef DPNBUILD_LIBINTERFACE
  68. static HRESULT DN_CreateInterface(OBJECT_DATA *pObject,
  69. REFIID riid,
  70. INTERFACE_LIST **const ppv);
  71. INTERFACE_LIST *DN_FindInterface(void *pInterface,
  72. REFIID riid);
  73. #endif // ! DPNBUILD_LIBINTERFACE
  74. #endif // __CLASSFAC_H__