Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendxdiag_private.h
Go to the documentation of this file.
00001 /* 00002 * DXDiag private include file 00003 * 00004 * Copyright 2004 Raphael Junqueira 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00021 #ifndef __WINE_DXDIAG_PRIVATE_H 00022 #define __WINE_DXDIAG_PRIVATE_H 00023 00024 #include <stdarg.h> 00025 00026 #include "windef.h" 00027 #include "winbase.h" 00028 #include "wingdi.h" 00029 #include "winuser.h" 00030 #include "objbase.h" 00031 #include "oleauto.h" 00032 00033 #include "dxdiag.h" 00034 00035 /* DXDiag Interfaces: */ 00036 typedef struct IDxDiagProviderImpl IDxDiagProviderImpl; 00037 typedef struct IDxDiagContainerImpl IDxDiagContainerImpl; 00038 00039 /* ---------------- */ 00040 /* IDxDiagProvider */ 00041 /* ---------------- */ 00042 00043 /***************************************************************************** 00044 * IDxDiagProvider implementation structure 00045 */ 00046 struct IDxDiagProviderImpl { 00047 /* IUnknown fields */ 00048 const IDxDiagProviderVtbl *lpVtbl; 00049 LONG ref; 00050 /* IDxDiagProvider fields */ 00051 BOOL init; 00052 DXDIAG_INIT_PARAMS params; 00053 IDxDiagContainer* pRootContainer; 00054 }; 00055 00056 /* IUnknown: */ 00057 extern HRESULT WINAPI IDxDiagProviderImpl_QueryInterface(PDXDIAGPROVIDER iface, REFIID riid, LPVOID *ppobj); 00058 extern ULONG WINAPI IDxDiagProviderImpl_AddRef(PDXDIAGPROVIDER iface); 00059 extern ULONG WINAPI IDxDiagProviderImpl_Release(PDXDIAGPROVIDER iface); 00060 00061 /* IDxDiagProvider: */ 00062 extern HRESULT WINAPI IDxDiagProviderImpl_Initialize(PDXDIAGPROVIDER iface, DXDIAG_INIT_PARAMS* pParams); 00063 extern HRESULT WINAPI IDxDiagProviderImpl_GetRootContainer(PDXDIAGPROVIDER iface, IDxDiagContainer** ppInstance); 00064 00065 /* ---------------- */ 00066 /* IDxDiagContainer */ 00067 /* ---------------- */ 00068 00069 typedef struct IDxDiagContainerImpl_SubContainer { 00070 IDxDiagContainer* pCont; 00071 WCHAR* contName; 00072 struct IDxDiagContainerImpl_SubContainer* next; 00073 } IDxDiagContainerImpl_SubContainer; 00074 00075 typedef struct IDxDiagContainerImpl_Property { 00076 LPWSTR vName; 00077 VARIANT v; 00078 struct IDxDiagContainerImpl_Property* next; 00079 } IDxDiagContainerImpl_Property; 00080 00081 00082 /***************************************************************************** 00083 * IDxDiagContainer implementation structure 00084 */ 00085 struct IDxDiagContainerImpl { 00086 /* IUnknown fields */ 00087 const IDxDiagContainerVtbl *lpVtbl; 00088 LONG ref; 00089 /* IDxDiagContainer fields */ 00090 IDxDiagContainerImpl_Property* properties; 00091 IDxDiagContainerImpl_SubContainer* subContainers; 00092 DWORD nProperties; 00093 DWORD nSubContainers; 00094 }; 00095 00096 /* IUnknown: */ 00097 extern HRESULT WINAPI IDxDiagContainerImpl_QueryInterface(PDXDIAGCONTAINER iface, REFIID riid, LPVOID *ppobj); 00098 extern ULONG WINAPI IDxDiagContainerImpl_AddRef(PDXDIAGCONTAINER iface); 00099 00101 extern HRESULT WINAPI IDxDiagContainerImpl_AddProp(PDXDIAGCONTAINER iface, LPCWSTR pwszPropName, VARIANT* pVarProp); 00102 extern HRESULT WINAPI IDxDiagContainerImpl_AddChildContainer(PDXDIAGCONTAINER iface, LPCWSTR pszContName, PDXDIAGCONTAINER pSubCont); 00103 00107 extern HRESULT DXDiag_CreateDXDiagProvider(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj); 00108 00110 extern HRESULT DXDiag_CreateDXDiagContainer(REFIID riid, LPVOID *ppobj); 00111 extern HRESULT DXDiag_InitRootDXDiagContainer(IDxDiagContainer* pRootCont); 00112 00113 /********************************************************************** 00114 * Dll lifetime tracking declaration for dxdiagn.dll 00115 */ 00116 extern LONG DXDIAGN_refCount; 00117 static inline void DXDIAGN_LockModule(void) { InterlockedIncrement( &DXDIAGN_refCount ); } 00118 static inline void DXDIAGN_UnlockModule(void) { InterlockedDecrement( &DXDIAGN_refCount ); } 00119 00120 #endif Generated on Sat May 26 2012 04:20:20 for ReactOS by
1.7.6.1
|