void VLCWindowsManager::CreateWindows( HWND hWindowedParentWnd ) { _hWindowedParentWnd = hWindowedParentWnd; if( !_HolderWnd ) { _HolderWnd = VLCHolderWnd::CreateHolderWindow( getHModule(), hWindowedParentWnd, this ); } }
bool GetProductAndVersion (TCHAR *&strProductVersion) { // get the filename of the executable containing the version resource TCHAR szFilename[MAX_PATH + 1] = {0}; if (GetModuleFileName ((HMODULE) getHModule (), szFilename, MAX_PATH) == 0) { return false; } // allocate a block of memory for the version info DWORD dummy; DWORD dwSize = GetFileVersionInfoSize(szFilename, &dummy); if (dwSize == 0) { return false; } std::vector<BYTE> data(dwSize); // load the version info if (!GetFileVersionInfo(szFilename, NULL, dwSize, &data[0])) { return false; } UINT uiVerLen = 0; VS_FIXEDFILEINFO* pFixedInfo = 0; // pointer to fixed file info structure // get the fixed file info (language-independent) if(VerQueryValue(&data[0], TEXT("\\"), (void**)&pFixedInfo, (UINT *)&uiVerLen) == 0) { return false; } CLEAN_AND_ZERO_ARR (strProductVersion); strProductVersion = new TCHAR[DEFAULT_BUF_SIZE]; _stprintf (strProductVersion, _T ("Version: %u.%u.%u.%u"), HIWORD (pFixedInfo->dwProductVersionMS), LOWORD (pFixedInfo->dwProductVersionMS), HIWORD (pFixedInfo->dwProductVersionLS), LOWORD (pFixedInfo->dwProductVersionLS)); return true; }