IErrorInfo is now derived from IUnknown.
This commit is contained in:
parent
dc2ffbe0cd
commit
72140b02c3
|
@ -15,8 +15,95 @@
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "wine/obj_errorinfo.h"
|
#include "wine/obj_errorinfo.h"
|
||||||
|
#include "wine/unicode.h"
|
||||||
|
|
||||||
|
DEFAULT_DEBUG_CHANNEL(ole);
|
||||||
|
|
||||||
|
/* this code is from SysAllocStringLen (ole2disp.c in oleaut32) */
|
||||||
|
static BSTR WINAPI ERRORINFO_SysAllocString(const OLECHAR* in)
|
||||||
|
{
|
||||||
|
DWORD bufferSize;
|
||||||
|
DWORD* newBuffer;
|
||||||
|
WCHAR* stringBuffer;
|
||||||
|
DWORD len;
|
||||||
|
|
||||||
|
if (in == NULL)
|
||||||
|
return NULL;
|
||||||
|
/*
|
||||||
|
* Find the lenth of the buffer passed-in in bytes.
|
||||||
|
*/
|
||||||
|
len = strlenW(in);
|
||||||
|
bufferSize = len * sizeof (WCHAR);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Allocate a new buffer to hold the string.
|
||||||
|
* dont't forget to keep an empty spot at the begining of the
|
||||||
|
* buffer for the character count and an extra character at the
|
||||||
|
* end for the NULL.
|
||||||
|
*/
|
||||||
|
newBuffer = (DWORD*)HeapAlloc(GetProcessHeap(),
|
||||||
|
0,
|
||||||
|
bufferSize + sizeof(WCHAR) + sizeof(DWORD));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the memory allocation failed, return a null pointer.
|
||||||
|
*/
|
||||||
|
if (newBuffer==0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copy the length of the string in the placeholder.
|
||||||
|
*/
|
||||||
|
*newBuffer = bufferSize;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Skip the byte count.
|
||||||
|
*/
|
||||||
|
newBuffer++;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copy the information in the buffer.
|
||||||
|
* Since it is valid to pass a NULL pointer here, we'll initialize the
|
||||||
|
* buffer to nul if it is the case.
|
||||||
|
*/
|
||||||
|
if (in != 0)
|
||||||
|
memcpy(newBuffer, in, bufferSize);
|
||||||
|
else
|
||||||
|
memset(newBuffer, 0, bufferSize);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make sure that there is a nul character at the end of the
|
||||||
|
* string.
|
||||||
|
*/
|
||||||
|
stringBuffer = (WCHAR*)newBuffer;
|
||||||
|
stringBuffer[len] = 0;
|
||||||
|
|
||||||
|
return (LPWSTR)stringBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* this code is from SysFreeString (ole2disp.c in oleaut32)*/
|
||||||
|
static VOID WINAPI ERRORINFO_SysFreeString(BSTR in)
|
||||||
|
{
|
||||||
|
DWORD* bufferPointer;
|
||||||
|
|
||||||
|
/* NULL is a valid parameter */
|
||||||
|
if(!in) return;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We have to be careful when we free a BSTR pointer, it points to
|
||||||
|
* the beginning of the string but it skips the byte count contained
|
||||||
|
* before the string.
|
||||||
|
*/
|
||||||
|
bufferPointer = (DWORD*)in;
|
||||||
|
|
||||||
|
bufferPointer--;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Free the memory from it's "real" origin.
|
||||||
|
*/
|
||||||
|
HeapFree(GetProcessHeap(), 0, bufferPointer);
|
||||||
|
}
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(ole)
|
|
||||||
|
|
||||||
typedef struct ErrorInfoImpl
|
typedef struct ErrorInfoImpl
|
||||||
{
|
{
|
||||||
|
@ -25,7 +112,11 @@ typedef struct ErrorInfoImpl
|
||||||
ICOM_VTABLE(ISupportErrorInfo) *lpvtsei;
|
ICOM_VTABLE(ISupportErrorInfo) *lpvtsei;
|
||||||
DWORD ref;
|
DWORD ref;
|
||||||
|
|
||||||
const GUID *pGuid;
|
GUID m_Guid;
|
||||||
|
BSTR bstrSource;
|
||||||
|
BSTR bstrDescription;
|
||||||
|
BSTR bstrHelpFile;
|
||||||
|
DWORD m_dwHelpContext;
|
||||||
} ErrorInfoImpl;
|
} ErrorInfoImpl;
|
||||||
|
|
||||||
static ICOM_VTABLE(IErrorInfo) IErrorInfoImpl_VTable;
|
static ICOM_VTABLE(IErrorInfo) IErrorInfoImpl_VTable;
|
||||||
|
@ -60,6 +151,10 @@ IErrorInfo * IErrorInfoImpl_Constructor()
|
||||||
ei->lpvtcei = &ICreateErrorInfoImpl_VTable;
|
ei->lpvtcei = &ICreateErrorInfoImpl_VTable;
|
||||||
ei->lpvtsei = &ISupportErrorInfoImpl_VTable;
|
ei->lpvtsei = &ISupportErrorInfoImpl_VTable;
|
||||||
ei->ref = 1;
|
ei->ref = 1;
|
||||||
|
ei->bstrSource = NULL;
|
||||||
|
ei->bstrDescription = NULL;
|
||||||
|
ei->bstrHelpFile = NULL;
|
||||||
|
ei->m_dwHelpContext = 0;
|
||||||
}
|
}
|
||||||
return (IErrorInfo *)ei;
|
return (IErrorInfo *)ei;
|
||||||
}
|
}
|
||||||
|
@ -121,69 +216,14 @@ static ULONG WINAPI IErrorInfoImpl_Release(
|
||||||
return This->ref;
|
return This->ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_GetTypeInfoCount(
|
|
||||||
IErrorInfo* iface,
|
|
||||||
unsigned int* pctinfo)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
FIXME("(%p)\n", This);
|
|
||||||
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_GetTypeInfo(
|
|
||||||
IErrorInfo* iface,
|
|
||||||
UINT iTInfo,
|
|
||||||
LCID lcid,
|
|
||||||
ITypeInfo** ppTInfo)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
FIXME("(%p)\n", This);
|
|
||||||
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_GetIDsOfNames(
|
|
||||||
IErrorInfo* iface,
|
|
||||||
REFIID riid,
|
|
||||||
LPOLESTR* rgszNames,
|
|
||||||
UINT cNames,
|
|
||||||
LCID lcid,
|
|
||||||
DISPID* rgDispId)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
FIXME("(%p)\n", This);
|
|
||||||
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_Invoke(
|
|
||||||
IErrorInfo* iface,
|
|
||||||
DISPID dispIdMember,
|
|
||||||
REFIID riid,
|
|
||||||
LCID lcid,
|
|
||||||
WORD wFlags,
|
|
||||||
DISPPARAMS* pDispParams,
|
|
||||||
VARIANT* pVarResult,
|
|
||||||
EXCEPINFO* pExepInfo,
|
|
||||||
UINT* puArgErr)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
FIXME("(%p)\n", This);
|
|
||||||
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* FIXME: is this OK? Original is GUID* pGUID! This can't work! (js) */
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_GetGUID(
|
static HRESULT WINAPI IErrorInfoImpl_GetGUID(
|
||||||
IErrorInfo* iface,
|
IErrorInfo* iface,
|
||||||
GUID const ** pGUID)
|
GUID * pGUID)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p) check function prototype\n", This);
|
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
||||||
|
if(!pGUID )return E_INVALIDARG;
|
||||||
if(!pGUID || !*pGUID)return E_INVALIDARG;
|
memcpy(pGUID, &This->m_Guid, sizeof(GUID));
|
||||||
*pGUID = This->pGuid;
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,9 +232,11 @@ static HRESULT WINAPI IErrorInfoImpl_GetSource(
|
||||||
BSTR *pBstrSource)
|
BSTR *pBstrSource)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
TRACE("(%p)->(pBstrSource=%p)\n",This,pBstrSource);
|
||||||
|
if (pBstrSource == NULL)
|
||||||
return E_NOTIMPL;
|
return E_INVALIDARG;
|
||||||
|
*pBstrSource = ERRORINFO_SysAllocString(This->bstrSource);
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_GetDescription(
|
static HRESULT WINAPI IErrorInfoImpl_GetDescription(
|
||||||
|
@ -202,9 +244,13 @@ static HRESULT WINAPI IErrorInfoImpl_GetDescription(
|
||||||
BSTR *pBstrDescription)
|
BSTR *pBstrDescription)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
|
||||||
|
TRACE("(%p)->(pBstrDescription=%p)\n",This,pBstrDescription);
|
||||||
|
if (pBstrDescription == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
*pBstrDescription = ERRORINFO_SysAllocString(This->bstrDescription);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_GetHelpFile(
|
static HRESULT WINAPI IErrorInfoImpl_GetHelpFile(
|
||||||
|
@ -212,9 +258,13 @@ static HRESULT WINAPI IErrorInfoImpl_GetHelpFile(
|
||||||
BSTR *pBstrHelpFile)
|
BSTR *pBstrHelpFile)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
|
||||||
|
TRACE("(%p)->(pBstrHelpFile=%p)\n",This, pBstrHelpFile);
|
||||||
|
if (pBstrHelpFile == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
*pBstrHelpFile = ERRORINFO_SysAllocString(This->bstrHelpFile);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IErrorInfoImpl_GetHelpContext(
|
static HRESULT WINAPI IErrorInfoImpl_GetHelpContext(
|
||||||
|
@ -222,9 +272,12 @@ static HRESULT WINAPI IErrorInfoImpl_GetHelpContext(
|
||||||
DWORD *pdwHelpContext)
|
DWORD *pdwHelpContext)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_IErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
TRACE("(%p)->(pdwHelpContext=%p)\n",This, pdwHelpContext);
|
||||||
|
if (pdwHelpContext == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
*pdwHelpContext = This->m_dwHelpContext;
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ICOM_VTABLE(IErrorInfo) IErrorInfoImpl_VTable =
|
static ICOM_VTABLE(IErrorInfo) IErrorInfoImpl_VTable =
|
||||||
|
@ -233,11 +286,7 @@ static ICOM_VTABLE(IErrorInfo) IErrorInfoImpl_VTable =
|
||||||
IErrorInfoImpl_QueryInterface,
|
IErrorInfoImpl_QueryInterface,
|
||||||
IErrorInfoImpl_AddRef,
|
IErrorInfoImpl_AddRef,
|
||||||
IErrorInfoImpl_Release,
|
IErrorInfoImpl_Release,
|
||||||
IErrorInfoImpl_GetTypeInfoCount,
|
|
||||||
IErrorInfoImpl_GetTypeInfo,
|
|
||||||
IErrorInfoImpl_GetIDsOfNames,
|
|
||||||
IErrorInfoImpl_Invoke,
|
|
||||||
|
|
||||||
IErrorInfoImpl_GetGUID,
|
IErrorInfoImpl_GetGUID,
|
||||||
IErrorInfoImpl_GetSource,
|
IErrorInfoImpl_GetSource,
|
||||||
IErrorInfoImpl_GetDescription,
|
IErrorInfoImpl_GetDescription,
|
||||||
|
@ -272,55 +321,6 @@ static ULONG WINAPI ICreateErrorInfoImpl_Release(
|
||||||
return IErrorInfo_Release(_IErrorInfo_(This));
|
return IErrorInfo_Release(_IErrorInfo_(This));
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_GetTypeInfoCount(
|
|
||||||
ICreateErrorInfo* iface,
|
|
||||||
unsigned int* pctinfo)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_GetTypeInfoCount(_IErrorInfo_(This), pctinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_GetTypeInfo(
|
|
||||||
ICreateErrorInfo* iface,
|
|
||||||
UINT iTInfo,
|
|
||||||
LCID lcid,
|
|
||||||
ITypeInfo** ppTInfo)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_GetTypeInfo(_IErrorInfo_(This),iTInfo,lcid,ppTInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_GetIDsOfNames(
|
|
||||||
ICreateErrorInfo* iface,
|
|
||||||
REFIID riid,
|
|
||||||
LPOLESTR* rgszNames,
|
|
||||||
UINT cNames,
|
|
||||||
LCID lcid,
|
|
||||||
DISPID* rgDispId)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_GetIDsOfNames(_IErrorInfo_(This),riid,rgszNames,cNames,lcid,rgDispId);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_Invoke(
|
|
||||||
ICreateErrorInfo* iface,
|
|
||||||
DISPID dispIdMember,
|
|
||||||
REFIID riid,
|
|
||||||
LCID lcid,
|
|
||||||
WORD wFlags,
|
|
||||||
DISPPARAMS* pDispParams,
|
|
||||||
VARIANT* pVarResult,
|
|
||||||
EXCEPINFO* pExepInfo,
|
|
||||||
UINT* puArgErr)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_Invoke(_IErrorInfo_(This),dispIdMember,riid,lcid,wFlags,pDispParams,
|
|
||||||
pVarResult,pExepInfo,puArgErr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_SetGUID(
|
static HRESULT WINAPI ICreateErrorInfoImpl_SetGUID(
|
||||||
ICreateErrorInfo* iface,
|
ICreateErrorInfo* iface,
|
||||||
|
@ -328,7 +328,7 @@ static HRESULT WINAPI ICreateErrorInfoImpl_SetGUID(
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
||||||
TRACE("(%p)->(%s)\n", This, debugstr_guid(rguid));
|
TRACE("(%p)->(%s)\n", This, debugstr_guid(rguid));
|
||||||
This->pGuid = rguid;
|
memcpy(&This->m_Guid, rguid, sizeof(GUID));
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,9 +337,12 @@ static HRESULT WINAPI ICreateErrorInfoImpl_SetSource(
|
||||||
LPOLESTR szSource)
|
LPOLESTR szSource)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
TRACE("(%p)\n",This);
|
||||||
|
if (This->bstrSource != NULL)
|
||||||
|
ERRORINFO_SysFreeString(This->bstrSource);
|
||||||
|
This->bstrSource = ERRORINFO_SysAllocString(szSource);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_SetDescription(
|
static HRESULT WINAPI ICreateErrorInfoImpl_SetDescription(
|
||||||
|
@ -347,9 +350,12 @@ static HRESULT WINAPI ICreateErrorInfoImpl_SetDescription(
|
||||||
LPOLESTR szDescription)
|
LPOLESTR szDescription)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
TRACE("(%p)\n",This);
|
||||||
|
if (This->bstrDescription != NULL)
|
||||||
|
ERRORINFO_SysFreeString(This->bstrDescription);
|
||||||
|
This->bstrDescription = ERRORINFO_SysAllocString(szDescription);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_SetHelpFile(
|
static HRESULT WINAPI ICreateErrorInfoImpl_SetHelpFile(
|
||||||
|
@ -357,9 +363,12 @@ static HRESULT WINAPI ICreateErrorInfoImpl_SetHelpFile(
|
||||||
LPOLESTR szHelpFile)
|
LPOLESTR szHelpFile)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
TRACE("(%p)\n",This);
|
||||||
|
if (This->bstrHelpFile != NULL)
|
||||||
return E_NOTIMPL;
|
ERRORINFO_SysFreeString(This->bstrHelpFile);
|
||||||
|
This->bstrHelpFile = ERRORINFO_SysAllocString(szHelpFile);
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ICreateErrorInfoImpl_SetHelpContext(
|
static HRESULT WINAPI ICreateErrorInfoImpl_SetHelpContext(
|
||||||
|
@ -367,9 +376,10 @@ static HRESULT WINAPI ICreateErrorInfoImpl_SetHelpContext(
|
||||||
DWORD dwHelpContext)
|
DWORD dwHelpContext)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_ICreateErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
TRACE("(%p)\n",This);
|
||||||
|
This->m_dwHelpContext = dwHelpContext;
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ICOM_VTABLE(ICreateErrorInfo) ICreateErrorInfoImpl_VTable =
|
static ICOM_VTABLE(ICreateErrorInfo) ICreateErrorInfoImpl_VTable =
|
||||||
|
@ -379,11 +389,6 @@ static ICOM_VTABLE(ICreateErrorInfo) ICreateErrorInfoImpl_VTable =
|
||||||
ICreateErrorInfoImpl_AddRef,
|
ICreateErrorInfoImpl_AddRef,
|
||||||
ICreateErrorInfoImpl_Release,
|
ICreateErrorInfoImpl_Release,
|
||||||
|
|
||||||
ICreateErrorInfoImpl_GetTypeInfoCount,
|
|
||||||
ICreateErrorInfoImpl_GetTypeInfo,
|
|
||||||
ICreateErrorInfoImpl_GetIDsOfNames,
|
|
||||||
ICreateErrorInfoImpl_Invoke,
|
|
||||||
|
|
||||||
ICreateErrorInfoImpl_SetGUID,
|
ICreateErrorInfoImpl_SetGUID,
|
||||||
ICreateErrorInfoImpl_SetSource,
|
ICreateErrorInfoImpl_SetSource,
|
||||||
ICreateErrorInfoImpl_SetDescription,
|
ICreateErrorInfoImpl_SetDescription,
|
||||||
|
@ -397,7 +402,7 @@ static HRESULT WINAPI ISupportErrorInfoImpl_QueryInterface(
|
||||||
VOID** ppvoid)
|
VOID** ppvoid)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
||||||
FIXME("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
return IErrorInfo_QueryInterface(_IErrorInfo_(This), riid, ppvoid);
|
return IErrorInfo_QueryInterface(_IErrorInfo_(This), riid, ppvoid);
|
||||||
}
|
}
|
||||||
|
@ -418,55 +423,6 @@ static ULONG WINAPI ISupportErrorInfoImpl_Release(
|
||||||
return IErrorInfo_Release(_IErrorInfo_(This));
|
return IErrorInfo_Release(_IErrorInfo_(This));
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ISupportErrorInfoImpl_GetTypeInfoCount(
|
|
||||||
ISupportErrorInfo* iface,
|
|
||||||
unsigned int* pctinfo)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_GetTypeInfoCount(_IErrorInfo_(This), pctinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ISupportErrorInfoImpl_GetTypeInfo(
|
|
||||||
ISupportErrorInfo* iface,
|
|
||||||
UINT iTInfo,
|
|
||||||
LCID lcid,
|
|
||||||
ITypeInfo** ppTInfo)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_GetTypeInfo(_IErrorInfo_(This),iTInfo,lcid,ppTInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ISupportErrorInfoImpl_GetIDsOfNames(
|
|
||||||
ISupportErrorInfo* iface,
|
|
||||||
REFIID riid,
|
|
||||||
LPOLESTR* rgszNames,
|
|
||||||
UINT cNames,
|
|
||||||
LCID lcid,
|
|
||||||
DISPID* rgDispId)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_GetIDsOfNames(_IErrorInfo_(This),riid,rgszNames,cNames,lcid,rgDispId);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ISupportErrorInfoImpl_Invoke(
|
|
||||||
ISupportErrorInfo* iface,
|
|
||||||
DISPID dispIdMember,
|
|
||||||
REFIID riid,
|
|
||||||
LCID lcid,
|
|
||||||
WORD wFlags,
|
|
||||||
DISPPARAMS* pDispParams,
|
|
||||||
VARIANT* pVarResult,
|
|
||||||
EXCEPINFO* pExepInfo,
|
|
||||||
UINT* puArgErr)
|
|
||||||
{
|
|
||||||
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
|
||||||
TRACE("(%p)\n", This);
|
|
||||||
return IErrorInfo_Invoke(_IErrorInfo_(This),dispIdMember,riid,lcid,wFlags,pDispParams,
|
|
||||||
pVarResult,pExepInfo,puArgErr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ISupportErrorInfoImpl_InterfaceSupportsErrorInfo(
|
static HRESULT WINAPI ISupportErrorInfoImpl_InterfaceSupportsErrorInfo(
|
||||||
ISupportErrorInfo* iface,
|
ISupportErrorInfo* iface,
|
||||||
|
@ -474,7 +430,7 @@ static HRESULT WINAPI ISupportErrorInfoImpl_InterfaceSupportsErrorInfo(
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
_ICOM_THIS_From_ISupportErrorInfo(ErrorInfoImpl, iface);
|
||||||
TRACE("(%p)->(%s)\n", This, debugstr_guid(riid));
|
TRACE("(%p)->(%s)\n", This, debugstr_guid(riid));
|
||||||
return (riid == This->pGuid) ? S_OK : S_FALSE;
|
return (IsEqualIID(riid, &This->m_Guid)) ? S_OK : S_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ICOM_VTABLE(ISupportErrorInfo) ISupportErrorInfoImpl_VTable =
|
static ICOM_VTABLE(ISupportErrorInfo) ISupportErrorInfoImpl_VTable =
|
||||||
|
@ -484,10 +440,6 @@ static ICOM_VTABLE(ISupportErrorInfo) ISupportErrorInfoImpl_VTable =
|
||||||
ISupportErrorInfoImpl_AddRef,
|
ISupportErrorInfoImpl_AddRef,
|
||||||
ISupportErrorInfoImpl_Release,
|
ISupportErrorInfoImpl_Release,
|
||||||
|
|
||||||
ISupportErrorInfoImpl_GetTypeInfoCount,
|
|
||||||
ISupportErrorInfoImpl_GetTypeInfo,
|
|
||||||
ISupportErrorInfoImpl_GetIDsOfNames,
|
|
||||||
ISupportErrorInfoImpl_Invoke,
|
|
||||||
|
|
||||||
ISupportErrorInfoImpl_InterfaceSupportsErrorInfo
|
ISupportErrorInfoImpl_InterfaceSupportsErrorInfo
|
||||||
};
|
};
|
||||||
|
@ -498,10 +450,8 @@ HRESULT WINAPI CreateErrorInfo(ICreateErrorInfo **pperrinfo)
|
||||||
{
|
{
|
||||||
IErrorInfo * pei;
|
IErrorInfo * pei;
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
|
|
||||||
TRACE("(%p): stub:\n", pperrinfo);
|
TRACE("(%p): stub:\n", pperrinfo);
|
||||||
|
if(! pperrinfo ) return E_INVALIDARG;
|
||||||
if(! pperrinfo || !*pperrinfo) return E_INVALIDARG;
|
|
||||||
if(!(pei=IErrorInfoImpl_Constructor()))return E_OUTOFMEMORY;
|
if(!(pei=IErrorInfoImpl_Constructor()))return E_OUTOFMEMORY;
|
||||||
|
|
||||||
res = IErrorInfo_QueryInterface(pei, &IID_ICreateErrorInfo, (LPVOID*)pperrinfo);
|
res = IErrorInfo_QueryInterface(pei, &IID_ICreateErrorInfo, (LPVOID*)pperrinfo);
|
||||||
|
@ -514,9 +464,9 @@ HRESULT WINAPI CreateErrorInfo(ICreateErrorInfo **pperrinfo)
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI GetErrorInfo(ULONG dwReserved, IErrorInfo **pperrinfo)
|
HRESULT WINAPI GetErrorInfo(ULONG dwReserved, IErrorInfo **pperrinfo)
|
||||||
{
|
{
|
||||||
TRACE("(%ld, %p): stub:\n", dwReserved, pperrinfo);
|
TRACE("(%ld, %p, %p): stub:\n", dwReserved, pperrinfo, NtCurrentTeb()->ErrorInfo);
|
||||||
|
|
||||||
if(! pperrinfo || !*pperrinfo) return E_INVALIDARG;
|
if(! pperrinfo ) return E_INVALIDARG;
|
||||||
if(!(*pperrinfo = (IErrorInfo*)(NtCurrentTeb()->ErrorInfo))) return S_FALSE;
|
if(!(*pperrinfo = (IErrorInfo*)(NtCurrentTeb()->ErrorInfo))) return S_FALSE;
|
||||||
|
|
||||||
/* clear thread error state */
|
/* clear thread error state */
|
||||||
|
|
|
@ -22,28 +22,22 @@ typedef struct ISupportErrorInfo ISupportErrorInfo,*LPSUPPORTERRORINFO;
|
||||||
*/
|
*/
|
||||||
#define ICOM_INTERFACE IErrorInfo
|
#define ICOM_INTERFACE IErrorInfo
|
||||||
#define IErrorInfo_METHODS \
|
#define IErrorInfo_METHODS \
|
||||||
ICOM_METHOD1(HRESULT, GetGUID, const GUID ** , pGUID) \
|
ICOM_METHOD1(HRESULT, GetGUID, GUID * , pGUID) \
|
||||||
ICOM_METHOD1(HRESULT, GetSource, BSTR* ,pBstrSource) \
|
ICOM_METHOD1(HRESULT, GetSource, BSTR* ,pBstrSource) \
|
||||||
ICOM_METHOD1(HRESULT, GetDescription, BSTR*, pBstrDescription) \
|
ICOM_METHOD1(HRESULT, GetDescription, BSTR*, pBstrDescription) \
|
||||||
ICOM_METHOD1(HRESULT, GetHelpFile, BSTR*, pBstrHelpFile) \
|
ICOM_METHOD1(HRESULT, GetHelpFile, BSTR*, pBstrHelpFile) \
|
||||||
ICOM_METHOD1(HRESULT, GetHelpContext, DWORD*, pdwHelpContext)
|
ICOM_METHOD1(HRESULT, GetHelpContext, DWORD*, pdwHelpContext)
|
||||||
|
|
||||||
#define IErrorInfo_IMETHODS \
|
#define IErrorInfo_IMETHODS \
|
||||||
IUnknown_IMETHODS \
|
IUnknown_IMETHODS \
|
||||||
IDispatch_IMETHODS \
|
|
||||||
IErrorInfo_METHODS
|
IErrorInfo_METHODS
|
||||||
|
ICOM_DEFINE(IErrorInfo, IUnknown)
|
||||||
ICOM_DEFINE(IErrorInfo, IDispatch)
|
|
||||||
#undef ICOM_INTERFACE
|
#undef ICOM_INTERFACE
|
||||||
|
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
#define IErrorInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
#define IErrorInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
||||||
#define IErrorInfo_AddRef(p) ICOM_CALL (AddRef,p)
|
#define IErrorInfo_AddRef(p) ICOM_CALL (AddRef,p)
|
||||||
#define IErrorInfo_Release(p) ICOM_CALL (Release,p)
|
#define IErrorInfo_Release(p) ICOM_CALL (Release,p)
|
||||||
/*** IDispatch methods ***/
|
|
||||||
#define IErrorInfo_GetTypeInfoCount(p,a) ICOM_CALL1 (GetTypeInfoCount,p,a)
|
|
||||||
#define IErrorInfo_GetTypeInfo(p,a,b,c) ICOM_CALL3 (GetTypeInfo,p,a,b,c)
|
|
||||||
#define IErrorInfo_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e)
|
|
||||||
#define IErrorInfo_Invoke(p,a,b,c,d,e,f,g,h) ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h)
|
|
||||||
/*** IErrorInfo methods ***/
|
/*** IErrorInfo methods ***/
|
||||||
#define IErrorInfo_GetGUID(p,a) ICOM_CALL1 (GetGUID,p,a)
|
#define IErrorInfo_GetGUID(p,a) ICOM_CALL1 (GetGUID,p,a)
|
||||||
#define IErrorInfo_GetSource(p,a) ICOM_CALL1 (GetSource,p,a)
|
#define IErrorInfo_GetSource(p,a) ICOM_CALL1 (GetSource,p,a)
|
||||||
|
@ -61,12 +55,11 @@ ICOM_DEFINE(IErrorInfo, IDispatch)
|
||||||
ICOM_METHOD1(HRESULT, SetDescription, LPOLESTR, szDescription) \
|
ICOM_METHOD1(HRESULT, SetDescription, LPOLESTR, szDescription) \
|
||||||
ICOM_METHOD1(HRESULT, SetHelpFile, LPOLESTR, szHelpFile) \
|
ICOM_METHOD1(HRESULT, SetHelpFile, LPOLESTR, szHelpFile) \
|
||||||
ICOM_METHOD1(HRESULT, SetHelpContext, DWORD, dwHelpContext)
|
ICOM_METHOD1(HRESULT, SetHelpContext, DWORD, dwHelpContext)
|
||||||
|
|
||||||
#define ICreateErrorInfo_IMETHODS \
|
#define ICreateErrorInfo_IMETHODS \
|
||||||
IUnknown_IMETHODS \
|
IUnknown_IMETHODS \
|
||||||
IDispatch_IMETHODS \
|
|
||||||
ICreateErrorInfo_METHODS
|
ICreateErrorInfo_METHODS
|
||||||
|
ICOM_DEFINE(ICreateErrorInfo, IUnknown)
|
||||||
ICOM_DEFINE(ICreateErrorInfo, IDispatch)
|
|
||||||
#undef ICOM_INTERFACE
|
#undef ICOM_INTERFACE
|
||||||
|
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
|
@ -74,11 +67,6 @@ ICOM_DEFINE(ICreateErrorInfo, IDispatch)
|
||||||
#define ICreateErrorInfo_AddRef(p) ICOM_CALL (AddRef,p)
|
#define ICreateErrorInfo_AddRef(p) ICOM_CALL (AddRef,p)
|
||||||
#define ICreateErrorInfo_Release(p) ICOM_CALL (Release,p)
|
#define ICreateErrorInfo_Release(p) ICOM_CALL (Release,p)
|
||||||
/*** ICreateErrorInfo methods ***/
|
/*** ICreateErrorInfo methods ***/
|
||||||
#define ICreateErrorInfo_GetTypeInfoCount(p,a) ICOM_CALL1 (GetTypeInfoCount,p,a)
|
|
||||||
#define ICreateErrorInfo_GetTypeInfo(p,a,b,c) ICOM_CALL3 (GetTypeInfo,p,a,b,c)
|
|
||||||
#define ICreateErrorInfo_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e)
|
|
||||||
#define ICreateErrorInfo_Invoke(p,a,b,c,d,e,f,g,h) ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h)
|
|
||||||
/*** ICreateErrorInfo methods ***/
|
|
||||||
#define ICreateErrorInfo_SetGUID(p,a) ICOM_CALL1 (SetGUID,p,a)
|
#define ICreateErrorInfo_SetGUID(p,a) ICOM_CALL1 (SetGUID,p,a)
|
||||||
#define ICreateErrorInfo_SetSource(p,a) ICOM_CALL1 (SetSource,p,a)
|
#define ICreateErrorInfo_SetSource(p,a) ICOM_CALL1 (SetSource,p,a)
|
||||||
#define ICreateErrorInfo_SetDescription(p,a) ICOM_CALL1 (SetDescription,p,a)
|
#define ICreateErrorInfo_SetDescription(p,a) ICOM_CALL1 (SetDescription,p,a)
|
||||||
|
@ -91,12 +79,11 @@ ICOM_DEFINE(ICreateErrorInfo, IDispatch)
|
||||||
#define ICOM_INTERFACE ISupportErrorInfo
|
#define ICOM_INTERFACE ISupportErrorInfo
|
||||||
#define ISupportErrorInfo_METHODS \
|
#define ISupportErrorInfo_METHODS \
|
||||||
ICOM_METHOD1(HRESULT, InterfaceSupportsErrorInfo, REFIID, riid )
|
ICOM_METHOD1(HRESULT, InterfaceSupportsErrorInfo, REFIID, riid )
|
||||||
|
|
||||||
#define ISupportErrorInfo_IMETHODS \
|
#define ISupportErrorInfo_IMETHODS \
|
||||||
IUnknown_IMETHODS \
|
IUnknown_IMETHODS \
|
||||||
IDispatch_IMETHODS \
|
|
||||||
ISupportErrorInfo_METHODS
|
ISupportErrorInfo_METHODS
|
||||||
|
ICOM_DEFINE(ISupportErrorInfo, IUnknown)
|
||||||
ICOM_DEFINE(ISupportErrorInfo, IDispatch)
|
|
||||||
#undef ICOM_INTERFACE
|
#undef ICOM_INTERFACE
|
||||||
|
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
|
@ -104,11 +91,6 @@ ICOM_DEFINE(ISupportErrorInfo, IDispatch)
|
||||||
#define ISupportErrorInfo_AddRef(p) ICOM_CALL (AddRef,p)
|
#define ISupportErrorInfo_AddRef(p) ICOM_CALL (AddRef,p)
|
||||||
#define ISupportErrorInfo_Release(p) ICOM_CALL (Release,p)
|
#define ISupportErrorInfo_Release(p) ICOM_CALL (Release,p)
|
||||||
/*** ISupportErrorInfo methods ***/
|
/*** ISupportErrorInfo methods ***/
|
||||||
#define ISupportErrorInfo_GetTypeInfoCount(p,a) ICOM_CALL1 (GetTypeInfoCount,p,a)
|
|
||||||
#define ISupportErrorInfo_GetTypeInfo(p,a,b,c) ICOM_CALL3 (GetTypeInfo,p,a,b,c)
|
|
||||||
#define ISupportErrorInfo_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e)
|
|
||||||
#define ISupportErrorInfo_Invoke(p,a,b,c,d,e,f,g,h) ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h)
|
|
||||||
/*** ISupportErrorInfo methods ***/
|
|
||||||
#define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) ICOM_CALL1 (InterfaceSupportsErrorInfo,p,a)
|
#define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) ICOM_CALL1 (InterfaceSupportsErrorInfo,p,a)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue