--- 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