************************************************** * Creates a session from UserName and Password * * Populates object reference and returns session id * ************************************************** LPARAMETERS lcUserName, lcPassword, llDownloadMail LOCAL lnHandle, lnProfiles, lnDataSize, lcDefaultProfile DECLARE INTEGER RegOpenKeyEx IN Win32API ; INTEGER nStartHandle, ; STRING cKeyToOpen, ; INTEGER nReservedZero, ; INTEGER nSecurityAccess, ; INTEGER @nOpenHandle DECLARE INTEGER RegQueryValueEx IN Win32API ; INTEGER nOpenHandle, ; STRING cValueToQuery, ; INTEGER nReservedZero, ; INTEGER nValueType, ; STRING @cDataBuffer, ; INTEGER @nSizeOfData DECLARE INTEGER RegQueryInfoKey IN Win32API ; INTEGER nOpenHandle, ; STRING cClassString, ; INTEGER nSizeOfClassString, ; INTEGER nReservedNull, ; INTEGER @nSubKeys, ; INTEGER nLongestSubKey, ; INTEGER nLongestClass, ; INTEGER nValues, ; INTEGER nLongestValueName, ; INTEGER nLongestValueData, ; INTEGER nSecurityDescriptor, ; INTEGER nLastWriteTime STORE 0 TO lnHandle, lnProfiles STORE 254 TO lnDataSize STORE SPACE(lnDataSize) TO lcDefaultProfile *- Open the MAPI Profiles key RegOpenKeyEx(-2147483647, "Software\Microsoft\Windows Messaging Subsystem\Profiles", 0, 0, @lnHandle) *- Find out how many profiles exist RegQueryInfoKey(lnHandle, "", 0, 0, @lnProfiles, 0, 0, 0, 0, 0, 0, 0) IF lnProfiles>1 *- Identify the default profile RegQueryValueEx(lnHandle, "DefaultProfile", 0, 0, @lcDefaultProfile, @lnDataSize) ENDIF lcOldFolder=SYS(5)+SYS(2003) IF TYPE("THIS.oSession")='O' IF THIS.oSession.UserName=lcUserName ; AND THIS.oSession.Password=lcPassword RETURN THIS.oSession.SessionID ELSE THIS.oSession.SignOff() ENDIF ENDIF THIS.oSession=CREATEOBJECT("MSMAPI.MAPISession.1") IF lnProfiles=>1 *- Create new session if multi-profile This.oSession.NewSession=.T. ENDIF THIS.oSession.UserName=lcUserName IF lnProfiles=>1 AND EMPTY(lcUserName) *- Use default profile if no profile specified This.oSession.UserName=lcDefaultProfile ENDIF THIS.oSession.Password=lcPassword THIS.oSession.DownloadMail=llDownloadMail THIS.oSession.SignOn() && this fires the Internet Connection Wizard! SET DEFAULT TO (lcOldFolder) && why is this poiting to Outlook Express when we use Out Look? RETURN THIS.oSession.SessionID