From e58e498be45f02fa780e9a850973b30ff1210235 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Sun, 11 Dec 2005 16:46:40 +0000 Subject: [PATCH] sync the header with wine 0.9.2 part 2 of 4 svn path=/trunk/; revision=20066 --- reactos/lib/dxdiagn/dxdiag_private.h | 52 ++++++++++++---------------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/reactos/lib/dxdiagn/dxdiag_private.h b/reactos/lib/dxdiagn/dxdiag_private.h index 8336098501a..86691e8cfda 100644 --- a/reactos/lib/dxdiagn/dxdiag_private.h +++ b/reactos/lib/dxdiagn/dxdiag_private.h @@ -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