wpRestoreData
Appearance
This instance method is called to allow the object to restore its binary instance data.
Syntax
_wpRestoreData(somSelf, pszClass, ulKey, pValue, pcbValue)
Parameters
- somSelf (WPObject *) - input
- Pointer to the object on which the method is being invoked.
- Points to an object of class WPObject.
- pszClass (PSZ) - input
- Pointer to the class name.
- A pointer to a zero-terminated string that contains any unique string. The class name is recommended but not enforced.
- ulKey (ULONG) - input
- Class-defined identifier.
- A class-defined identifier that correlates to a particular instance data variable.
- pValue (PBYTE) - in/out
- Address of the data to be restored.
- pcbValue (PULONG) - in/out
- Size of the data block to be restored.
- If pValue is NULL, the actual size is returned in pcbValue.
Returns
- rc (BOOL) - returns
- Success indicator.
- TRUE: Successful completion.
- FALSE: Error occurred.
Remarks
This method restores data that was saved by a call to wpSaveData.
Usage
This method can be called only during the processing of the wpRestoreState method.
How to Override
This method is generally not overridden.
Example Code
Declaration:
#define INCL_WINWORKPLACE #include <os2.h> WPObject *somSelf; /* Pointer to the object on which the method is being invoked. */ PSZ pszClass; /* Pointer to the class name. */ ULONG ulKey; /* Class-defined identifier. */ PBYTE pValue; /* Address of the data to be restored. */ PULONG pcbValue; /* Size of the data block to be restored. */ BOOL rc; /* Success indicator. */ rc = _wpRestoreData(somSelf, pszClass, ulKey, pValue, pcbValue);
In this example, wpRestoreState is overridden to restore data from the OS2.INI file.
SOM_Scope void SOMLINK UserSetTitle(nbk *somSelf,
PSZ pszNewTitle)
{
nbkData *somThis = nbkGetData(somSelf);
nbkMethodDebug("nbk","UserSetTitle");
strcpy ( _title, pszNewTitle );
}
/*
* Override of wpRestoreState method to restore our data
* from the OS2.INI file.
*/
SOM_Scope BOOL SOMLINK wpRestoreState(nbk *somSelf,
ULONG ulReserved)
{
BOOL fSuccess;
ULONG ulCount;
CHAR buf[40];
nbkData *somThis = nbkGetData(somSelf);
nbkMethodDebug("nbk","wpRestoreState");
ulCount = 40; /* Length of data buffer */
fSuccess = _wpRestoreData ( somSelf /* Our pointer */
, (PSZ) "nbk" /* Name of class */
, WPNBK_KEY /* Key of data requested */
, (PBYTE) &buf /* Where to put data */
, &ulCount ); /* Length of data returned */
if ( !fSuccess )
{
/* first time the object is being restored */
/* initialize string to NULL */
strcpy ( buf, "" );
/* Save initial string to OS2.INI file */
_wpSaveData ( somSelf /* Pointer to ourself */
, (PSZ) "nbk" /* Class name */
, WPNBK_KEY /* Key of data */
, (PBYTE) buf /* Pointer to data */
, 40 ); /* Length of data to write */
} /* endif */
_UserSetTitle ( somSelf, buf );
return (parent_wpRestoreState(somSelf,ulReserved));
}