-// 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 TRUE;
- }
- else
- {
- delete[] zStr;
- return FALSE;
- }
-}
-
-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 TRUE;
- }
- else
- {
- delete[] zStr;
- return FALSE;
- }
-}
-
-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 TRUE;
- }
- else
- {
- delete[] zStr;
- return FALSE;
- }
-}
-#endif // wxUSE_RESOURCES
-