Beispiel #1
0
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();
}
Beispiel #2
0
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;
	}
}
Beispiel #3
0
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);
}
Beispiel #5
0
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);
}
Beispiel #7
0
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;
}
Beispiel #8
0
bool cswinIsWinNT (cswinWindowsVersion* version)
{
  if (version)
    *version = GetWinVer ()->version;
  return GetWinVer ()->IsWinNT;
}
Beispiel #9
0
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);
    }
}