mirror of
https://github.com/reactos/reactos.git
synced 2025-06-13 04:58:29 +00:00
Implmenet IDxDiagContainerImpl_GetNumberOfProps, IDxDiagContainerImpl_EnumPropNames, IDxDiagContainerImpl_GetProp working fine in windows but in reactos we are missing some regvalues (alot). This change should be commit to wine.
svn path=/trunk/; revision=19844
This commit is contained in:
parent
96ce8a5210
commit
dad86fa425
5 changed files with 74 additions and 12 deletions
|
@ -1,5 +1,6 @@
|
||||||
<module name="ddraw" type="win32dll" installbase="system32" installname="ddraw.dll">
|
<module name="ddraw" type="win32dll" installbase="system32" installname="ddraw.dll">
|
||||||
<importlibrary definition="ddraw.def" />
|
<autoregister infsection="OleControlDlls" type="DllRegisterServer" />
|
||||||
|
<importlibrary definition="ddraw.def" />
|
||||||
<include base="ddraw">.</include>
|
<include base="ddraw">.</include>
|
||||||
<define name="UNICODE" />
|
<define name="UNICODE" />
|
||||||
<define name="__USE_W32API" />
|
<define name="__USE_W32API" />
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<module name="devenum" type="win32dll" baseaddress="${BASEADDRESS_DEVENUM}" installbase="system32" installname="devenum.dll" allowwarnings="true">
|
<module name="devenum" type="win32dll" baseaddress="${BASEADDRESS_DEVENUM}" installbase="system32" installname="devenum.dll" allowwarnings="true">
|
||||||
|
<autoregister infsection="OleControlDlls" type="DllRegisterServer" />
|
||||||
<importlibrary definition="devenum.spec.def" />
|
<importlibrary definition="devenum.spec.def" />
|
||||||
<include base="devenum">.</include>
|
<include base="devenum">.</include>
|
||||||
<include base="ReactOS">include/wine</include>
|
<include base="ReactOS">include/wine</include>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<module name="dplay" type="win32dll" baseaddress="${BASEADDRESS_DPLAY}" installbase="system32" installname="dplay.dll">
|
<module name="dplay" type="win32dll" baseaddress="${BASEADDRESS_DPLAY}" installbase="system32" installname="dplay.dll">
|
||||||
<importlibrary definition="dplay.spec.def" />
|
<importlibrary definition="dplay.spec.def" />
|
||||||
<include base="dinput8">.</include>
|
<include base="dinput8">.</include>
|
||||||
<include base="ReactOS">include/wine</include>
|
<include base="ReactOS">include/wine</include>
|
||||||
|
|
|
@ -20,9 +20,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "dxdiag_private.h"
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
|
#include "dxdiag_private.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(dxdiag);
|
WINE_DEFAULT_DEBUG_CHANNEL(dxdiag);
|
||||||
|
|
||||||
|
@ -120,21 +120,73 @@ HRESULT WINAPI IDxDiagContainerImpl_GetChildContainer(PDXDIAGCONTAINER iface, LP
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfProps(PDXDIAGCONTAINER iface, DWORD* pdwCount) {
|
HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfProps(PDXDIAGCONTAINER iface, DWORD* pdwCount)
|
||||||
/* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
|
{
|
||||||
FIXME("(%p, %p): stub\n", iface, pdwCount);
|
IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
|
||||||
|
|
||||||
|
|
||||||
|
*pdwCount = This->nSubpProperty;
|
||||||
|
|
||||||
|
TRACE("(%p)->(%ld)\n", iface, *pdwCount);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI IDxDiagContainerImpl_EnumPropNames(PDXDIAGCONTAINER iface, DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) {
|
HRESULT WINAPI IDxDiagContainerImpl_EnumPropNames(PDXDIAGCONTAINER iface, DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) {
|
||||||
/* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
|
|
||||||
FIXME("(%p, %lu, %s, %lu): stub\n", iface, dwIndex, debugstr_w(pwszPropName), cchPropName);
|
IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
|
||||||
return S_OK;
|
|
||||||
|
if (This->pProperty == NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
This->pProperty = (Contain_Property *)HeapAlloc(GetProcessHeap(),
|
||||||
|
HEAP_ZERO_MEMORY,
|
||||||
|
sizeof(Contain_Property) *(dwIndex+1));
|
||||||
|
|
||||||
|
This->nSubpProperty = dwIndex+1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (dwIndex>=This->nSubpProperty)
|
||||||
|
{
|
||||||
|
This->pProperty = (Contain_Property *) HeapReAlloc(GetProcessHeap(),
|
||||||
|
HEAP_ZERO_MEMORY, This->pProperty,
|
||||||
|
sizeof(Contain_Property) *(dwIndex+1));
|
||||||
|
This->nSubpProperty = dwIndex+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
lstrcpynW(pwszPropName, This->pProperty[dwIndex].pwszPropName, cchPropName);
|
||||||
|
|
||||||
|
TRACE("(%p)->(%s)\n", iface, debugstr_w(This->pProperty[dwIndex].pwszPropName));
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface, LPCWSTR pwszPropName, VARIANT* pvarProp) {
|
HRESULT WINAPI IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface, LPCWSTR pwszPropName, VARIANT* pvarProp)
|
||||||
/* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
|
{
|
||||||
FIXME("(%p, %s, %p): stub\n", iface, debugstr_w(pwszPropName), pvarProp);
|
IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
|
||||||
|
Contain_Property *propert = This->pProperty;
|
||||||
|
TRACE("(%p)->(%s, %p)\n", iface, debugstr_w(pwszPropName), pvarProp);
|
||||||
|
|
||||||
|
while (propert->pwszPropName && lstrcmpW(propert->pwszPropName, pwszPropName))
|
||||||
|
{
|
||||||
|
propert += sizeof(Contain_Property);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!propert->pwszPropName)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
/* FIXME
|
||||||
|
if (property->pvarProp == VT_EMPTY)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
if (property->pvarProp.vt == VT_ERROR)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
*/
|
||||||
|
|
||||||
|
memcpy(pvarProp,&propert->pvarProp, sizeof(VARIANT));
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,12 @@ extern IDxDiagProviderVtbl DxDiagProvider_Vtbl;
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* IDxDiagProvider implementation structure
|
* IDxDiagProvider implementation structure
|
||||||
*/
|
*/
|
||||||
|
typedef struct Contain_Property
|
||||||
|
{
|
||||||
|
WCHAR *pwszPropName;
|
||||||
|
VARIANT pvarProp;
|
||||||
|
} Contain_Property;
|
||||||
|
|
||||||
struct IDxDiagProviderImpl {
|
struct IDxDiagProviderImpl {
|
||||||
/* IUnknown fields */
|
/* IUnknown fields */
|
||||||
IDxDiagProviderVtbl *lpVtbl;
|
IDxDiagProviderVtbl *lpVtbl;
|
||||||
|
@ -92,6 +98,8 @@ struct IDxDiagContainerImpl {
|
||||||
/* IDxDiagContainer fields */
|
/* IDxDiagContainer fields */
|
||||||
IDxDiagContainerImpl_SubContainer* subContainers;
|
IDxDiagContainerImpl_SubContainer* subContainers;
|
||||||
DWORD nSubContainers;
|
DWORD nSubContainers;
|
||||||
|
Contain_Property* pProperty;
|
||||||
|
DWORD nSubpProperty;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* IUnknown: */
|
/* IUnknown: */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue