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.

75 lines
1.5 KiB

  1. /*****************************************************************************
  2. * punknown.h - IUnknown definitions
  3. *****************************************************************************
  4. * Copyright (c) Microsoft Corporation. All rights reserved.
  5. */
  6. #ifndef _UNKNOWN_H_
  7. #define _UNKNOWN_H_
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #include <wdm.h>
  11. }
  12. #else
  13. #include <wdm.h>
  14. #endif
  15. #include <windef.h>
  16. #define COM_NO_WINDOWS_H
  17. #include <basetyps.h>
  18. #ifdef PUT_GUIDS_HERE
  19. #include <initguid.h>
  20. #endif
  21. DEFINE_GUID(IID_IUnknown,
  22. 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x46);
  23. /*****************************************************************************
  24. * IUnknown
  25. *****************************************************************************
  26. * Base interface for otherwise unknown objects.
  27. */
  28. #undef INTERFACE
  29. #define INTERFACE IUnknown
  30. DECLARE_INTERFACE(IUnknown)
  31. {
  32. STDMETHOD_(NTSTATUS,QueryInterface)
  33. ( THIS_
  34. IN REFIID,
  35. OUT PVOID *
  36. ) PURE;
  37. STDMETHOD_(ULONG,AddRef)
  38. ( THIS
  39. ) PURE;
  40. STDMETHOD_(ULONG,Release)
  41. ( THIS
  42. ) PURE;
  43. };
  44. #undef INTERFACE
  45. typedef IUnknown *PUNKNOWN;
  46. /*****************************************************************************
  47. * PFNCREATEINSTANCE
  48. *****************************************************************************
  49. * Type for object create function.
  50. */
  51. typedef
  52. HRESULT
  53. (*PFNCREATEINSTANCE)
  54. (
  55. OUT PUNKNOWN * Unknown,
  56. IN REFCLSID ClassId,
  57. IN PUNKNOWN OuterUnknown,
  58. IN POOL_TYPE PoolType
  59. );
  60. #endif