sync the header with wine 0.9.2 part 2 of 4
Modified: trunk/reactos/lib/dxdiagn/dxdiag_private.h

Modified: trunk/reactos/lib/dxdiagn/dxdiag_private.h
--- trunk/reactos/lib/dxdiagn/dxdiag_private.h	2005-12-11 15:18:39 UTC (rev 20065)
+++ trunk/reactos/lib/dxdiagn/dxdiag_private.h	2005-12-11 16:46:40 UTC (rev 20066)
@@ -41,23 +41,12 @@
 /* ---------------- */
 
 /*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IDxDiagProviderVtbl DxDiagProvider_Vtbl;
-
-/*****************************************************************************
  * IDxDiagProvider implementation structure
  */
-typedef struct Contain_Property
-{
-    WCHAR *pwszPropName;
-    VARIANT pvarProp;    
-} Contain_Property;
-
 struct IDxDiagProviderImpl {
   /* IUnknown fields */
-  IDxDiagProviderVtbl *lpVtbl;
-  DWORD       ref;
+  const IDxDiagProviderVtbl *lpVtbl;
+  LONG        ref;
   /* IDxDiagProvider fields */
   BOOL        init;
   DXDIAG_INIT_PARAMS params;
@@ -83,37 +72,34 @@
   struct IDxDiagContainerImpl_SubContainer* next;
 } IDxDiagContainerImpl_SubContainer;
 
-/*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IDxDiagContainerVtbl DxDiagContainer_Vtbl;
+typedef struct IDxDiagContainerImpl_Property {
+  LPWSTR vName;
+  VARIANT v;
+  struct IDxDiagContainerImpl_Property* next;
+} IDxDiagContainerImpl_Property;
 
+
 /*****************************************************************************
  * IDxDiagContainer implementation structure
  */
 struct IDxDiagContainerImpl {
   /* IUnknown fields */
-  IDxDiagContainerVtbl *lpVtbl;
-  DWORD       ref;
+  const IDxDiagContainerVtbl *lpVtbl;
+  LONG        ref;
   /* IDxDiagContainer fields */
+  IDxDiagContainerImpl_Property* properties;  
   IDxDiagContainerImpl_SubContainer* subContainers;
+  DWORD nProperties;
   DWORD nSubContainers;
-  Contain_Property* pProperty;
-  DWORD nSubpProperty;
 };
 
 /* IUnknown: */
 extern HRESULT WINAPI IDxDiagContainerImpl_QueryInterface(PDXDIAGCONTAINER iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI IDxDiagContainerImpl_AddRef(PDXDIAGCONTAINER iface);
-extern ULONG WINAPI IDxDiagContainerImpl_Release(PDXDIAGCONTAINER iface);
 
-/* IDxDiagContainer: */
-extern HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfChildContainers(PDXDIAGCONTAINER iface,  DWORD* pdwCount);
-extern HRESULT WINAPI IDxDiagContainerImpl_EnumChildContainerNames(PDXDIAGCONTAINER iface, DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer);
-extern HRESULT WINAPI IDxDiagContainerImpl_GetChildContainer(PDXDIAGCONTAINER iface, LPCWSTR pwszContainer, IDxDiagContainer** ppInstance);
-extern HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfProps(PDXDIAGCONTAINER iface, DWORD* pdwCount);
-extern HRESULT WINAPI IDxDiagContainerImpl_EnumPropNames(PDXDIAGCONTAINER iface, DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName);
-extern HRESULT WINAPI IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface, LPCWSTR pwszPropName, VARIANT* pvarProp);
+/** Internal */
+extern HRESULT WINAPI IDxDiagContainerImpl_AddProp(PDXDIAGCONTAINER iface, LPCWSTR pwszPropName, VARIANT* pVarProp);
+extern HRESULT WINAPI IDxDiagContainerImpl_AddChildContainer(PDXDIAGCONTAINER iface, LPCWSTR pszContName, PDXDIAGCONTAINER pSubCont);
 
 /**
  * factories
@@ -122,7 +108,13 @@
 
 /** internal factory */
 extern HRESULT DXDiag_CreateDXDiagContainer(REFIID riid, LPVOID *ppobj);
+extern HRESULT DXDiag_InitRootDXDiagContainer(IDxDiagContainer* pRootCont);
 
+/**********************************************************************
+ * Dll lifetime tracking declaration for dxdiagn.dll
+ */
+extern LONG DXDIAGN_refCount;
+static inline void DXDIAGN_LockModule(void) { InterlockedIncrement( &DXDIAGN_refCount ); }
+static inline void DXDIAGN_UnlockModule(void) { InterlockedDecrement( &DXDIAGN_refCount ); }
 
-
 #endif