// Convert 2-digit hex number to decimal
WXDLLIMPEXP_BASE int wxHexToDec(const wxString& buf);
+// Convert 2-digit hex number to decimal
+inline int wxHexToDec(const char* buf)
+{
+ int firstDigit, secondDigit;
+
+ if (buf[0] >= 'A')
+ firstDigit = buf[0] - 'A' + 10;
+ else
+ firstDigit = buf[0] - '0';
+
+ if (buf[1] >= 'A')
+ secondDigit = buf[1] - 'A' + 10;
+ else
+ secondDigit = buf[1] - '0';
+
+ return (firstDigit & 0xF) * 16 + (secondDigit & 0xF );
+}
+
+
// Convert decimal integer to 2-character hex string
WXDLLIMPEXP_BASE void wxDecToHex(int dec, wxChar *buf);
WXDLLIMPEXP_BASE void wxDecToHex(int dec, char* ch1, char* ch2);
void WXDLLIMPEXP_CORE wxGetMousePosition( int* x, int* y );
-// MSW only: get user-defined resource from the .res file.
-// Returns NULL or newly-allocated memory, so use delete[] to clean up.
-#ifdef __WXMSW__
- extern WXDLLIMPEXP_CORE const wxChar* wxUserResourceStr;
- WXDLLIMPEXP_CORE char* wxLoadUserResource(const wxString& resourceName, const wxString& resourceType = wxUserResourceStr, int* pLen = NULL);
-#endif // MSW
-
// ----------------------------------------------------------------------------
// X11 Display access
// ----------------------------------------------------------------------------
// Like wxYield, but fails silently if the yield is recursive.
WXDLLIMPEXP_CORE bool wxYieldIfNeeded();
+// ----------------------------------------------------------------------------
+// Windows resources access
+// ----------------------------------------------------------------------------
+
+// MSW only: get user-defined resource from the .res file.
+#ifdef __WXMSW__
+ // default resource type for wxLoadUserResource()
+ extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxUserResourceStr;
+
+ // Return the pointer to the resource data. This pointer is read-only, use
+ // the overload below if you need to modify the data.
+ //
+ // Returns true on success, false on failure. Doesn't log an error message
+ // if the resource is not found (because this could be expected) but does
+ // log one if any other error occurs.
+ WXDLLIMPEXP_BASE bool
+ wxLoadUserResource(const void **outData,
+ size_t *outLen,
+ const wxString& resourceName,
+ const wxString& resourceType = wxUserResourceStr,
+ WXHINSTANCE module = 0);
+
+ // This function allocates a new buffer and makes a copy of the resource
+ // data, remember to delete[] the buffer. And avoid using it entirely if
+ // the overload above can be used.
+ //
+ // Returns NULL on failure.
+ WXDLLIMPEXP_BASE char*
+ wxLoadUserResource(const wxString& resourceName,
+ const wxString& resourceType = wxUserResourceStr,
+ int* pLen = NULL,
+ WXHINSTANCE module = 0);
+#endif // MSW
+
#endif
// _WX_UTILSH__