86 lines
1.7 KiB
Plaintext
86 lines
1.7 KiB
Plaintext
|
[
|
||
|
uuid(14a8831c-bc82-11d2-8a64-0008c7457e5d),
|
||
|
version(1.0),
|
||
|
pointer_default(unique)
|
||
|
]
|
||
|
interface ExtendedError
|
||
|
{
|
||
|
|
||
|
typedef struct tagEEAString
|
||
|
{
|
||
|
short nLength;
|
||
|
[size_is(nLength)] byte *pString;
|
||
|
} EEAString;
|
||
|
|
||
|
typedef struct tagEEUString
|
||
|
{
|
||
|
short nLength;
|
||
|
[size_is(nLength)] unsigned short *pString;
|
||
|
} EEUString;
|
||
|
|
||
|
typedef struct tagBinaryEEInfo
|
||
|
{
|
||
|
short nSize;
|
||
|
[size_is(nSize)] unsigned char *pBlob;
|
||
|
} BinaryEEInfo;
|
||
|
|
||
|
typedef enum tagExtendedErrorParamTypesInternal
|
||
|
{
|
||
|
eeptiAnsiString = 1,
|
||
|
eeptiUnicodeString,
|
||
|
eeptiLongVal,
|
||
|
eeptiShortVal,
|
||
|
eeptiPointerVal,
|
||
|
eeptiNone,
|
||
|
eeptiBinary
|
||
|
} ExtendedErrorParamTypesInternal;
|
||
|
|
||
|
|
||
|
typedef struct tagParam
|
||
|
{
|
||
|
ExtendedErrorParamTypesInternal Type;
|
||
|
[switch_type(short),switch_is(Type)] union {
|
||
|
[case(1)] EEAString AnsiString;
|
||
|
[case(2)] EEUString UnicodeString;
|
||
|
[case(3)] long LVal;
|
||
|
[case(4)] short IVal;
|
||
|
[case(5)] __int64 PVal;
|
||
|
[case(6)] ;
|
||
|
[case(7)] BinaryEEInfo Blob;
|
||
|
};
|
||
|
} ExtendedErrorParam;
|
||
|
|
||
|
|
||
|
typedef enum tagEEComputerNamePresent
|
||
|
{
|
||
|
eecnpPresent = 1,
|
||
|
eecnpNotPresent
|
||
|
} EEComputerNamePresent;
|
||
|
|
||
|
typedef struct tagEEComputerName
|
||
|
{
|
||
|
EEComputerNamePresent Type;
|
||
|
[switch_type(short),switch_is(Type)] union {
|
||
|
[case(1)] EEUString Name;
|
||
|
[case(2)] ;
|
||
|
};
|
||
|
} EEComputerName;
|
||
|
|
||
|
typedef struct tagExtendedErrorInfo
|
||
|
{
|
||
|
struct tagExtendedErrorInfo * Next;
|
||
|
EEComputerName ComputerName;
|
||
|
unsigned long ProcessID;
|
||
|
__int64 TimeStamp;
|
||
|
unsigned long GeneratingComponent;
|
||
|
unsigned long Status;
|
||
|
unsigned short DetectionLocation;
|
||
|
unsigned short Flags;
|
||
|
short nLen;
|
||
|
[size_is(nLen)] ExtendedErrorParam Params[];
|
||
|
} ExtendedErrorInfo;
|
||
|
|
||
|
typedef ExtendedErrorInfo *ExtendedErrorInfoPtr;
|
||
|
|
||
|
} // End of interface ExtendedError
|