1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4//
5
6//
7// ===========================================================================
8// File: oaidl.h
9//
10// ===========================================================================
11
12#ifndef __OAIDL_H__
13#define __OAIDL_H__
14
15#include "rpc.h"
16#include "rpcndr.h"
17
18#include "unknwn.h"
19
20typedef struct tagEXCEPINFO {
21 WORD wCode;
22 WORD wReserved;
23 BSTR bstrSource;
24 BSTR bstrDescription;
25 BSTR bstrHelpFile;
26 DWORD dwHelpContext;
27 PVOID pvReserved;
28 HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
29 SCODE scode;
30} EXCEPINFO, * LPEXCEPINFO;
31
32typedef interface IErrorInfo IErrorInfo;
33typedef /* [unique] */ IErrorInfo *LPERRORINFO;
34
35EXTERN_C const IID IID_IErrorInfo;
36
37 interface
38 IErrorInfo : public IUnknown
39 {
40 public:
41 virtual HRESULT STDMETHODCALLTYPE GetGUID(
42 /* [out] */ GUID *pGUID) = 0;
43
44 virtual HRESULT STDMETHODCALLTYPE GetSource(
45 /* [out] */ BSTR *pBstrSource) = 0;
46
47 virtual HRESULT STDMETHODCALLTYPE GetDescription(
48 /* [out] */ BSTR *pBstrDescription) = 0;
49
50 virtual HRESULT STDMETHODCALLTYPE GetHelpFile(
51 /* [out] */ BSTR *pBstrHelpFile) = 0;
52
53 virtual HRESULT STDMETHODCALLTYPE GetHelpContext(
54 /* [out] */ DWORD *pdwHelpContext) = 0;
55
56 };
57
58typedef interface ICreateErrorInfo ICreateErrorInfo;
59
60EXTERN_C const IID IID_ICreateErrorInfo;
61
62typedef /* [unique] */ ICreateErrorInfo *LPCREATEERRORINFO;
63
64 interface
65 ICreateErrorInfo : public IUnknown
66 {
67 public:
68 virtual HRESULT STDMETHODCALLTYPE SetGUID(
69 /* [in] */ REFGUID rguid) = 0;
70
71 virtual HRESULT STDMETHODCALLTYPE SetSource(
72 /* [in] */ LPOLESTR szSource) = 0;
73
74 virtual HRESULT STDMETHODCALLTYPE SetDescription(
75 /* [in] */ LPOLESTR szDescription) = 0;
76
77 virtual HRESULT STDMETHODCALLTYPE SetHelpFile(
78 /* [in] */ LPOLESTR szHelpFile) = 0;
79
80 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
81 /* [in] */ DWORD dwHelpContext) = 0;
82
83 };
84
85STDAPI
86SetErrorInfo(ULONG dwReserved, IErrorInfo FAR* perrinfo);
87
88STDAPI
89GetErrorInfo(ULONG dwReserved, IErrorInfo FAR* FAR* pperrinfo);
90
91STDAPI
92CreateErrorInfo(ICreateErrorInfo FAR* FAR* pperrinfo);
93
94
95typedef interface ISupportErrorInfo ISupportErrorInfo;
96
97typedef /* [unique] */ ISupportErrorInfo *LPSUPPORTERRORINFO;
98
99EXTERN_C const IID IID_ISupportErrorInfo;
100
101
102 interface
103 ISupportErrorInfo : public IUnknown
104 {
105 public:
106 virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(
107 /* [in] */ REFIID riid) = 0;
108
109 };
110
111#endif //__OAIDL_H__
112