Hola,
No estoy seguro qué es lo que quieres hacer, pero si es para acceder a Office 365 Outlook, te digo lo que nosotros hacemos.
El usuario tiene un "default" profile asignado a su Outlook y ese perfil está marcado como siempre ser usado en windows. En el momento que haya connectado a su peril por primera vez, ya introdujo sus credentiales.
Gracias a ello, cuando desde Powerbuilder queremos acceder al correo de Outlook, hacemos el Logon() sin tener que especificar ninguna contraseña en el segundo parametro.
In el código aquí abajo asigno "Default" como perfil a la variable local ls_OutlookProfile, pero en realidad ese valor la buscamos en el registro de windows.
Espero que te sirva para algo. Si no tendrás que mirar en las páginas de Microsoft como autenticar.
string ls_OutlookProfile
oleobject lOutlookApp, loleNameSpace
ls_OutlookProfile = 'Default'
lOutlookApp = create oleobject
// u2, mjl, 08/08/17: IMPORTANT COMMENT: ConnectToNewObject fails if Outlook is "already open" and you are NOT running the EXE, and when using Outlook 365 / 2016 and up.
// (when running the exe it's working fine). (POSSIBLY this is no longer the true in 2020 !!! Outlook keeps changing little behaviour all the time).
If lOutlookApp.ConnectToNewObject("Outlook.Application") <> 0 Then
loleNameSpace = lOutlookApp.GetNameSpace('MAPI')
try
loleNameSpace.Logon(ls_OutlookProfile, '', false, false) // 2nd parameter (password) is empty.
catch (oleruntimeError oe)
Messagebox("Error", oe.getmessage() )
end try
end if