dxva2: Add implementation for stub functions.
diff --git a/dlls/dxva2/dxva2.spec b/dlls/dxva2/dxva2.spec
index da94df3..024a972 100644
--- a/dlls/dxva2/dxva2.spec
+++ b/dlls/dxva2/dxva2.spec
@@ -1,37 +1,37 @@
-@ stub CapabilitiesRequestAndCapabilitiesReply
-@ stub DXVA2CreateDirect3DDeviceManager9
-@ stub DXVA2CreateVideoService
-@ stub DegaussMonitor
-@ stub DestroyPhysicalMonitor
-@ stub DestroyPhysicalMonitors
-@ stub GetCapabilitiesStringLength
-@ stub GetMonitorBrightness
-@ stub GetMonitorCapabilities
-@ stub GetMonitorColorTemperature
-@ stub GetMonitorContrast
-@ stub GetMonitorDisplayAreaPosition
-@ stub GetMonitorDisplayAreaSize
-@ stub GetMonitorRedGreenOrBlueDrive
-@ stub GetMonitorRedGreenOrBlueGain
-@ stub GetMonitorTechnologyType
-@ stub GetNumberOfPhysicalMonitorsFromHMONITOR
-@ stub GetNumberOfPhysicalMonitorsFromIDirect3DDevice9
-@ stub GetPhysicalMonitorsFromHMONITOR
-@ stub GetPhysicalMonitorsFromIDirect3DDevice9
-@ stub GetTimingReport
-@ stub GetVCPFeatureAndVCPFeatureReply
-@ stub OPMGetVideoOutputsFromHMONITOR
-@ stub OPMGetVideoOutputsFromIDirect3DDevice9Object
-@ stub RestoreMonitorFactoryColorDefaults
-@ stub RestoreMonitorFactoryDefaults
-@ stub SaveCurrentMonitorSettings
-@ stub SaveCurrentSettings
-@ stub SetMonitorBrightness
-@ stub SetMonitorColorTemperature
-@ stub SetMonitorContrast
-@ stub SetMonitorDisplayAreaPosition
-@ stub SetMonitorDisplayAreaSize
-@ stub SetMonitorRedGreenOrBlueDrive
-@ stub SetMonitorRedGreenOrBlueGain
-@ stub SetVCPFeature
+@ stdcall CapabilitiesRequestAndCapabilitiesReply(ptr ptr long)
+@ stdcall DXVA2CreateDirect3DDeviceManager9(ptr ptr)
+@ stdcall DXVA2CreateVideoService(ptr ptr ptr)
+@ stdcall DegaussMonitor(ptr)
+@ stdcall DestroyPhysicalMonitor(ptr)
+@ stdcall DestroyPhysicalMonitors(long ptr)
+@ stdcall GetCapabilitiesStringLength(ptr ptr)
+@ stdcall GetMonitorBrightness(ptr ptr ptr ptr)
+@ stdcall GetMonitorCapabilities(ptr ptr ptr)
+@ stdcall GetMonitorColorTemperature(ptr ptr)
+@ stdcall GetMonitorContrast(ptr ptr ptr ptr)
+@ stdcall GetMonitorDisplayAreaPosition(ptr long ptr ptr ptr)
+@ stdcall GetMonitorDisplayAreaSize(ptr long ptr ptr ptr)
+@ stdcall GetMonitorRedGreenOrBlueDrive(ptr long ptr ptr ptr)
+@ stdcall GetMonitorRedGreenOrBlueGain(ptr long ptr ptr ptr)
+@ stdcall GetMonitorTechnologyType(ptr ptr)
+@ stdcall GetNumberOfPhysicalMonitorsFromHMONITOR(ptr ptr)
+@ stdcall GetNumberOfPhysicalMonitorsFromIDirect3DDevice9(ptr ptr)
+@ stdcall GetPhysicalMonitorsFromHMONITOR(ptr long ptr)
+@ stdcall GetPhysicalMonitorsFromIDirect3DDevice9(ptr long ptr)
+@ stdcall GetTimingReport(ptr ptr)
+@ stdcall GetVCPFeatureAndVCPFeatureReply(ptr long ptr ptr ptr)
+@ stdcall OPMGetVideoOutputsFromHMONITOR(ptr long ptr ptr)
+@ stdcall OPMGetVideoOutputsFromIDirect3DDevice9Object(ptr long ptr ptr)
+@ stdcall RestoreMonitorFactoryColorDefaults(ptr)
+@ stdcall RestoreMonitorFactoryDefaults(ptr)
+@ stdcall SaveCurrentMonitorSettings(ptr)
+@ stdcall SaveCurrentSettings(ptr)
+@ stdcall SetMonitorBrightness(ptr long)
+@ stdcall SetMonitorColorTemperature(ptr long)
+@ stdcall SetMonitorContrast(ptr long)
+@ stdcall SetMonitorDisplayAreaPosition(ptr long long)
+@ stdcall SetMonitorDisplayAreaSize(ptr long long)
+@ stdcall SetMonitorRedGreenOrBlueDrive(ptr long long)
+@ stdcall SetMonitorRedGreenOrBlueGain(ptr long long)
+@ stdcall SetVCPFeature(ptr long long)
 @ stub UABGetCertificate
diff --git a/dlls/dxva2/main.c b/dlls/dxva2/main.c
index d16320f..b4704f0 100644
--- a/dlls/dxva2/main.c
+++ b/dlls/dxva2/main.c
@@ -19,11 +19,307 @@
 #include <stdarg.h>
 #include "windef.h"
 #include "winbase.h"
+#include "d3d9.h"
+#include "dxva2api.h"
+#include "physicalmonitorenumerationapi.h"
+#include "lowlevelmonitorconfigurationapi.h"
+#include "highlevelmonitorconfigurationapi.h"
 
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(dxva2);
 
+BOOL WINAPI CapabilitiesRequestAndCapabilitiesReply( HMONITOR monitor, LPSTR buffer, DWORD length )
+{
+    FIXME("(%p, %p, %d): stub\n", monitor, buffer, length);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9( UINT *resetToken, IDirect3DDeviceManager9 **dxvManager )
+{
+    FIXME("(%p, %p): stub\n", resetToken, dxvManager);
+
+    return E_NOTIMPL;
+}
+
+HRESULT WINAPI DXVA2CreateVideoService( IDirect3DDevice9 *device, REFIID riid, void **ppv )
+{
+    FIXME("(%p, %s, %p): stub\n", device, debugstr_guid(riid), ppv);
+
+    return E_NOTIMPL;
+}
+
+BOOL WINAPI DegaussMonitor( HMONITOR monitor )
+{
+    FIXME("(%p): stub\n", monitor);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI DestroyPhysicalMonitor( HMONITOR monitor )
+{
+    FIXME("(%p): stub\n", monitor);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI DestroyPhysicalMonitors( DWORD arraySize, LPPHYSICAL_MONITOR array )
+{
+    FIXME("(0x%x, %p): stub\n", arraySize, array);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetCapabilitiesStringLength( HMONITOR monitor, LPDWORD length )
+{
+    FIXME("(%p, %p): stub\n", monitor, length);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorBrightness( HMONITOR monitor, LPDWORD minimum, LPDWORD current, LPDWORD maximum )
+{
+    FIXME("(%p, %p, %p, %p): stub\n", monitor, minimum, current, maximum);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorCapabilities( HMONITOR monitor, LPDWORD capabilities, LPDWORD temperatures )
+{
+    FIXME("(%p, %p, %p): stub\n", monitor, capabilities, temperatures);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+
+BOOL WINAPI GetMonitorColorTemperature( HMONITOR monitor, LPMC_COLOR_TEMPERATURE temperature )
+{
+    FIXME("(%p, %p): stub\n", monitor, temperature);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorContrast( HMONITOR monitor, LPDWORD minimum, LPDWORD current, LPDWORD maximum )
+{
+    FIXME("(%p, %p, %p, %p): stub\n", monitor, minimum, current, maximum);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorDisplayAreaPosition( HMONITOR monitor, MC_POSITION_TYPE type, LPDWORD minimum,
+                                           LPDWORD current, LPDWORD maximum )
+{
+    FIXME("(%p, 0x%x, %p, %p, %p): stub\n", monitor, type, minimum, current, maximum);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorDisplayAreaSize( HMONITOR monitor, MC_SIZE_TYPE type, LPDWORD minimum,
+                                       LPDWORD current, LPDWORD maximum )
+{
+    FIXME("(%p, 0x%x, %p, %p, %p): stub\n", monitor, type, minimum, current, maximum);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorRedGreenOrBlueDrive( HMONITOR monitor, MC_DRIVE_TYPE type, LPDWORD minimum,
+                                           LPDWORD current, LPDWORD maximum )
+{
+    FIXME("(%p, 0x%x, %p, %p, %p): stub\n", monitor, type, minimum, current, maximum);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorRedGreenOrBlueGain( HMONITOR monitor, MC_GAIN_TYPE type, LPDWORD minimum,
+                                          LPDWORD current, LPDWORD maximum )
+{
+    FIXME("(%p, 0x%x, %p, %p, %p): stub\n", monitor, type, minimum, current, maximum);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetMonitorTechnologyType( HMONITOR monitor, LPMC_DISPLAY_TECHNOLOGY_TYPE type )
+{
+    FIXME("(%p, %p): stub\n", monitor, type);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetNumberOfPhysicalMonitorsFromHMONITOR( HMONITOR monitor, LPDWORD number )
+{
+    FIXME("(%p, %p): stub\n", monitor, number);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+HRESULT WINAPI GetNumberOfPhysicalMonitorsFromIDirect3DDevice9( IDirect3DDevice9 *device, LPDWORD number )
+{
+    FIXME("(%p, %p): stub\n", device, number);
+
+    return E_NOTIMPL;
+}
+
+BOOL WINAPI GetPhysicalMonitorsFromHMONITOR( HMONITOR monitor, DWORD arraySize, LPPHYSICAL_MONITOR array )
+{
+    FIXME("(%p, 0x%x, %p): stub\n", monitor, arraySize, array);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+HRESULT WINAPI GetPhysicalMonitorsFromIDirect3DDevice9( IDirect3DDevice9 *device, DWORD arraySize, LPPHYSICAL_MONITOR array )
+{
+    FIXME("(%p, 0x%x, %p): stub\n", device, arraySize, array);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetTimingReport( HMONITOR monitor, LPMC_TIMING_REPORT timingReport )
+{
+    FIXME("(%p, %p): stub\n", monitor, timingReport);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI GetVCPFeatureAndVCPFeatureReply( HMONITOR monitor, BYTE vcpCode, LPMC_VCP_CODE_TYPE pvct,
+                                             LPDWORD current, LPDWORD maximum )
+{
+    FIXME("(%p, 0x%02x, %p, %p, %p): stub\n", monitor, vcpCode, pvct, current, maximum);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+HRESULT WINAPI OPMGetVideoOutputsFromHMONITOR( HMONITOR monitor, /* OPM_VIDEO_OUTPUT_SEMANTICS */ int vos,
+                                               ULONG *numVideoOutputs, /* IOPMVideoOutput */ void ***videoOutputs )
+{
+    FIXME("(%p, 0x%x, %p, %p): stub\n", monitor, vos, numVideoOutputs, videoOutputs);
+
+    return E_NOTIMPL;
+}
+
+HRESULT WINAPI OPMGetVideoOutputsFromIDirect3DDevice9Object( IDirect3DDevice9 *device, /* OPM_VIDEO_OUTPUT_SEMANTICS */ int vos,
+                                                             ULONG *numVideoOutputs,  /* IOPMVideoOutput */ void ***videoOutputs )
+{
+    FIXME("(%p, 0x%x, %p, %p): stub\n", device, vos, numVideoOutputs, videoOutputs);
+
+    return E_NOTIMPL;
+}
+
+BOOL WINAPI RestoreMonitorFactoryColorDefaults( HMONITOR monitor )
+{
+    FIXME("(%p): stub\n", monitor);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI RestoreMonitorFactoryDefaults( HMONITOR monitor )
+{
+    FIXME("(%p): stub\n", monitor);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SaveCurrentMonitorSettings( HMONITOR monitor )
+{
+    FIXME("(%p): stub\n", monitor);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SaveCurrentSettings( HMONITOR monitor )
+{
+    FIXME("(%p): stub\n", monitor);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetMonitorBrightness( HMONITOR monitor, DWORD brightness )
+{
+    FIXME("(%p, 0x%x): stub\n", monitor, brightness);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetMonitorColorTemperature( HMONITOR monitor, MC_COLOR_TEMPERATURE temperature )
+{
+    FIXME("(%p, 0x%x): stub\n", monitor, temperature);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetMonitorContrast( HMONITOR monitor, DWORD contrast )
+{
+    FIXME("(%p, 0x%x): stub\n", monitor, contrast);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetMonitorDisplayAreaPosition( HMONITOR monitor, MC_POSITION_TYPE type, DWORD position )
+{
+    FIXME("(%p, 0x%x, 0x%x): stub\n", monitor, type, position);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetMonitorDisplayAreaSize( HMONITOR monitor, MC_SIZE_TYPE type, DWORD size )
+{
+    FIXME("(%p, 0x%x, 0x%x): stub\n", monitor, type, size);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetMonitorRedGreenOrBlueDrive( HMONITOR monitor, MC_DRIVE_TYPE type, DWORD drive )
+{
+    FIXME("(%p, 0x%x, 0x%x): stub\n", monitor, type, drive);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetMonitorRedGreenOrBlueGain( HMONITOR monitor, MC_GAIN_TYPE type, DWORD gain )
+{
+    FIXME("(%p, 0x%x, 0x%x): stub\n", monitor, type, gain);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+BOOL WINAPI SetVCPFeature( HMONITOR monitor, BYTE vcpCode, DWORD value )
+{
+    FIXME("(%p, 0x%02x, 0x%x): stub\n", monitor, vcpCode, value);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
 BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
 {
     TRACE("%p,%x,%p\n", hinstDLL, fdwReason, lpvReserved);