xref: /reactos/sdk/include/psdk/unknown.h (revision 845faec4)
1 /*
2  * unknown.h
3  *
4  * Contributors:
5  *   Created by Magnus Olsen
6  *
7  * THIS SOFTWARE IS NOT COPYRIGHTED
8  *
9  * This source code is offered for use in the public domain. You may
10  * use, modify or distribute it freely.
11  *
12  * This code is distributed in the hope that it will be useful but
13  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
14  * DISCLAIMED. This includes but is not limited to warranties of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  *
17  */
18 
19 #ifndef _UNKNOWN_H_
20 #define _UNKNOWN_H_
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #include <wdm.h>
25 }
26 #else
27 #include <wdm.h>
28 #endif
29 
30 #include <windef.h>
31 #define COM_NO_WINDOWS_H
32 #include <basetyps.h>
33 #ifdef PUT_GUIDS_HERE
34 #include <initguid.h>
35 #endif
36 
37 DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
38 #if defined(__cplusplus) && _MSC_VER >= 1100
39     struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) IUnknown;
40 #endif
41 
42 #undef INTERFACE
43 #define INTERFACE IUnknown
44 DECLARE_INTERFACE(IUnknown)
45 {
46     STDMETHOD(QueryInterface)
47     (   THIS_
48         IN      REFIID,
49         OUT     PVOID *
50     )   PURE;
51 
52     STDMETHOD_(ULONG,AddRef)
53     (   THIS
54     )   PURE;
55 
56     STDMETHOD_(ULONG,Release)
57     (   THIS
58     )   PURE;
59 };
60 #undef INTERFACE
61 
62 typedef IUnknown *PUNKNOWN;
63 typedef
64 HRESULT
65 (NTAPI *PFNCREATEINSTANCE)
66 (
67   OUT PUNKNOWN *  Unknown,
68   IN  REFCLSID    ClassId,
69   IN  PUNKNOWN    OuterUnknown,
70   IN  POOL_TYPE   PoolType
71 );
72 
73 #endif /* _UNKNOWN_H_ */
74 
75