⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nvpanelapi.h

📁 获取NVidia Control Panel(NV控制面板)参数的源代码 可以获取 显卡id,显存
💻 H
📖 第 1 页 / 共 3 页
字号:
#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 + -