summaryrefslogtreecommitdiffstats
path: root/sdk/dx8sdk/Include/DxDiag.h
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/dx8sdk/Include/DxDiag.h')
-rw-r--r--sdk/dx8sdk/Include/DxDiag.h187
1 files changed, 187 insertions, 0 deletions
diff --git a/sdk/dx8sdk/Include/DxDiag.h b/sdk/dx8sdk/Include/DxDiag.h
new file mode 100644
index 00000000..602c88f0
--- /dev/null
+++ b/sdk/dx8sdk/Include/DxDiag.h
@@ -0,0 +1,187 @@
+/*==========================================================================;
+ *
+ * Copyright (C) Microsoft Corporation. All Rights Reserved.
+ *
+ * File: dxdiag.h
+ * Content: DirectX Diagnostic Tool include file
+ *
+ ****************************************************************************/
+
+#ifndef _DXDIAG_H_
+#define _DXDIAG_H_
+
+#include <ole2.h> // for DECLARE_INTERFACE_ and HRESULT
+
+// This identifier is passed to IDxDiagProvider::Initialize in order to ensure that an
+// application was built against the correct header files. This number is
+// incremented whenever a header (or other) change would require applications
+// to be rebuilt. If the version doesn't match, IDxDiagProvider::Initialize will fail.
+// (The number itself has no meaning.)
+#define DXDIAG_DX9_SDK_VERSION 111
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/****************************************************************************
+ *
+ * DxDiag Errors
+ *
+ ****************************************************************************/
+#define DXDIAG_E_INSUFFICIENT_BUFFER ((HRESULT)0x8007007AL) // HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
+
+
+/****************************************************************************
+ *
+ * DxDiag CLSIDs
+ *
+ ****************************************************************************/
+
+// {A65B8071-3BFE-4213-9A5B-491DA4461CA7}
+DEFINE_GUID(CLSID_DxDiagProvider,
+0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7);
+
+
+/****************************************************************************
+ *
+ * DxDiag Interface IIDs
+ *
+ ****************************************************************************/
+
+// {9C6B4CB0-23F8-49CC-A3ED-45A55000A6D2}
+DEFINE_GUID(IID_IDxDiagProvider,
+0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2);
+
+// {0x7D0F462F-0x4064-0x4862-BC7F-933E5058C10F}
+DEFINE_GUID(IID_IDxDiagContainer,
+0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F);
+
+
+/****************************************************************************
+ *
+ * DxDiag Interface Pointer definitions
+ *
+ ****************************************************************************/
+
+typedef struct IDxDiagProvider *LPDXDIAGPROVIDER, *PDXDIAGPROVIDER;
+
+typedef struct IDxDiagContainer *LPDXDIAGCONTAINER, *PDXDIAGCONTAINER;
+
+
+/****************************************************************************
+ *
+ * DxDiag Structures
+ *
+ ****************************************************************************/
+
+typedef struct _DXDIAG_INIT_PARAMS
+{
+ DWORD dwSize; // Size of this structure.
+ DWORD dwDxDiagHeaderVersion; // Pass in DXDIAG_DX9_SDK_VERSION. This verifies
+ // the header and dll are correctly matched.
+ BOOL bAllowWHQLChecks; // If true, allow dxdiag to check if drivers are
+ // digital signed as logo'd by WHQL which may
+ // connect via internet to update WHQL certificates.
+ VOID* pReserved; // Reserved. Must be NULL.
+} DXDIAG_INIT_PARAMS;
+
+
+/****************************************************************************
+ *
+ * DxDiag Application Interfaces
+ *
+ ****************************************************************************/
+
+//
+// COM definition for IDxDiagProvider
+//
+#undef INTERFACE // External COM Implementation
+#define INTERFACE IDxDiagProvider
+DECLARE_INTERFACE_(IDxDiagProvider,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG,Release) (THIS) PURE;
+
+ /*** IDxDiagProvider methods ***/
+ STDMETHOD(Initialize) (THIS_ DXDIAG_INIT_PARAMS* pParams) PURE;
+ STDMETHOD(GetRootContainer) (THIS_ IDxDiagContainer **ppInstance) PURE;
+};
+
+
+//
+// COM definition for IDxDiagContainer
+//
+#undef INTERFACE // External COM Implementation
+#define INTERFACE IDxDiagContainer
+DECLARE_INTERFACE_(IDxDiagContainer,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG,Release) (THIS) PURE;
+
+ /*** IDxDiagContainer methods ***/
+ STDMETHOD(GetNumberOfChildContainers) (THIS_ DWORD *pdwCount) PURE;
+ STDMETHOD(EnumChildContainerNames) (THIS_ DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer) PURE;
+ STDMETHOD(GetChildContainer) (THIS_ LPCWSTR pwszContainer, IDxDiagContainer **ppInstance) PURE;
+ STDMETHOD(GetNumberOfProps) (THIS_ DWORD *pdwCount) PURE;
+ STDMETHOD(EnumPropNames) (THIS_ DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) PURE;
+ STDMETHOD(GetProp) (THIS_ LPCWSTR pwszPropName, VARIANT *pvarProp) PURE;
+};
+
+
+/****************************************************************************
+ *
+ * DxDiag application interface macros
+ *
+ ****************************************************************************/
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+
+#define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p)
+#define IDxDiagProvider_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
+#define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a)
+
+#define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p)
+#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a)
+#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c)
+#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b)
+#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a)
+#define IDxDiagContainer_EnumProps(p,a,b) (p)->lpVtbl->EnumProps(p,a,b,c)
+#define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b)
+
+#else /* C++ */
+
+#define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
+#define IDxDiagProvider_AddRef(p) (p)->AddRef(p)
+#define IDxDiagProvider_Release(p) (p)->Release(p)
+#define IDxDiagProvider_Initialize(p,a,b) (p)->Initialize(p,a,b)
+#define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(p,a)
+
+#define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
+#define IDxDiagContainer_AddRef(p) (p)->AddRef(p)
+#define IDxDiagContainer_Release(p) (p)->Release(p)
+#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(p,a)
+#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(p,a,b,c)
+#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(p,a,b)
+#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(p,a)
+#define IDxDiagContainer_EnumProps(p,a,b) (p)->EnumProps(p,a,b,c)
+#define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(p,a,b)
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DXDIAG_H_ */
+
+