twain3/Tirdparty/3rdparty/win/ddk/imgerror.idl

125 lines
3.3 KiB
Plaintext

//+--------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Abstract:
// Contains the definition of the IImgErrorInfo interface used to describe
// extra error state. This inherits from the COM IErrorInfo interface.
//
// Notes:
// IImgErrorInfo stores its state in an ImgErrorInfo structure that can
// be detached from the class implementation. IImgErrorInfo is NOT thread
// safe.
//
// History:
// 2003/10/20-mlawrenc
// Created - removed from imgdata.idl to provide better sanitization
// from the rest of the imgdata interface, also in prepartaion
// of moving to Musl.
//
//----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
import "oaidl.idl";
//
// Interfaces used for extended error information.
//
interface IImgErrorInfo;
interface IImgCreateErrorInfo;
typedef struct
{
//
// IErrorInfo fields
//
BSTR description;
GUID guid;
DWORD helpContext;
BSTR helpFile;
BSTR source;
//
// IImgErrorInfo fields
//
BSTR devDescription;
GUID errorID;
ULONG cUserParameters;
[size_is(cUserParameters)] BSTR *aUserParameters;
BSTR userFallback;
DWORD exceptionID;
} ImgErrorInfo;
[
object,
uuid(2bce4ece-d30e-445a-9423-6829be945ad8),
local,
helpstring("Extended error information class, this is used to allow our exceptions to chain correctly across DLL/Machine boundaries."),
pointer_default(ref)
]
interface IImgErrorInfo : IErrorInfo
{
HRESULT
GetDeveloperDescription(
[out, annotation("__out")] BSTR *pbstrDevDescription
);
HRESULT
GetUserErrorId(
[out, annotation("__out")] GUID *pErrorId
);
HRESULT
GetUserParameterCount(
[out, annotation("__out")] ULONG *pcUserParams
);
HRESULT
GetUserParameter(
[in, annotation("__in")] ULONG cParam,
[out, annotation("__out")] BSTR *pbstrParam
);
HRESULT
GetUserFallback(
[out, annotation("__out")] BSTR *pbstrFallback
);
HRESULT
GetExceptionId(
[out, annotation("__out")] DWORD *pExceptionId
);
HRESULT
DetachErrorInfo(
[out, annotation("__out")] ImgErrorInfo *pErrorInfo
);
}
[
object,
uuid(1c55a64c-07cd-4fb5-90f7-b753d91f0c9e),
local,
helpstring("Class that can be used to create extended error information."),
pointer_default(ref)
]
interface IImgCreateErrorInfo : ICreateErrorInfo
{
HRESULT
AttachToErrorInfo(
[in, out, annotation("__inout")] ImgErrorInfo *pErrorInfo
);
}