2 ReactOS Kernel-Mode COM
5 This file is in the public domain.
20 #define COM_NO_WINDOWS_H
27 /* ===============================================================
31 #ifndef __IUnknown_INTERFACE_DEFINED__
32 #define __IUnknown_INTERFACE_DEFINED__
34 DEFINE_GUID(IID_IUnknown
,
35 0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
38 #define INTERFACE IUnknown
40 DECLARE_INTERFACE(IUnknown
) {
41 STDMETHOD_(NTSTATUS
, QueryInterface
)( THIS_
45 STDMETHOD_(ULONG
, AddRef
)( THIS
) PURE
;
47 STDMETHOD_(ULONG
, Release
)( THIS
) PURE
;
50 #endif /* __IUnknown_INTERFACE_DEFINED__ */
54 typedef IUnknown
*PUNKNOWN
;
56 /* ===============================================================
58 Boilerplate code macro for use in subclassed interfaces
61 #define DEFINE_ABSTRACT_UNKNOWN() \
62 STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ \
64 PVOID* Interface) PURE; \
66 STDMETHOD_(ULONG, AddRef)(THIS) PURE; \
68 STDMETHOD_(ULONG, Release)(THIS) PURE;
70 /* ===============================================================
71 Constructor callback definition
75 (NTAPI
*PFNCREATEINSTANCE
)(
76 OUT PUNKNOWN
* Unknown
,
78 IN PUNKNOWN OuterUnknown
,
79 IN POOL_TYPE PoolType
);
81 #endif /* _UNKNOWN_H_ */