Sample: testall =============== DESCRIPTION: This program illustrates the use of the SMS APIs to examine either a site container, a jobs container, or a package container. The only difference in code between them is the setting of filters. For the specified container, this program will set a standard set of filters for that container type, and then begin enumeration of that container and all the folders within it. After the preliminary work of soliciting from the user the datasource information and making a connection to that datasource, the program then solicits the container type to enumerate and sets appropriate filters (see below). A loop is then entered which retrieves and stores the handles of all folders in that container. The container is then closed. Closing a container as soon as possible has a space advantage in that an open parent causes a folder's reference count to be incremented. The folder will not be closed until this count reaches zero. If the container is left open then no folders at all will be removed from memory. We then loop through the list of folders and display them one at a time, after which the program either terminates or restarts (using the same datasource), according to the user's request. Displaying folders. This is accomplished in the DisplayFolder() function. API USAGE: The following APIs are used in this program: SmsAPIVer SmsDataSourceConnect SmsDataSourceDisconnect SmsOpenContainer SmsSetFilter SmsPopulate SmsGetFolderCount SmsCloseContainer SmsCreateFilter SmsGetToken SmsGetTokenCount SmsAddToken SmsCloseFilter SmsGetFolderID SmsGetFolderType SmsGetNextFolder SmsGetScalarCount SmsGetNextScalar SmsCloseFolder 1. Site hierarchy ----------------- This program will display the site/domain/machine/MIF group tree for the associated datasource according to certain filter conditions. o site filter: select either root site or specific site. o architecture filter: select machines of architecture Personal Computer. o machine filter: only machines with SystemRole=Server. o group filter: select the identification group. o greoup filter: select the netcard group. 2. Jobs ------- The user can select from the following types of jobs: workstation install, server share, remove package, system. Selections are ORed together, thus it is possible to select both workstation install and remove package jobs. It is also possible to select none of the above in which case the system defaults to selecting all of them. This might sound illogical, quite the contrary. A filter is a restriction, if there are no restrictions then none are disallowed. 3. Packages ----------- This uses the package filter to allow selection of any or all of the following types of packages: o Workstation o Server o Inventory The program will enumerate all folders in the specified container, for each folder it will display all scalars and then enumerate all sub-folders.