1 /**
2     Windows Error Definitions
3 
4     Basic standalone Windows definitions to make it easier to work with
5     the COM API.
6 
7     Copyright:
8         Copyright © 2023-2025, Kitsunebi Games
9         Copyright © 2023-2025, Inochi2D Project
10     
11     License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
12     Source:    $(DRUNTIMESRC core/sys/windows/_winerror.d)
13     Authors:   Luna Nielsen
14 */
15 module nulib.system.com.hresult;
16 import nulib.system.com.objbase;
17 
18 alias HRESULT = int;
19 enum : HRESULT {
20     S_OK                                   = 0x00000000,
21     S_FALSE                                = 0x00000001,
22 
23     NOERROR                                = 0x00000000,
24 
25     E_PENDING                              = 0x8000000A,
26     E_NOTIMPL                              = 0x80004001,
27     E_NOINTERFACE                          = 0x80004002,
28     E_POINTER                              = 0x80004003,
29     E_ABORT                                = 0x80004004,
30     E_FAIL                                 = 0x80004005,
31     E_ACCESSDENIED                         = 0x80070005,
32     E_HANDLE                               = 0x80070006,
33     E_OUTOFMEMORY                          = 0x8007000E,
34     E_INVALIDARG                           = 0x80070057,
35     E_UNEXPECTED                           = 0x8000FFFF,
36 
37     CO_E_INIT_TLS                          = 0x80004006,
38     CO_E_INIT_SHARED_ALLOCATOR             = 0x80004007,
39     CO_E_INIT_MEMORY_ALLOCATOR             = 0x80004008,
40     CO_E_INIT_CLASS_CACHE                  = 0x80004009,
41     CO_E_INIT_RPC_CHANNEL                  = 0x8000400A,
42     CO_E_INIT_TLS_SET_CHANNEL_CONTROL      = 0x8000400B,
43     CO_E_INIT_TLS_CHANNEL_CONTROL          = 0x8000400C,
44     CO_E_INIT_UNACCEPTED_USER_ALLOCATOR    = 0x8000400D,
45     CO_E_INIT_SCM_MUTEX_EXISTS             = 0x8000400E,
46     CO_E_INIT_SCM_FILE_MAPPING_EXISTS      = 0x8000400F,
47     CO_E_INIT_SCM_MAP_VIEW_OF_FILE         = 0x80004010,
48     CO_E_INIT_SCM_EXEC_FAILURE             = 0x80004011,
49     CO_E_INIT_ONLY_SINGLE_THREADED         = 0x80004012,
50 
51     RPC_E_CALL_REJECTED                    = 0x80010001,
52     RPC_E_CALL_CANCELED                    = 0x80010002,
53     RPC_E_CANTPOST_INSENDCALL              = 0x80010003,
54     RPC_E_CANTCALLOUT_INASYNCCALL          = 0x80010004,
55     RPC_E_CANTCALLOUT_INEXTERNALCALL       = 0x80010005,
56     RPC_E_CONNECTION_TERMINATED            = 0x80010006,
57     RPC_E_SERVER_DIED                      = 0x80010007,
58     RPC_E_CLIENT_DIED                      = 0x80010008,
59     RPC_E_INVALID_DATAPACKET               = 0x80010009,
60     RPC_E_CANTTRANSMIT_CALL                = 0x8001000A,
61     RPC_E_CLIENT_CANTMARSHAL_DATA          = 0x8001000B,
62     RPC_E_CLIENT_CANTUNMARSHAL_DATA        = 0x8001000C,
63     RPC_E_SERVER_CANTMARSHAL_DATA          = 0x8001000D,
64     RPC_E_SERVER_CANTUNMARSHAL_DATA        = 0x8001000E,
65     RPC_E_INVALID_DATA                     = 0x8001000F,
66     RPC_E_INVALID_PARAMETER                = 0x80010010,
67     RPC_E_CANTCALLOUT_AGAIN                = 0x80010011,
68     RPC_E_SERVER_DIED_DNE                  = 0x80010012,
69     RPC_E_SYS_CALL_FAILED                  = 0x80010100,
70     RPC_E_OUT_OF_RESOURCES                 = 0x80010101,
71     RPC_E_ATTEMPTED_MULTITHREAD            = 0x80010102,
72     RPC_E_NOT_REGISTERED                   = 0x80010103,
73     RPC_E_FAULT                            = 0x80010104,
74     RPC_E_SERVERFAULT                      = 0x80010105,
75     RPC_E_CHANGED_MODE                     = 0x80010106,
76     RPC_E_INVALIDMETHOD                    = 0x80010107,
77     RPC_E_DISCONNECTED                     = 0x80010108,
78     RPC_E_RETRY                            = 0x80010109,
79     RPC_E_SERVERCALL_RETRYLATER            = 0x8001010A,
80     RPC_E_SERVERCALL_REJECTED              = 0x8001010B,
81     RPC_E_INVALID_CALLDATA                 = 0x8001010C,
82     RPC_E_CANTCALLOUT_ININPUTSYNCCALL      = 0x8001010D,
83     RPC_E_WRONG_THREAD                     = 0x8001010E,
84     RPC_E_THREAD_NOT_INIT                  = 0x8001010F,
85     RPC_E_UNEXPECTED                       = 0x8001FFFF,
86 
87     DISP_E_UNKNOWNINTERFACE                = 0x80020001,
88     DISP_E_MEMBERNOTFOUND                  = 0x80020003,
89     DISP_E_PARAMNOTFOUND                   = 0x80020004,
90     DISP_E_TYPEMISMATCH                    = 0x80020005,
91     DISP_E_UNKNOWNNAME                     = 0x80020006,
92     DISP_E_NONAMEDARGS                     = 0x80020007,
93     DISP_E_BADVARTYPE                      = 0x80020008,
94     DISP_E_EXCEPTION                       = 0x80020009,
95     DISP_E_OVERFLOW                        = 0x8002000A,
96     DISP_E_BADINDEX                        = 0x8002000B,
97     DISP_E_UNKNOWNLCID                     = 0x8002000C,
98     DISP_E_ARRAYISLOCKED                   = 0x8002000D,
99     DISP_E_BADPARAMCOUNT                   = 0x8002000E,
100     DISP_E_PARAMNOTOPTIONAL                = 0x8002000F,
101     DISP_E_BADCALLEE                       = 0x80020010,
102     DISP_E_NOTACOLLECTION                  = 0x80020011,
103     DISP_E_DIVBYZERO                       = 0x80020012,
104 
105     TYPE_E_BUFFERTOOSMALL                  = 0x80028016,
106     TYPE_E_INVDATAREAD                     = 0x80028018,
107     TYPE_E_UNSUPFORMAT                     = 0x80028019,
108     TYPE_E_REGISTRYACCESS                  = 0x8002801C,
109     TYPE_E_LIBNOTREGISTERED                = 0x8002801D,
110     TYPE_E_UNDEFINEDTYPE                   = 0x80028027,
111     TYPE_E_QUALIFIEDNAMEDISALLOWED         = 0x80028028,
112     TYPE_E_INVALIDSTATE                    = 0x80028029,
113     TYPE_E_WRONGTYPEKIND                   = 0x8002802A,
114     TYPE_E_ELEMENTNOTFOUND                 = 0x8002802B,
115     TYPE_E_AMBIGUOUSNAME                   = 0x8002802C,
116     TYPE_E_NAMECONFLICT                    = 0x8002802D,
117     TYPE_E_UNKNOWNLCID                     = 0x8002802E,
118     TYPE_E_DLLFUNCTIONNOTFOUND             = 0x8002802F,
119     TYPE_E_BADMODULEKIND                   = 0x800288BD,
120     TYPE_E_SIZETOOBIG                      = 0x800288C5,
121     TYPE_E_DUPLICATEID                     = 0x800288C6,
122     TYPE_E_INVALIDID                       = 0x800288CF,
123     TYPE_E_TYPEMISMATCH                    = 0x80028CA0,
124     TYPE_E_OUTOFBOUNDS                     = 0x80028CA1,
125     TYPE_E_IOERROR                         = 0x80028CA2,
126     TYPE_E_CANTCREATETMPFILE               = 0x80028CA3,
127     TYPE_E_CANTLOADLIBRARY                 = 0x80029C4A,
128     TYPE_E_INCONSISTENTPROPFUNCS           = 0x80029C83,
129     TYPE_E_CIRCULARTYPE                    = 0x80029C84,
130 
131     STG_E_INVALIDFUNCTION                  = 0x80030001,
132     STG_E_FILENOTFOUND                     = 0x80030002,
133     STG_E_PATHNOTFOUND                     = 0x80030003,
134     STG_E_TOOMANYOPENFILES                 = 0x80030004,
135     STG_E_ACCESSDENIED                     = 0x80030005,
136     STG_E_INVALIDHANDLE                    = 0x80030006,
137     STG_E_INSUFFICIENTMEMORY               = 0x80030008,
138     STG_E_INVALIDPOINTER                   = 0x80030009,
139     STG_E_NOMOREFILES                      = 0x80030012,
140     STG_E_DISKISWRITEPROTECTED             = 0x80030013,
141     STG_E_SEEKERROR                        = 0x80030019,
142     STG_E_WRITEFAULT                       = 0x8003001D,
143     STG_E_READFAULT                        = 0x8003001E,
144     STG_E_SHAREVIOLATION                   = 0x80030020,
145     STG_E_LOCKVIOLATION                    = 0x80030021,
146     STG_E_FILEALREADYEXISTS                = 0x80030050,
147     STG_E_INVALIDPARAMETER                 = 0x80030057,
148     STG_E_MEDIUMFULL                       = 0x80030070,
149     STG_E_ABNORMALAPIEXIT                  = 0x800300FA,
150     STG_E_INVALIDHEADER                    = 0x800300FB,
151     STG_E_INVALIDNAME                      = 0x800300FC,
152     STG_E_UNKNOWN                          = 0x800300FD,
153     STG_E_UNIMPLEMENTEDFUNCTION            = 0x800300FE,
154     STG_E_INVALIDFLAG                      = 0x800300FF,
155     STG_E_INUSE                            = 0x80030100,
156     STG_E_NOTCURRENT                       = 0x80030101,
157     STG_E_REVERTED                         = 0x80030102,
158     STG_E_CANTSAVE                         = 0x80030103,
159     STG_E_OLDFORMAT                        = 0x80030104,
160     STG_E_OLDDLL                           = 0x80030105,
161     STG_E_SHAREREQUIRED                    = 0x80030106,
162     STG_E_NOTFILEBASEDSTORAGE              = 0x80030107,
163     STG_E_EXTANTMARSHALLINGS               = 0x80030108,
164     STG_S_CONVERTED                        = 0x00030200,
165 
166     OLE_E_FIRST                            = 0x80040000,
167     OLE_S_FIRST                            = 0x00040000,
168     OLE_E_OLEVERB                          = 0x80040000,
169     OLE_S_USEREG                           = 0x00040000,
170     OLE_E_ADVF                             = 0x80040001,
171     OLE_S_STATIC                           = 0x00040001,
172     OLE_E_ENUM_NOMORE                      = 0x80040002,
173     OLE_S_MAC_CLIPFORMAT                   = 0x00040002,
174     OLE_E_ADVISENOTSUPPORTED               = 0x80040003,
175     OLE_E_NOCONNECTION                     = 0x80040004,
176     OLE_E_NOTRUNNING                       = 0x80040005,
177     OLE_E_NOCACHE                          = 0x80040006,
178     OLE_E_BLANK                            = 0x80040007,
179     OLE_E_CLASSDIFF                        = 0x80040008,
180     OLE_E_CANT_GETMONIKER                  = 0x80040009,
181     OLE_E_CANT_BINDTOSOURCE                = 0x8004000A,
182     OLE_E_STATIC                           = 0x8004000B,
183     OLE_E_PROMPTSAVECANCELLED              = 0x8004000C,
184     OLE_E_INVALIDRECT                      = 0x8004000D,
185     OLE_E_WRONGCOMPOBJ                     = 0x8004000E,
186     OLE_E_INVALIDHWND                      = 0x8004000F,
187     OLE_E_NOT_INPLACEACTIVE                = 0x80040010,
188     OLE_E_CANTCONVERT                      = 0x80040011,
189     OLE_E_NOSTORAGE                        = 0x80040012,
190 
191     DV_E_FORMATETC                         = 0x80040064,
192     DV_E_DVTARGETDEVICE                    = 0x80040065,
193     DV_E_STGMEDIUM                         = 0x80040066,
194     DV_E_STATDATA                          = 0x80040067,
195     DV_E_LINDEX                            = 0x80040068,
196     DV_E_TYMED                             = 0x80040069,
197     DV_E_CLIPFORMAT                        = 0x8004006A,
198     DV_E_DVASPECT                          = 0x8004006B,
199     DV_E_DVTARGETDEVICE_SIZE               = 0x8004006C,
200     DV_E_NOIVIEWOBJECT                     = 0x8004006D,
201 
202     OLE_E_LAST                             = 0x800400FF,
203     OLE_S_LAST                             = 0x000400FF,
204     DRAGDROP_E_FIRST                       = 0x80040100,
205     DRAGDROP_S_FIRST                       = 0x00040100,
206     DRAGDROP_E_NOTREGISTERED               = 0x80040100,
207     DRAGDROP_S_DROP                        = 0x00040100,
208     DRAGDROP_E_ALREADYREGISTERED           = 0x80040101,
209     DRAGDROP_S_CANCEL                      = 0x00040101,
210     DRAGDROP_E_INVALIDHWND                 = 0x80040102,
211     DRAGDROP_S_USEDEFAULTCURSORS           = 0x00040102,
212     DRAGDROP_E_LAST                        = 0x8004010F,
213     DRAGDROP_S_LAST                        = 0x0004010F,
214     CLASSFACTORY_E_FIRST                   = 0x80040110,
215     CLASSFACTORY_S_FIRST                   = 0x00040110,
216     CLASS_E_NOAGGREGATION                  = 0x80040110,
217     CLASS_E_CLASSNOTAVAILABLE              = 0x80040111,
218     CLASSFACTORY_E_LAST                    = 0x8004011F,
219     CLASSFACTORY_S_LAST                    = 0x0004011F,
220     MARSHAL_E_FIRST                        = 0x80040120,
221     MARSHAL_S_FIRST                        = 0x00040120,
222     MARSHAL_E_LAST                         = 0x8004012F,
223     MARSHAL_S_LAST                         = 0x0004012F,
224     DATA_E_FIRST                           = 0x80040130,
225     DATA_S_FIRST                           = 0x00040130,
226     DATA_S_SAMEFORMATETC                   = 0x00040130,
227     DATA_E_LAST                            = 0x8004013F,
228     DATA_S_LAST                            = 0x0004013F,
229     VIEW_E_FIRST                           = 0x80040140,
230     VIEW_S_FIRST                           = 0x00040140,
231     VIEW_E_DRAW                            = 0x80040140,
232     VIEW_S_ALREADY_FROZEN                  = 0x00040140,
233     VIEW_E_LAST                            = 0x8004014F,
234     VIEW_S_LAST                            = 0x0004014F,
235     REGDB_E_FIRST                          = 0x80040150,
236     REGDB_S_FIRST                          = 0x00040150,
237     REGDB_E_READREGDB                      = 0x80040150,
238     REGDB_E_WRITEREGDB                     = 0x80040151,
239     REGDB_E_KEYMISSING                     = 0x80040152,
240     REGDB_E_INVALIDVALUE                   = 0x80040153,
241     REGDB_E_CLASSNOTREG                    = 0x80040154,
242     REGDB_E_IIDNOTREG                      = 0x80040155,
243     REGDB_E_LAST                           = 0x8004015F,
244     REGDB_S_LAST                           = 0x0004015F,
245     CACHE_E_FIRST                          = 0x80040170,
246     CACHE_S_FIRST                          = 0x00040170,
247     CACHE_E_NOCACHE_UPDATED                = 0x80040170,
248     CACHE_S_FORMATETC_NOTSUPPORTED         = 0x00040170,
249     CACHE_S_SAMECACHE                      = 0x00040171,
250     CACHE_S_SOMECACHES_NOTUPDATED          = 0x00040172,
251     CACHE_E_LAST                           = 0x8004017F,
252     CACHE_S_LAST                           = 0x0004017F,
253     OLEOBJ_E_FIRST                         = 0x80040180,
254     OLEOBJ_S_FIRST                         = 0x00040180,
255     OLEOBJ_E_NOVERBS                       = 0x80040180,
256     OLEOBJ_S_INVALIDVERB                   = 0x00040180,
257     OLEOBJ_E_INVALIDVERB                   = 0x80040181,
258     OLEOBJ_S_CANNOT_DOVERB_NOW             = 0x00040181,
259     OLEOBJ_S_INVALIDHWND                   = 0x00040182,
260     OLEOBJ_E_LAST                          = 0x8004018F,
261     OLEOBJ_S_LAST                          = 0x0004018F,
262     CLIENTSITE_E_FIRST                     = 0x80040190,
263     CLIENTSITE_S_FIRST                     = 0x00040190,
264     CLIENTSITE_E_LAST                      = 0x8004019F,
265     CLIENTSITE_S_LAST                      = 0x0004019F,
266     INPLACE_E_NOTUNDOABLE                  = 0x800401A0,
267     INPLACE_E_FIRST                        = 0x800401A0,
268     INPLACE_S_FIRST                        = 0x000401A0,
269     INPLACE_S_TRUNCATED                    = 0x000401A0,
270     INPLACE_E_NOTOOLSPACE                  = 0x800401A1,
271     INPLACE_E_LAST                         = 0x800401AF,
272     INPLACE_S_LAST                         = 0x000401AF,
273     ENUM_E_FIRST                           = 0x800401B0,
274     ENUM_S_FIRST                           = 0x000401B0,
275     ENUM_E_LAST                            = 0x800401BF,
276     ENUM_S_LAST                            = 0x000401BF,
277     CONVERT10_E_FIRST                      = 0x800401C0,
278     CONVERT10_S_FIRST                      = 0x000401C0,
279     CONVERT10_E_OLESTREAM_GET              = 0x800401C0,
280     CONVERT10_S_NO_PRESENTATION            = 0x000401C0,
281     CONVERT10_E_OLESTREAM_PUT              = 0x800401C1,
282     CONVERT10_E_OLESTREAM_FMT              = 0x800401C2,
283     CONVERT10_E_OLESTREAM_BITMAP_TO_DIB    = 0x800401C3,
284     CONVERT10_E_STG_FMT                    = 0x800401C4,
285     CONVERT10_E_STG_NO_STD_STREAM          = 0x800401C5,
286     CONVERT10_E_STG_DIB_TO_BITMAP          = 0x800401C6,
287     CONVERT10_E_LAST                       = 0x800401CF,
288     CONVERT10_S_LAST                       = 0x000401CF,
289     CLIPBRD_E_FIRST                        = 0x800401D0,
290     CLIPBRD_S_FIRST                        = 0x000401D0,
291     CLIPBRD_E_CANT_OPEN                    = 0x800401D0,
292     CLIPBRD_E_CANT_EMPTY                   = 0x800401D1,
293     CLIPBRD_E_CANT_SET                     = 0x800401D2,
294     CLIPBRD_E_BAD_DATA                     = 0x800401D3,
295     CLIPBRD_E_CANT_CLOSE                   = 0x800401D4,
296     CLIPBRD_E_LAST                         = 0x800401DF,
297     CLIPBRD_S_LAST                         = 0x000401DF,
298     MK_E_FIRST                             = 0x800401E0,
299     MK_S_FIRST                             = 0x000401E0,
300     MK_E_CONNECTMANUALLY                   = 0x800401E0,
301     MK_E_EXCEEDEDDEADLINE                  = 0x800401E1,
302     MK_E_NEEDGENERIC                       = 0x800401E2,
303     MK_S_REDUCED_TO_SELF                   = 0x000401E2,
304     MK_E_UNAVAILABLE                       = 0x800401E3,
305     MK_E_SYNTAX                            = 0x800401E4,
306     MK_S_ME                                = 0x000401E4,
307     MK_E_NOOBJECT                          = 0x800401E5,
308     MK_S_HIM                               = 0x000401E5,
309     MK_E_INVALIDEXTENSION                  = 0x800401E6,
310     MK_S_US                                = 0x000401E6,
311     MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = 0x800401E7,
312     MK_S_MONIKERALREADYREGISTERED          = 0x000401E7,
313     MK_E_NOTBINDABLE                       = 0x800401E8,
314     MK_E_NOTBOUND                          = 0x800401E9,
315     MK_E_CANTOPENFILE                      = 0x800401EA,
316     MK_E_MUSTBOTHERUSER                    = 0x800401EB,
317     MK_E_NOINVERSE                         = 0x800401EC,
318     MK_E_NOSTORAGE                         = 0x800401ED,
319     MK_E_NOPREFIX                          = 0x800401EE,
320     MK_E_LAST                              = 0x800401EF,
321     MK_S_LAST                              = 0x000401EF,
322     MK_E_ENUMERATION_FAILED                = 0x800401EF,
323     CO_E_FIRST                             = 0x800401F0,
324     CO_S_FIRST                             = 0x000401F0,
325     CO_E_NOTINITIALIZED                    = 0x800401F0,
326     CO_E_ALREADYINITIALIZED                = 0x800401F1,
327     CO_E_CANTDETERMINECLASS                = 0x800401F2,
328     CO_E_CLASSSTRING                       = 0x800401F3,
329     CO_E_IIDSTRING                         = 0x800401F4,
330     CO_E_APPNOTFOUND                       = 0x800401F5,
331     CO_E_APPSINGLEUSE                      = 0x800401F6,
332     CO_E_ERRORINAPP                        = 0x800401F7,
333     CO_E_DLLNOTFOUND                       = 0x800401F8,
334     CO_E_ERRORINDLL                        = 0x800401F9,
335     CO_E_WRONGOSFORAPP                     = 0x800401FA,
336     CO_E_OBJNOTREG                         = 0x800401FB,
337     CO_E_OBJISREG                          = 0x800401FC,
338     CO_E_OBJNOTCONNECTED                   = 0x800401FD,
339     CO_E_APPDIDNTREG                       = 0x800401FE,
340     CO_E_LAST                              = 0x800401FF,
341     CO_S_LAST                              = 0x000401FF,
342     CO_E_RELEASED                          = 0x800401FF,
343 
344     CO_E_CLASS_CREATE_FAILED               = 0x80080001,
345     CO_E_SCM_ERROR                         = 0x80080002,
346     CO_E_SCM_RPC_FAILURE                   = 0x80080003,
347     CO_E_BAD_PATH                          = 0x80080004,
348     CO_E_SERVER_EXEC_FAILURE               = 0x80080005,
349     CO_E_OBJSRV_RPC_FAILURE                = 0x80080006,
350     MK_E_NO_NORMALIZED                     = 0x80080007,
351     CO_E_SERVER_STOPPING                   = 0x80080008,
352     MEM_E_INVALID_ROOT                     = 0x80080009,
353     MEM_E_INVALID_LINK                     = 0x80080010,
354     MEM_E_INVALID_SIZE                     = 0x80080011,
355     CO_S_NOTALLINTERFACES                  = 0x00080012,
356 
357     NTE_BAD_UID                            = 0x80090001,
358     NTE_BAD_HASH                           = 0x80090002,
359     NTE_BAD_KEY                            = 0x80090003,
360     NTE_BAD_LEN                            = 0x80090004,
361     NTE_BAD_DATA                           = 0x80090005,
362     NTE_BAD_SIGNATURE                      = 0x80090006,
363     NTE_BAD_VER                            = 0x80090007,
364     NTE_BAD_ALGID                          = 0x80090008,
365     NTE_BAD_FLAGS                          = 0x80090009,
366     NTE_BAD_TYPE                           = 0x8009000A,
367     NTE_BAD_KEY_STATE                      = 0x8009000B,
368     NTE_BAD_HASH_STATE                     = 0x8009000C,
369     NTE_NO_KEY                             = 0x8009000D,
370     NTE_NO_MEMORY                          = 0x8009000E,
371     NTE_EXISTS                             = 0x8009000F,
372     NTE_PERM                               = 0x80090010,
373     NTE_NOT_FOUND                          = 0x80090011,
374     NTE_DOUBLE_ENCRYPT                     = 0x80090012,
375     NTE_BAD_PROVIDER                       = 0x80090013,
376     NTE_BAD_PROV_TYPE                      = 0x80090014,
377     NTE_BAD_PUBLIC_KEY                     = 0x80090015,
378     NTE_BAD_KEYSET                         = 0x80090016,
379     NTE_PROV_TYPE_NOT_DEF                  = 0x80090017,
380     NTE_PROV_TYPE_ENTRY_BAD                = 0x80090018,
381     NTE_KEYSET_NOT_DEF                     = 0x80090019,
382     NTE_KEYSET_ENTRY_BAD                   = 0x8009001A,
383     NTE_PROV_TYPE_NO_MATCH                 = 0x8009001B,
384     NTE_SIGNATURE_FILE_BAD                 = 0x8009001C,
385     NTE_PROVIDER_DLL_FAIL                  = 0x8009001D,
386     NTE_PROV_DLL_NOT_FOUND                 = 0x8009001E,
387     NTE_BAD_KEYSET_PARAM                   = 0x8009001F,
388     NTE_FAIL                               = 0x80090020,
389     NTE_SYS_ERR                            = 0x80090021
390 }
391 
392 // C Macros
393 pragma(inline, true):
394 pure nothrow @nogc:
395 bool SUCCEEDED(HRESULT Status) { return Status >= 0; }
396 bool FAILED(HRESULT Status) { return Status < 0; }
397 bool IS_ERROR(HRESULT Status) { return (Status >>> 31) == 1; }
398 ushort HRESULT_CODE(HRESULT r) { return cast(ushort) (r & 0xFFFF);}
399 ushort HRESULT_FACILITY(HRESULT r) { return cast(ushort) ((r>>16) & 0x1fff); }
400 ushort HRESULT_SEVERITY(HRESULT r) { return cast(ushort) ((r>>31) & 0x1); }
401 HRESULT MAKE_HRESULT(bool s, uint f, uint c) { return (s << 31) | (f << 16) | c; }
402 HRESULT HRESULT_FROM_NT(HRESULT x) { return x | 0x10000000; }
403 HRESULT HRESULT_FROM_WIN32(HRESULT x) { return  x ? (x & 0x0000FFFF) | (7 << 16) | 0x80000000 : 0; }