| @@ -38,9 +38,15 @@ SystemStats::CPUFlags SystemStats::cpuFlags; | |||
| const String SystemStats::getJUCEVersion() | |||
| { | |||
| return "JUCE v" + String (JUCE_MAJOR_VERSION) | |||
| + "." + String (JUCE_MINOR_VERSION) | |||
| + "." + String (JUCE_BUILDNUMBER); | |||
| #define JUCE_STRINGIFYVERSION2(a) #a | |||
| #define JUCE_STRINGIFYVERSION(a) JUCE_STRINGIFYVERSION2(a) | |||
| return "JUCE v" JUCE_STRINGIFYVERSION(JUCE_MAJOR_VERSION) | |||
| "." JUCE_STRINGIFYVERSION(JUCE_MINOR_VERSION) | |||
| "." JUCE_STRINGIFYVERSION(JUCE_BUILDNUMBER); | |||
| #undef JUCE_STRINGIFYVERSION | |||
| #undef JUCE_STRINGIFYVERSION2 | |||
| } | |||
| //============================================================================== | |||
| @@ -39,8 +39,6 @@ public: | |||
| //============================================================================== | |||
| /** Returns the current version of JUCE, | |||
| (just in case you didn't already know at compile-time.) | |||
| See also the JUCE_VERSION, JUCE_MAJOR_VERSION and JUCE_MINOR_VERSION macros. | |||
| */ | |||
| static const String getJUCEVersion(); | |||
| @@ -128,7 +128,7 @@ namespace TimeHelpers | |||
| #elif JUCE_WINDOWS | |||
| HeapBlock <wchar_t> tempDest; | |||
| tempDest.calloc (maxChars + 2); | |||
| const int result = (int) wcsftime (tempDest, maxChars, format.toUTF16(), tm); | |||
| const int result = (int) wcsftime (tempDest, maxChars, format.toWideCharPointer(), tm); | |||
| if (result > 0) | |||
| dest.writeAll (CharPointer_UTF16 (tempDest.getData())); | |||
| return result; | |||
| @@ -240,15 +240,13 @@ public: | |||
| if (owner->shouldDropFilesWhenDraggedExternally (dragDescLocal, source, files, canMoveFiles) | |||
| && files.size() > 0) | |||
| { | |||
| WeakReference<Component> cdw (this); | |||
| WeakReference<Component> thisWeakRef (this); | |||
| setVisible (false); | |||
| if (ModifierKeys::getCurrentModifiersRealtime().isAnyMouseButtonDown()) | |||
| DragAndDropContainer::performExternalDragDropOfFiles (files, canMoveFiles); | |||
| if (cdw != 0) | |||
| delete this; | |||
| delete thisWeakRef.get(); | |||
| return; | |||
| } | |||
| } | |||
| @@ -808,7 +808,7 @@ private: | |||
| // doing a direct load of the COM object (only available via the juce_createASIOAudioIODeviceForGUID function). | |||
| if (optionalDllForDirectLoading.isNotEmpty()) | |||
| { | |||
| HMODULE h = LoadLibrary (optionalDllForDirectLoading.toUTF16()); | |||
| HMODULE h = LoadLibrary (optionalDllForDirectLoading.toWideCharPointer()); | |||
| if (h != 0) | |||
| { | |||
| @@ -1799,7 +1799,7 @@ private: | |||
| { | |||
| HKEY subKey; | |||
| if (RegOpenKeyEx (hk, keyName.toUTF16(), 0, KEY_READ, &subKey) == ERROR_SUCCESS) | |||
| if (RegOpenKeyEx (hk, keyName.toWideCharPointer(), 0, KEY_READ, &subKey) == ERROR_SUCCESS) | |||
| { | |||
| TCHAR buf [256] = { 0 }; | |||
| DWORD dtype = REG_SZ; | |||
| @@ -34,7 +34,6 @@ namespace ActiveXHelpers | |||
| { | |||
| public: | |||
| JuceIStorage() {} | |||
| ~JuceIStorage() {} | |||
| HRESULT __stdcall CreateStream (const WCHAR*, DWORD, DWORD, DWORD, IStream**) { return E_NOTIMPL; } | |||
| HRESULT __stdcall OpenStream (const WCHAR*, void*, DWORD, DWORD, IStream**) { return E_NOTIMPL; } | |||
| @@ -60,7 +59,6 @@ namespace ActiveXHelpers | |||
| public: | |||
| JuceOleInPlaceFrame (HWND window_) : window (window_) {} | |||
| ~JuceOleInPlaceFrame() {} | |||
| HRESULT __stdcall GetWindow (HWND* lphwnd) { *lphwnd = window; return S_OK; } | |||
| HRESULT __stdcall ContextSensitiveHelp (BOOL) { return E_NOTIMPL; } | |||
| @@ -272,7 +272,7 @@ public: | |||
| if (SUCCEEDED (hr)) | |||
| { | |||
| hr = fileSink->SetFileName (file.getFullPathName().toUTF16(), 0); | |||
| hr = fileSink->SetFileName (file.getFullPathName().toWideCharPointer(), 0); | |||
| if (SUCCEEDED (hr)) | |||
| { | |||
| @@ -316,7 +316,7 @@ public: | |||
| .replace ("$AVGTIMEPERFRAME", String (10000000 / maxFramesPerSecond)); | |||
| ComSmartPtr <IWMProfile> currentProfile; | |||
| hr = profileManager->LoadProfileByData (prof.toUTF16(), currentProfile.resetAndGetPointerAddress()); | |||
| hr = profileManager->LoadProfileByData (prof.toWideCharPointer(), currentProfile.resetAndGetPointerAddress()); | |||
| hr = asfConfig->ConfigureFilterUsingProfile (currentProfile); | |||
| if (SUCCEEDED (hr)) | |||
| @@ -44,7 +44,7 @@ DynamicLibraryLoader::~DynamicLibraryLoader() | |||
| bool DynamicLibraryLoader::load (const String& name) | |||
| { | |||
| FreeLibrary ((HMODULE) libHandle); | |||
| libHandle = name.isNotEmpty() ? LoadLibrary (name.toUTF16()) : 0; | |||
| libHandle = name.isNotEmpty() ? LoadLibrary (name.toWideCharPointer()) : 0; | |||
| return libHandle != 0; | |||
| } | |||
| @@ -186,7 +186,7 @@ void FileChooser::showPlatformDialog (Array<File>& results, const String& title_ | |||
| bi.hwndOwner = (HWND) parentWindow.getWindowHandle(); | |||
| bi.pszDisplayName = files; | |||
| bi.lpszTitle = title.toUTF16(); | |||
| bi.lpszTitle = title.toWideCharPointer(); | |||
| bi.lParam = (LPARAM) &info; | |||
| bi.lpfn = browseCallbackProc; | |||
| #ifdef BIF_USENEWUI | |||
| @@ -253,8 +253,8 @@ void FileChooser::showPlatformDialog (Array<File>& results, const String& title_ | |||
| of.nFilterIndex = 1; | |||
| of.lpstrFile = files; | |||
| of.nMaxFile = charsAvailableForResult; | |||
| of.lpstrInitialDir = localPath.toUTF16(); | |||
| of.lpstrTitle = title.toUTF16(); | |||
| of.lpstrInitialDir = localPath.toWideCharPointer(); | |||
| of.lpstrTitle = title.toWideCharPointer(); | |||
| of.Flags = flags; | |||
| of.lCustData = (LPARAM) &info; | |||
| @@ -72,7 +72,7 @@ namespace WindowsFileHelpers | |||
| { | |||
| ULARGE_INTEGER spc, tot, totFree; | |||
| if (GetDiskFreeSpaceEx (getDriveFromPath (path).toUTF16(), &spc, &tot, &totFree)) | |||
| if (GetDiskFreeSpaceEx (getDriveFromPath (path).toWideCharPointer(), &spc, &tot, &totFree)) | |||
| return total ? (int64) tot.QuadPart | |||
| : (int64) spc.QuadPart; | |||
| @@ -81,7 +81,7 @@ namespace WindowsFileHelpers | |||
| unsigned int getWindowsDriveType (const String& path) | |||
| { | |||
| return GetDriveType (getDriveFromPath (path).toUTF16()); | |||
| return GetDriveType (getDriveFromPath (path).toWideCharPointer()); | |||
| } | |||
| const File getSpecialFolderPath (int type) | |||
| @@ -104,25 +104,25 @@ const String File::separatorString ("\\"); | |||
| bool File::exists() const | |||
| { | |||
| return fullPath.isNotEmpty() | |||
| && GetFileAttributes (fullPath.toUTF16()) != INVALID_FILE_ATTRIBUTES; | |||
| && GetFileAttributes (fullPath.toWideCharPointer()) != INVALID_FILE_ATTRIBUTES; | |||
| } | |||
| bool File::existsAsFile() const | |||
| { | |||
| return fullPath.isNotEmpty() | |||
| && (GetFileAttributes (fullPath.toUTF16()) & FILE_ATTRIBUTE_DIRECTORY) == 0; | |||
| && (GetFileAttributes (fullPath.toWideCharPointer()) & FILE_ATTRIBUTE_DIRECTORY) == 0; | |||
| } | |||
| bool File::isDirectory() const | |||
| { | |||
| const DWORD attr = GetFileAttributes (fullPath.toUTF16()); | |||
| const DWORD attr = GetFileAttributes (fullPath.toWideCharPointer()); | |||
| return ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) && (attr != INVALID_FILE_ATTRIBUTES); | |||
| } | |||
| bool File::hasWriteAccess() const | |||
| { | |||
| if (exists()) | |||
| return (GetFileAttributes (fullPath.toUTF16()) & FILE_ATTRIBUTE_READONLY) == 0; | |||
| return (GetFileAttributes (fullPath.toWideCharPointer()) & FILE_ATTRIBUTE_READONLY) == 0; | |||
| // on windows, it seems that even read-only directories can still be written into, | |||
| // so checking the parent directory's permissions would return the wrong result.. | |||
| @@ -131,7 +131,7 @@ bool File::hasWriteAccess() const | |||
| bool File::setFileReadOnlyInternal (const bool shouldBeReadOnly) const | |||
| { | |||
| DWORD attr = GetFileAttributes (fullPath.toUTF16()); | |||
| DWORD attr = GetFileAttributes (fullPath.toWideCharPointer()); | |||
| if (attr == INVALID_FILE_ATTRIBUTES) | |||
| return false; | |||
| @@ -144,12 +144,12 @@ bool File::setFileReadOnlyInternal (const bool shouldBeReadOnly) const | |||
| else | |||
| attr &= ~FILE_ATTRIBUTE_READONLY; | |||
| return SetFileAttributes (fullPath.toUTF16(), attr) != FALSE; | |||
| return SetFileAttributes (fullPath.toWideCharPointer(), attr) != FALSE; | |||
| } | |||
| bool File::isHidden() const | |||
| { | |||
| return (GetFileAttributes (getFullPathName().toUTF16()) & FILE_ATTRIBUTE_HIDDEN) != 0; | |||
| return (GetFileAttributes (getFullPathName().toWideCharPointer()) & FILE_ATTRIBUTE_HIDDEN) != 0; | |||
| } | |||
| //============================================================================== | |||
| @@ -157,10 +157,9 @@ bool File::deleteFile() const | |||
| { | |||
| if (! exists()) | |||
| return true; | |||
| else if (isDirectory()) | |||
| return RemoveDirectory (fullPath.toUTF16()) != 0; | |||
| else | |||
| return DeleteFile (fullPath.toUTF16()) != 0; | |||
| return isDirectory() ? RemoveDirectory (fullPath.toWideCharPointer()) != 0 | |||
| : DeleteFile (fullPath.toWideCharPointer()) != 0; | |||
| } | |||
| bool File::moveToTrash() const | |||
| @@ -186,17 +185,17 @@ bool File::moveToTrash() const | |||
| bool File::copyInternal (const File& dest) const | |||
| { | |||
| return CopyFile (fullPath.toUTF16(), dest.getFullPathName().toUTF16(), false) != 0; | |||
| return CopyFile (fullPath.toWideCharPointer(), dest.getFullPathName().toWideCharPointer(), false) != 0; | |||
| } | |||
| bool File::moveInternal (const File& dest) const | |||
| { | |||
| return MoveFile (fullPath.toUTF16(), dest.getFullPathName().toUTF16()) != 0; | |||
| return MoveFile (fullPath.toWideCharPointer(), dest.getFullPathName().toWideCharPointer()) != 0; | |||
| } | |||
| void File::createDirectoryInternal (const String& fileName) const | |||
| { | |||
| CreateDirectory (fileName.toUTF16(), 0); | |||
| CreateDirectory (fileName.toWideCharPointer(), 0); | |||
| } | |||
| //============================================================================== | |||
| @@ -212,7 +211,7 @@ void FileInputStream::openHandle() | |||
| { | |||
| totalSize = file.getSize(); | |||
| HANDLE h = CreateFile (file.getFullPathName().toUTF16(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, | |||
| HANDLE h = CreateFile (file.getFullPathName().toWideCharPointer(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, | |||
| OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, 0); | |||
| if (h != INVALID_HANDLE_VALUE) | |||
| @@ -239,7 +238,7 @@ size_t FileInputStream::readInternal (void* buffer, size_t numBytes) | |||
| //============================================================================== | |||
| void FileOutputStream::openHandle() | |||
| { | |||
| HANDLE h = CreateFile (file.getFullPathName().toUTF16(), GENERIC_WRITE, FILE_SHARE_READ, 0, | |||
| HANDLE h = CreateFile (file.getFullPathName().toWideCharPointer(), GENERIC_WRITE, FILE_SHARE_READ, 0, | |||
| OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); | |||
| if (h != INVALID_HANDLE_VALUE) | |||
| @@ -284,7 +283,7 @@ int64 File::getSize() const | |||
| { | |||
| WIN32_FILE_ATTRIBUTE_DATA attributes; | |||
| if (GetFileAttributesEx (fullPath.toUTF16(), GetFileExInfoStandard, &attributes)) | |||
| if (GetFileAttributesEx (fullPath.toWideCharPointer(), GetFileExInfoStandard, &attributes)) | |||
| return (((int64) attributes.nFileSizeHigh) << 32) | attributes.nFileSizeLow; | |||
| return 0; | |||
| @@ -295,7 +294,7 @@ void File::getFileTimesInternal (int64& modificationTime, int64& accessTime, int | |||
| using namespace WindowsFileHelpers; | |||
| WIN32_FILE_ATTRIBUTE_DATA attributes; | |||
| if (GetFileAttributesEx (fullPath.toUTF16(), GetFileExInfoStandard, &attributes)) | |||
| if (GetFileAttributesEx (fullPath.toWideCharPointer(), GetFileExInfoStandard, &attributes)) | |||
| { | |||
| modificationTime = fileTimeToTime (&attributes.ftLastWriteTime); | |||
| creationTime = fileTimeToTime (&attributes.ftCreationTime); | |||
| @@ -312,7 +311,7 @@ bool File::setFileTimesInternal (int64 modificationTime, int64 accessTime, int64 | |||
| using namespace WindowsFileHelpers; | |||
| bool ok = false; | |||
| HANDLE h = CreateFile (fullPath.toUTF16(), GENERIC_WRITE, FILE_SHARE_READ, 0, | |||
| HANDLE h = CreateFile (fullPath.toWideCharPointer(), GENERIC_WRITE, FILE_SHARE_READ, 0, | |||
| OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); | |||
| if (h != INVALID_HANDLE_VALUE) | |||
| @@ -362,7 +361,7 @@ void File::findFileSystemRoots (Array<File>& destArray) | |||
| const String File::getVolumeLabel() const | |||
| { | |||
| TCHAR dest[64]; | |||
| if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toUTF16(), dest, | |||
| if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toWideCharPointer(), dest, | |||
| numElementsInArray (dest), 0, 0, 0, 0, 0)) | |||
| dest[0] = 0; | |||
| @@ -374,7 +373,7 @@ int File::getVolumeSerialNumber() const | |||
| TCHAR dest[64]; | |||
| DWORD serialNum; | |||
| if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toUTF16(), dest, | |||
| if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toWideCharPointer(), dest, | |||
| numElementsInArray (dest), &serialNum, 0, 0, 0, 0)) | |||
| return 0; | |||
| @@ -486,7 +485,7 @@ const File File::getCurrentWorkingDirectory() | |||
| bool File::setAsCurrentWorkingDirectory() const | |||
| { | |||
| return SetCurrentDirectory (getFullPathName().toUTF16()) != FALSE; | |||
| return SetCurrentDirectory (getFullPathName().toWideCharPointer()) != FALSE; | |||
| } | |||
| //============================================================================== | |||
| @@ -495,11 +494,11 @@ const String File::getVersion() const | |||
| String result; | |||
| DWORD handle = 0; | |||
| DWORD bufferSize = GetFileVersionInfoSize (getFullPathName().toUTF16(), &handle); | |||
| DWORD bufferSize = GetFileVersionInfoSize (getFullPathName().toWideCharPointer(), &handle); | |||
| HeapBlock<char> buffer; | |||
| buffer.calloc (bufferSize); | |||
| if (GetFileVersionInfo (getFullPathName().toUTF16(), 0, bufferSize, buffer)) | |||
| if (GetFileVersionInfo (getFullPathName().toWideCharPointer(), 0, bufferSize, buffer)) | |||
| { | |||
| VS_FIXEDFILEINFO* vffi; | |||
| UINT len = 0; | |||
| @@ -533,7 +532,7 @@ const File File::getLinkedTarget() const | |||
| ComSmartPtr <IPersistFile> persistFile; | |||
| if (SUCCEEDED (shellLink.QueryInterface (IID_IPersistFile, persistFile))) | |||
| { | |||
| if (SUCCEEDED (persistFile->Load (p.toUTF16(), STGM_READ)) | |||
| if (SUCCEEDED (persistFile->Load (p.toWideCharPointer(), STGM_READ)) | |||
| && SUCCEEDED (shellLink->Resolve (0, SLR_ANY_MATCH | SLR_NO_UI))) | |||
| { | |||
| WIN32_FIND_DATA winFindData; | |||
| @@ -574,7 +573,7 @@ public: | |||
| if (handle == INVALID_HANDLE_VALUE) | |||
| { | |||
| handle = FindFirstFile (directoryWithWildCard.toUTF16(), &findData); | |||
| handle = FindFirstFile (directoryWithWildCard.toWideCharPointer(), &findData); | |||
| if (handle == INVALID_HANDLE_VALUE) | |||
| return false; | |||
| @@ -628,7 +627,7 @@ bool PlatformUtilities::openDocument (const String& fileName, const String& para | |||
| JUCE_TRY | |||
| { | |||
| hInstance = ShellExecute (0, 0, fileName.toUTF16(), parameters.toUTF16(), 0, SW_SHOWDEFAULT); | |||
| hInstance = ShellExecute (0, 0, fileName.toWideCharPointer(), parameters.toWideCharPointer(), 0, SW_SHOWDEFAULT); | |||
| } | |||
| JUCE_CATCH_ALL | |||
| @@ -655,9 +654,9 @@ public: | |||
| { | |||
| cancelEvent = CreateEvent (0, FALSE, FALSE, 0); | |||
| pipeH = isPipe ? CreateNamedPipe (file.toUTF16(), PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, 0, | |||
| pipeH = isPipe ? CreateNamedPipe (file.toWideCharPointer(), PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, 0, | |||
| PIPE_UNLIMITED_INSTANCES, 4096, 4096, 0, 0) | |||
| : CreateFile (file.toUTF16(), GENERIC_READ | GENERIC_WRITE, 0, 0, | |||
| : CreateFile (file.toWideCharPointer(), GENERIC_READ | GENERIC_WRITE, 0, 0, | |||
| OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); | |||
| } | |||
| @@ -285,7 +285,7 @@ void MessageManager::doPlatformSpecificInitialisation() | |||
| wc.lpfnWndProc = (WNDPROC) juce_MessageWndProc; | |||
| wc.cbWndExtra = 4; | |||
| wc.hInstance = hmod; | |||
| wc.lpszClassName = className.toUTF16(); | |||
| wc.lpszClassName = className.toWideCharPointer(); | |||
| RegisterClassEx (&wc); | |||
| @@ -298,7 +298,7 @@ void MessageManager::doPlatformSpecificInitialisation() | |||
| void MessageManager::doPlatformSpecificShutdown() | |||
| { | |||
| DestroyWindow (juce_messageWindowHandle); | |||
| UnregisterClass (getMessageWindowClassName().toUTF16(), 0); | |||
| UnregisterClass (getMessageWindowClassName().toWideCharPointer(), 0); | |||
| OleUninitialize(); | |||
| } | |||
| @@ -235,7 +235,7 @@ private: | |||
| uc.lpszUrlPath = file; | |||
| uc.lpszHostName = server; | |||
| if (InternetCrackUrl (address.toUTF16(), 0, 0, &uc)) | |||
| if (InternetCrackUrl (address.toWideCharPointer(), 0, 0, &uc)) | |||
| { | |||
| int disable = 1; | |||
| InternetSetOption (sessionHandle, INTERNET_OPTION_DISABLE_AUTODIAL, &disable, sizeof (disable)); | |||
| @@ -295,7 +295,7 @@ private: | |||
| INTERNET_BUFFERS buffers; | |||
| zerostruct (buffers); | |||
| buffers.dwStructSize = sizeof (INTERNET_BUFFERS); | |||
| buffers.lpcszHeader = headers.toUTF16(); | |||
| buffers.lpcszHeader = headers.toWideCharPointer(); | |||
| buffers.dwHeadersLength = headers.length(); | |||
| buffers.dwBufferTotal = (DWORD) postData.getSize(); | |||
| @@ -55,13 +55,13 @@ namespace | |||
| if (createForWriting) | |||
| { | |||
| if (RegCreateKeyEx (rootKey, name.toUTF16(), 0, 0, REG_OPTION_NON_VOLATILE, | |||
| if (RegCreateKeyEx (rootKey, name.toWideCharPointer(), 0, 0, REG_OPTION_NON_VOLATILE, | |||
| (KEY_WRITE | KEY_QUERY_VALUE), 0, &key, &result) == ERROR_SUCCESS) | |||
| return key; | |||
| } | |||
| else | |||
| { | |||
| if (RegOpenKeyEx (rootKey, name.toUTF16(), 0, KEY_READ, &key) == ERROR_SUCCESS) | |||
| if (RegOpenKeyEx (rootKey, name.toWideCharPointer(), 0, KEY_READ, &key) == ERROR_SUCCESS) | |||
| return key; | |||
| } | |||
| } | |||
| @@ -82,7 +82,7 @@ const String PlatformUtilities::getRegistryValue (const String& regValuePath, | |||
| unsigned long bufferSize = sizeof (buffer); | |||
| DWORD type = REG_SZ; | |||
| if (RegQueryValueEx (k, valueName.toUTF16(), 0, &type, (LPBYTE) buffer, &bufferSize) == ERROR_SUCCESS) | |||
| if (RegQueryValueEx (k, valueName.toWideCharPointer(), 0, &type, (LPBYTE) buffer, &bufferSize) == ERROR_SUCCESS) | |||
| { | |||
| if (type == REG_SZ) | |||
| result = buffer; | |||
| @@ -104,7 +104,7 @@ void PlatformUtilities::setRegistryValue (const String& regValuePath, | |||
| if (k != 0) | |||
| { | |||
| RegSetValueEx (k, valueName.toUTF16(), 0, REG_SZ, | |||
| RegSetValueEx (k, valueName.toWideCharPointer(), 0, REG_SZ, | |||
| (const BYTE*) value.toWideCharPointer(), | |||
| CharPointer_UTF16::getBytesRequiredFor (value.getCharPointer())); | |||
| @@ -124,7 +124,7 @@ bool PlatformUtilities::registryValueExists (const String& regValuePath) | |||
| unsigned long bufferSize = sizeof (buffer); | |||
| DWORD type = 0; | |||
| if (RegQueryValueEx (k, valueName.toUTF16(), 0, &type, buffer, &bufferSize) == ERROR_SUCCESS) | |||
| if (RegQueryValueEx (k, valueName.toWideCharPointer(), 0, &type, buffer, &bufferSize) == ERROR_SUCCESS) | |||
| exists = true; | |||
| RegCloseKey (k); | |||
| @@ -140,7 +140,7 @@ void PlatformUtilities::deleteRegistryValue (const String& regValuePath) | |||
| if (k != 0) | |||
| { | |||
| RegDeleteValue (k, valueName.toUTF16()); | |||
| RegDeleteValue (k, valueName.toWideCharPointer()); | |||
| RegCloseKey (k); | |||
| } | |||
| } | |||
| @@ -152,7 +152,7 @@ void PlatformUtilities::deleteRegistryKey (const String& regKeyPath) | |||
| if (k != 0) | |||
| { | |||
| RegDeleteKey (k, valueName.toUTF16()); | |||
| RegDeleteKey (k, valueName.toWideCharPointer()); | |||
| RegCloseKey (k); | |||
| } | |||
| } | |||
| @@ -220,9 +220,9 @@ void PlatformUtilities::setCurrentModuleInstanceHandle (void* const newHandle) t | |||
| void PlatformUtilities::fpuReset() | |||
| { | |||
| #if JUCE_MSVC | |||
| #if JUCE_MSVC | |||
| _clearfp(); | |||
| #endif | |||
| #endif | |||
| } | |||
| //============================================================================== | |||
| @@ -31,7 +31,7 @@ | |||
| //============================================================================== | |||
| void Logger::outputDebugString (const String& text) | |||
| { | |||
| OutputDebugString ((text + "\n").toUTF16()); | |||
| OutputDebugString ((text + "\n").toWideCharPointer()); | |||
| } | |||
| //============================================================================== | |||
| @@ -303,9 +303,9 @@ void Process::lowerPrivilege() | |||
| void Process::terminate() | |||
| { | |||
| #if JUCE_MSVC && JUCE_CHECK_MEMORY_LEAKS | |||
| #if JUCE_MSVC && JUCE_CHECK_MEMORY_LEAKS | |||
| _CrtDumpMemoryLeaks(); | |||
| #endif | |||
| #endif | |||
| // bullet in the head in case there's a problem shutting down.. | |||
| ExitProcess (0); | |||
| @@ -318,7 +318,7 @@ void* PlatformUtilities::loadDynamicLibrary (const String& name) | |||
| JUCE_TRY | |||
| { | |||
| result = LoadLibrary (name.toUTF16()); | |||
| result = LoadLibrary (name.toWideCharPointer()); | |||
| } | |||
| JUCE_CATCH_ALL | |||
| @@ -58,8 +58,6 @@ static bool shouldDeactivateTitleBar = true; | |||
| #define WM_TRAYNOTIFY WM_USER + 100 | |||
| using ::abs; | |||
| //============================================================================== | |||
| typedef BOOL (WINAPI* UpdateLayeredWinFunc) (HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD); | |||
| static UpdateLayeredWinFunc updateLayeredWindow = 0; | |||
| @@ -188,7 +186,7 @@ public: | |||
| previousBitmap = SelectObject (hdc, hBitmap); | |||
| if (format_ == Image::ARGB && clearImage) | |||
| zeromem (bitmapData, abs (h * lineStride)); | |||
| zeromem (bitmapData, std::abs (h * lineStride)); | |||
| imageData = bitmapData - (lineStride * (h - 1)); | |||
| } | |||
| @@ -470,11 +468,7 @@ public: | |||
| HWND parentToAddTo_) | |||
| : ComponentPeer (component, windowStyleFlags), | |||
| dontRepaint (false), | |||
| #if JUCE_DIRECT2D | |||
| currentRenderingEngine (direct2DRenderingEngine), | |||
| #else | |||
| currentRenderingEngine (softwareRenderingEngine), | |||
| #endif | |||
| fullScreen (false), | |||
| isDragging (false), | |||
| isMouseOver (false), | |||
| @@ -542,7 +536,7 @@ public: | |||
| void setTitle (const String& title) | |||
| { | |||
| SetWindowText (hwnd, title.toUTF16()); | |||
| SetWindowText (hwnd, title.toWideCharPointer()); | |||
| } | |||
| void setPosition (int x, int y) | |||
| @@ -1082,7 +1076,7 @@ private: | |||
| wcex.cbSize = sizeof (wcex); | |||
| wcex.style = CS_OWNDC; | |||
| wcex.lpfnWndProc = (WNDPROC) windowProc; | |||
| wcex.lpszClassName = windowClassName.toUTF16(); | |||
| wcex.lpszClassName = windowClassName.toWideCharPointer(); | |||
| wcex.cbClsExtra = 0; | |||
| wcex.cbWndExtra = 32; | |||
| wcex.hInstance = moduleHandle; | |||
| @@ -1099,7 +1093,7 @@ private: | |||
| ~WindowClassHolder() | |||
| { | |||
| if (ComponentPeer::getNumPeers() == 0) | |||
| UnregisterClass (windowClassName.toUTF16(), (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle()); | |||
| UnregisterClass (windowClassName.toWideCharPointer(), (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle()); | |||
| clearSingletonInstance(); | |||
| } | |||
| @@ -1165,12 +1159,12 @@ private: | |||
| && Desktop::canUseSemiTransparentWindows()) | |||
| exstyle |= WS_EX_LAYERED; | |||
| hwnd = CreateWindowEx (exstyle, WindowClassHolder::getInstance()->windowClassName.toUTF16(), L"", type, 0, 0, 0, 0, | |||
| hwnd = CreateWindowEx (exstyle, WindowClassHolder::getInstance()->windowClassName.toWideCharPointer(), L"", type, 0, 0, 0, 0, | |||
| parentToAddTo, 0, (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle(), 0); | |||
| #if JUCE_DIRECT2D | |||
| updateDirect2DContext(); | |||
| #endif | |||
| #if JUCE_DIRECT2D | |||
| setCurrentRenderingEngine (1); | |||
| #endif | |||
| if (hwnd != 0) | |||
| { | |||
| @@ -1272,7 +1266,7 @@ private: | |||
| //============================================================================== | |||
| void handlePaintMessage() | |||
| { | |||
| #if JUCE_DIRECT2D | |||
| #if JUCE_DIRECT2D | |||
| if (direct2DContext != 0) | |||
| { | |||
| RECT r; | |||
| @@ -1286,7 +1280,8 @@ private: | |||
| } | |||
| } | |||
| else | |||
| #endif | |||
| #endif | |||
| { | |||
| HRGN rgn = CreateRectRgn (0, 0, 0, 0); | |||
| const int regionType = GetUpdateRgn (hwnd, rgn, false); | |||
| @@ -1411,9 +1406,9 @@ private: | |||
| EndPaint (hwnd, &paintStruct); | |||
| } | |||
| #ifndef JUCE_GCC //xxx should add this fn for gcc.. | |||
| #ifndef JUCE_GCC | |||
| _fpreset(); // because some graphics cards can unmask FP exceptions | |||
| #endif | |||
| #endif | |||
| lastPaintTime = Time::getMillisecondCounter(); | |||
| } | |||
| @@ -1428,15 +1423,11 @@ private: | |||
| { | |||
| StringArray s (ComponentPeer::getAvailableRenderingEngines()); | |||
| #if JUCE_DIRECT2D | |||
| // xxx is this correct? Seems to enable it on Vista too?? | |||
| OSVERSIONINFO info; | |||
| zerostruct (info); | |||
| info.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); | |||
| GetVersionEx (&info); | |||
| if (info.dwMajorVersion >= 6) | |||
| #if JUCE_DIRECT2D | |||
| if (SystemStats::getOperatingSystemType() >= SystemStats::Windows7) | |||
| s.add ("Direct2D"); | |||
| #endif | |||
| #endif | |||
| return s; | |||
| } | |||
| @@ -1445,7 +1436,7 @@ private: | |||
| return currentRenderingEngine; | |||
| } | |||
| #if JUCE_DIRECT2D | |||
| #if JUCE_DIRECT2D | |||
| void updateDirect2DContext() | |||
| { | |||
| if (currentRenderingEngine != direct2DRenderingEngine) | |||
| @@ -1453,17 +1444,20 @@ private: | |||
| else if (direct2DContext == 0) | |||
| direct2DContext = new Direct2DLowLevelGraphicsContext (hwnd); | |||
| } | |||
| #endif | |||
| #endif | |||
| void setCurrentRenderingEngine (int index) | |||
| { | |||
| (void) index; | |||
| #if JUCE_DIRECT2D | |||
| currentRenderingEngine = index == 1 ? direct2DRenderingEngine : softwareRenderingEngine; | |||
| updateDirect2DContext(); | |||
| repaint (component->getLocalBounds()); | |||
| #endif | |||
| #if JUCE_DIRECT2D | |||
| if (getAvailableRenderingEngines().size() > 1) | |||
| { | |||
| currentRenderingEngine = index == 1 ? direct2DRenderingEngine : softwareRenderingEngine; | |||
| updateDirect2DContext(); | |||
| repaint (component->getLocalBounds()); | |||
| } | |||
| #endif | |||
| } | |||
| void doMouseMove (const Point<int>& position) | |||
| @@ -2442,7 +2436,7 @@ bool AlertWindow::showNativeDialogBox (const String& title, | |||
| const String& bodyText, | |||
| bool isOkCancel) | |||
| { | |||
| return MessageBox (0, bodyText.toUTF16(), title.toUTF16(), | |||
| return MessageBox (0, bodyText.toWideCharPointer(), title.toWideCharPointer(), | |||
| MB_SETFOREGROUND | (isOkCancel ? MB_OKCANCEL | |||
| : MB_OK)) == IDOK; | |||
| } | |||
| @@ -2720,7 +2714,6 @@ class JuceDropSource : public ComBaseClassHelper <IDropSource> | |||
| { | |||
| public: | |||
| JuceDropSource() {} | |||
| ~JuceDropSource() {} | |||
| HRESULT __stdcall QueryContinueDrag (BOOL escapePressed, DWORD keys) | |||
| { | |||
| @@ -2749,8 +2742,6 @@ public: | |||
| { | |||
| } | |||
| ~JuceEnumFormatEtc() {} | |||
| HRESULT __stdcall Clone (IEnumFORMATETC** result) | |||
| { | |||
| if (result == 0) | |||