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