[DDK]
[reactos.git] / include / ddk / unknown.h
1 #ifndef __unknwn_h__
2 #define __unknwn_h__
3
4 #ifdef __cplusplus
5 extern "C" {
6 #include <wdm.h>
7 }
8 #else
9 #include <wdm.h>
10 #endif
11
12 #include <windef.h>
13 #define COM_NO_WINDOWS_H
14 #include <basetyps.h>
15 #ifdef PUT_GUIDS_HERE
16 #include <initguid.h>
17 #endif
18
19 DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
20 #if defined(__cplusplus) && _MSC_VER >= 1100
21 struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) IUnknown;
22 #endif
23
24 #undef INTERFACE
25 #define INTERFACE IUnknown
26 DECLARE_INTERFACE(IUnknown)
27 {
28 STDMETHOD(QueryInterface)
29 ( THIS_
30 IN REFIID,
31 OUT PVOID *
32 ) PURE;
33
34 STDMETHOD_(ULONG,AddRef)
35 ( THIS
36 ) PURE;
37
38 STDMETHOD_(ULONG,Release)
39 ( THIS
40 ) PURE;
41 };
42 #undef INTERFACE
43
44 typedef IUnknown *PUNKNOWN;
45 typedef
46 HRESULT
47 (NTAPI *PFNCREATEINSTANCE)
48 (
49 OUT PUNKNOWN * Unknown,
50 IN REFCLSID ClassId,
51 IN PUNKNOWN OuterUnknown,
52 IN POOL_TYPE PoolType
53 );
54
55 #endif
56