6 #define DXDIAG_DX9_SDK_VERSION 111
13 DEFINE_GUID(CLSID_DxDiagProvider
, 0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7);
14 DEFINE_GUID(IID_IDxDiagProvider
, 0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2);
15 DEFINE_GUID(IID_IDxDiagContainer
, 0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F);
17 typedef struct _DXDIAG_INIT_PARAMS
20 DWORD dwDxDiagHeaderVersion
;
21 BOOL bAllowWHQLChecks
;
27 typedef struct IDxDiagContainer
*LPDXDIAGCONTAINER
, *PDXDIAGCONTAINER
;
29 #define INTERFACE IDxDiagContainer
30 DECLARE_INTERFACE_(IDxDiagContainer
,IUnknown
)
33 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, LPVOID
*ppvObj
) PURE
;
34 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
35 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
36 STDMETHOD(GetNumberOfChildContainers
) (THIS_ DWORD
*pdwCount
) PURE
;
37 STDMETHOD(EnumChildContainerNames
) (THIS_ DWORD dwIndex
, LPWSTR pwszContainer
, DWORD cchContainer
) PURE
;
38 STDMETHOD(GetChildContainer
) (THIS_ LPCWSTR pwszContainer
, IDxDiagContainer
**ppInstance
) PURE
;
39 STDMETHOD(GetNumberOfProps
) (THIS_ DWORD
*pdwCount
) PURE
;
40 STDMETHOD(EnumPropNames
) (THIS_ DWORD dwIndex
, LPWSTR pwszPropName
, DWORD cchPropName
) PURE
;
41 STDMETHOD(GetProp
) (THIS_ LPCWSTR pwszPropName
, VARIANT
*pvarProp
) PURE
;
44 typedef struct IDxDiagProvider
*LPDXDIAGPROVIDER
, *PDXDIAGPROVIDER
;
46 #define INTERFACE IDxDiagProvider
47 DECLARE_INTERFACE_(IDxDiagProvider
,IUnknown
)
49 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, LPVOID
*ppvObj
) PURE
;
50 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
51 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
52 STDMETHOD(Initialize
) (THIS_ DXDIAG_INIT_PARAMS
* pParams
) PURE
;
53 STDMETHOD(GetRootContainer
) (THIS_ IDxDiagContainer
**ppInstance
) PURE
;
57 #define DXDIAG_E_INSUFFICIENT_BUFFER ((HRESULT)0x8007007AL)
58 #if !defined(__cplusplus) || defined(CINTERFACE)
59 #define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
60 #define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p)
61 #define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p)
62 #define IDxDiagProvider_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
63 #define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a)
64 #define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
65 #define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
66 #define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p)
67 #define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a)
68 #define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c)
69 #define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b)
70 #define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a)
71 #define IDxDiagContainer_EnumProps(p,a,b) (p)->lpVtbl->EnumProps(p,a,b,c)
72 #define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b)
74 #define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
75 #define IDxDiagProvider_AddRef(p) (p)->AddRef(p)
76 #define IDxDiagProvider_Release(p) (p)->Release(p)
77 #define IDxDiagProvider_Initialize(p,a,b) (p)->Initialize(p,a,b)
78 #define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(p,a)
79 #define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
80 #define IDxDiagContainer_AddRef(p) (p)->AddRef(p)
81 #define IDxDiagContainer_Release(p) (p)->Release(p)
82 #define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(p,a)
83 #define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(p,a,b,c)
84 #define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(p,a,b)
85 #define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(p,a)
86 #define IDxDiagContainer_EnumProps(p,a,b) (p)->EnumProps(p,a,b,c)
87 #define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(p,a,b)