-// 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 = 0;
- HINI hIni = 0;
-
- if (!rFile.empty())
- {
- 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& rSection
-, const wxString& rEntry
-, long lValue
-, const wxString& rFile
-)
-{
- wxChar zBuf[50];
-
- wxSprintf(zBuf, "%ld", lValue);
- return wxWriteResource( rSection
- ,rEntry
- ,zBuf
- ,rFile
- );
-}
-
-bool wxWriteResource( const wxString& rSection,
- const wxString& rEntry,
- int lValue,
- const wxString& rFile )
-{
- wxChar zBuf[50];
-
- wxSprintf(zBuf, "%d", lValue);
- return wxWriteResource( rSection, rEntry, zBuf, rFile );
-}
-
-bool wxGetResource( const wxString& rSection,
- const wxString& rEntry,
- wxChar** ppValue,
- const wxString& rFile )
-{
- HAB hab = 0;
- HINI hIni = 0;
- wxChar zDefunkt[] = _T("$$default");
- char zBuf[1000];
-
- if (!rFile.empty())
- {
- hIni = ::PrfOpenProfile(hab, (PSZ)WXSTRINGCAST rFile);
- if (hIni != 0L)
- {
- ULONG n = ::PrfQueryProfileString( hIni
- ,(PSZ)WXSTRINGCAST rSection
- ,(PSZ)WXSTRINGCAST rEntry
- ,(PSZ)zDefunkt
- ,(PVOID)zBuf
- ,1000
- );
- if (zBuf == NULL)
- return false;
- if (n == 0L || wxStrcmp(zBuf, zDefunkt) == 0)
- return false;
- zBuf[n-1] = '\0';
- }
- else
- return false;
- }
- else
- {
- ULONG n = ::PrfQueryProfileString( HINI_PROFILE
- ,(PSZ)WXSTRINGCAST rSection
- ,(PSZ)WXSTRINGCAST rEntry
- ,(PSZ)zDefunkt
- ,(PVOID)zBuf
- ,1000
- );
- if (zBuf == NULL)
- return false;
- if (n == 0L || wxStrcmp(zBuf, zDefunkt) == 0)
- return false;
- zBuf[n-1] = '\0';
- }
- strcpy((char*)*ppValue, zBuf);
- return true;
-}
-
-bool wxGetResource( const wxString& rSection,
- const wxString& rEntry,
- float* pValue,
- const wxString& rFile )
-{
- wxChar* zStr = NULL;
-
- zStr = new wxChar[1000];
- bool bSucc = wxGetResource( rSection, rEntry, (wxChar **)&zStr, rFile );
-
- if (bSucc)
- {
- *pValue = (float)wxStrtod(zStr, NULL);
- }
-
- delete[] zStr;
- return bSucc;
-}
-
-bool wxGetResource( const wxString& rSection,
- const wxString& rEntry,
- long* pValue,
- const wxString& rFile )
-{
- wxChar* zStr = NULL;
-
- zStr = new wxChar[1000];
- bool bSucc = wxGetResource( rSection, rEntry, (wxChar **)&zStr, rFile );
-
- if (bSucc)
- {
- *pValue = wxStrtol(zStr, NULL, 10);
- }
-
- delete[] zStr;
- return bSucc;
-}
-
-bool wxGetResource( const wxString& rSection,
- const wxString& rEntry,
- int* pValue,
- const wxString& rFile )
-{
- wxChar* zStr = NULL;
-
- zStr = new wxChar[1000];
- bool bSucc = wxGetResource( rSection, rEntry, (wxChar **)&zStr, rFile );
-
- if (bSucc)
- {
- *pValue = (int)wxStrtol(zStr, NULL, 10);
- }
-
- delete[] zStr;
- return bSucc;
-}
-#endif // wxUSE_RESOURCES
-