shell32: autocomplete: There is no need for separate IAutoComplete and IAutoComplete2 vtbls.

This commit is contained in:
Mikołaj Zalewski 2008-07-29 17:23:09 +02:00 committed by Alexandre Julliard
parent 112effb160
commit 8525f6950f
1 changed files with 27 additions and 125 deletions

View File

@ -61,8 +61,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
typedef struct
{
const IAutoCompleteVtbl *lpVtbl;
const IAutoComplete2Vtbl *lpvtblAutoComplete2;
const IAutoComplete2Vtbl *lpVtbl;
LONG ref;
BOOL enabled;
HWND hwndEdit;
@ -75,20 +74,14 @@ typedef struct
AUTOCOMPLETEOPTIONS options;
} IAutoCompleteImpl;
static const IAutoCompleteVtbl acvt;
static const IAutoComplete2Vtbl ac2vt;
static inline IAutoCompleteImpl *impl_from_IAutoComplete2( IAutoComplete2 *iface )
{
return (IAutoCompleteImpl *)((char*)iface - FIELD_OFFSET(IAutoCompleteImpl, lpvtblAutoComplete2));
}
static const IAutoComplete2Vtbl acvt;
/*
converts This to an interface pointer
*/
#define _IUnknown_(This) (IUnknown*)&(This->lpVtbl)
#define _IAutoComplete2_(This) (IAutoComplete2*)&(This->lpvtblAutoComplete2)
#define _IAutoComplete2_(This) (IAutoComplete2*)&(This->lpvtbl)
static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
static LRESULT APIENTRY ACLBoxSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
@ -109,7 +102,6 @@ HRESULT WINAPI IAutoComplete_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVO
lpac->ref = 1;
lpac->lpVtbl = &acvt;
lpac->lpvtblAutoComplete2 = &ac2vt;
lpac->enabled = TRUE;
lpac->enumstr = NULL;
lpac->options = ACO_AUTOAPPEND;
@ -131,8 +123,8 @@ HRESULT WINAPI IAutoComplete_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVO
/**************************************************************************
* AutoComplete_QueryInterface
*/
static HRESULT WINAPI IAutoComplete_fnQueryInterface(
IAutoComplete * iface,
static HRESULT WINAPI IAutoComplete2_fnQueryInterface(
IAutoComplete2 * iface,
REFIID riid,
LPVOID *ppvObj)
{
@ -141,22 +133,16 @@ static HRESULT WINAPI IAutoComplete_fnQueryInterface(
TRACE("(%p)->(\n\tIID:\t%s,%p)\n", This, shdebugstr_guid(riid), ppvObj);
*ppvObj = NULL;
if(IsEqualIID(riid, &IID_IUnknown))
if (IsEqualIID(riid, &IID_IUnknown) ||
IsEqualIID(riid, &IID_IAutoComplete) ||
IsEqualIID(riid, &IID_IAutoComplete2))
{
*ppvObj = This;
}
else if(IsEqualIID(riid, &IID_IAutoComplete))
{
*ppvObj = (IAutoComplete*)This;
}
else if(IsEqualIID(riid, &IID_IAutoComplete2))
{
*ppvObj = _IAutoComplete2_ (This);
*ppvObj = (IAutoComplete2*)This;
}
if (*ppvObj)
{
IAutoComplete_AddRef((IAutoComplete*)*ppvObj);
IUnknown_AddRef((IUnknown*)*ppvObj);
TRACE("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
return S_OK;
}
@ -165,10 +151,10 @@ static HRESULT WINAPI IAutoComplete_fnQueryInterface(
}
/******************************************************************************
* IAutoComplete_fnAddRef
* IAutoComplete2_fnAddRef
*/
static ULONG WINAPI IAutoComplete_fnAddRef(
IAutoComplete * iface)
static ULONG WINAPI IAutoComplete2_fnAddRef(
IAutoComplete2 * iface)
{
IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface;
ULONG refCount = InterlockedIncrement(&This->ref);
@ -179,10 +165,10 @@ static ULONG WINAPI IAutoComplete_fnAddRef(
}
/******************************************************************************
* IAutoComplete_fnRelease
* IAutoComplete2_fnRelease
*/
static ULONG WINAPI IAutoComplete_fnRelease(
IAutoComplete * iface)
static ULONG WINAPI IAutoComplete2_fnRelease(
IAutoComplete2 * iface)
{
IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface;
ULONG refCount = InterlockedDecrement(&This->ref);
@ -203,10 +189,10 @@ static ULONG WINAPI IAutoComplete_fnRelease(
}
/******************************************************************************
* IAutoComplete_fnEnable
* IAutoComplete2_fnEnable
*/
static HRESULT WINAPI IAutoComplete_fnEnable(
IAutoComplete * iface,
static HRESULT WINAPI IAutoComplete2_fnEnable(
IAutoComplete2 * iface,
BOOL fEnable)
{
IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface;
@ -221,10 +207,10 @@ static HRESULT WINAPI IAutoComplete_fnEnable(
}
/******************************************************************************
* IAutoComplete_fnInit
* IAutoComplete2_fnInit
*/
static HRESULT WINAPI IAutoComplete_fnInit(
IAutoComplete * iface,
static HRESULT WINAPI IAutoComplete2_fnInit(
IAutoComplete2 * iface,
HWND hwndEdit,
IUnknown *punkACL,
LPCOLESTR pwzsRegKeyPath,
@ -312,91 +298,7 @@ static HRESULT WINAPI IAutoComplete_fnInit(
}
/**************************************************************************
* IAutoComplete_fnVTable
*/
static const IAutoCompleteVtbl acvt =
{
IAutoComplete_fnQueryInterface,
IAutoComplete_fnAddRef,
IAutoComplete_fnRelease,
IAutoComplete_fnInit,
IAutoComplete_fnEnable,
};
/**************************************************************************
* AutoComplete2_QueryInterface
*/
static HRESULT WINAPI IAutoComplete2_fnQueryInterface(
IAutoComplete2 * iface,
REFIID riid,
LPVOID *ppvObj)
{
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
return IAutoComplete_QueryInterface((IAutoComplete*)This, riid, ppvObj);
}
/******************************************************************************
* IAutoComplete2_fnAddRef
*/
static ULONG WINAPI IAutoComplete2_fnAddRef(
IAutoComplete2 * iface)
{
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
TRACE ("(%p)->(count=%u)\n", This, This->ref);
return IAutoComplete2_AddRef((IAutoComplete*)This);
}
/******************************************************************************
* IAutoComplete2_fnRelease
*/
static ULONG WINAPI IAutoComplete2_fnRelease(
IAutoComplete2 * iface)
{
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
TRACE ("(%p)->(count=%u)\n", This, This->ref);
return IAutoComplete_Release((IAutoComplete*)This);
}
/******************************************************************************
* IAutoComplete2_fnEnable
*/
static HRESULT WINAPI IAutoComplete2_fnEnable(
IAutoComplete2 * iface,
BOOL fEnable)
{
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
TRACE ("(%p)->(%s)\n", This, (fEnable)?"true":"false");
return IAutoComplete_Enable((IAutoComplete*)This, fEnable);
}
/******************************************************************************
* IAutoComplete2_fnInit
*/
static HRESULT WINAPI IAutoComplete2_fnInit(
IAutoComplete2 * iface,
HWND hwndEdit,
IUnknown *punkACL,
LPCOLESTR pwzsRegKeyPath,
LPCOLESTR pwszQuickComplete)
{
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
TRACE("(%p)\n", This);
return IAutoComplete_Init((IAutoComplete*)This, hwndEdit, punkACL, pwzsRegKeyPath, pwszQuickComplete);
}
/**************************************************************************
* IAutoComplete_fnGetOptions
* IAutoComplete2_fnGetOptions
*/
static HRESULT WINAPI IAutoComplete2_fnGetOptions(
IAutoComplete2 * iface,
@ -404,7 +306,7 @@ static HRESULT WINAPI IAutoComplete2_fnGetOptions(
{
HRESULT hr = S_OK;
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface;
TRACE("(%p) -> (%p)\n", This, pdwFlag);
@ -414,7 +316,7 @@ static HRESULT WINAPI IAutoComplete2_fnGetOptions(
}
/**************************************************************************
* IAutoComplete_fnSetOptions
* IAutoComplete2_fnSetOptions
*/
static HRESULT WINAPI IAutoComplete2_fnSetOptions(
IAutoComplete2 * iface,
@ -422,7 +324,7 @@ static HRESULT WINAPI IAutoComplete2_fnSetOptions(
{
HRESULT hr = S_OK;
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface;
TRACE("(%p) -> (0x%x)\n", This, dwFlag);
@ -434,7 +336,7 @@ static HRESULT WINAPI IAutoComplete2_fnSetOptions(
/**************************************************************************
* IAutoComplete2_fnVTable
*/
static const IAutoComplete2Vtbl ac2vt =
static const IAutoComplete2Vtbl acvt =
{
IAutoComplete2_fnQueryInterface,
IAutoComplete2_fnAddRef,