mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.7 KiB
85 lines
1.7 KiB
[
|
|
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
|