| 1 |
#undef INTERFACE |
| 2 |
/* |
| 3 |
* Copyright (C) 2004 Raphael Junqueira |
| 4 |
* |
| 5 |
* This library is free software; you can redistribute it and/or |
| 6 |
* modify it under the terms of the GNU Lesser General Public |
| 7 |
* License as published by the Free Software Foundation; either |
| 8 |
* version 2.1 of the License, or (at your option) any later version. |
| 9 |
* |
| 10 |
* This library is distributed in the hope that it will be useful, |
| 11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 |
* Lesser General Public License for more details. |
| 14 |
* |
| 15 |
* You should have received a copy of the GNU Lesser General Public |
| 16 |
* License along with this library; if not, write to the Free Software |
| 17 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| 18 |
*/ |
| 19 |
|
| 20 |
#ifndef __WINE_DXDIAG_H |
| 21 |
#define __WINE_DXDIAG_H |
| 22 |
|
| 23 |
#include <ole2.h> |
| 24 |
|
| 25 |
#ifdef __cplusplus |
| 26 |
extern "C" { |
| 27 |
#endif /* defined(__cplusplus) */ |
| 28 |
|
| 29 |
/***************************************************************************** |
| 30 |
* #defines and error codes |
| 31 |
*/ |
| 32 |
#define DXDIAG_DX9_SDK_VERSION 111 |
| 33 |
|
| 34 |
#define _FACDXDIAG 0x007 |
| 35 |
#define MAKE_DXDIAGHRESULT( code ) MAKE_HRESULT( 1, _FACDXDIAG, code ) |
| 36 |
|
| 37 |
/* |
| 38 |
* DXDiag Errors |
| 39 |
*/ |
| 40 |
#define DXDIAG_E_INSUFFICIENT_BUFFER MAKE_DXDIAGHRESULT(0x007A) |
| 41 |
|
| 42 |
|
| 43 |
/***************************************************************************** |
| 44 |
* DXDiag structures Typedefs |
| 45 |
*/ |
| 46 |
typedef struct _DXDIAG_INIT_PARAMS { |
| 47 |
DWORD dwSize; |
| 48 |
DWORD dwDxDiagHeaderVersion; |
| 49 |
WINBOOL bAllowWHQLChecks; |
| 50 |
VOID* pReserved; |
| 51 |
} DXDIAG_INIT_PARAMS; |
| 52 |
|
| 53 |
|
| 54 |
/***************************************************************************** |
| 55 |
* Predeclare the interfaces |
| 56 |
*/ |
| 57 |
/* CLSIDs */ |
| 58 |
DEFINE_GUID(CLSID_DxDiagProvider, 0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7); |
| 59 |
|
| 60 |
/* IIDs */ |
| 61 |
DEFINE_GUID(IID_IDxDiagProvider, 0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2); |
| 62 |
DEFINE_GUID(IID_IDxDiagContainer, 0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F); |
| 63 |
|
| 64 |
/* typedef definitions */ |
| 65 |
typedef struct IDxDiagProvider *LPDXDIAGPROVIDER, *PDXDIAGPROVIDER; |
| 66 |
typedef struct IDxDiagContainer *LPDXDIAGCONTAINER, *PDXDIAGCONTAINER; |
| 67 |
|
| 68 |
/***************************************************************************** |
| 69 |
* IDxDiagContainer interface |
| 70 |
*/ |
| 71 |
#ifdef WINE_NO_UNICODE_MACROS |
| 72 |
#undef GetProp |
| 73 |
#endif |
| 74 |
|
| 75 |
#define INTERFACE IDxDiagContainer |
| 76 |
DECLARE_INTERFACE_(IDxDiagContainer,IUnknown) |
| 77 |
{ |
| 78 |
/*** IUnknown methods ***/ |
| 79 |
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; |
| 80 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 81 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 82 |
/*** IDxDiagContainer methods ***/ |
| 83 |
STDMETHOD(GetNumberOfChildContainers)(THIS_ DWORD* pdwCount) PURE; |
| 84 |
STDMETHOD(EnumChildContainerNames)(THIS_ DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer) PURE; |
| 85 |
STDMETHOD(GetChildContainer)(THIS_ LPCWSTR pwszContainer, IDxDiagContainer** ppInstance) PURE; |
| 86 |
STDMETHOD(GetNumberOfProps)(THIS_ DWORD* pdwCount) PURE; |
| 87 |
STDMETHOD(EnumPropNames)(THIS_ DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) PURE; |
| 88 |
STDMETHOD(GetProp)(THIS_ LPCWSTR pwszPropName, VARIANT* pvarProp) PURE; |
| 89 |
}; |
| 90 |
#undef INTERFACE |
| 91 |
|
| 92 |
#if !defined(__cplusplus) || defined(CINTERFACE) |
| 93 |
/*** IUnknown methods ***/ |
| 94 |
#define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
| 95 |
#define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p) |
| 96 |
#define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p) |
| 97 |
/*** IDxDiagContainer methods ***/ |
| 98 |
#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a) |
| 99 |
#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c) |
| 100 |
#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b) |
| 101 |
#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a) |
| 102 |
#define IDxDiagContainer_EnumPropNames(p,a,b,c) (p)->lpVtbl->EnumPropNames(p,a,b,c) |
| 103 |
#define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b) |
| 104 |
#else |
| 105 |
/*** IUnknown methods ***/ |
| 106 |
#define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(a,b) |
| 107 |
#define IDxDiagContainer_AddRef(p) (p)->AddRef() |
| 108 |
#define IDxDiagContainer_Release(p) (p)->Release() |
| 109 |
/*** IDxDiagContainer methods ***/ |
| 110 |
#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(a) |
| 111 |
#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(a,b,c) |
| 112 |
#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(a,b) |
| 113 |
#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(a) |
| 114 |
#define IDxDiagContainer_EnumPropNames(p,a,b,c) (p)->EnumPropNames(a,b,c) |
| 115 |
#define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(a,b) |
| 116 |
#endif |
| 117 |
|
| 118 |
/***************************************************************************** |
| 119 |
* IDxDiagProvider interface |
| 120 |
*/ |
| 121 |
#define INTERFACE IDxDiagProvider |
| 122 |
DECLARE_INTERFACE_(IDxDiagProvider,IUnknown) |
| 123 |
{ |
| 124 |
/*** IUnknown methods ***/ |
| 125 |
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; |
| 126 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 127 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 128 |
/*** IDxDiagProvider methods ***/ |
| 129 |
STDMETHOD(Initialize)(THIS_ DXDIAG_INIT_PARAMS* pParams) PURE; |
| 130 |
STDMETHOD(GetRootContainer)(THIS_ IDxDiagContainer** ppInstance) PURE; |
| 131 |
}; |
| 132 |
#undef INTERFACE |
| 133 |
|
| 134 |
#if !defined(__cplusplus) || defined(CINTERFACE) |
| 135 |
/*** IUnknown methods ***/ |
| 136 |
#define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
| 137 |
#define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p) |
| 138 |
#define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p) |
| 139 |
/*** IDxDiagProvider methods ***/ |
| 140 |
#define IDxDiagProvider_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) |
| 141 |
#define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a) |
| 142 |
#else |
| 143 |
/*** IUnknown methods ***/ |
| 144 |
#define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(a,b) |
| 145 |
#define IDxDiagProvider_AddRef(p) (p)->AddRef() |
| 146 |
#define IDxDiagProvider_Release(p) (p)->Release() |
| 147 |
/*** IDxDiagProvider methods ***/ |
| 148 |
#define IDxDiagProvider_Initialize(p,a) (p)->Initialize(a) |
| 149 |
#define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(a) |
| 150 |
#endif |
| 151 |
|
| 152 |
#ifdef __cplusplus |
| 153 |
} |
| 154 |
#endif |
| 155 |
|
| 156 |
#endif |