-// Chris Breeze 27/5/98: revised WIN32 code to
-// detect WindowsNT correctly
-int wxGetOsVersion(
- int* pMajorVsn
-, int* pMinorVsn
-)
-{
- ULONG ulSysInfo[QSV_MAX] = {0};
-
- if (::DosQuerySysInfo( 1L
- ,QSV_MAX
- ,(PVOID)ulSysInfo
- ,sizeof(ULONG) * QSV_MAX
- ))
- {
- *pMajorVsn = ulSysInfo[QSV_VERSION_MAJOR];
- *pMinorVsn = ulSysInfo[QSV_VERSION_MINOR];
- return wxWINDOWS_OS2;
- }
- return wxWINDOWS; // error if we get here, return generic value
-}
-
-// Reading and writing resources (eg WIN.INI, .Xdefaults)
-#if wxUSE_RESOURCES
-bool wxWriteResource(
- const wxString& rSection
-, const wxString& rEntry
-, const wxString& rValue
-, const wxString& rFile
-)
-{
- HAB hab;
- HINI hIni;
-
- if (rFile != "")
- {
- hIni = ::PrfOpenProfile(hab, (PSZ)WXSTRINGCAST rFile);
- if (hIni != 0L)
- {
- return (::PrfWriteProfileString( hIni
- ,(PSZ)WXSTRINGCAST rSection
- ,(PSZ)WXSTRINGCAST rEntry
- ,(PSZ)WXSTRINGCAST rValue
- ));
- }
- }
- else
- return (::PrfWriteProfileString( HINI_PROFILE
- ,(PSZ)WXSTRINGCAST rSection
- ,(PSZ)WXSTRINGCAST rEntry
- ,(PSZ)WXSTRINGCAST rValue
- ));
- return FALSE;
-}
-
-bool wxWriteResource(
- const wxString& rSection
-, const wxString& rEntry
-, float fValue
-, const wxString& rFile
-)
-{
- wxChar zBuf[50];
-
- wxSprintf(zBuf, "%.4f", fValue);
- return wxWriteResource( rSection
- ,rEntry
- ,zBuf
- ,rFile
- );
-}
-
-bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file)
-{
- wxChar buf[50];
- wxSprintf(buf, "%ld", value);
- return wxWriteResource(section, entry, buf, file);
-}
-
-bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file)
-{
- wxChar buf[50];
- wxSprintf(buf, "%d", value);
- return wxWriteResource(section, entry, buf, file);
-}
-
-bool wxGetResource(const wxString& section, const wxString& entry, wxChar **value, const wxString& file)
-{
- HAB hab;
- HINI hIni;
- static const wxChar defunkt[] = _T("$$default");
-
- if (file != "")
- {
- hIni = ::PrfOpenProfile(hab, (PSZ)WXSTRINGCAST file);
- if (hIni != 0L)
- {
- ULONG n = ::PrfQueryProfileString( hIni
- ,(PSZ)WXSTRINGCAST section
- ,(PSZ)WXSTRINGCAST entry
- ,(PSZ)defunkt
- ,(void*)wxBuffer
- ,1000
- );
- if (n == 0L || wxStrcmp(wxBuffer, defunkt) == 0)
- return FALSE;
- }
- else
- return FALSE;
- }
- else
- {
- ULONG n = ::PrfQueryProfileString( HINI_PROFILE
- ,(PSZ)WXSTRINGCAST section
- ,(PSZ)WXSTRINGCAST entry
- ,(PSZ)defunkt
- ,(void*)wxBuffer
- ,1000
- );
- if (n == 0L || wxStrcmp(wxBuffer, defunkt) == 0)
- return FALSE;
- }
- if (*value)
- delete[] (*value);
- *value = copystring(wxBuffer);
- return TRUE;
-}