|
|
|
@@ -1658,9 +1658,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 |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef JUCE_DLL |
|
|
|
@@ -1779,7 +1785,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; |
|
|
|
@@ -71021,15 +71027,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; |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -242089,7 +242093,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; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -242110,7 +242114,7 @@ void* DynamicLibraryLoader::findProcAddress (const String& functionName) |
|
|
|
|
|
|
|
void Logger::outputDebugString (const String& text) |
|
|
|
{ |
|
|
|
OutputDebugString ((text + "\n").toUTF16()); |
|
|
|
OutputDebugString ((text + "\n").toWideCharPointer()); |
|
|
|
} |
|
|
|
|
|
|
|
static int64 hiResTicksPerSecond; |
|
|
|
@@ -242698,9 +242702,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); |
|
|
|
@@ -242712,7 +242716,7 @@ void* PlatformUtilities::loadDynamicLibrary (const String& name) |
|
|
|
|
|
|
|
JUCE_TRY |
|
|
|
{ |
|
|
|
result = LoadLibrary (name.toUTF16()); |
|
|
|
result = LoadLibrary (name.toWideCharPointer()); |
|
|
|
} |
|
|
|
JUCE_CATCH_ALL |
|
|
|
|
|
|
|
@@ -242880,7 +242884,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; |
|
|
|
|
|
|
|
@@ -242889,7 +242893,7 @@ namespace WindowsFileHelpers |
|
|
|
|
|
|
|
unsigned int getWindowsDriveType (const String& path) |
|
|
|
{ |
|
|
|
return GetDriveType (getDriveFromPath (path).toUTF16()); |
|
|
|
return GetDriveType (getDriveFromPath (path).toWideCharPointer()); |
|
|
|
} |
|
|
|
|
|
|
|
const File getSpecialFolderPath (int type) |
|
|
|
@@ -242909,25 +242913,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.. |
|
|
|
@@ -242936,7 +242940,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; |
|
|
|
@@ -242949,22 +242953,21 @@ 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; |
|
|
|
} |
|
|
|
|
|
|
|
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 |
|
|
|
@@ -242990,17 +242993,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); |
|
|
|
} |
|
|
|
|
|
|
|
int64 juce_fileSetPosition (void* handle, int64 pos) |
|
|
|
@@ -243015,7 +243018,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) |
|
|
|
@@ -243041,7 +243044,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) |
|
|
|
@@ -243085,7 +243088,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; |
|
|
|
@@ -243096,7 +243099,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); |
|
|
|
@@ -243113,7 +243116,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) |
|
|
|
@@ -243161,7 +243164,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; |
|
|
|
|
|
|
|
@@ -243173,7 +243176,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; |
|
|
|
|
|
|
|
@@ -243282,7 +243285,7 @@ const File File::getCurrentWorkingDirectory() |
|
|
|
|
|
|
|
bool File::setAsCurrentWorkingDirectory() const |
|
|
|
{ |
|
|
|
return SetCurrentDirectory (getFullPathName().toUTF16()) != FALSE; |
|
|
|
return SetCurrentDirectory (getFullPathName().toWideCharPointer()) != FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
const String File::getVersion() const |
|
|
|
@@ -243290,11 +243293,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; |
|
|
|
@@ -243327,7 +243330,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; |
|
|
|
@@ -243366,7 +243369,7 @@ public: |
|
|
|
|
|
|
|
if (handle == INVALID_HANDLE_VALUE) |
|
|
|
{ |
|
|
|
handle = FindFirstFile (directoryWithWildCard.toUTF16(), &findData); |
|
|
|
handle = FindFirstFile (directoryWithWildCard.toWideCharPointer(), &findData); |
|
|
|
|
|
|
|
if (handle == INVALID_HANDLE_VALUE) |
|
|
|
return false; |
|
|
|
@@ -243418,7 +243421,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 |
|
|
|
|
|
|
|
@@ -243444,9 +243447,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); |
|
|
|
} |
|
|
|
|
|
|
|
@@ -243870,7 +243873,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)); |
|
|
|
@@ -243930,7 +243933,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(); |
|
|
|
|
|
|
|
@@ -244158,13 +244161,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; |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -244185,7 +244188,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; |
|
|
|
@@ -244207,7 +244210,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())); |
|
|
|
|
|
|
|
@@ -244227,7 +244230,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); |
|
|
|
@@ -244243,7 +244246,7 @@ void PlatformUtilities::deleteRegistryValue (const String& regValuePath) |
|
|
|
|
|
|
|
if (k != 0) |
|
|
|
{ |
|
|
|
RegDeleteValue (k, valueName.toUTF16()); |
|
|
|
RegDeleteValue (k, valueName.toWideCharPointer()); |
|
|
|
RegCloseKey (k); |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -244255,7 +244258,7 @@ void PlatformUtilities::deleteRegistryKey (const String& regKeyPath) |
|
|
|
|
|
|
|
if (k != 0) |
|
|
|
{ |
|
|
|
RegDeleteKey (k, valueName.toUTF16()); |
|
|
|
RegDeleteKey (k, valueName.toWideCharPointer()); |
|
|
|
RegCloseKey (k); |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -244319,9 +244322,9 @@ void PlatformUtilities::setCurrentModuleInstanceHandle (void* const newHandle) t |
|
|
|
|
|
|
|
void PlatformUtilities::fpuReset() |
|
|
|
{ |
|
|
|
#if JUCE_MSVC |
|
|
|
#if JUCE_MSVC |
|
|
|
_clearfp(); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
void PlatformUtilities::beep() |
|
|
|
@@ -244589,7 +244592,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); |
|
|
|
|
|
|
|
@@ -244602,7 +244605,7 @@ void MessageManager::doPlatformSpecificInitialisation() |
|
|
|
void MessageManager::doPlatformSpecificShutdown() |
|
|
|
{ |
|
|
|
DestroyWindow (juce_messageWindowHandle); |
|
|
|
UnregisterClass (getMessageWindowClassName().toUTF16(), 0); |
|
|
|
UnregisterClass (getMessageWindowClassName().toWideCharPointer(), 0); |
|
|
|
OleUninitialize(); |
|
|
|
} |
|
|
|
|
|
|
|
@@ -245901,8 +245904,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; |
|
|
|
|
|
|
|
@@ -246027,7 +246028,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)); |
|
|
|
} |
|
|
|
@@ -246303,11 +246304,7 @@ public: |
|
|
|
HWND parentToAddTo_) |
|
|
|
: ComponentPeer (component, windowStyleFlags), |
|
|
|
dontRepaint (false), |
|
|
|
#if JUCE_DIRECT2D |
|
|
|
currentRenderingEngine (direct2DRenderingEngine), |
|
|
|
#else |
|
|
|
currentRenderingEngine (softwareRenderingEngine), |
|
|
|
#endif |
|
|
|
fullScreen (false), |
|
|
|
isDragging (false), |
|
|
|
isMouseOver (false), |
|
|
|
@@ -246374,7 +246371,7 @@ public: |
|
|
|
|
|
|
|
void setTitle (const String& title) |
|
|
|
{ |
|
|
|
SetWindowText (hwnd, title.toUTF16()); |
|
|
|
SetWindowText (hwnd, title.toWideCharPointer()); |
|
|
|
} |
|
|
|
|
|
|
|
void setPosition (int x, int y) |
|
|
|
@@ -246905,7 +246902,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; |
|
|
|
@@ -246922,7 +246919,7 @@ private: |
|
|
|
~WindowClassHolder() |
|
|
|
{ |
|
|
|
if (ComponentPeer::getNumPeers() == 0) |
|
|
|
UnregisterClass (windowClassName.toUTF16(), (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle()); |
|
|
|
UnregisterClass (windowClassName.toWideCharPointer(), (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle()); |
|
|
|
|
|
|
|
clearSingletonInstance(); |
|
|
|
} |
|
|
|
@@ -246987,12 +246984,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) |
|
|
|
{ |
|
|
|
@@ -247092,7 +247089,7 @@ private: |
|
|
|
|
|
|
|
void handlePaintMessage() |
|
|
|
{ |
|
|
|
#if JUCE_DIRECT2D |
|
|
|
#if JUCE_DIRECT2D |
|
|
|
if (direct2DContext != 0) |
|
|
|
{ |
|
|
|
RECT r; |
|
|
|
@@ -247106,7 +247103,8 @@ private: |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
{ |
|
|
|
HRGN rgn = CreateRectRgn (0, 0, 0, 0); |
|
|
|
const int regionType = GetUpdateRgn (hwnd, rgn, false); |
|
|
|
@@ -247231,9 +247229,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(); |
|
|
|
} |
|
|
|
@@ -247247,15 +247245,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; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -247264,7 +247258,7 @@ private: |
|
|
|
return currentRenderingEngine; |
|
|
|
} |
|
|
|
|
|
|
|
#if JUCE_DIRECT2D |
|
|
|
#if JUCE_DIRECT2D |
|
|
|
void updateDirect2DContext() |
|
|
|
{ |
|
|
|
if (currentRenderingEngine != direct2DRenderingEngine) |
|
|
|
@@ -247272,17 +247266,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) |
|
|
|
@@ -248246,7 +248243,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; |
|
|
|
} |
|
|
|
@@ -248513,7 +248510,6 @@ class JuceDropSource : public ComBaseClassHelper <IDropSource> |
|
|
|
{ |
|
|
|
public: |
|
|
|
JuceDropSource() {} |
|
|
|
~JuceDropSource() {} |
|
|
|
|
|
|
|
HRESULT __stdcall QueryContinueDrag (BOOL escapePressed, DWORD keys) |
|
|
|
{ |
|
|
|
@@ -248541,8 +248537,6 @@ public: |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
~JuceEnumFormatEtc() {} |
|
|
|
|
|
|
|
HRESULT __stdcall Clone (IEnumFORMATETC** result) |
|
|
|
{ |
|
|
|
if (result == 0) |
|
|
|
@@ -248939,7 +248933,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 |
|
|
|
@@ -249006,8 +249000,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; |
|
|
|
|
|
|
|
@@ -249115,7 +249109,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; } |
|
|
|
@@ -249140,7 +249133,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; } |
|
|
|
@@ -253710,7 +253702,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) |
|
|
|
{ |
|
|
|
@@ -254690,7 +254682,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; |
|
|
|
@@ -257455,7 +257447,7 @@ public: |
|
|
|
|
|
|
|
if (SUCCEEDED (hr)) |
|
|
|
{ |
|
|
|
hr = fileSink->SetFileName (file.getFullPathName().toUTF16(), 0); |
|
|
|
hr = fileSink->SetFileName (file.getFullPathName().toWideCharPointer(), 0); |
|
|
|
|
|
|
|
if (SUCCEEDED (hr)) |
|
|
|
{ |
|
|
|
@@ -257499,7 +257491,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)) |
|
|
|
|