blob: 5038b842680552de6dac8d97507408170f302886 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/** @file
*
* VirtualBoxErrorInfo COM classe definition
*/
/*
* Copyright (C) 2006-2007 innotek GmbH
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* you can redistribute it and/or modify it under the terms of the GNU
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef ____H_VIRTUALBOXERRORINFOIMPL
#define ____H_VIRTUALBOXERRORINFOIMPL
#include "VirtualBoxBase.h"
using namespace com;
class ATL_NO_VTABLE VirtualBoxErrorInfo
#if defined (RT_OS_WINDOWS)
: public CComObjectRootEx <CComMultiThreadModel>
#else
: public CComObjectRootEx
#endif
, public IVirtualBoxErrorInfo
{
public:
DECLARE_NOT_AGGREGATABLE(VirtualBoxErrorInfo)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(VirtualBoxErrorInfo)
COM_INTERFACE_ENTRY(IErrorInfo)
COM_INTERFACE_ENTRY(IVirtualBoxErrorInfo)
END_COM_MAP()
NS_DECL_ISUPPORTS
#if defined (RT_OS_WINDOWS)
HRESULT init (IErrorInfo *aInfo);
STDMETHOD(GetGUID) (GUID *guid);
STDMETHOD(GetSource) (BSTR *source);
STDMETHOD(GetDescription) (BSTR *description);
STDMETHOD(GetHelpFile) (BSTR *pBstrHelpFile);
STDMETHOD(GetHelpContext) (DWORD *pdwHelpContext);
#else // !defined (RT_OS_WINDOWS)
HRESULT init (nsIException *aInfo);
NS_DECL_NSIEXCEPTION
#endif
VirtualBoxErrorInfo() : mResultCode (S_OK) {}
// public initializer/uninitializer for internal purposes only
HRESULT init (HRESULT aResultCode, const GUID &aIID,
const BSTR aComponent, const BSTR aText,
IVirtualBoxErrorInfo *aNext = NULL);
// IVirtualBoxErrorInfo properties
STDMETHOD(COMGETTER(ResultCode)) (HRESULT *aResultCode);
STDMETHOD(COMGETTER(InterfaceID)) (GUIDPARAMOUT aIID);
STDMETHOD(COMGETTER(Component)) (BSTR *aComponent);
STDMETHOD(COMGETTER(Text)) (BSTR *aText);
STDMETHOD(COMGETTER(Next)) (IVirtualBoxErrorInfo **aNext);
private:
HRESULT mResultCode;
Bstr mText;
Guid mIID;
Bstr mComponent;
ComPtr <IVirtualBoxErrorInfo> mNext;
};
#endif // ____H_VIRTUALBOXERRORINFOIMPL
|