8 #define DXDIAG_DX9_SDK_VERSION 111
14 typedef struct IDxDiagProvider
*LPDXDIAGPROVIDER
, *PDXDIAGPROVIDER
;
15 typedef struct IDxDiagContainer
*LPDXDIAGCONTAINER
, *PDXDIAGCONTAINER
;
17 DEFINE_GUID(CLSID_DxDiagProvider
, 0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7);
18 DEFINE_GUID(IID_IDxDiagProvider
, 0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2);
19 DEFINE_GUID(IID_IDxDiagContainer
, 0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F);
22 #define DXDIAG_E_INSUFFICIENT_BUFFER ((HRESULT)0x8007007A)
26 typedef struct _DXDIAG_INIT_PARAMS
29 DWORD dwDxDiagHeaderVersion
;
30 BOOL bAllowWHQLChecks
;
36 #define INTERFACE IDxDiagContainer
37 DECLARE_INTERFACE_(IDxDiagContainer
,IUnknown
)
39 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, LPVOID
*ppvObj
) PURE
;
40 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
41 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
42 STDMETHOD(GetNumberOfChildContainers
) (THIS_ DWORD
*pdwCount
) PURE
;
43 STDMETHOD(EnumChildContainerNames
) (THIS_ DWORD dwIndex
, LPWSTR pwszContainer
, DWORD cchContainer
) PURE
;
44 STDMETHOD(GetChildContainer
) (THIS_ LPCWSTR pwszContainer
, IDxDiagContainer
**ppInstance
) PURE
;
45 STDMETHOD(GetNumberOfProps
) (THIS_ DWORD
*pdwCount
) PURE
;
46 STDMETHOD(EnumPropNames
) (THIS_ DWORD dwIndex
, LPWSTR pwszPropName
, DWORD cchPropName
) PURE
;
47 STDMETHOD(GetProp
) (THIS_ LPCWSTR pwszPropName
, VARIANT
*pvarProp
) PURE
;
51 #define INTERFACE IDxDiagProvider
52 DECLARE_INTERFACE_(IDxDiagProvider
,IUnknown
)
54 /*** IUnknown methods ***/
55 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, LPVOID
*ppvObj
) PURE
;
56 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
57 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
59 /*** IDxDiagProvider methods ***/
60 STDMETHOD(Initialize
) (THIS_ DXDIAG_INIT_PARAMS
* pParams
) PURE
;
61 STDMETHOD(GetRootContainer
) (THIS_ IDxDiagContainer
**ppInstance
) PURE
;
68 #if defined(__cplusplus) || !defined(CINTERFACE)
70 #define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
71 #define IDxDiagProvider_AddRef(p) (p)->AddRef(p)
72 #define IDxDiagProvider_Release(p) (p)->Release(p)
73 #define IDxDiagProvider_Initialize(p,a,b) (p)->Initialize(p,a,b)
74 #define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(p,a)
76 #define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
77 #define IDxDiagContainer_AddRef(p) (p)->AddRef(p)
78 #define IDxDiagContainer_Release(p) (p)->Release(p)
79 #define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(p,a)
80 #define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(p,a,b,c)
81 #define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(p,a,b)
82 #define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(p,a)
83 #define IDxDiagContainer_EnumProps(p,a,b) (p)->EnumProps(p,a,b,c)
84 #define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(p,a,b)
88 #define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
89 #define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p)
90 #define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p)
91 #define IDxDiagProvider_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
92 #define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a)
93 #define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
94 #define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
95 #define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p)
96 #define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a)
97 #define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c)
98 #define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b)
99 #define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a)
100 #define IDxDiagContainer_EnumProps(p,a,b) (p)->lpVtbl->EnumProps(p,a,b,c)
101 #define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b)