Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
For ease of implementation, this specification provides the full IDL, where "ms-dtyp.idl" is the IDL found in [MS-DTYP] Appendix A.
-
import "ms-dtyp.idl"; [ 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 = 2, eeptiLongVal = 3, eeptiShortValue = 4, eeptiPointerValue = 5, eeptiNone = 6, eeptiBinary = 7 } 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; }