unsigned int plugOS::GatherFontfiles( plugOsFontInfos& Fonts ) { _TCHAR szName[2 * MAX_PATH]; _TCHAR szData[2 * MAX_PATH]; int nVersion; CString strVersion; GetWinVer(strVersion, &nVersion); TRACE(_T("strVersion=%s\n"), strVersion); CString strFont; if ((nVersion >= WNTFIRST) && (nVersion <= WNTLAST)) { strFont = _T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts"); } else { strFont = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Fonts"); } BOOL bResult = FALSE; while (GetNextNameValue(HKEY_LOCAL_MACHINE, strFont, szName, szData) == ERROR_SUCCESS) { plugOsFontInfo info; info.fontName= szName; info.pathName= szData; Fonts.push_back(info); strFont.Empty(); } GetNextNameValue(HKEY_LOCAL_MACHINE, NULL, NULL, NULL); return (unsigned int)Fonts.size(); }
static inline void EnumD3DAdapters( bool (*callback)(void*, const char*, uint32_t), void *param) { ComPtr<IDXGIFactory1> factory; ComPtr<IDXGIAdapter1> adapter; HRESULT hr; UINT i = 0; IID factoryIID = (GetWinVer() >= 0x602) ? dxgiFactory2 : __uuidof(IDXGIFactory1); hr = CreateDXGIFactory1(factoryIID, (void**)factory.Assign()); if (FAILED(hr)) throw HRError("Failed to create DXGIFactory", hr); while (factory->EnumAdapters1(i++, adapter.Assign()) == S_OK) { DXGI_ADAPTER_DESC desc; char name[512] = ""; hr = adapter->GetDesc(&desc); if (FAILED(hr)) continue; /* ignore microsoft's 'basic' renderer' */ if (desc.VendorId == 0x1414 && desc.DeviceId == 0x8c) continue; os_wcs_to_utf8(desc.Description, 0, name, sizeof(name)); if (!callback(param, name, i - 1)) break; } }
BOOL CXmlManager::LoadFromXMLString( LPCTSTR lpXMLStr ) { m_pXmlDocument = NULL; if(FAILED(m_pXmlDocument.CoCreateInstance(CLSID_DOMDocument)) || !m_pXmlDocument || FAILED(m_pXmlDocument->put_async(VARIANT_FALSE)) ) { return FALSE; } static int nWinVer = -1; if(nWinVer==-1) nWinVer = GetWinVer(); CString strHeader; if(nWinVer!=WIN2K) strHeader = _T("<?xml version=\"1.0\" encoding=\"gbk\" ?>"); strHeader += lpXMLStr; CComBSTR bstrtext = strHeader; VARIANT_BOOL vbResult; if (FAILED(m_pXmlDocument->loadXML(bstrtext, &vbResult)) || !vbResult) { return FALSE; } return TRUE; }
void DumpSystemInformation(HANDLE hLogFile, TCHAR* lpModuleName) { //system user name DWORD nUserNameSize = 120; TCHAR szTemp[120] = {0}; if (!GetUserName(szTemp, &nUserNameSize)) strcpy_s(szTemp, 120, "UnKnow"); WriteLogFile(hLogFile, "%s run by %s.\r\n", lpModuleName, szTemp); //system version TCHAR szWinVer[50] = {0}; TCHAR szMajorMinorBuild[50] = {0}; int nWinVer; GetWinVer(szWinVer, &nWinVer, szMajorMinorBuild); WriteLogFile(hLogFile, "Operating system version:%s(%s).\r\n", szWinVer, szMajorMinorBuild); //process state SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); WriteLogFile(hLogFile, "%d process, type %d.\r\n", sysinfo.dwNumberOfProcessors, sysinfo.dwProcessorType); //memory state MEMORYSTATUS meminfo; GlobalMemoryStatus(&meminfo); WriteLogFile(hLogFile, _T("%d%% memory in use.\r\n"), meminfo.dwMemoryLoad); WriteLogFile(hLogFile, _T("%d MBytes physical memory.\r\n"), (meminfo.dwTotalPhys+ONEM-1)/ONEM); WriteLogFile(hLogFile, _T("%d MBytes physical memory free.\r\n"), (meminfo.dwAvailPhys+ONEM-1)/ONEM); WriteLogFile(hLogFile, _T("%d MBytes paging file.\r\n"), (meminfo.dwTotalPageFile+ONEM-1)/ONEM); WriteLogFile(hLogFile, _T("%d MBytes paging file free.\r\n"), (meminfo.dwAvailPageFile+ONEM-1)/ONEM); WriteLogFile(hLogFile, _T("%d MBytes user address space.\r\n"), (meminfo.dwTotalVirtual+ONEM-1)/ONEM); WriteLogFile(hLogFile, _T("%d MBytes user address space free.\r\n"), (meminfo.dwAvailVirtual+ONEM-1)/ONEM); }
const char *SkipXmlHeaderForWin2K(const char *szXml) { static int nWinVer = -1; if(nWinVer==-1) nWinVer = GetWinVer(); if(nWinVer==WIN2K) return SkipXmlHeader(szXml); else return szXml; }
void gs_device::InitFactory(uint32_t adapterIdx, IDXGIAdapter1 **padapter) { HRESULT hr; IID factoryIID = (GetWinVer() >= 0x602) ? dxgiFactory2 : __uuidof(IDXGIFactory1); hr = CreateDXGIFactory1(factoryIID, (void**)factory.Assign()); if (FAILED(hr)) throw UnsupportedHWError("Failed to create DXGIFactory", hr); hr = factory->EnumAdapters1(adapterIdx, padapter); if (FAILED(hr)) throw UnsupportedHWError("Failed to enumerate DXGIAdapter", hr); }
const std::string GetOSVer() { std::string strRet; char szTemp[1024] = {0}; TCHAR szWinVer[MAX_PATH] = {0}; TCHAR szMajorMinorBuild[MAX_PATH] = {0}; int nWinVer = 0; GetWinVer(szWinVer, _countof(szWinVer) - 1, szMajorMinorBuild, _countof(szMajorMinorBuild) - 1, &nWinVer); std::string strWinVer; std::string strMajorMinorBuild; WtoA(szWinVer, -1, strWinVer); WtoA(szMajorMinorBuild, -1, strMajorMinorBuild); _snprintf_s(szTemp, _countof(szTemp), _TRUNCATE, "%s (%s)", strWinVer.c_str(), strMajorMinorBuild.c_str()); return szTemp; }
bool cswinIsWinNT (cswinWindowsVersion* version) { if (version) *version = GetWinVer ()->version; return GetWinVer ()->IsWinNT; }
void NEAR PASCAL DrvInit(void) { HANDLE hlibUser; LPDRIVERTABLE lpdt; /* If the window's driver interface is present then use it. */ DOUT("MMSYSTEM: DrvInit"); hlibUser = GetModuleHandle(szUser); if(lpOpenDriver = (OPENDRIVER31)GetProcAddress(hlibUser,szOpenDriver)) fUseWinAPI = TRUE; else { fUseWinAPI = FALSE; DOUT(" - No Windows Driver I/F detected. Using MMSYSTEM\r\n"); // // force MMSYSTEM into the driver table, without enableing it. // cInstalledDrivers = 1; hInstalledDriverList = GlobalAlloc(GHND|GMEM_SHARE, (DWORD)((WORD)sizeof(DRIVERTABLE))); #ifdef DEBUG if (hInstalledDriverList == NULL) { DOUT("no memory for driver table\r\n"); FatalExit(-1); return; } #endif lpdt = (LPDRIVERTABLE)GlobalLock(hInstalledDriverList); // // NOTE! we are not setting fFirstEntry==TRUE // // because under windows 3.0 MMSOUND will enable/disable us // we *dont* wan't the driver interface doing it! // lpdt->lpDriverEntryPoint = (DRIVERPROC)DriverProc; lpdt->hModule = ghInst; lpdt->fFirstEntry = 0; GlobalUnlock(hInstalledDriverList); } if (fUseWinAPI) { DOUT(" - Windows Driver I/F detected\r\n"); #ifdef DEBUG if (GetWinVer() < 0x30A) DOUT("MMSYSTEM: WARNING !!! WINDOWS DRIVER I/F BUT VERSION LESS THAN 3.1\r\n"); #endif // link to the relevant user APIs. lpCloseDriver = (CLOSEDRIVER31)GetProcAddress(hlibUser, szCloseDriver); lpGetDriverModuleHandle = (GETDRIVERMODULEHANDLE31)GetProcAddress(hlibUser, szDrvModuleHandle); lpSendDriverMessage = (SENDDRIVERMESSAGE31)GetProcAddress(hlibUser, szSendDriverMessage); lpDefDriverProc = (DEFDRIVERPROC31)GetProcAddress(hlibUser, szDefDriverProc); } }