windows-nt/Source/XPSP1/NT/com/rpc/runtime/rtifs/eeinfo.idl
2020-09-26 16:20:57 +08:00

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