// Returns NULL or newly-allocated memory, so use delete[] to clean up.
#ifndef __WXMICROWIN__
-wxChar *wxLoadUserResource(const wxString& resourceName, const wxString& resourceType)
+char *wxLoadUserResource(const wxString& resourceName, const wxString& resourceType, int* pLen /* = NULL */)
{
HRSRC hResource = ::FindResource(wxGetInstance(),
resourceName.wx_str(),
if ( hData == 0 )
return NULL;
- wxChar *theText = (wxChar *)::LockResource(hData);
+ void *theText = ::LockResource(hData);
if ( !theText )
return NULL;
// Not all compilers put a zero at the end of the resource (e.g. BC++ doesn't).
// so we need to find the length of the resource.
- int len = ::SizeofResource(wxGetInstance(), hResource) + 1;
- wxChar *s = new wxChar[len];
- wxStrlcpy(s, theText, len);
+ int len = ::SizeofResource(wxGetInstance(), hResource);
+ char *s = new char[len + 1];
+ memcpy(s, theText, len);
+ s[len] = '\0'; // NUL-terminate in case the resource itself wasn't
// Obsolete in WIN32
#ifndef __WIN32__
// No need??
// GlobalFree(hData);
+ if (pLen)
+ *pLen = len;
+
return s;
}
#endif // __WXMICROWIN__
// Metafile helpers
// ----------------------------------------------------------------------------
-extern void PixelToHIMETRIC(LONG *x, LONG *y)
+void PixelToHIMETRIC(LONG *x, LONG *y, HDC hdcRef)
{
- ScreenHDC hdcRef;
-
int iWidthMM = GetDeviceCaps(hdcRef, HORZSIZE),
iHeightMM = GetDeviceCaps(hdcRef, VERTSIZE),
iWidthPels = GetDeviceCaps(hdcRef, HORZRES),
*y /= iHeightPels;
}
-extern void HIMETRICToPixel(LONG *x, LONG *y)
+void HIMETRICToPixel(LONG *x, LONG *y, HDC hdcRef)
{
- ScreenHDC hdcRef;
-
int iWidthMM = GetDeviceCaps(hdcRef, HORZSIZE),
iHeightMM = GetDeviceCaps(hdcRef, VERTSIZE),
iWidthPels = GetDeviceCaps(hdcRef, HORZRES),
*y /= (iHeightMM * 100);
}
+void HIMETRICToPixel(LONG *x, LONG *y)
+{
+ HIMETRICToPixel(x, y, ScreenHDC());
+}
+
+void PixelToHIMETRIC(LONG *x, LONG *y)
+{
+ PixelToHIMETRIC(x, y, ScreenHDC());
+}
+
void wxDrawLine(HDC hdc, int x1, int y1, int x2, int y2)
{
#ifdef __WXWINCE__
s_initialized = true;
wxLogNull nolog;
- wxDynamicLibrary dll(_T("shlwapi.dll"));
+ wxDynamicLibrary dll(wxT("shlwapi.dll"));
if ( dll.IsLoaded() )
{
s_pfnSHAutoComplete =
- (SHAutoComplete_t)dll.GetSymbol(_T("SHAutoComplete"));
+ (SHAutoComplete_t)dll.GetSymbol(wxT("SHAutoComplete"));
if ( s_pfnSHAutoComplete )
{
// won't be unloaded until the process termination, no big deal
HRESULT hr = s_pfnSHAutoComplete(hwnd, 0x10 /* SHACF_FILESYS_ONLY */);
if ( FAILED(hr) )
{
- wxLogApiError(_T("SHAutoComplete"), hr);
+ wxLogApiError(wxT("SHAutoComplete"), hr);
return false;
}
WinStruct<SHELLEXECUTEINFO> sei;
sei.lpFile = document.wx_str();
- sei.lpVerb = _T("open");
+ sei.lpVerb = wxT("open");
#ifdef __WXWINCE__
sei.nShow = SW_SHOWNORMAL; // SW_SHOWDEFAULT not defined under CE (#10216)
#else
bool wxDoLaunchDefaultBrowser(const wxString& url, const wxString& scheme, int flags)
{
wxUnusedVar(flags);
-
+
#if wxUSE_IPC
if ( flags & wxBROWSER_NEW_WINDOW )
{
// ShellExecuteEx() opens the URL in an existing window by default so
// we can't use it if we need a new window
- wxRegKey key(wxRegKey::HKCR, scheme + _T("\\shell\\open"));
+ wxRegKey key(wxRegKey::HKCR, scheme + wxT("\\shell\\open"));
if ( !key.Exists() )
{
// try the default browser, it must be registered at least for http URLs
- key.SetName(wxRegKey::HKCR, _T("http\\shell\\open"));
+ key.SetName(wxRegKey::HKCR, wxT("http\\shell\\open"));
}
if ( key.Exists() )
WinStruct<SHELLEXECUTEINFO> sei;
sei.lpFile = url.c_str();
- sei.lpVerb = _T("open");
+ sei.lpVerb = wxT("open");
sei.nShow = SW_SHOWNORMAL;
sei.fMask = SEE_MASK_FLAG_NO_UI; // we give error message ourselves