mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[NETCFGX] Add the interfaces INetCfgBindingPath and IEnumNetCfgBindingPath (stubs only).
This commit is contained in:
parent
2da533a8a4
commit
ec9c8fdf25
4 changed files with 356 additions and 1 deletions
|
@ -9,6 +9,7 @@ list(APPEND SOURCE
|
|||
classfactory.c
|
||||
installer.c
|
||||
netcfg_iface.c
|
||||
netcfgbindingpath_iface.c
|
||||
inetcfgcomp_iface.c
|
||||
tcpipconf_notify.c
|
||||
propertypage.c
|
||||
|
|
|
@ -111,7 +111,7 @@ INetCfgComponentBindings_fnEnumBindingPaths(
|
|||
DWORD dwFlags,
|
||||
IEnumNetCfgBindingPath **ppIEnum)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
return IEnumNetCfgBindingPath_Constructor(NULL, &IID_IEnumNetCfgBindingPath, (LPVOID *)ppIEnum, dwFlags);
|
||||
}
|
||||
|
||||
HRESULT
|
||||
|
|
350
dll/win32/netcfgx/netcfgbindingpath_iface.c
Normal file
350
dll/win32/netcfgx/netcfgbindingpath_iface.c
Normal file
|
@ -0,0 +1,350 @@
|
|||
#include "precomp.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const INetCfgBindingPath *lpVtbl;
|
||||
LONG ref;
|
||||
} INetCfgBindingPathImpl;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const IEnumNetCfgBindingPath *lpVtbl;
|
||||
LONG ref;
|
||||
} IEnumNetCfgBindingPathImpl;
|
||||
|
||||
|
||||
/***************************************************************
|
||||
* INetCfgBindingPath
|
||||
*/
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnQueryInterface(
|
||||
INetCfgBindingPath *iface,
|
||||
REFIID iid,
|
||||
LPVOID *ppvObj)
|
||||
{
|
||||
INetCfgBindingPathImpl *This = (INetCfgBindingPathImpl*)iface;
|
||||
*ppvObj = NULL;
|
||||
|
||||
if (IsEqualIID (iid, &IID_IUnknown) ||
|
||||
IsEqualIID (iid, &IID_INetCfgBindingPath))
|
||||
{
|
||||
*ppvObj = This;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
ULONG
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnAddRef(
|
||||
INetCfgBindingPath * iface)
|
||||
{
|
||||
INetCfgBindingPathImpl * This = (INetCfgBindingPathImpl*)iface;
|
||||
ULONG refCount = InterlockedIncrement(&This->ref);
|
||||
|
||||
return refCount;
|
||||
}
|
||||
|
||||
ULONG
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnRelease(
|
||||
INetCfgBindingPath *iface)
|
||||
{
|
||||
INetCfgBindingPathImpl *This = (INetCfgBindingPathImpl*)iface;
|
||||
ULONG refCount = InterlockedDecrement(&This->ref);
|
||||
|
||||
if (!refCount)
|
||||
{
|
||||
CoTaskMemFree(This);
|
||||
}
|
||||
return refCount;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnIsSamePathAs(
|
||||
INetCfgBindingPath *iface,
|
||||
INetCfgBindingPath *pPath)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnIsSubPathOf(
|
||||
INetCfgBindingPath *iface,
|
||||
INetCfgBindingPath *pPath)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnIsEnabled(
|
||||
INetCfgBindingPath *iface)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnEnable(
|
||||
INetCfgBindingPath *iface,
|
||||
BOOL fEnable)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnGetPathToken(
|
||||
INetCfgBindingPath *iface,
|
||||
LPWSTR *ppszwPathToken)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnGetOwner(
|
||||
INetCfgBindingPath *iface,
|
||||
INetCfgComponent **ppComponent)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnGetDepth(
|
||||
INetCfgBindingPath *iface,
|
||||
ULONG *pcInterfaces)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_fnEnumBindingInterfaces(
|
||||
INetCfgBindingPath *iface,
|
||||
IEnumNetCfgBindingInterface **ppenumInterface)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static const INetCfgBindingPathVtbl vt_NetCfgBindingPath =
|
||||
{
|
||||
INetCfgBindingPath_fnQueryInterface,
|
||||
INetCfgBindingPath_fnAddRef,
|
||||
INetCfgBindingPath_fnRelease,
|
||||
INetCfgBindingPath_fnIsSamePathAs,
|
||||
INetCfgBindingPath_fnIsSubPathOf,
|
||||
INetCfgBindingPath_fnIsEnabled,
|
||||
INetCfgBindingPath_fnEnable,
|
||||
INetCfgBindingPath_fnGetPathToken,
|
||||
INetCfgBindingPath_fnGetOwner,
|
||||
INetCfgBindingPath_fnGetDepth,
|
||||
INetCfgBindingPath_fnEnumBindingInterfaces,
|
||||
};
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
INetCfgBindingPath_Constructor(
|
||||
IUnknown *pUnkOuter,
|
||||
REFIID riid,
|
||||
LPVOID *ppv)
|
||||
{
|
||||
INetCfgBindingPathImpl *This;
|
||||
|
||||
if (!ppv)
|
||||
return E_POINTER;
|
||||
|
||||
This = (INetCfgBindingPathImpl *)CoTaskMemAlloc(sizeof(INetCfgBindingPathImpl));
|
||||
if (!This)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
This->ref = 1;
|
||||
This->lpVtbl = (const INetCfgBindingPath*)&vt_NetCfgBindingPath;
|
||||
|
||||
if (!SUCCEEDED (INetCfgBindingPath_QueryInterface ((INetCfgBindingPath*)This, riid, ppv)))
|
||||
{
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
INetCfgBindingPath_Release((INetCfgBindingPath*)This);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************
|
||||
* IEnumNetCfgBindingPath
|
||||
*/
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_fnQueryInterface(
|
||||
IEnumNetCfgBindingPath *iface,
|
||||
REFIID iid,
|
||||
LPVOID *ppvObj)
|
||||
{
|
||||
IEnumNetCfgBindingPathImpl *This = (IEnumNetCfgBindingPathImpl*)iface;
|
||||
*ppvObj = NULL;
|
||||
|
||||
if (IsEqualIID (iid, &IID_IUnknown) ||
|
||||
IsEqualIID (iid, &IID_IEnumNetCfgBindingPath))
|
||||
{
|
||||
*ppvObj = This;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
|
||||
ULONG
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_fnAddRef(
|
||||
IEnumNetCfgBindingPath *iface)
|
||||
{
|
||||
IEnumNetCfgBindingPathImpl *This = (IEnumNetCfgBindingPathImpl*)iface;
|
||||
ULONG refCount = InterlockedIncrement(&This->ref);
|
||||
|
||||
return refCount;
|
||||
}
|
||||
|
||||
ULONG
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_fnRelease(
|
||||
IEnumNetCfgBindingPath *iface)
|
||||
{
|
||||
IEnumNetCfgBindingPathImpl *This = (IEnumNetCfgBindingPathImpl*)iface;
|
||||
ULONG refCount = InterlockedDecrement(&This->ref);
|
||||
|
||||
return refCount;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_fnNext(
|
||||
IEnumNetCfgBindingPath *iface,
|
||||
ULONG celt,
|
||||
INetCfgBindingPath **rgelt,
|
||||
ULONG *pceltFetched)
|
||||
{
|
||||
#if 0
|
||||
IEnumNetCfgBindingPathImpl *This = (IEnumNetCfgBindingPathImpl*)iface;
|
||||
HRESULT hr;
|
||||
|
||||
if (!iface || !rgelt)
|
||||
return E_POINTER;
|
||||
|
||||
if (celt != 1)
|
||||
return E_INVALIDARG;
|
||||
|
||||
if (!This->pCurrent)
|
||||
return S_FALSE;
|
||||
|
||||
hr = INetCfgBindingPath_Constructor (NULL, &IID_INetCfgComponent, (LPVOID*)rgelt);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
This->pCurrent = This->pCurrent->pNext;
|
||||
if (pceltFetched)
|
||||
*pceltFetched = 1;
|
||||
}
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_fnSkip(
|
||||
IEnumNetCfgBindingPath *iface,
|
||||
ULONG celt)
|
||||
{
|
||||
#if 0
|
||||
IEnumNetCfgBindingPathImpl *This = (IEnumNetCfgBindingPathImpl*)iface;
|
||||
|
||||
if (!This->pCurrent)
|
||||
return S_FALSE;
|
||||
|
||||
while (celt-- > 0 && This->pCurrent)
|
||||
This->pCurrent = This->pCurrent->pNext;
|
||||
|
||||
if (!celt)
|
||||
return S_OK;
|
||||
else
|
||||
return S_FALSE;
|
||||
#endif
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_fnReset(
|
||||
IEnumNetCfgBindingPath *iface)
|
||||
{
|
||||
#if 0
|
||||
IEnumNetCfgBindingPathImpl *This = (IEnumNetCfgBindingPathImpl*)iface;
|
||||
|
||||
This->pCurrent = This->pHead;
|
||||
return S_OK;
|
||||
#endif
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_fnClone(
|
||||
IEnumNetCfgBindingPath *iface,
|
||||
IEnumNetCfgBindingPath **ppenum)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static const IEnumNetCfgBindingPathVtbl vt_EnumNetCfgBindingPath =
|
||||
{
|
||||
IEnumNetCfgBindingPath_fnQueryInterface,
|
||||
IEnumNetCfgBindingPath_fnAddRef,
|
||||
IEnumNetCfgBindingPath_fnRelease,
|
||||
IEnumNetCfgBindingPath_fnNext,
|
||||
IEnumNetCfgBindingPath_fnSkip,
|
||||
IEnumNetCfgBindingPath_fnReset,
|
||||
IEnumNetCfgBindingPath_fnClone
|
||||
};
|
||||
|
||||
HRESULT
|
||||
WINAPI
|
||||
IEnumNetCfgBindingPath_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, DWORD dwFlags)
|
||||
{
|
||||
IEnumNetCfgBindingPathImpl *This;
|
||||
|
||||
if (!ppv)
|
||||
return E_POINTER;
|
||||
|
||||
This = (IEnumNetCfgBindingPathImpl *)CoTaskMemAlloc(sizeof(IEnumNetCfgBindingPathImpl));
|
||||
if (!This)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
This->ref = 1;
|
||||
This->lpVtbl = (const IEnumNetCfgBindingPath*)&vt_EnumNetCfgBindingPath;
|
||||
#if 0
|
||||
This->pCurrent = pItem;
|
||||
This->pHead = pItem;
|
||||
This->pNCfg = pNCfg;
|
||||
#endif
|
||||
|
||||
if (!SUCCEEDED (IEnumNetCfgBindingPath_QueryInterface((INetCfgBindingPath*)This, riid, ppv)))
|
||||
{
|
||||
IEnumNetCfgBindingPath_Release((INetCfg*)This);
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
IEnumNetCfgBindingPath_Release((IEnumNetCfgBindingPath*)This);
|
||||
return S_OK;
|
||||
}
|
|
@ -64,6 +64,10 @@ extern HINSTANCE netcfgx_hInstance;
|
|||
HRESULT WINAPI INetCfgComponent_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv, NetCfgComponentItem * pItem,INetCfg * iface);
|
||||
HRESULT WINAPI IEnumNetCfgComponent_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv, NetCfgComponentItem * pItem, INetCfg * iface);
|
||||
|
||||
/* netcfgbindingpath_iface.c */
|
||||
HRESULT WINAPI INetCfgBindingPath_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv);
|
||||
HRESULT WINAPI IEnumNetCfgBindingPath_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, DWORD dwFlags);
|
||||
|
||||
/* tcpipconf_notify.c */
|
||||
HRESULT WINAPI TcpipConfigNotify_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
|
||||
|
||||
|
|
Loading…
Reference in a new issue