Indicates that a variable of type D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY has not yet been assigned a meaningful value.
D3DKMDT_VOT_OTHERIndicates that the video output device connects to an external display device through a connector that is not one of the types that is indicated by the following values in this enumeration.
D3DKMDT_VOT_HD15Indicates that the video output device connects to an external display device through an HD15 (VGA) connector.
D3DKMDT_VOT_SVIDEOIndicates that the video output device connects to an external display device through an S-video connector.
D3DKMDT_VOT_COMPOSITE_VIDEOIndicates that the video output device connects to an external display device through composite video connectors.
D3DKMDT_VOT_COMPONENT_VIDEOIndicates that the video output device connects to an external display device through component video connectors.
D3DKMDT_VOT_DVIIndicates that the video output device connects to an external display device through a Digital Video Interface (DVI) connector.
D3DKMDT_VOT_HDMIIndicates that the video output device connects to an external display device through an High-Definition Multimedia Interface (HDMI) connector.
D3DKMDT_VOT_LVDSIndicates that the video output device connects to an external display device through an Low Voltage Differential Swing (LVDS) or Mobile Industry Processor Interface (MIPI) Digital Serial Interface (DSI) connector.
D3DKMDT_VOT_D_JPNIndicates that the video output device connects to an external display device through a D-Jpn connector.
D3DKMDT_VOT_SDIIndicates that the video output device connects to an external display device through an SDI connector.
D3DKMDT_VOT_DISPLAYPORT_EXTERNALIndicates that the connector type is an external display port.
D3DKMDT_VOT_DISPLAYPORT_EMBEDDEDIndicates that the connector type is an embedded display port.
D3DKMDT_VOT_UDI_EXTERNALIndicates that the connector type is an external Unified Display Interface (UDI).
D3DKMDT_VOT_UDI_EMBEDDEDIndicates that the connector type is an embedded UDI.
D3DKMDT_VOT_SDTVDONGLEIndicates that the video output device connects to an external display device through a dongle cable that supports SDTV.
D3DKMDT_VOT_MIRACASTIndicates that the video output device connects to an external display device wirelessly through a Miracast connected session. For more info, see Wireless displays (Miracast).
Supported starting with Windows 8.1.
D3DKMDT_VOT_INTERNALIndicates that the video output device connects internally to a display device (for example, the internal connection in a laptop computer).
This constant value is not a bit-field value. Instead, it's a standalone video output type.
D3DKMDT_VOT_SVIDEO_4PINIndicates that the video output device connects to an external display device through a 4-pin S-video connector.
D3DKMDT_VOT_SVIDEO_7PINIndicates that the video output device connects to an external display device through a 7-pin S-video connector.
D3DKMDT_VOT_RFIndicates that the video output device connects to an external display device through an RF connector.
D3DKMDT_VOT_RCA_3COMPONENTIndicates that the video output device connects to an external display device through a set of three RCA connectors.
D3DKMDT_VOT_BNCIndicates that the video output device connects to an external display device through a BNC connector.
1 #include "stdafx.h" 2 #define _WIN32_DCOM 3 #include <iostream> 4 using namespace std; 5 #include <comdef.h> 6 #include <Wbemidl.h> 7 # pragma comment(lib, "wbemuuid.lib") 8 9 10 // Monitor's basic connection parameters 11 12 #pragma argsused 13 int main(int argc, char* argv[]) 14 { 15 BSTR strNetworkResource; 16 //To use a WMI remote connection set localconn to false and configure the values of the pszName, pszPwd and the name of the remote machine in strNetworkResource 17 strNetworkResource = L"\\\\.\\root\\WMI"; 18 19 COAUTHIDENTITY *userAcct = NULL ; 20 COAUTHIDENTITY authIdent; 21 22 // Initialize COM. ------------------------------------------ 23 24 HRESULT hres; 25 hres = CoInitializeEx(0, COINIT_MULTITHREADED); 26 if (FAILED(hres)) 27 { 28 cout << "Failed to initialize COM library. Error code = 0x" << hex << hres << endl; 29 cout << _com_error(hres).ErrorMessage() << endl; 30 cout << "press enter to exit" << endl; 31 cin.get(); 32 return 1; // Program has failed. 33 } 34 35 // Set general COM security levels -------------------------- 36 37 hres = CoInitializeSecurity( 38 NULL, 39 -1, // COM authentication 40 NULL, // Authentication services 41 NULL, // Reserved 42 RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication 43 RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation 44 NULL, // Authentication info 45 EOAC_NONE, // Additional capabilities 46 NULL // Reserved 47 ); 48 49 if (FAILED(hres)) 50 { 51 cout << "Failed to initialize security. Error code = 0x" << hex << hres << endl; 52 cout << _com_error(hres).ErrorMessage() << endl; 53 CoUninitialize(); 54 cout << "press enter to exit" << endl; 55 cin.get(); 56 return 1; // Program has failed. 57 } 58 59 // Obtain the initial locator to WMI ------------------------- 60 61 IWbemLocator *pLoc = NULL; 62 hres = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc); 63 64 if (FAILED(hres)) 65 { 66 cout << "Failed to create IWbemLocator object." << " Err code = 0x" << hex << hres << endl; 67 cout << _com_error(hres).ErrorMessage() << endl; 68 CoUninitialize(); 69 cout << "press enter to exit" << endl; 70 cin.get(); 71 return 1; // Program has failed. 72 } 73 74 // Connect to WMI through the IWbemLocator::ConnectServer method 75 76 IWbemServices *pSvc = NULL; 77 78 hres = pLoc->ConnectServer( 79 _bstr_t(strNetworkResource), // Object path of WMI namespace 80 NULL, // User name. NULL = current user 81 NULL, // User password. NULL = current 82 0, // Locale. NULL indicates current 83 NULL, // Security flags. 84 0, // Authority (e.g. Kerberos) 85 0, // Context object 86 &pSvc // pointer to IWbemServices proxy 87 ); 88 89 if (FAILED(hres)) 90 { 91 cout << "Could not connect. Error code = 0x" << hex << hres << endl; 92 cout << _com_error(hres).ErrorMessage() << endl; 93 pLoc->Release(); 94 CoUninitialize(); 95 cout << "press enter to exit" << endl; 96 cin.get(); 97 return 1; // Program has failed. 98 } 99 100 cout << "Connected to root\\WMI WMI namespace" << endl; 101 102 // Set security levels on the proxy ------------------------- 103 hres = CoSetProxyBlanket( 104 pSvc, // Indicates the proxy to set 105 RPC_C_AUTHN_WINNT, // RPC_C_AUTHN_xxx 106 RPC_C_AUTHZ_NONE, // RPC_C_AUTHZ_xxx 107 NULL, // Server principal name 108 RPC_C_AUTHN_LEVEL_CALL, // RPC_C_AUTHN_LEVEL_xxx 109 RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx 110 NULL, // client identity 111 EOAC_NONE // proxy capabilities 112 ); 113 114 if (FAILED(hres)) 115 { 116 cout << "Could not set proxy blanket. Error code = 0x" << hex << hres << endl; 117 cout << _com_error(hres).ErrorMessage() << endl; 118 pSvc->Release(); 119 pLoc->Release(); 120 CoUninitialize(); 121 cout << "press enter to exit" << endl; 122 cin.get(); 123 return 1; // Program has failed. 124 } 125 126 // Use the IWbemServices pointer to make requests of WMI ---- 127 128 IEnumWbemClassObject* pEnumerator = NULL; 129 hres = pSvc->ExecQuery( L"WQL", L"SELECT * FROM WmiMonitorConnectionParams", 130 WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); 131 132 if (FAILED(hres)) 133 { 134 cout << "ExecQuery failed" << " Error code = 0x" << hex << hres << endl; 135 cout << _com_error(hres).ErrorMessage() << endl; 136 pSvc->Release(); 137 pLoc->Release(); 138 CoUninitialize(); 139 cout << "press enter to exit" << endl; 140 cin.get(); 141 return 1; // Program has failed. 142 } 143 144 145 // Get the data from the WQL sentence 146 IWbemClassObject *pclsObj = NULL; 147 ULONG uReturn = 0; 148 149 while (pEnumerator) 150 { 151 HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn); 152 153 if(0 == uReturn || FAILED(hr)) 154 break; 155 156 VARIANT vtProp; 157 158 hr = pclsObj->Get(L"Active", 0, &vtProp, 0, 0);// Boolean 159 if (!FAILED(hr)) 160 { 161 if ((vtProp.vt==VT_NULL) || (vtProp.vt==VT_EMPTY)) 162 wcout << "Active : " << ((vtProp.vt==VT_NULL) ? "NULL" : "EMPTY") << endl; 163 else 164 wcout << "Active : " << (vtProp.boolVal ? "True" : "False") << endl; 165 } 166 VariantClear(&vtProp); 167 168 hr = pclsObj->Get(L"InstanceName", 0, &vtProp, 0, 0);// String 169 if (!FAILED(hr)) 170 { 171 if ((vtProp.vt==VT_NULL) || (vtProp.vt==VT_EMPTY)) 172 wcout << "InstanceName : " << ((vtProp.vt==VT_NULL) ? "NULL" : "EMPTY") << endl; 173 else 174 wcout << "InstanceName : " << vtProp.bstrVal << endl; 175 } 176 VariantClear(&vtProp); 177 178 hr = pclsObj->Get(L"VideoOutputTechnology", 0, &vtProp, 0, 0);// Uint32 179 if (!FAILED(hr)) 180 { 181 if ((vtProp.vt==VT_NULL) || (vtProp.vt==VT_EMPTY)) 182 wcout << "VideoOutputTechnology : " << ((vtProp.vt==VT_NULL) ? "NULL" : "EMPTY") << endl; 183 else 184 wcout << "VideoOutputTechnology : " << vtProp.uintVal << endl; 185 } 186 VariantClear(&vtProp); 187 188 189 pclsObj->Release(); 190 pclsObj=NULL; 191 } 192 193 // Cleanup 194 195 pSvc->Release(); 196 pLoc->Release(); 197 pEnumerator->Release(); 198 if (pclsObj!=NULL) 199 pclsObj->Release(); 200 201 CoUninitialize(); 202 cout << "press enter to exit" << endl; 203 cin.get(); 204 return 0; // Program successfully completed. 205 } View Code
转载于:https://www.cnblogs.com/nightnine/p/7260348.html
相关资源:EDID工具合集,包含edid编辑、获取显示器edid等工具