ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dxdiag_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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.