Programmatically Discovering Profile Names and the Default Profile

Application programs can examine the Windows registry to determine the names of the profiles set up for a user, as well as which profile is the user’s default profile. The registry key used for this purpose on a Windows 9x system is:

HKEY_CURRENT_USER\Software\Microsoft\Windows Messaging Subsystem\Profiles

On Windows NT, the key is:

HKEY_CURRENT_USER\Software\Microsoft\WINDOWS NT\CURRENTVERSION\Windows Messaging 
Subsystem\Profiles

Regardless of operating system, the key has a string value called DefaultProfile that contains the name of the user’s default MAPI profile (if the user has a default profile). In addition, the key has a subkey for each profile that has been set up for the user. The name of each subkey corresponds to the name of the associated profile. Example 2-3 shows two functions for accessing this information on a Windows 9x machine. GetDefaultProfileName returns the user’s default profile name, and GetProfileNames returns a string array containing the names of the user’s profiles. As in Example 2-2, several registry-related constants and API functions must be declared.

Example 2-3. Obtaining Profile Names from the Windows 9x Registry

' Place these declarations at the module level. Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_CURRENT_USER = &H80000001 Public Const KEY_QUERY_VALUE = &H1 Public Const ERROR_SUCCESS = 0& Public Const ERROR_FILE_NOT_FOUND = 2& Public Type FILETIME dwLowDateTime ...

Get CDO & MAPI Programming with Visual Basic: now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.