123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*
- ReactOS Kernel-Mode COM
- by Andrew Greenwood
- This file is in the public domain.
- */
- #ifndef _UNKNOWN_H_
- #define _UNKNOWN_H_
- #ifdef __cplusplus
- extern "C" {
- #include <wdm.h>
- }
- #else
- #include <wdm.h>
- #endif
- #include <windef.h>
- #define COM_NO_WINDOWS_H
- #include <basetyps.h>
- #ifdef PUT_GUIDS_HERE
- #include <initguid.h>
- #endif
- /* ===============================================================
- IUnknown
- */
- #ifndef __IUnknown_INTERFACE_DEFINED__
- #define __IUnknown_INTERFACE_DEFINED__
- DEFINE_GUID(
- IID_IUnknown,
- 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x46);
- #undef INTERFACE
- #define INTERFACE IUnknown
- DECLARE_INTERFACE(IUnknown)
- {
- STDMETHOD_(NTSTATUS, QueryInterface)( THIS_
- IN REFIID,
- OUT PVOID*)
- PURE;
- STDMETHOD_(ULONG, AddRef)( THIS )
- PURE;
- STDMETHOD_(ULONG, Release)( THIS )
- PURE;
- };
- #endif
- #undef INTERFACE
- typedef IUnknown *PUNKNOWN;
- /* ===============================================================
- IUnknown definition
- Boilerplate code macro for use in subclassed interfaces
- */
- #define DEFINE_ABSTRACT_UNKNOWN() \
- STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ \
- REFIID InterfaceId, \
- PVOID* Interface) \
- PURE; \
- \
- STDMETHOD_(ULONG, AddRef)(THIS) \
- PURE; \
- \
- STDMETHOD_(ULONG, Release)(THIS) \
- PURE;
- /* ===============================================================
- Constructor callback definition
- */
- typedef HRESULT (NTAPI *PFNCREATEINSTANCE)(
- OUT PUNKNOWN* Unknown,
- IN REFCLSID ClassId,
- IN PUNKNOWN OuterUnknown,
- IN POOL_TYPE PoolType);
- #endif /* _UNKNOWN_H_ */
|