Mercurial > games > semicongine
annotate fuhtark_test/include/ddk/punknown.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
| rev | line source |
|---|---|
|
1500
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
1 /* |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
2 ReactOS Kernel-Mode COM |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
3 by Andrew Greenwood |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
4 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
5 This file is in the public domain. |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
6 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
7 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
8 #ifndef _UNKNOWN_H_ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
9 #define _UNKNOWN_H_ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
10 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
11 #ifdef __cplusplus |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
12 extern "C" { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
13 #include <wdm.h> |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
14 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
15 #else |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
16 #include <wdm.h> |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
17 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
18 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
19 #include <windef.h> |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
20 #define COM_NO_WINDOWS_H |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
21 #include <basetyps.h> |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
22 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
23 #ifdef PUT_GUIDS_HERE |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
24 #include <initguid.h> |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
25 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
26 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
27 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
28 /* =============================================================== |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
29 IUnknown |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
30 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
31 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
32 #ifndef __IUnknown_INTERFACE_DEFINED__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
33 #define __IUnknown_INTERFACE_DEFINED__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
34 DEFINE_GUID( |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
35 IID_IUnknown, |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
36 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x46); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
37 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
38 #undef INTERFACE |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
39 #define INTERFACE IUnknown |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
40 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
41 DECLARE_INTERFACE(IUnknown) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
42 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
43 STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
44 IN REFIID, |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
45 OUT PVOID*) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
46 PURE; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
47 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
48 STDMETHOD_(ULONG, AddRef)( THIS ) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
49 PURE; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
50 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
51 STDMETHOD_(ULONG, Release)( THIS ) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
52 PURE; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
53 }; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
54 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
55 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
56 #undef INTERFACE |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
57 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
58 typedef IUnknown *PUNKNOWN; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
59 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
60 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
61 /* =============================================================== |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
62 IUnknown definition |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
63 Boilerplate code macro for use in subclassed interfaces |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
64 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
65 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
66 #define DEFINE_ABSTRACT_UNKNOWN() \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
67 STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
68 REFIID InterfaceId, \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
69 PVOID* Interface) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
70 PURE; \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
71 \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
72 STDMETHOD_(ULONG, AddRef)(THIS) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
73 PURE; \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
74 \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
75 STDMETHOD_(ULONG, Release)(THIS) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
76 PURE; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
77 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
78 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
79 /* =============================================================== |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
80 Constructor callback definition |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
81 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
82 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
83 typedef HRESULT (NTAPI *PFNCREATEINSTANCE)( |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
84 OUT PUNKNOWN* Unknown, |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
85 IN REFCLSID ClassId, |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
86 IN PUNKNOWN OuterUnknown, |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
87 IN POOL_TYPE PoolType); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
88 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
89 #endif |
