#define LOGON32_PROVIDER_DEFAULT 0 #define LOGON32_LOGON_INTERACTIVE 2 #define LOGON32_LOGON_NETWORK 3 #define LOGON32_LOGON_BATCH 4 #define LOGON32_LOGON_SERVICE 5 #define LOGON32_LOGON_UNLOCK 7 DECLARE integer LogonUser IN AdvApi32.DLL; string szUsername,; string lpszDomain,; string lpszPassword,; integer dwLogonType,; integer dwLogonProvider,; integer @phToken DECLARE integer ImpersonateLoggedOnUser IN AdvApi32.DLL integer hToken DECLARE integer RevertToSelf IN AdvApi32.DLL nToken = 0 ? LogonUser("username","domain","password",LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, @nToken) ? nToken ? ImpersonateLoggedOnUser(nToken) loWord = CREATEOBJECT( 'word.application' ) loWord.Visible = .T. loWord.Documents.Open( "\\server\resource\folder\worddocument.doc" )Is it possible to pass current access rights to loWord? Or impersonate again with OLE?