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.
Modified: trunk/reactos/lib/ddraw/ddraw.xml
Modified: trunk/reactos/lib/devenum/devenum.xml
Modified: trunk/reactos/lib/dplay/dplay.xml
Modified: trunk/reactos/lib/dxdiagn/container.c
Modified: trunk/reactos/lib/dxdiagn/dxdiag_private.h
_____
Modified: trunk/reactos/lib/ddraw/ddraw.xml
--- trunk/reactos/lib/ddraw/ddraw.xml 2005-12-03 19:40:52 UTC (rev
19843)
+++ trunk/reactos/lib/ddraw/ddraw.xml 2005-12-03 20:53:23 UTC (rev
19844)
@@ -1,5 +1,6 @@
<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>
<define name="UNICODE" />
<define name="__USE_W32API" />
_____
Modified: trunk/reactos/lib/devenum/devenum.xml
--- trunk/reactos/lib/devenum/devenum.xml 2005-12-03 19:40:52 UTC
(rev 19843)
+++ trunk/reactos/lib/devenum/devenum.xml 2005-12-03 20:53:23 UTC
(rev 19844)
@@ -1,4 +1,5 @@
<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" />
<include base="devenum">.</include>
<include base="ReactOS">include/wine</include>
_____
Modified: trunk/reactos/lib/dplay/dplay.xml
--- trunk/reactos/lib/dplay/dplay.xml 2005-12-03 19:40:52 UTC (rev
19843)
+++ trunk/reactos/lib/dplay/dplay.xml 2005-12-03 20:53:23 UTC (rev
19844)
@@ -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" />
<include base="dinput8">.</include>
<include base="ReactOS">include/wine</include>
_____
Modified: trunk/reactos/lib/dxdiagn/container.c
--- trunk/reactos/lib/dxdiagn/container.c 2005-12-03 19:40:52 UTC
(rev 19843)
+++ trunk/reactos/lib/dxdiagn/container.c 2005-12-03 20:53:23 UTC
(rev 19844)
@@ -20,9 +20,9 @@
*/
#include "config.h"
-#include "dxdiag_private.h"
#include "wine/debug.h"
#include "wine/unicode.h"
+#include "dxdiag_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(dxdiag);
@@ -120,21 +120,73 @@
return E_INVALIDARG;
}
-HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfProps(PDXDIAGCONTAINER
iface, DWORD* pdwCount) {
- /* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
- FIXME("(%p, %p): stub\n", iface, pdwCount);
+HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfProps(PDXDIAGCONTAINER
iface, DWORD* pdwCount)
+{
+ IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
+
+
+ *pdwCount = This->nSubpProperty;
+
+ TRACE("(%p)->(%ld)\n", iface, *pdwCount);
+
return S_OK;
}
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);
- return S_OK;
+
+ IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
+
+ 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) {
- /* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
- FIXME("(%p, %s, %p): stub\n", iface, debugstr_w(pwszPropName),
pvarProp);
+HRESULT WINAPI IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface,
LPCWSTR pwszPropName, VARIANT* 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;
}
_____
Modified: trunk/reactos/lib/dxdiagn/dxdiag_private.h
--- trunk/reactos/lib/dxdiagn/dxdiag_private.h 2005-12-03 19:40:52 UTC
(rev 19843)
+++ trunk/reactos/lib/dxdiagn/dxdiag_private.h 2005-12-03 20:53:23 UTC
(rev 19844)
@@ -48,6 +48,12 @@
/***********************************************************************
******
* IDxDiagProvider implementation structure
*/
+typedef struct Contain_Property
+{
+ WCHAR *pwszPropName;
+ VARIANT pvarProp;
+} Contain_Property;
+
struct IDxDiagProviderImpl {
/* IUnknown fields */
IDxDiagProviderVtbl *lpVtbl;
@@ -92,6 +98,8 @@
/* IDxDiagContainer fields */
IDxDiagContainerImpl_SubContainer* subContainers;
DWORD nSubContainers;
+ Contain_Property* pProperty;
+ DWORD nSubpProperty;
};
/* IUnknown: */