sync the header with wine 0.9.2 part 2 of 4
authorMagnus Olsen <magnus@greatlord.com>
Sun, 11 Dec 2005 16:46:40 +0000 (16:46 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sun, 11 Dec 2005 16:46:40 +0000 (16:46 +0000)
svn path=/trunk/; revision=20066

reactos/lib/dxdiagn/dxdiag_private.h

index 8336098..86691e8 100644 (file)
@@ -40,24 +40,13 @@ typedef struct IDxDiagContainerImpl IDxDiagContainerImpl;
 /* IDxDiagProvider  */
 /* ---------------- */
 
-/*****************************************************************************
- * 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 @@ typedef struct IDxDiagContainerImpl_SubContainer {
   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 @@ extern HRESULT DXDiag_CreateDXDiagProvider(LPCLASSFACTORY iface, LPUNKNOWN punkO
 
 /** 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