📄 nvpanelapi.h
字号:
#ifndef __NVPANELAPI_H__
#define __NVPANELAPI_H__
/*
//
// Copyright (c) 2003-2004 NVIDIA Corporation. All rights reserved.
//
// This software may not, in whole or in part, be copied through any means,
// mechanical, electromechanical, or otherwise, without the express permission
// of NVIDIA Corporation.
//
// Information furnished is believed to be accurate and reliable.
// However, NVIDIA assumes no responsibility for the consequences of use of
// such information nor for any infringement of patents or other rights of
// third parties, which may result from its use.
//
// No License is granted by implication or otherwise under any patent or
// patent rights of NVIDIA Corporation.
//
//
// This header file contains declaratios for externally accessible
// NVIDIA CONTROL PANEL API methods. For detailed description of the API
// see "NVIDIA Corporation NVCPL.DLL API Manual".
//
*/
#ifdef __cplusplus
extern "C" {
#endif
#include "NvApiError.h"
#ifndef IN
# define IN
#endif//IN
#ifndef OUT
# define OUT
#endif//OUT
#ifndef NVAPIENTRY
# define NVAPIENTRY APIENTRY
#endif//NVAPIENTRY
#ifndef PGAMMARAMP
// PGAMMARAMP is defined in Windows DDK winddi.h header:
// typedef struct _GAMMARAMP
// {
// WORD Red[256];
// WORD Green[256];
// WORD Blue[256];
// } GAMMARAMP, *PGAMMARAMP;
# define GAMMARAMP void
# define PGAMMARAMP void*
# define REDEFINED_PGAMMARAMP
#endif//PGAMMARAMP
///////////////////////////////////////////////////////////////////////
#define MAX_NVMONIKER 16 // Maximum number of characters in device monker strings
#define MAX_NVDISPLAYNAME 256 // Maximum length for user-friendly display names
//---------------------------------------------------------------------
// User Interface Functions
//---------------------------------------------------------------------
void NVAPIENTRY ShellExecuteLoadNVPanel( IN LPCSTR pszWindowsDeviceName );
typedef void (NVAPIENTRY* fShellExecuteLoadNVPanel)( IN LPCSTR pszWindowsDeviceName );
//---------------------------------------------------------------------
// Display Selection Functions
//---------------------------------------------------------------------
BOOL __cdecl NvSelectDisplayDevice( IN UINT nWindowsMonitorNumber );
typedef BOOL (__cdecl* fNvSelectDisplayDevice)( IN UINT nWindowsMonitorNumber );
//---------------------------------------------------------------------
// Display Enumeration Functions
//---------------------------------------------------------------------
// For entire GPU:
BOOL NVAPIENTRY NvCplGetRealConnectedDevicesString( OUT LPSTR lpszTextBuffer, IN DWORD cbTextBuffer, IN BOOL bOnlyActive );
typedef BOOL (NVAPIENTRY* fNvCplGetRealConnectedDevicesString)( OUT LPSTR lpszTextBuffer, IN DWORD cbTextBuffer, IN BOOL bOnlyActive );
BOOL NVAPIENTRY NvCplGetActiveDevicesString( OUT LPSTR lpszTextBuffer, IN DWORD cbTextBuffer );
typedef BOOL (NVAPIENTRY* fNvCplGetActiveDevicesString)( OUT LPSTR lpszTextBuffer, IN DWORD cbTextBuffer );
// For individual DualView head:
BOOL NVAPIENTRY NvCplGetMSOrdinalDeviceString( IN DWORD nWindowsMonitorNumber, OUT LPSTR lpszTextBuffer, IN DWORD cbTextBuffer );
typedef BOOL (NVAPIENTRY* fNvCplGetMSOrdinalDeviceString)( IN DWORD nWindowsMonitorNumber, OUT LPSTR lpszTextBuffer, IN DWORD cbTextBuffer );
//---------------------------------------------------------------------
// Display Detection Functions
//---------------------------------------------------------------------
// Flags for NvCplRefreshConnectedDevices
#define NVREFRESH_NONINTRUSIVE 0x00000001 // Performs less exhaustive search and does not
// detach any active display heads which have
// been physically disconnected since detection.
#define NVREFRESH_SYSTEMWIDE 0x00000002 // Performs refresh for all graphics adapter. If not
// specified, the selected graphics adapter is used.
BOOL NVAPIENTRY NvCplRefreshConnectedDevices( IN DWORD dwFlags ); // dwFlags is NVREFRESH_* bitmask
typedef BOOL (NVAPIENTRY* fNvCplRefreshConnectedDevices)( IN DWORD dwFlags );
//---------------------------------------------------------------------
// Display Information Functions
//---------------------------------------------------------------------
// Single or Multi-Monitor Display Mode
typedef enum NVDISPLAYMODE
{
NVDISPLAYMODE_NONE = -1, // No Display (or Display Mode Unknown)
NVDISPLAYMODE_STANDARD = 0, // Single-Display Mode
NVDISPLAYMODE_CLONE = 1, // Clone Mode
NVDISPLAYMODE_HSPAN = 2, // Horizontal Span
NVDISPLAYMODE_VSPAN = 3, // Vertical Span
NVDISPLAYMODE_DUALVIEW = 4, // DualView
} NVDISPLAYMODE;
// Display Type
typedef enum NVDISPLAYTYPE // upper nibble indicates device class (for example: 0x2 for DFPs)
{
NVDISPLAYTYPE_NONE = -1, // No Display (or Display Type Unknown)
NVDISPLAYTYPE_CRT = 0x1000, // Cathode Ray Tube (CRT class from 0x1...)
NVDISPLAYTYPE_DFP = 0x2000, // Digital Flat Panel (DFP class from 0x2...)
NVDISPLAYTYPE_DFP_LAPTOP = 0x2001, // Subtype: Laptop Display Panel
NVDISPLAYTYPE_TV = 0x3000, // Television Set (TV class from 0x3...)
NVDISPLAYTYPE_TV_HDTV = 0x3001, // Subtype: High-Definition Television
} NVDISPLAYTYPE;
#define NVDISPLAYTYPE_CLASS_MASK 0xF000 // Mask for device class checks
// TV Format
typedef enum NVTVFORMAT
{
NVTVFORMAT_NONE = -1, // No Format (field does not apply to current device)
NVTVFORMAT_NTSC_M = 0, // NTSC/M
NVTVFORMAT_NTSC_J = 1, // NTSC/J
NVTVFORMAT_PAL_M = 2, // PAL/M
NVTVFORMAT_PAL_A = 3, // PAL/B, D, G, H, I
NVTVFORMAT_PAL_N = 4, // PAL/N
NVTVFORMAT_PAL_NC = 5, // PAL/NC
NVTVFORMAT_HD576i = 8, // HDTV 576i
NVTVFORMAT_HD480i = 9, // HDTV 480i
NVTVFORMAT_HD480p = 10, // HDTV 480p
NVTVFORMAT_HD576p = 11, // HDTV 576p
NVTVFORMAT_HD720p = 12, // HDTV 720p
NVTVFORMAT_HD1080i = 13, // HDTV 1080i
NVTVFORMAT_HD1080p = 14, // HDTV 1080p
NVTVFORMAT_HD720i = 16, // HDTV 720i
} NVTVFORMAT;
// TV Format Aliases
#define NVTVFORMAT_D1 NVTVFORMAT_HD480i // D1 SCART
#define NVTVFORMAT_D2 NVTVFORMAT_HD480p // D2 SCART
#define NVTVFORMAT_D3 NVTVFORMAT_HD1080i // D3 SCART
#define NVTVFORMAT_D4 NVTVFORMAT_HD720p // D4 SCART
#define NVTVFORMAT_D5 NVTVFORMAT_HD1080p // D5 SCART
// TV Connector Types
#define NVTVCONNECTOR_UNKNOWN 0x80000000 // Unknown connector(s)
#define NVTVCONNECTOR_COMPOSITE 0x00000001 // Composite
#define NVTVCONNECTOR_SVIDEO 0x00000002 // S-Video
#define NVTVCONNECTOR_COMPONENT 0x00000004 // Component
#define NVTVCONNECTOR_EIAJ4120 0x00000008 // EIAJ-4120
#define NVTVCONNECTOR_EIAJ4120CVBSBLUE 0x00000010 // EIAJ-4120-CVBS
#define NVTVCONNECTOR_SCART 0x00000020 // SCART
// Flat Panel Scaling Mode
typedef enum NVDFPSCALING
{
NVDFPSCALING_NONE = -1, // No Scaling (or Scaling Unknown)
NVDFPSCALING_NATIVE = 1, // Monitor Scaling
NVDFPSCALING_SCALED = 2, // Scaling
NVDFPSCALING_CENTERED = 3, // Centering
NVDFPSCALING_SCALEDASPECT = 5, // Scaling (Fixed Aspect Ratio)
} NVDFPSCALING;
// Graphics Board Product Family
typedef enum NVBOARDTYPE
{
NVBOARDTYPE_GEFORCE = 0, // Geforce board
NVBOARDTYPE_QUADRO = 1, // Quadro board
NVBOARDTYPE_NVS = 2, // NVS board
} NVBOARDTYPE;
// NVDISPLAYINFO.dwInputFields1 and .dwOutputFields1 bitfields
#define NVDISPLAYINFO1_ALL 0xffffffff // special: all fields valid
#define NVDISPLAYINFO1_WINDOWSDEVICENAME 0x00000001 // szWindowsDeviceName valid
#define NVDISPLAYINFO1_ADAPTERNAME 0x00000002 // szAdapterName valid
#define NVDISPLAYINFO1_DRIVERVERSION 0x00000004 // szDriverVersion valid
#define NVDISPLAYINFO1_DISPLAYMODE 0x00000008 // nDisplayMode valid
#define NVDISPLAYINFO1_WINDOWSMONITORNUMBER 0x00000010 // dwWindowsMonitorNumber valid
#define NVDISPLAYINFO1_DISPLAYHEADINDEX 0x00000020 // nDisplayHeadIndex valid
#define NVDISPLAYINFO1_DISPLAYISPRIMARY 0x00000040 // bDisplayIsPrimary valid
#define NVDISPLAYINFO1_DISPLAYNAME 0x00000080 // szDisplayName valid
#define NVDISPLAYINFO1_VENDORNAME 0x00000100 // szVendorName valid
#define NVDISPLAYINFO1_MODELNAME 0x00000200 // szModelName valid
#define NVDISPLAYINFO1_GENERICNAME 0x00000400 // szGenericName valid
#define NVDISPLAYINFO1_UNIQUEID 0x00000800 // dwUniqueId valid
#define NVDISPLAYINFO1_DISPLAYTYPE 0x00001000 // nDisplayType valid
#define NVDISPLAYINFO1_DISPLAYWIDTH 0x00002000 // mmDisplayWidth valid
#define NVDISPLAYINFO1_DISPLAYHEIGHT 0x00004000 // mmDisplayHeight valid
#define NVDISPLAYINFO1_GAMMACHARACTERISTIC 0x00008000 // fGammaCharacteristic valid
#define NVDISPLAYINFO1_OPTIMALMODE 0x00010000 // dwOptimal... fields valid
#define NVDISPLAYINFO1_MAXIMUMSAFEMODE 0x00020000 // dwMaximumSafe... fields valid
#define NVDISPLAYINFO1_BITSPERPEL 0x00040000 // dwBitsPerPel valid
#define NVDISPLAYINFO1_PELSWIDTH 0x00080000 // dwPelsWidth valid
#define NVDISPLAYINFO1_PELSHEIGHT 0x00100000 // dwPelsHeight valid
#define NVDISPLAYINFO1_DISPLAYFREQUENCY 0x00200000 // dwDisplayFrequency valid
#define NVDISPLAYINFO1_DISPLAYRECT 0x00400000 // rcDisplayRect valid (rcDisplayRect.TopLeft on write)
#define NVDISPLAYINFO1_VISIBLEPELSWIDTH 0x00800000 // dwVisiblePelsWidth valid
#define NVDISPLAYINFO1_VISIBLEPELSHEIGHT 0x01000000 // dwVisiblePelsHeight valid
#define NVDISPLAYINFO1_DEGREESROTATION 0x02000000 // dwDegreesRotation valid
#define NVDISPLAYINFO1_TVFORMAT 0x04000000 // nTvFormat valid
#define NVDISPLAYINFO1_DFPSCALING 0x08000000 // nDfpScaling valid
#define NVDISPLAYINFO1_TVCONNECTORTYPES 0x10000000 // dwTVConnectorTypes valid
#define NVDISPLAYINFO1_CURRENTCONNECTORTYPE 0x20000000 // dwCurrentConnectorType is valid
#define NVDISPLAYINFO1_BOARDTYPE 0x40000000 // dwBoardType is valid
#define NVDISPLAYINFO1_DISPLAYINSTANCECOUNT 0x80000000 // dwDisplayInstance and dwDisplayInstanceCount are valid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -