Applications can create and destroy object instances of Workplace Shell classes by calling WinCreateObject and WinDestroyObject. To create an object, an application must specify the object's:
Each object class defines a set of keynames that can be used to control the attributes and behavior of its objects. An object's setup information is processed by wpSetup inherited from WPObject. The wpSetup method is called when the object is created by WinCreateObject. Every Workplace Shell class inherits the set of keynames defined for the WPObject class, and can define additional ones that are unique to that class. Keynames and the values supported by the WPObject class are listed in the "Workplace Shell Setup Strings" subsection of the "Object Initialization and Termination: Setup/Cleanup Methods" section.
Newly created objects need to be placed somewhere on the Desktop, either directly on the Desktop or in a folder. All Workplace Shell objects have object IDs associated with them. The following table shows the object IDs associated with system folders. When an object is created by WinCreateObject, an application can specify its location as one of the predefined system folders.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³ID ³System Folder ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_CONFIG ³System setup folder. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_DESKTOP ³Desktop. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_DRIVE ³Drives folder. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_INFO ³Information folder. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_NOWHERE ³Hidden folder. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_START ³Startup folder. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_SYSTEM ³System folder. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WP_TEMPS ³Templates folder. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
WinCreateObject returns a handle to the newly created object. This handle is persistent and can be used at any time to reference the object. Applications that did not create the object can get a handle to the object by calling WinQueryObject. WinQueryObject requires either a full path name for a file object or an object ID.
Applications that get a handle to an object can change the behavior or state of that object by calling WinSetObjectData. This function results in the Workplace Shell calling the object's wpSetup method. By specifying a value for keyname variables defined for the object's class, an application, can effect changes to objects that already exist on the Desktop. The process of effecting changes to existing objects on the Desktop is summarized in the following figure:
/* Use ObjectID to get the handle to the object */ WinQueryObject(...); /* Put keyname values in a setup string */ pszSetupString="KEYNAME1=value;..."; /* Change the behavior of an existing object */ WinSetObjectData(...);